Skip to content

Commit 1d3e92b

Browse files
watsonBridgeAR
authored andcommitted
chore(dep): bump dd-license-attribution tool to newest version (#7246)
Bump `dd-license-attribution` to the latest version which fixes two issues with `LICENSE-3rdparty.csv`: - Consistently use Windows style line endings - Removes incorrect `@datadog/source-map` line from `LICENSE-3rdparty.csv` Also update `scripts/check_licenses.js` to support resolving npm aliases.
1 parent 885bf02 commit 1d3e92b

3 files changed

Lines changed: 125 additions & 85 deletions

File tree

.github/workflows/update-3rdparty-licenses.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ name: Update 3rd-party licenses
33
on:
44
pull_request:
55
paths:
6-
- 'yarn.lock'
6+
- "yarn.lock"
77

88
jobs:
99
update-3rdparty-licenses:
@@ -19,13 +19,13 @@ jobs:
1919
- name: Set up Python
2020
uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
2121
with:
22-
python-version: '3.14'
22+
python-version: "3.14"
2323

2424
- name: Check out dd-license-attribution
2525
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
2626
with:
2727
repository: DataDog/dd-license-attribution
28-
ref: 58e29701db6c72889f9298ff59717987404659c8
28+
ref: 224a89cb69d3143e8aa4640405037cf9c233ddf5
2929
path: dd-license-attribution
3030

3131
- name: Install dd-license-attribution

LICENSE-3rdparty.csv

Lines changed: 78 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -1,79 +1,78 @@
1-
"component","origin","license","copyright"
2-
"@datadog/flagging-core","https://github.com/DataDog/openfeature-js-client","['Apache-2.0']","['DataDog']"
3-
"@datadog/libdatadog","https://github.com/DataDog/libdatadog-nodejs","['Apache-2.0']","['Datadog Inc.']"
4-
"@datadog/native-appsec","https://github.com/DataDog/dd-native-appsec-js","['Apache-2.0']","['Datadog Inc.']"
5-
"@datadog/native-iast-taint-tracking","https://github.com/DataDog/dd-native-iast-taint-tracking-js","['Apache-2.0']","['Datadog Inc.']"
6-
"@datadog/native-metrics","https://github.com/DataDog/dd-native-metrics-js","['Apache-2.0']","['Datadog Inc.']"
7-
"@datadog/openfeature-node-server","https://github.com/DataDog/openfeature-js-client","['Apache-2.0']","['DataDog']"
8-
"@datadog/pprof","https://github.com/DataDog/pprof-nodejs","['Apache-2.0']","['Google Inc.']"
9-
"@datadog/sketches-js","https://github.com/DataDog/sketches-js","['Apache-2.0']","['DataDog']"
10-
"@datadog/source-map","npm:@datadog/source-map","[]","[]"
11-
"@datadog/wasm-js-rewriter","https://github.com/DataDog/dd-wasm-js-rewriter","['Apache-2.0']","['Datadog Inc.']"
12-
"@isaacs/ttlcache","https://github.com/isaacs/ttlcache","['BlueOak-1.0.0']","['Isaac Z. Schlueter']"
13-
"@jsep-plugin/assignment","https://github.com/EricSmekens/jsep","['MIT']","['Shelly']"
14-
"@jsep-plugin/regex","https://github.com/EricSmekens/jsep","['MIT']","['Shelly']"
15-
"@openfeature/server-sdk","https://github.com/open-feature/js-sdk","['Apache-2.0']","['open-feature']"
16-
"@opentelemetry/api","https://github.com/open-telemetry/opentelemetry-js","['Apache-2.0']","['OpenTelemetry Authors']"
17-
"@opentelemetry/api-logs","https://github.com/open-telemetry/opentelemetry-js","['Apache-2.0']","['OpenTelemetry Authors']"
18-
"@opentelemetry/core","https://github.com/open-telemetry/opentelemetry-js","['Apache-2.0']","['OpenTelemetry Authors']"
19-
"@opentelemetry/resources","https://github.com/open-telemetry/opentelemetry-js","['Apache-2.0']","['OpenTelemetry Authors']"
20-
"@opentelemetry/semantic-conventions","https://github.com/open-telemetry/opentelemetry-js","['Apache-2.0']","['OpenTelemetry Authors']"
21-
"@protobufjs/aspromise","https://github.com/protobufjs/protobuf.js","['BSD-3-Clause']","['Daniel Wirtz']"
22-
"@protobufjs/base64","https://github.com/protobufjs/protobuf.js","['BSD-3-Clause']","['Daniel Wirtz']"
23-
"@protobufjs/codegen","https://github.com/protobufjs/protobuf.js","['BSD-3-Clause']","['Daniel Wirtz']"
24-
"@protobufjs/eventemitter","https://github.com/protobufjs/protobuf.js","['BSD-3-Clause']","['Daniel Wirtz']"
25-
"@protobufjs/fetch","https://github.com/protobufjs/protobuf.js","['BSD-3-Clause']","['Daniel Wirtz']"
26-
"@protobufjs/float","https://github.com/protobufjs/protobuf.js","['BSD-3-Clause']","['Daniel Wirtz']"
27-
"@protobufjs/inquire","https://github.com/protobufjs/protobuf.js","['BSD-3-Clause']","['Daniel Wirtz']"
28-
"@protobufjs/path","https://github.com/protobufjs/protobuf.js","['BSD-3-Clause']","['Daniel Wirtz']"
29-
"@protobufjs/pool","https://github.com/protobufjs/protobuf.js","['BSD-3-Clause']","['Daniel Wirtz']"
30-
"@protobufjs/utf8","https://github.com/protobufjs/protobuf.js","['BSD-3-Clause']","['Daniel Wirtz']"
31-
"@types/node","https://github.com/DefinitelyTyped/DefinitelyTyped","['MIT']","['DefinitelyTyped']"
32-
"acorn","https://github.com/acornjs/acorn","['MIT']","['acornjs']"
33-
"acorn-import-attributes","https://github.com/xtuc/acorn-import-attributes","['MIT']","['Sven Sauleau']"
34-
"argparse","https://github.com/nodeca/argparse","['Python-2.0']","['nodeca']"
35-
"astring","https://github.com/davidbonnet/astring","['MIT']","['David Bonnet']"
36-
"cjs-module-lexer","https://github.com/nodejs/cjs-module-lexer","['MIT']","['Guy Bedford']"
37-
"crypto-randomuuid","npm:crypto-randomuuid","['MIT']","['Stephen Belanger']"
38-
"dc-polyfill","https://github.com/DataDog/dc-polyfill","['MIT']","['Thomas Hunter II']"
39-
"dd-trace","https://github.com/DataDog/dd-trace-js","['(Apache-2.0 OR BSD-3-Clause)']","['Datadog Inc. <info@datadoghq.com>']"
40-
"delay","https://github.com/sindresorhus/delay","['MIT']","['Sindre Sorhus']"
41-
"detect-newline","https://github.com/sindresorhus/detect-newline","['MIT']","['Sindre Sorhus']"
42-
"escape-string-regexp","https://github.com/sindresorhus/escape-string-regexp","['MIT']","['Sindre Sorhus']"
43-
"esquery","https://github.com/estools/esquery","['BSD-3-Clause']","['Joel Feenstra']"
44-
"estraverse","https://github.com/estools/estraverse","['BSD-2-Clause']","['estools']"
45-
"fast-fifo","https://github.com/mafintosh/fast-fifo","['MIT']","['Mathias Buus']"
46-
"ignore","https://github.com/kaelzhang/node-ignore","['MIT']","['kael']"
47-
"import-in-the-middle","https://github.com/nodejs/import-in-the-middle","['Apache-2.0']","['Bryan English']"
48-
"istanbul-lib-coverage","https://github.com/istanbuljs/istanbuljs","['BSD-3-Clause']","['Krishnan Anantheswaran']"
49-
"jest-docblock","https://github.com/jestjs/jest","['MIT']","['jestjs']"
50-
"js-yaml","https://github.com/nodeca/js-yaml","['MIT']","['Vladimir Zapparov']"
51-
"jsep","https://github.com/EricSmekens/jsep","['MIT']","['Stephen Oney']"
52-
"jsonpath-plus","https://github.com/JSONPath-Plus/JSONPath","['MIT']","['Stefan Goessner']"
53-
"limiter","https://github.com/jhurliman/node-rate-limiter","['MIT']","['John Hurliman']"
54-
"lodash.sortby","https://github.com/lodash/lodash","['MIT']","['John-David Dalton']"
55-
"long","https://github.com/dcodeIO/long.js","['Apache-2.0']","['Daniel Wirtz']"
56-
"lru-cache","https://github.com/isaacs/node-lru-cache","['ISC']","['Isaac Z. Schlueter']"
57-
"meriyah","https://github.com/meriyah/meriyah","['ISC']","['Kenny F.']"
58-
"module-details-from-path","https://github.com/watson/module-details-from-path","['MIT']","['Thomas Watson']"
59-
"mutexify","https://github.com/mafintosh/mutexify","['MIT']","['Mathias Buus']"
60-
"node-addon-api","https://github.com/nodejs/node-addon-api","['MIT']","['nodejs']"
61-
"node-gyp-build","https://github.com/prebuild/node-gyp-build","['MIT']","['Mathias Buus']"
62-
"opentracing","https://github.com/opentracing/opentracing-javascript","['Apache-2.0']","['opentracing']"
63-
"p-limit","https://github.com/sindresorhus/p-limit","['MIT']","['Sindre Sorhus']"
64-
"path-to-regexp","https://github.com/pillarjs/path-to-regexp","['MIT']","['pillarjs']"
65-
"pprof-format","https://github.com/DataDog/pprof-format","['MIT']","['Datadog Inc.']"
66-
"protobufjs","https://github.com/protobufjs/protobuf.js","['BSD-3-Clause']","['Daniel Wirtz']"
67-
"queue-tick","https://github.com/mafintosh/queue-tick","['MIT']","['Mathias Buus']"
68-
"retry","https://github.com/tim-kos/node-retry","['MIT']","['Tim Koschützki']"
69-
"rfdc","https://github.com/davidmarkclements/rfdc","['MIT']","['David Mark Clements']"
70-
"semifies","https://github.com/holepunchto/semifies","['Apache-2.0']","['Holepunch Inc']"
71-
"shell-quote","https://github.com/ljharb/shell-quote","['MIT']","['James Halliday']"
72-
"source-map","https://github.com/mozilla/source-map","['BSD-3-Clause']","['Nick Fitzgerald']"
73-
"spark-md5","https://github.com/satazor/js-spark-md5","['(WTFPL OR MIT)']","['André Cruz']"
74-
"tlhunter-sorted-set","https://github.com/tlhunter/node-sorted-set","['MIT']","['Thomas Hunter II']"
75-
"ttl-set","https://github.com/watson/ttl-set","['MIT']","['Thomas Watson']"
76-
"undici-types","https://github.com/nodejs/undici","['MIT']","['nodejs']"
77-
"yocto-queue","https://github.com/sindresorhus/yocto-queue","['MIT']","['Sindre Sorhus']"
78-
"aws-lambda-nodejs-runtime-interface-client","https://github.com/aws/aws-lambda-nodejs-runtime-interface-client/blob/v2.1.0/src/utils/UserFunction.ts","['Apache-2.0']","['Amazon.com Inc. or its affiliates']"
79-
"is-git-url","https://github.com/jonschlinkert/is-git-url/blob/396965ffabf2f46656c8af4c47bef1d69f09292e/index.js#L9C15-L9C87","['MIT']","['Jon Schlinkert']"
1+
"component","origin","license","copyright"
2+
"@datadog/flagging-core","https://github.com/DataDog/openfeature-js-client","['Apache-2.0']","['DataDog']"
3+
"@datadog/libdatadog","https://github.com/DataDog/libdatadog-nodejs","['Apache-2.0']","['Datadog Inc.']"
4+
"@datadog/native-appsec","https://github.com/DataDog/dd-native-appsec-js","['Apache-2.0']","['Datadog Inc.']"
5+
"@datadog/native-iast-taint-tracking","https://github.com/DataDog/dd-native-iast-taint-tracking-js","['Apache-2.0']","['Datadog Inc.']"
6+
"@datadog/native-metrics","https://github.com/DataDog/dd-native-metrics-js","['Apache-2.0']","['Datadog Inc.']"
7+
"@datadog/openfeature-node-server","https://github.com/DataDog/openfeature-js-client","['Apache-2.0']","['DataDog']"
8+
"@datadog/pprof","https://github.com/DataDog/pprof-nodejs","['Apache-2.0']","['Google Inc.']"
9+
"@datadog/sketches-js","https://github.com/DataDog/sketches-js","['Apache-2.0']","['DataDog']"
10+
"@datadog/wasm-js-rewriter","https://github.com/DataDog/dd-wasm-js-rewriter","['Apache-2.0']","['Datadog Inc.']"
11+
"@isaacs/ttlcache","https://github.com/isaacs/ttlcache","['BlueOak-1.0.0']","['Isaac Z. Schlueter']"
12+
"@jsep-plugin/assignment","https://github.com/EricSmekens/jsep","['MIT']","['Shelly']"
13+
"@jsep-plugin/regex","https://github.com/EricSmekens/jsep","['MIT']","['Shelly']"
14+
"@openfeature/server-sdk","https://github.com/open-feature/js-sdk","['Apache-2.0']","['open-feature']"
15+
"@opentelemetry/api","https://github.com/open-telemetry/opentelemetry-js","['Apache-2.0']","['OpenTelemetry Authors']"
16+
"@opentelemetry/api-logs","https://github.com/open-telemetry/opentelemetry-js","['Apache-2.0']","['OpenTelemetry Authors']"
17+
"@opentelemetry/core","https://github.com/open-telemetry/opentelemetry-js","['Apache-2.0']","['OpenTelemetry Authors']"
18+
"@opentelemetry/resources","https://github.com/open-telemetry/opentelemetry-js","['Apache-2.0']","['OpenTelemetry Authors']"
19+
"@opentelemetry/semantic-conventions","https://github.com/open-telemetry/opentelemetry-js","['Apache-2.0']","['OpenTelemetry Authors']"
20+
"@protobufjs/aspromise","https://github.com/protobufjs/protobuf.js","['BSD-3-Clause']","['Daniel Wirtz']"
21+
"@protobufjs/base64","https://github.com/protobufjs/protobuf.js","['BSD-3-Clause']","['Daniel Wirtz']"
22+
"@protobufjs/codegen","https://github.com/protobufjs/protobuf.js","['BSD-3-Clause']","['Daniel Wirtz']"
23+
"@protobufjs/eventemitter","https://github.com/protobufjs/protobuf.js","['BSD-3-Clause']","['Daniel Wirtz']"
24+
"@protobufjs/fetch","https://github.com/protobufjs/protobuf.js","['BSD-3-Clause']","['Daniel Wirtz']"
25+
"@protobufjs/float","https://github.com/protobufjs/protobuf.js","['BSD-3-Clause']","['Daniel Wirtz']"
26+
"@protobufjs/inquire","https://github.com/protobufjs/protobuf.js","['BSD-3-Clause']","['Daniel Wirtz']"
27+
"@protobufjs/path","https://github.com/protobufjs/protobuf.js","['BSD-3-Clause']","['Daniel Wirtz']"
28+
"@protobufjs/pool","https://github.com/protobufjs/protobuf.js","['BSD-3-Clause']","['Daniel Wirtz']"
29+
"@protobufjs/utf8","https://github.com/protobufjs/protobuf.js","['BSD-3-Clause']","['Daniel Wirtz']"
30+
"@types/node","https://github.com/DefinitelyTyped/DefinitelyTyped","['MIT']","['DefinitelyTyped']"
31+
"acorn","https://github.com/acornjs/acorn","['MIT']","['acornjs']"
32+
"acorn-import-attributes","https://github.com/xtuc/acorn-import-attributes","['MIT']","['Sven Sauleau']"
33+
"argparse","https://github.com/nodeca/argparse","['Python-2.0']","['nodeca']"
34+
"astring","https://github.com/davidbonnet/astring","['MIT']","['David Bonnet']"
35+
"cjs-module-lexer","https://github.com/nodejs/cjs-module-lexer","['MIT']","['Guy Bedford']"
36+
"crypto-randomuuid","npm:crypto-randomuuid","['MIT']","['Stephen Belanger']"
37+
"dc-polyfill","https://github.com/DataDog/dc-polyfill","['MIT']","['Thomas Hunter II']"
38+
"dd-trace","https://github.com/DataDog/dd-trace-js","['(Apache-2.0 OR BSD-3-Clause)']","['Datadog Inc. <info@datadoghq.com>']"
39+
"delay","https://github.com/sindresorhus/delay","['MIT']","['Sindre Sorhus']"
40+
"detect-newline","https://github.com/sindresorhus/detect-newline","['MIT']","['Sindre Sorhus']"
41+
"escape-string-regexp","https://github.com/sindresorhus/escape-string-regexp","['MIT']","['Sindre Sorhus']"
42+
"esquery","https://github.com/estools/esquery","['BSD-3-Clause']","['Joel Feenstra']"
43+
"estraverse","https://github.com/estools/estraverse","['BSD-2-Clause']","['estools']"
44+
"fast-fifo","https://github.com/mafintosh/fast-fifo","['MIT']","['Mathias Buus']"
45+
"ignore","https://github.com/kaelzhang/node-ignore","['MIT']","['kael']"
46+
"import-in-the-middle","https://github.com/nodejs/import-in-the-middle","['Apache-2.0']","['Bryan English']"
47+
"istanbul-lib-coverage","https://github.com/istanbuljs/istanbuljs","['BSD-3-Clause']","['Krishnan Anantheswaran']"
48+
"jest-docblock","https://github.com/jestjs/jest","['MIT']","['jestjs']"
49+
"js-yaml","https://github.com/nodeca/js-yaml","['MIT']","['Vladimir Zapparov']"
50+
"jsep","https://github.com/EricSmekens/jsep","['MIT']","['Stephen Oney']"
51+
"jsonpath-plus","https://github.com/JSONPath-Plus/JSONPath","['MIT']","['Stefan Goessner']"
52+
"limiter","https://github.com/jhurliman/node-rate-limiter","['MIT']","['John Hurliman']"
53+
"lodash.sortby","https://github.com/lodash/lodash","['MIT']","['John-David Dalton']"
54+
"long","https://github.com/dcodeIO/long.js","['Apache-2.0']","['Daniel Wirtz']"
55+
"lru-cache","https://github.com/isaacs/node-lru-cache","['ISC']","['Isaac Z. Schlueter']"
56+
"meriyah","https://github.com/meriyah/meriyah","['ISC']","['Kenny F.']"
57+
"module-details-from-path","https://github.com/watson/module-details-from-path","['MIT']","['Thomas Watson']"
58+
"mutexify","https://github.com/mafintosh/mutexify","['MIT']","['Mathias Buus']"
59+
"node-addon-api","https://github.com/nodejs/node-addon-api","['MIT']","['nodejs']"
60+
"node-gyp-build","https://github.com/prebuild/node-gyp-build","['MIT']","['Mathias Buus']"
61+
"opentracing","https://github.com/opentracing/opentracing-javascript","['Apache-2.0']","['opentracing']"
62+
"p-limit","https://github.com/sindresorhus/p-limit","['MIT']","['Sindre Sorhus']"
63+
"path-to-regexp","https://github.com/pillarjs/path-to-regexp","['MIT']","['pillarjs']"
64+
"pprof-format","https://github.com/DataDog/pprof-format","['MIT']","['Datadog Inc.']"
65+
"protobufjs","https://github.com/protobufjs/protobuf.js","['BSD-3-Clause']","['Daniel Wirtz']"
66+
"queue-tick","https://github.com/mafintosh/queue-tick","['MIT']","['Mathias Buus']"
67+
"retry","https://github.com/tim-kos/node-retry","['MIT']","['Tim Koschützki']"
68+
"rfdc","https://github.com/davidmarkclements/rfdc","['MIT']","['David Mark Clements']"
69+
"semifies","https://github.com/holepunchto/semifies","['Apache-2.0']","['Holepunch Inc']"
70+
"shell-quote","https://github.com/ljharb/shell-quote","['MIT']","['James Halliday']"
71+
"source-map","https://github.com/mozilla/source-map","['BSD-3-Clause']","['Nick Fitzgerald']"
72+
"spark-md5","https://github.com/satazor/js-spark-md5","['(WTFPL OR MIT)']","['André Cruz']"
73+
"tlhunter-sorted-set","https://github.com/tlhunter/node-sorted-set","['MIT']","['Thomas Hunter II']"
74+
"ttl-set","https://github.com/watson/ttl-set","['MIT']","['Thomas Watson']"
75+
"undici-types","https://github.com/nodejs/undici","['MIT']","['nodejs']"
76+
"yocto-queue","https://github.com/sindresorhus/yocto-queue","['MIT']","['Sindre Sorhus']"
77+
"aws-lambda-nodejs-runtime-interface-client","https://github.com/aws/aws-lambda-nodejs-runtime-interface-client/blob/v2.1.0/src/utils/UserFunction.ts","['Apache-2.0']","['Amazon.com Inc. or its affiliates']"
78+
"is-git-url","https://github.com/jonschlinkert/is-git-url/blob/396965ffabf2f46656c8af4c47bef1d69f09292e/index.js#L9C15-L9C87","['MIT']","['Jon Schlinkert']"

scripts/check_licenses.js

Lines changed: 44 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ const { execSync } = require('node:child_process')
88
const { name: rootPackageName } = require('../package.json')
99

1010
const filePath = join(__dirname, '..', 'LICENSE-3rdparty.csv')
11+
const aliasMap = getAliasMap()
1112
const deps = getProdDeps()
1213
const licenses = new Set()
1314
let isHeader = true
@@ -39,7 +40,7 @@ lineReader.on('close', () => {
3940

4041
function getProdDeps () {
4142
// Add root package (dd-trace) to the set of dependencies manually as it is not included in the yarn list output.
42-
const deps = new Set([rootPackageName])
43+
const deps = new Set([normalizeDepName(rootPackageName)])
4344

4445
addProdDeps(deps, process.cwd())
4546
addProdDeps(deps, join(process.cwd(), 'vendor'))
@@ -72,7 +73,7 @@ function collectFromTrees (trees, deps) {
7273
if (typeof node?.name !== 'string') continue
7374

7475
// Remove version from the package name (e.g. `@protobufjs/pool@1.1.0` -> `@protobufjs/pool`)
75-
deps.add(node.name.slice(0, node.name.lastIndexOf('@')))
76+
deps.add(normalizeDepName(node.name.slice(0, node.name.lastIndexOf('@'))))
7677

7778
if (Array.isArray(node.children) && node.children.length) {
7879
collectFromTrees(node.children, deps)
@@ -99,10 +100,50 @@ function addVendoredDeps (deps) {
99100
const component = columns[0]
100101

101102
// Strip quotes from the component name and add to deps
102-
deps.add(component.replaceAll(/^"|"$/g, ''))
103+
deps.add(normalizeDepName(component.replaceAll(/^"|"$/g, '')))
103104
}
104105
}
105106

107+
function getAliasMap () {
108+
const rootPackagePath = join(__dirname, '..', 'package.json')
109+
const vendorPackagePath = join(__dirname, '..', 'vendor', 'package.json')
110+
const map = new Map()
111+
112+
collectAliasesFromPackageJson(rootPackagePath, map)
113+
collectAliasesFromPackageJson(vendorPackagePath, map)
114+
115+
return map
116+
}
117+
118+
function collectAliasesFromPackageJson (packagePath, map) {
119+
if (!existsSync(packagePath)) return
120+
121+
const packageJson = require(packagePath)
122+
const deps = packageJson?.dependencies ?? {}
123+
const optionalDeps = packageJson?.optionalDependencies ?? {}
124+
125+
collectAliasesFromDeps(deps, map)
126+
collectAliasesFromDeps(optionalDeps, map)
127+
}
128+
129+
function collectAliasesFromDeps (deps, map) {
130+
for (const [alias, spec] of Object.entries(deps)) {
131+
if (typeof spec !== 'string' || !spec.startsWith('npm:')) continue
132+
133+
const rawTarget = spec.slice('npm:'.length)
134+
const atIndex = rawTarget.lastIndexOf('@')
135+
const target = atIndex > 0 ? rawTarget.slice(0, atIndex) : rawTarget
136+
137+
if (target) {
138+
map.set(alias, target)
139+
}
140+
}
141+
}
142+
143+
function normalizeDepName (name) {
144+
return aliasMap.get(name) ?? name
145+
}
146+
106147
function checkLicenses (typeDeps) {
107148
const missing = []
108149
const extraneous = []

0 commit comments

Comments
 (0)