depvitals 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -19,7 +19,7 @@ Run it from a project directory to scan the current directory, or provide a path
|
|
|
19
19
|
|
|
20
20
|
**Requirements:** Node.js `>=22.13.0`.
|
|
21
21
|
|
|
22
|
-
**Version note:** Dependency scanning was introduced in v0.1.0. The earlier v0.0.1 release contains only the initial CLI bootstrap.
|
|
22
|
+
**Version note:** Dependency scanning was introduced in v0.1.0, and v0.1.2 expanded the script executable allowlist. The earlier v0.0.1 release contains only the initial CLI bootstrap.
|
|
23
23
|
|
|
24
24
|
**Exit status:**
|
|
25
25
|
|
|
@@ -65,6 +65,7 @@ Missing dependencies (1)
|
|
|
65
65
|
- **Literal dynamic imports:** expressions such as `import("express")`.
|
|
66
66
|
- **Literal CommonJS requires:** expressions such as `require("express")`.
|
|
67
67
|
- **Basic `package.json` script awareness:** a declared dependency invoked by a supported script command counts as used, for example `eslint` in `"lint": "eslint ."`. Script usage can prevent unused findings but does not generate missing-dependency findings.
|
|
68
|
+
- **Known executable names:** since v0.1.2, a static allowlist of 60 known executable commands resolves to 46 declared packages, so a real CLI executable credits the package that declares it, for example `tsserver` → `typescript`, `ng` → `@angular/cli`, `vue-cli-service` → `@vue/cli-service`, `depcruise` → `dependency-cruiser`, `sls` → `serverless`, and `gulp` → `gulp-cli`. Each alias was verified against published `bin` metadata beforehand: nothing is auto-discovered from `bin` fields or from `node_modules`. 32 of them are collision-sensitive, meaning a same-named declared package wins and the mapped provider gets no evidence.
|
|
68
69
|
- **Node.js builtins:** built-in modules, with or without the `node:` prefix, are excluded from missing-dependency findings.
|
|
69
70
|
- **Scoped packages and subpaths:** package specifiers are normalized to their package root. For example, `@scope/ui/button` counts as `@scope/ui`, and `lodash/chunk` counts as `lodash`.
|
|
70
71
|
- **Ignored directories:** generated and vendor trees are skipped, including `node_modules`, `dist`, `build`, `coverage`, `out`, `.next`, `.nuxt`, `.cache`, `.turbo`, and `.git`.
|
|
@@ -77,7 +78,7 @@ Detection uses a lightweight static lexical scanner rather than a full JavaScrip
|
|
|
77
78
|
- **Single-project analysis:** only one `package.json` is analyzed. Workspaces, monorepos, and parent-manifest lookup are not supported.
|
|
78
79
|
- **No configuration-aware resolution:** framework-specific configurations, plugins, TypeScript `paths`, and bundler aliases are not resolved.
|
|
79
80
|
- **Static specifiers only:** non-literal dynamic `import()`, template-literal specifiers, `require.resolve()`, and property calls such as `obj.require()` are not recognized as usage evidence.
|
|
80
|
-
- **Limited script detection:**
|
|
81
|
+
- **Limited script detection:** script usage relies on supported command patterns, and only the executables in the static allowlist above are translated to their declaring package, and only when the executable appears in a supported direct command position. Every other executable name keeps exact-name matching, mappings are never applied to runner arguments such as `npx tsc` or `pnpm exec tsc`, and ambiguous provider families such as `tailwindcss`, `playwright`, and `webpack` are deliberately unmapped, so only an exactly declared same-name package is credited.
|
|
81
82
|
- **Fixed directory exclusions:** source discovery uses the built-in ignored-directory list above. `.gitignore` and custom ignore rules are not interpreted.
|
|
82
83
|
- **Conservative error handling:** unreadable source files or source content the lexical scanner cannot safely finish scanning, such as unterminated strings, comments, templates, or regular expressions, abort the scan rather than producing partial results.
|
|
83
84
|
- **No remediation features yet:** automatic fixes, custom configuration files, and per-dependency explanations are not available.
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
* It deliberately does not:
|
|
10
10
|
* - execute, expand, substitute, resolve, spawn, source or evaluate anything;
|
|
11
11
|
* - shell-out, read the filesystem or consult `node_modules`;
|
|
12
|
-
* - map arbitrary shell binaries to packages; only the small, explicit `BINARY_TO_PACKAGE` list
|
|
13
|
-
*
|
|
12
|
+
* - map arbitrary shell binaries to packages; only the small, explicit `BINARY_TO_PACKAGE` list is
|
|
13
|
+
* ever translated, and only against declared packages;
|
|
14
14
|
* - report missing dependencies (undeclared command tokens are ignored);
|
|
15
15
|
* - inspect installed `bin` metadata, config, workspaces or framework detectors.
|
|
16
16
|
*
|
|
@@ -20,8 +20,13 @@
|
|
|
20
20
|
* - a shell segment's first effective command token counts only when that token is exactly a package
|
|
21
21
|
* name, so paths and package subpaths (`scripts/build.js`, `eslint/bin/cli`) are never usage
|
|
22
22
|
* evidence for the package they point into;
|
|
23
|
-
* - the
|
|
24
|
-
* `tsc` -> `typescript`) to its declared package; every other command keeps exact-name
|
|
23
|
+
* - the explicit `BINARY_TO_PACKAGE` allowlist translates a recognized direct executable (for
|
|
24
|
+
* example `tsc` -> `typescript`) to its declared package; every other command keeps exact-name
|
|
25
|
+
* matching. Collision-sensitive entries keep exact-name precedence instead (see
|
|
26
|
+
* `COLLISION_SENSITIVE_BINARIES`), so one executable never marks two competing providers as used.
|
|
27
|
+
* - the catalog is a static allowlist of known executable aliases: every entry was verified against
|
|
28
|
+
* the published `bin` metadata of its package before being added. It is not auto-discovery of npm
|
|
29
|
+
* `bin` fields and it is not framework support - any other executable keeps exact-name matching;
|
|
25
30
|
* - the five documented package-runner forms count (`npx`, `npm exec`, `pnpm exec`, `pnpm dlx`,
|
|
26
31
|
* `yarn dlx`) with the package in its immediate position;
|
|
27
32
|
* - leading POSIX environment assignments (`NODE_ENV=test`, `FOO=1 BAR=2`) are skipped;
|
|
@@ -42,7 +47,8 @@
|
|
|
42
47
|
* evidence (a command token, a recognized executable mapped through `BINARY_TO_PACKAGE`, or a
|
|
43
48
|
* supported runner package position) and keeps only those that are present in
|
|
44
49
|
* {@link declaredPackageNames}. Undeclared command tokens and undeclared mapped packages are ignored:
|
|
45
|
-
* this module never creates missing-dependency findings.
|
|
50
|
+
* this module never creates missing-dependency findings. The declared names are also consulted when
|
|
51
|
+
* resolving a collision-sensitive executable, which needs them to keep exact-name precedence.
|
|
46
52
|
*
|
|
47
53
|
* The result is built in alphabetical package-name order so iteration is deterministic. Neither
|
|
48
54
|
* {@link scripts} nor {@link declaredPackageNames} is mutated.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scriptUsage.d.ts","sourceRoot":"","sources":["../../src/scanner/scriptUsage.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"scriptUsage.d.ts","sourceRoot":"","sources":["../../src/scanner/scriptUsage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AA6TH;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACzC,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAAC,GACxC,WAAW,CAAC,MAAM,CAAC,CAYrB"}
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
* It deliberately does not:
|
|
10
10
|
* - execute, expand, substitute, resolve, spawn, source or evaluate anything;
|
|
11
11
|
* - shell-out, read the filesystem or consult `node_modules`;
|
|
12
|
-
* - map arbitrary shell binaries to packages; only the small, explicit `BINARY_TO_PACKAGE` list
|
|
13
|
-
*
|
|
12
|
+
* - map arbitrary shell binaries to packages; only the small, explicit `BINARY_TO_PACKAGE` list is
|
|
13
|
+
* ever translated, and only against declared packages;
|
|
14
14
|
* - report missing dependencies (undeclared command tokens are ignored);
|
|
15
15
|
* - inspect installed `bin` metadata, config, workspaces or framework detectors.
|
|
16
16
|
*
|
|
@@ -20,8 +20,13 @@
|
|
|
20
20
|
* - a shell segment's first effective command token counts only when that token is exactly a package
|
|
21
21
|
* name, so paths and package subpaths (`scripts/build.js`, `eslint/bin/cli`) are never usage
|
|
22
22
|
* evidence for the package they point into;
|
|
23
|
-
* - the
|
|
24
|
-
* `tsc` -> `typescript`) to its declared package; every other command keeps exact-name
|
|
23
|
+
* - the explicit `BINARY_TO_PACKAGE` allowlist translates a recognized direct executable (for
|
|
24
|
+
* example `tsc` -> `typescript`) to its declared package; every other command keeps exact-name
|
|
25
|
+
* matching. Collision-sensitive entries keep exact-name precedence instead (see
|
|
26
|
+
* `COLLISION_SENSITIVE_BINARIES`), so one executable never marks two competing providers as used.
|
|
27
|
+
* - the catalog is a static allowlist of known executable aliases: every entry was verified against
|
|
28
|
+
* the published `bin` metadata of its package before being added. It is not auto-discovery of npm
|
|
29
|
+
* `bin` fields and it is not framework support - any other executable keeps exact-name matching;
|
|
25
30
|
* - the five documented package-runner forms count (`npx`, `npm exec`, `pnpm exec`, `pnpm dlx`,
|
|
26
31
|
* `yarn dlx`) with the package in its immediate position;
|
|
27
32
|
* - leading POSIX environment assignments (`NODE_ENV=test`, `FOO=1 BAR=2`) are skipped;
|
|
@@ -58,8 +63,160 @@ const ASSIGNMENT_PATTERN = /^[A-Za-z_][A-Za-z0-9_]*=/;
|
|
|
58
63
|
* - `tsc` is the compiler front-end of the `typescript` package; the deprecated standalone `tsc`
|
|
59
64
|
* npm package is intentionally NOT treated as providing the TypeScript compiler.
|
|
60
65
|
* - `docsify` is the executable provided by the `docsify-cli` package.
|
|
61
|
-
*
|
|
62
|
-
*
|
|
66
|
+
* - `ng` is the executable provided by the `@angular/cli` package.
|
|
67
|
+
* - `nest` is the executable provided by the `@nestjs/cli` package.
|
|
68
|
+
* - `babel` is the executable provided by the `@babel/cli` package.
|
|
69
|
+
* - `swc` is one of the executables provided by the `@swc/cli` package; the sibling `spack`
|
|
70
|
+
* executable is deliberately not mapped.
|
|
71
|
+
* - `postcss` is the executable provided by the `postcss-cli` package, and `dotenv` the one provided
|
|
72
|
+
* by `dotenv-cli`. Both are collision-sensitive: a real unrelated package with the exact same name
|
|
73
|
+
* exists, so they are listed in `COLLISION_SENSITIVE_BINARIES` and keep exact-name precedence.
|
|
74
|
+
* - `changeset` (singular only) is the executable provided by the `@changesets/cli` package; the
|
|
75
|
+
* plural `changesets` is not a published bin and is deliberately not matched.
|
|
76
|
+
* - `commitlint` is the executable provided by the `@commitlint/cli` package.
|
|
77
|
+
* - `graphql-codegen`, `gql-gen` and `graphql-code-generator` are three published executables of the
|
|
78
|
+
* same `@graphql-codegen/cli` package; several commands may map to one package, and the result is
|
|
79
|
+
* still a single usage classification. The additional `graphql-codegen-cjs` / `graphql-codegen-esm`
|
|
80
|
+
* bins are not candidates and stay unmapped.
|
|
81
|
+
* - `openapi-generator-cli` is the executable provided by
|
|
82
|
+
* `@openapitools/openapi-generator-cli`.
|
|
83
|
+
* - `run-p` and `run-s` are the executables provided by `npm-run-all`, `conc` by `concurrently`, and
|
|
84
|
+
* `ncu` by `npm-check-updates`. These are runners: they are recognized as the tool that runs, never
|
|
85
|
+
* followed into their arguments, so `run-p vite` never marks a declared `vite` as used and `conc
|
|
86
|
+
* "vite" "tsc"` never marks `vite` or `typescript` as used.
|
|
87
|
+
* - `gulp` is the executable provided by `gulp-cli`, `grunt` by `grunt-cli`, and `sequelize` by
|
|
88
|
+
* `sequelize-cli`. All three names are also plausible declared packages, so each is
|
|
89
|
+
* collision-sensitive: the same-name package keeps precedence when declared, and a single command
|
|
90
|
+
* never marks a CLI and its library as used together. Task runners and database CLIs are never
|
|
91
|
+
* executed and their task names are never interpreted.
|
|
92
|
+
* - `ngc` and `ng-xi18n` are executables provided by `@angular/compiler-cli` (verified for the published
|
|
93
|
+
* 17.x/20.x/22.x line). They are unrelated to the `ng` command, which keeps mapping to `@angular/cli`
|
|
94
|
+
* alone: `ng build` never credits `@angular/compiler-cli`, and the older `ngcc` executable is not a
|
|
95
|
+
* candidate and stays unmapped. `ngc` is itself a published package, so it is collision-sensitive and
|
|
96
|
+
* keeps exact-name precedence; `ng-xi18n` is not published under that name.
|
|
97
|
+
* - `biome` is the executable provided by `@biomejs/biome`. The platform-specific `@biomejs/cli-*`
|
|
98
|
+
* packages are optional dependencies of that package and are never inferred from the command: only the
|
|
99
|
+
* declared `@biomejs/biome` receives evidence. `biome` is also an unrelated published package, so it is
|
|
100
|
+
* collision-sensitive and keeps exact-name precedence. No lint or format run is executed.
|
|
101
|
+
* - `markdownlint`, `remark` and `rehype` are the executables provided by `markdownlint-cli`,
|
|
102
|
+
* `remark-cli` and `rehype-cli`. All three names are also published as unrelated library packages with
|
|
103
|
+
* no bin at all, so all three are collision-sensitive and keep exact-name precedence: a project that
|
|
104
|
+
* declares the `markdownlint` library and runs `markdownlint README.md` credits the library, not
|
|
105
|
+
* `markdownlint-cli`. The libraries, their plugins (`remark-parse`, `rehype-stringify`, ...) and the
|
|
106
|
+
* separate `markdownlint-cli2` package are never inferred from these commands, and nothing is executed.
|
|
107
|
+
* - `depcruise`, `depcruise-baseline` and `depcruise-fmt` are three published executables of the
|
|
108
|
+
* `dependency-cruiser` package (verified against the published `bin` metadata, latest 18.6.0). `depcruise` is the
|
|
109
|
+
* primary shorthand; the other two are the baseline and formatting helper binaries. The bare
|
|
110
|
+
* `depcruise` name is also published as a defensive placeholder package (1.0.0, no bin) whose only
|
|
111
|
+
* purpose is to prevent dependency confusion, so it is collision-sensitive and keeps exact-name
|
|
112
|
+
* precedence, while `depcruise-baseline` and `depcruise-fmt` are not published under their own names
|
|
113
|
+
* and simply credit `dependency-cruiser`. None of the three runs a real dependency-cruiser report and
|
|
114
|
+
* no config is evaluated.
|
|
115
|
+
* - `tsserver` is the language-server executable shipped by the `typescript` package next to `tsc`
|
|
116
|
+
* (verified for the published 4.x/5.x/6.x line; the 7.x package no longer lists this bin, which is
|
|
117
|
+
* irrelevant here because no version resolution is performed and `typescript` is the only provider of
|
|
118
|
+
* that executable name). It is not collision-sensitive: no `tsserver` package exists on the registry.
|
|
119
|
+
* The language server is never started, only recognized as a command token.
|
|
120
|
+
* - `ts-node-cwd`, `ts-node-esm`, `ts-node-script` and `ts-node-transpile-only` are additional
|
|
121
|
+
* executables provided by `ts-node`. Each name is also published as a separate package (a wrapper for
|
|
122
|
+
* the same binary, or an unrelated example package), so all four are collision-sensitive and keep
|
|
123
|
+
* exact-name precedence. The plain `ts-node` command keeps its existing exact-name match and is not a
|
|
124
|
+
* mapping, and `ts-script` is not a candidate.
|
|
125
|
+
* - `vue-cli-service` is the executable provided by `@vue/cli-service`, and `babel-node` by
|
|
126
|
+
* `@babel/node`. Both names are also published as separate packages, so they are collision-sensitive
|
|
127
|
+
* and keep exact-name precedence. Neither command implies the runtime libraries: `vue` and
|
|
128
|
+
* `@babel/core` receive no evidence from `vue-cli-service` or `babel-node`, and no build or
|
|
129
|
+
* transpilation is executed.
|
|
130
|
+
* - `cross-env-shell` is the executable provided by the `cross-env` package alongside the plain
|
|
131
|
+
* `cross-env`. `lessc` is the Less compiler executable provided by the `less` package, and
|
|
132
|
+
* `coffee`/`cake` (the task runner) are the executables provided by the modern `coffeescript`
|
|
133
|
+
* package. All four names are also published as separate packages (`cross-env-shell@7.0.3` a legacy
|
|
134
|
+
* wrapper, `lessc@1.0.2` a no-op npx shim, `coffee@5.5.1` an unrelated CLI, `cake@0.1.1` a legacy
|
|
135
|
+
* CoffeeScript make), so all four are collision-sensitive and keep exact-name precedence: a project
|
|
136
|
+
* that declares the same-named package credits it, and only when that exact-name package is absent
|
|
137
|
+
* does the command credit `cross-env`, `less` or `coffeescript`. The legacy `coffee-script` package
|
|
138
|
+
* is never inferred, `cross-env-shell`'s nested shell string is never parsed, and nothing is
|
|
139
|
+
* compiled or executed.
|
|
140
|
+
* - `uglifyjs` is the minifier executable provided by the `uglify-js` package, and `css-beautify`
|
|
141
|
+
* /`html-beautify` are two of the three executables provided by the `js-beautify` package (the
|
|
142
|
+
* third is the plain `js-beautify`). `uglifyjs` and `html-beautify` are also published as separate
|
|
143
|
+
* packages (`uglifyjs@2.4.11` a legacy redirect to `uglify-js`, `html-beautify@1.0.4` an unrelated
|
|
144
|
+
* formatter), so those two are collision-sensitive and keep exact-name precedence, while `css-beautify`
|
|
145
|
+
* is not published under its own name and simply credits `js-beautify`. The plain `js-beautify`
|
|
146
|
+
* command keeps its existing exact-name match, and nothing is minified or formatted.
|
|
147
|
+
* - `esparse` and `esvalidate` are the two auxiliary CLIs provided by the legacy `esprima` package
|
|
148
|
+
* (verified in the published 4.0.1 `bin` map). Both names are also published as separate packages
|
|
149
|
+
* (`esparse@0.6.11` an older ECMAScript parser, `esvalidate@0.1.3` a validation CLI), so both are
|
|
150
|
+
* collision-sensitive and keep exact-name precedence: a project that declares the same-named package
|
|
151
|
+
* credits it, and only when that exact-name package is absent does the command credit `esprima`. The
|
|
152
|
+
* parser is never run, only recognized as a command token.
|
|
153
|
+
* - `cap` and `capacitor` are the two executables provided by the hybrid-app CLI `@capacitor/cli`
|
|
154
|
+
* (verified in the published 8.5.3 `bin` map). `tauri` is the desktop-app CLI of `@tauri-apps/cli`
|
|
155
|
+
* (2.12.3) and `ionic` the mobile-app CLI of `@ionic/cli` (7.2.1). Every one of these four names is
|
|
156
|
+
* also published as a separate, unrelated package (`cap@0.2.1` packet capture, `capacitor@0.5.6`
|
|
157
|
+
* an old Flux library, `tauri@0.15.0` a multi-binding toolkit, `ionic@5.4.16` an old framework
|
|
158
|
+
* tool), so all four are collision-sensitive and keep exact-name precedence: a project that declares
|
|
159
|
+
* the same-named package credits it, and only when that exact-name package is absent does the command
|
|
160
|
+
* credit `@capacitor/cli`, `@tauri-apps/cli` or `@ionic/cli`. These mappings never imply the
|
|
161
|
+
* companion runtime packages (`@tauri-apps/api`, `@ionic/core`); the apps are never built.
|
|
162
|
+
* - `vue` is the legacy Vue CLI executable of `@vue/cli` (5.0.9). `eas` the Expo EAS CLI of
|
|
163
|
+
* `eas-cli` (25.2.0). Neither `vue@3.5.44` nor `eas@0.1.0` publishes those executable names, so
|
|
164
|
+
* both mappings are ordinary (Category B) and always credit the real CLI package when declared:
|
|
165
|
+
* `vue create` credits `@vue/cli` and `eas build` credits `eas-cli`. These mappings never imply
|
|
166
|
+
* companion packages (`vue` never implies the framework, `eas` never implies `expo`).
|
|
167
|
+
* - `electron-forge` is the desktop tooling CLI of `@electron-forge/cli` (8.0.1). Unlike the two
|
|
168
|
+
* names above, `electron-forge@5.2.4` does publish an `electron-forge` executable, so the exact-name
|
|
169
|
+
* package is a real competing provider: `electron-forge` is collision-sensitive and keeps exact-name
|
|
170
|
+
* precedence, crediting `@electron-forge/cli` only when the `electron-forge` package is absent.
|
|
171
|
+
* Neither command implies the core `electron` runtime; the apps are never built.
|
|
172
|
+
* - `firebase`, `netlify` and `cdk` are the Firebase CLI (`firebase-tools`), the Netlify CLI
|
|
173
|
+
* (`netlify-cli`) and the AWS CDK toolkit (`aws-cdk`) executables. Verified in the published `bin`
|
|
174
|
+
* maps: `firebase-tools@15.34.0` (2026-10-14, unchanged in `firebase-tools@14.25.0`) publishes
|
|
175
|
+
* `firebase`, `netlify-cli@27.13.0` (2026-10-16, unchanged in `netlify-cli@17.38.1`) publishes `netlify`
|
|
176
|
+
* next to its `ntl` alias, and `aws-cdk@2.1145.0` (2026-10-08, unchanged in `aws-cdk@1.204.0`) publishes
|
|
177
|
+
* `cdk`. `cdk` alone needs the collision rule because `cdk@2.1145.0` is the published wrapper of the same
|
|
178
|
+
* toolkit (it depends on `aws-cdk@2.1145.0`) and ships the identical executable, so it is registered
|
|
179
|
+
* below and keeps exact-name precedence. The `firebase` SDK and the `netlify` client library never
|
|
180
|
+
* publish their homonymous executables (`firebase@8.10.1`, `11.10.0` and `13.0.0` publish no bin, and
|
|
181
|
+
* `netlify@0.3.3`, `2.4.8`, `8.0.0`, `12.0.0` and `13.0.0` publish none while `netlify@22.0.0`, `23.0.0`
|
|
182
|
+
* and `27.13.0` publish only `npxnetlify`), so those two mappings are ordinary and a declared `firebase`
|
|
183
|
+
* or `netlify` runtime package is never credited from a CLI command. `aws-cdk-lib@2.273.0` publishes no
|
|
184
|
+
* bin at all, so `cdk` never credits the CDK construct library; no cloud project is contacted or
|
|
185
|
+
* deployed.
|
|
186
|
+
* - `sls`, `cz` and `manypkg` are the short command names of the Serverless Framework CLI
|
|
187
|
+
* (`serverless`), the Commitizen CLI (`commitizen`) and the monorepo package-lint CLI (`@manypkg/cli`).
|
|
188
|
+
* Verified in the published `bin` maps: `serverless@4.44.0` (2026-10-14, unchanged in
|
|
189
|
+
* `serverless@3.38.0` and `2.72.4`) publishes `sls` next to `serverless`, `commitizen@4.3.2`
|
|
190
|
+
* (2026-06-12) publishes `cz` next to `git-cz`/`commitizen`, and `@manypkg/cli@0.25.1` (2025-08-28,
|
|
191
|
+
* unchanged in `0.19.0` and `0.21.1`) publishes `manypkg`. Only `sls` needs the collision rule: the
|
|
192
|
+
* unrelated `sls@0.1.0` directory-listing tool ships its own `bin/sls`, so a declared `sls` keeps
|
|
193
|
+
* exact-name precedence and `serverless` is not additionally credited from the same command.
|
|
194
|
+
* `cz@1.8.2` is a config utility with no bin and `manypkg` is not a published package at all, so those
|
|
195
|
+
* two mappings are ordinary and a declared `cz` package never receives evidence from a `cz` command.
|
|
196
|
+
* The `cz` bin itself only exists since `commitizen@4.2.0` (the older lines published `git-cz` and
|
|
197
|
+
* `commitizen`), which is accepted here because no version resolution is performed: the declared
|
|
198
|
+
* `commitizen` package is the only provider of the `cz` name. The Commitizen adapters
|
|
199
|
+
* (`cz-conventional-changelog`) and the `@manypkg/*` libraries stay uncalled, and nothing is
|
|
200
|
+
* committed, deployed or rewritten.
|
|
201
|
+
* - `dotenvx` is the CLI of the scoped `@dotenvx/dotenvx` package. Verified in the published `bin` maps:
|
|
202
|
+
* `@dotenvx/dotenvx@2.38.0` (2026-10-16) publishes `dotenvx` next to its `dx` alias, and the same
|
|
203
|
+
* `dotenvx` key is published by `@dotenvx/dotenvx@1.24.2` and `1.0.0`, so the executable is stable across
|
|
204
|
+
* the major lines. The mapping is ordinary because the bare `dotenvx` name is not published at all
|
|
205
|
+
* (registry 404) and therefore is not a competing provider. Its short `dx` alias is deliberately not
|
|
206
|
+
* mapped: `dx@1.1.6` is an unrelated published package that ships its own `bin/dx`, which would need the
|
|
207
|
+
* collision rule. A `dotenvx` command never credits the `dotenv` library (`dotenv@18.0.8`, a separate
|
|
208
|
+
* collision-sensitive mapping key), `dotenv-cli`, or `dotenv-flow@4.1.0`, and `dotenv` never credits
|
|
209
|
+
* `@dotenvx/dotenvx`; no environment file is read, loaded or written.
|
|
210
|
+
*
|
|
211
|
+
* Ambiguous providers are deliberately absent from the list. `tailwindcss` is the published executable
|
|
212
|
+
* of `tailwindcss` in v3 and of `@tailwindcss/cli` in v4, `playwright` is published by both `playwright`
|
|
213
|
+
* and `@playwright/test`, and `webpack-cli` publishes no `webpack` bin at all. Choosing one provider
|
|
214
|
+
* statically would invent usage, so those commands only ever credit an exactly declared same-name
|
|
215
|
+
* package and otherwise produce no evidence.
|
|
216
|
+
*
|
|
217
|
+
* Only these lowercase executables map; runner forms such as `npx tsc` keep their own (unmapped)
|
|
218
|
+
* semantics. A CLI executable never stands in for a related library package: `@babel/core` and
|
|
219
|
+
* `@swc/core` are separate declarations and receive no evidence from `babel`/`swc`.
|
|
63
220
|
*
|
|
64
221
|
* The mapping is applied after safe command extraction and can only match a package that is actually
|
|
65
222
|
* declared, so it can never create a missing-dependency finding. When both a bare package name and
|
|
@@ -70,6 +227,108 @@ const ASSIGNMENT_PATTERN = /^[A-Za-z_][A-Za-z0-9_]*=/;
|
|
|
70
227
|
const BINARY_TO_PACKAGE = new Map([
|
|
71
228
|
['tsc', 'typescript'],
|
|
72
229
|
['docsify', 'docsify-cli'],
|
|
230
|
+
['ng', '@angular/cli'],
|
|
231
|
+
['nest', '@nestjs/cli'],
|
|
232
|
+
['babel', '@babel/cli'],
|
|
233
|
+
['swc', '@swc/cli'],
|
|
234
|
+
['postcss', 'postcss-cli'],
|
|
235
|
+
['dotenv', 'dotenv-cli'],
|
|
236
|
+
['changeset', '@changesets/cli'],
|
|
237
|
+
['commitlint', '@commitlint/cli'],
|
|
238
|
+
['graphql-codegen', '@graphql-codegen/cli'],
|
|
239
|
+
['gql-gen', '@graphql-codegen/cli'],
|
|
240
|
+
['graphql-code-generator', '@graphql-codegen/cli'],
|
|
241
|
+
['openapi-generator-cli', '@openapitools/openapi-generator-cli'],
|
|
242
|
+
['run-p', 'npm-run-all'],
|
|
243
|
+
['run-s', 'npm-run-all'],
|
|
244
|
+
['conc', 'concurrently'],
|
|
245
|
+
['ncu', 'npm-check-updates'],
|
|
246
|
+
['gulp', 'gulp-cli'],
|
|
247
|
+
['grunt', 'grunt-cli'],
|
|
248
|
+
['sequelize', 'sequelize-cli'],
|
|
249
|
+
['vue-cli-service', '@vue/cli-service'],
|
|
250
|
+
['babel-node', '@babel/node'],
|
|
251
|
+
['tsserver', 'typescript'],
|
|
252
|
+
['ts-node-cwd', 'ts-node'],
|
|
253
|
+
['ts-node-esm', 'ts-node'],
|
|
254
|
+
['ts-node-script', 'ts-node'],
|
|
255
|
+
['ts-node-transpile-only', 'ts-node'],
|
|
256
|
+
['ngc', '@angular/compiler-cli'],
|
|
257
|
+
['ng-xi18n', '@angular/compiler-cli'],
|
|
258
|
+
['biome', '@biomejs/biome'],
|
|
259
|
+
['markdownlint', 'markdownlint-cli'],
|
|
260
|
+
['remark', 'remark-cli'],
|
|
261
|
+
['rehype', 'rehype-cli'],
|
|
262
|
+
['depcruise', 'dependency-cruiser'],
|
|
263
|
+
['depcruise-baseline', 'dependency-cruiser'],
|
|
264
|
+
['depcruise-fmt', 'dependency-cruiser'],
|
|
265
|
+
['cross-env-shell', 'cross-env'],
|
|
266
|
+
['lessc', 'less'],
|
|
267
|
+
['coffee', 'coffeescript'],
|
|
268
|
+
['cake', 'coffeescript'],
|
|
269
|
+
['uglifyjs', 'uglify-js'],
|
|
270
|
+
['css-beautify', 'js-beautify'],
|
|
271
|
+
['html-beautify', 'js-beautify'],
|
|
272
|
+
['esparse', 'esprima'],
|
|
273
|
+
['esvalidate', 'esprima'],
|
|
274
|
+
['cap', '@capacitor/cli'],
|
|
275
|
+
['capacitor', '@capacitor/cli'],
|
|
276
|
+
['tauri', '@tauri-apps/cli'],
|
|
277
|
+
['ionic', '@ionic/cli'],
|
|
278
|
+
['vue', '@vue/cli'],
|
|
279
|
+
['electron-forge', '@electron-forge/cli'],
|
|
280
|
+
['eas', 'eas-cli'],
|
|
281
|
+
['firebase', 'firebase-tools'],
|
|
282
|
+
['netlify', 'netlify-cli'],
|
|
283
|
+
['cdk', 'aws-cdk'],
|
|
284
|
+
['sls', 'serverless'],
|
|
285
|
+
['cz', 'commitizen'],
|
|
286
|
+
['manypkg', '@manypkg/cli'],
|
|
287
|
+
['dotenvx', '@dotenvx/dotenvx'],
|
|
288
|
+
]);
|
|
289
|
+
/**
|
|
290
|
+
* Mapped executables whose package name is also a real, unrelated published package.
|
|
291
|
+
*
|
|
292
|
+
* For these, the exact-name package keeps precedence whenever it is declared, so a single command
|
|
293
|
+
* such as `postcss src/index.css -o dist/index.css` never marks both `postcss` and `postcss-cli` as
|
|
294
|
+
* used. Only when the exact-name package is absent may the mapping provide evidence for the declared
|
|
295
|
+
* CLI package. A same-named package may also be the wrapper of the very same CLI (`cdk@2.1145.0`); the
|
|
296
|
+
* rule is unchanged and the declared exact-name package wins. Every other mapped executable keeps the
|
|
297
|
+
* opposite (Category A) precedence described on {@link BINARY_TO_PACKAGE}.
|
|
298
|
+
*/
|
|
299
|
+
const COLLISION_SENSITIVE_BINARIES = new Set([
|
|
300
|
+
'postcss',
|
|
301
|
+
'dotenv',
|
|
302
|
+
'gulp',
|
|
303
|
+
'grunt',
|
|
304
|
+
'sequelize',
|
|
305
|
+
'vue-cli-service',
|
|
306
|
+
'babel-node',
|
|
307
|
+
'ts-node-cwd',
|
|
308
|
+
'ts-node-esm',
|
|
309
|
+
'ts-node-script',
|
|
310
|
+
'ts-node-transpile-only',
|
|
311
|
+
'ngc',
|
|
312
|
+
'biome',
|
|
313
|
+
'markdownlint',
|
|
314
|
+
'remark',
|
|
315
|
+
'rehype',
|
|
316
|
+
'depcruise',
|
|
317
|
+
'cross-env-shell',
|
|
318
|
+
'lessc',
|
|
319
|
+
'coffee',
|
|
320
|
+
'cake',
|
|
321
|
+
'uglifyjs',
|
|
322
|
+
'html-beautify',
|
|
323
|
+
'esparse',
|
|
324
|
+
'esvalidate',
|
|
325
|
+
'cap',
|
|
326
|
+
'capacitor',
|
|
327
|
+
'tauri',
|
|
328
|
+
'ionic',
|
|
329
|
+
'electron-forge',
|
|
330
|
+
'cdk',
|
|
331
|
+
'sls',
|
|
73
332
|
]);
|
|
74
333
|
/**
|
|
75
334
|
* Recognize the declared dependencies that `package.json` scripts clearly reference.
|
|
@@ -78,7 +337,8 @@ const BINARY_TO_PACKAGE = new Map([
|
|
|
78
337
|
* evidence (a command token, a recognized executable mapped through `BINARY_TO_PACKAGE`, or a
|
|
79
338
|
* supported runner package position) and keeps only those that are present in
|
|
80
339
|
* {@link declaredPackageNames}. Undeclared command tokens and undeclared mapped packages are ignored:
|
|
81
|
-
* this module never creates missing-dependency findings.
|
|
340
|
+
* this module never creates missing-dependency findings. The declared names are also consulted when
|
|
341
|
+
* resolving a collision-sensitive executable, which needs them to keep exact-name precedence.
|
|
82
342
|
*
|
|
83
343
|
* The result is built in alphabetical package-name order so iteration is deterministic. Neither
|
|
84
344
|
* {@link scripts} nor {@link declaredPackageNames} is mutated.
|
|
@@ -89,7 +349,7 @@ const BINARY_TO_PACKAGE = new Map([
|
|
|
89
349
|
export function findPackageScriptUsage(scripts, declaredPackageNames) {
|
|
90
350
|
const used = new Set();
|
|
91
351
|
for (const command of Object.values(scripts)) {
|
|
92
|
-
for (const candidate of collectScriptCandidates(command)) {
|
|
352
|
+
for (const candidate of collectScriptCandidates(command, declaredPackageNames)) {
|
|
93
353
|
if (declaredPackageNames.has(candidate)) {
|
|
94
354
|
used.add(candidate);
|
|
95
355
|
}
|
|
@@ -103,8 +363,11 @@ export function findPackageScriptUsage(scripts, declaredPackageNames) {
|
|
|
103
363
|
* Each shell segment contributes at most one candidate: the package supplied to a supported runner
|
|
104
364
|
* form, or the segment's first effective command token when that token is exactly a package name.
|
|
105
365
|
* Segments containing unsupported shell syntax contribute nothing.
|
|
366
|
+
*
|
|
367
|
+
* `declaredPackageNames` is only used to resolve collision-sensitive executables, which need to know
|
|
368
|
+
* whether the exact-name package is declared before choosing the candidate.
|
|
106
369
|
*/
|
|
107
|
-
function collectScriptCandidates(command) {
|
|
370
|
+
function collectScriptCandidates(command, declaredPackageNames) {
|
|
108
371
|
const candidates = [];
|
|
109
372
|
for (const segment of splitSegments(command)) {
|
|
110
373
|
// An unsupported segment is never partially trusted, not even its leading command.
|
|
@@ -134,11 +397,20 @@ function collectScriptCandidates(command) {
|
|
|
134
397
|
// `eslint/bin/cli` or a script path such as `scripts/build.js` is never usage evidence.
|
|
135
398
|
const classification = classifyPackageSpecifier(commandName);
|
|
136
399
|
if (classification.kind === 'external' && commandName === classification.packageName) {
|
|
137
|
-
//
|
|
138
|
-
//
|
|
139
|
-
//
|
|
400
|
+
// A single executable always yields at most one piece of usage evidence. Unmapped commands and
|
|
401
|
+
// Category A mappings resolve to the mapped package (`tsc` is `typescript`, never a
|
|
402
|
+
// hypothetical `tsc` package). Collision-sensitive executables keep exact-name precedence, so
|
|
403
|
+
// the same command never marks two competing providers as used.
|
|
140
404
|
const mapped = BINARY_TO_PACKAGE.get(commandName);
|
|
141
|
-
|
|
405
|
+
if (mapped === undefined) {
|
|
406
|
+
candidates.push(commandName);
|
|
407
|
+
}
|
|
408
|
+
else if (COLLISION_SENSITIVE_BINARIES.has(commandName)) {
|
|
409
|
+
candidates.push(declaredPackageNames.has(commandName) ? commandName : mapped);
|
|
410
|
+
}
|
|
411
|
+
else {
|
|
412
|
+
candidates.push(mapped);
|
|
413
|
+
}
|
|
142
414
|
}
|
|
143
415
|
}
|
|
144
416
|
return candidates;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scriptUsage.js","sourceRoot":"","sources":["../../src/scanner/scriptUsage.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scriptUsage.js","sourceRoot":"","sources":["../../src/scanner/scriptUsage.ts"],"names":[],"mappings":"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"}
|