packtory 0.0.21 → 0.0.23
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/bundle-emitter/emitter.d.ts.map +1 -1
- package/bundle-emitter/emitter.js +2 -2
- package/bundle-emitter/emitter.js.map +1 -1
- package/bundle-emitter/publish-error/auto-mode-error-matching.js +6 -7
- package/bundle-emitter/publish-error/auto-mode-error-matching.js.map +1 -1
- package/bundle-emitter/publish-error/file-mode-error-matching.js +16 -10
- package/bundle-emitter/publish-error/file-mode-error-matching.js.map +1 -1
- package/bundle-emitter/publish-error/publish-error-messages.js +15 -27
- package/bundle-emitter/publish-error/publish-error-messages.js.map +1 -1
- package/bundle-emitter/registry/metadata-auth-retry.js +5 -6
- package/bundle-emitter/registry/metadata-auth-retry.js.map +1 -1
- package/bundle-emitter/registry/oidc-token-exchange.js +6 -14
- package/bundle-emitter/registry/oidc-token-exchange.js.map +1 -1
- package/bundle-emitter/registry/package-metadata-fetcher.js +12 -17
- package/bundle-emitter/registry/package-metadata-fetcher.js.map +1 -1
- package/bundle-emitter/registry/publish-settings-bridge.js +8 -12
- package/bundle-emitter/registry/publish-settings-bridge.js.map +1 -1
- package/bundle-emitter/registry/registry-auth-config.js +22 -26
- package/bundle-emitter/registry/registry-auth-config.js.map +1 -1
- package/bundle-emitter/registry/registry-client.d.ts +1 -1
- package/bundle-emitter/registry/registry-client.d.ts.map +1 -1
- package/bundle-emitter/registry/registry-client.js +13 -6
- package/bundle-emitter/registry/registry-client.js.map +1 -1
- package/bundle-emitter/registry/registry-package-path.js +4 -0
- package/bundle-emitter/registry/registry-package-path.js.map +1 -0
- package/bundle-emitter/repository-coherence.js +17 -23
- package/bundle-emitter/repository-coherence.js.map +1 -1
- package/bundle-emitter/repository-url-normalizer.js +5 -8
- package/bundle-emitter/repository-url-normalizer.js.map +1 -1
- package/checks/rules/duplicate-messages.js +7 -10
- package/checks/rules/duplicate-messages.js.map +1 -1
- package/checks/rules/no-unused-bundle-dependencies.js +10 -13
- package/checks/rules/no-unused-bundle-dependencies.js.map +1 -1
- package/common/bundled-dependency-groups.js +28 -0
- package/common/bundled-dependency-groups.js.map +1 -0
- package/common/package-layout.js +49 -0
- package/common/package-layout.js.map +1 -0
- package/common/package-name-map.js +8 -0
- package/common/package-name-map.js.map +1 -0
- package/common/worklist.js +23 -0
- package/common/worklist.js.map +1 -0
- package/config/config.d.ts +1 -1
- package/config/config.d.ts.map +1 -1
- package/config/dependency-existence-validation.js +15 -17
- package/config/dependency-existence-validation.js.map +1 -1
- package/config/package-config.d.ts.map +1 -1
- package/config/package-config.js +2 -6
- package/config/package-config.js.map +1 -1
- package/config/publish-settings.d.ts.map +1 -1
- package/config/publish-settings.report.js +8 -7
- package/config/publish-settings.report.js.map +1 -1
- package/config/registry-settings.d.ts.map +1 -1
- package/config/root-config-validation.js +86 -81
- package/config/root-config-validation.js.map +1 -1
- package/dead-code-eliminator/cross-bundle/bundle-index.js +0 -3
- package/dead-code-eliminator/cross-bundle/bundle-index.js.map +1 -1
- package/dead-code-eliminator/cross-bundle/import-export-walker.js +4 -2
- package/dead-code-eliminator/cross-bundle/import-export-walker.js.map +1 -1
- package/dead-code-eliminator/eliminator.js.map +1 -1
- package/dead-code-eliminator/imported-expression-origin.js +28 -32
- package/dead-code-eliminator/imported-expression-origin.js.map +1 -1
- package/dead-code-eliminator/pure-expression.js +53 -64
- package/dead-code-eliminator/pure-expression.js.map +1 -1
- package/dead-code-eliminator/reachability/bfs-closure.js +31 -24
- package/dead-code-eliminator/reachability/bfs-closure.js.map +1 -1
- package/dead-code-eliminator/side-effect-classifier.js +2 -2
- package/dead-code-eliminator/side-effect-classifier.js.map +1 -1
- package/dead-code-eliminator/statement-classifiers.js +4 -5
- package/dead-code-eliminator/statement-classifiers.js.map +1 -1
- package/dead-code-eliminator/syntax-kind-sets.js +24 -65
- package/dead-code-eliminator/syntax-kind-sets.js.map +1 -1
- package/dependency-scanner/node-modules-manifest-synthesizer.js +3 -6
- package/dependency-scanner/node-modules-manifest-synthesizer.js.map +1 -1
- package/dependency-scanner/package-owned-asset-file-path.js +2 -13
- package/dependency-scanner/package-owned-asset-file-path.js.map +1 -1
- package/dependency-scanner/scanner.js +39 -29
- package/dependency-scanner/scanner.js.map +1 -1
- package/dependency-scanner/source-file-references.d.ts.map +1 -1
- package/dependency-scanner/source-file-references.js +75 -79
- package/dependency-scanner/source-file-references.js.map +1 -1
- package/dependency-scanner/typescript-project-analyzer.d.ts.map +1 -1
- package/dependency-scanner/typescript-project-analyzer.js +2 -1
- package/dependency-scanner/typescript-project-analyzer.js.map +1 -1
- package/dependency-scanner/virtual-package-json-host.js +2 -1
- package/dependency-scanner/virtual-package-json-host.js.map +1 -1
- package/directed-graph/graph.js +38 -64
- package/directed-graph/graph.js.map +1 -1
- package/file-manager/compare.js +7 -3
- package/file-manager/compare.js.map +1 -1
- package/file-manager/file-description-by-path.js +8 -0
- package/file-manager/file-description-by-path.js.map +1 -0
- package/npm-oidc-id-token-resolver.js +17 -14
- package/npm-oidc-id-token-resolver.js.map +1 -1
- package/package-surface/implicit-bin.js +9 -6
- package/package-surface/implicit-bin.js.map +1 -1
- package/package-surface/package-json-export.js +4 -3
- package/package-surface/package-json-export.js.map +1 -1
- package/package-surface/package-shape.js +4 -3
- package/package-surface/package-shape.js.map +1 -1
- package/package-surface/package-surface-index.js +136 -0
- package/package-surface/package-surface-index.js.map +1 -0
- package/package-surface/public-specifiers.js +3 -12
- package/package-surface/public-specifiers.js.map +1 -1
- package/package-surface/root-registry.js +10 -20
- package/package-surface/root-registry.js.map +1 -1
- package/package-surface/specifier-syntax.js +0 -19
- package/package-surface/specifier-syntax.js.map +1 -1
- package/package-surface/substitution-exports.js +59 -35
- package/package-surface/substitution-exports.js.map +1 -1
- package/package-surface/surface.js +0 -3
- package/package-surface/surface.js.map +1 -1
- package/package.json +16 -4
- package/packtory/options/bundle-dependency-resolution.js +6 -8
- package/packtory/options/bundle-dependency-resolution.js.map +1 -1
- package/packtory/options/version-trigger.js.map +1 -1
- package/packtory/package-processor-publish.d.ts +2 -1
- package/packtory/package-processor-publish.d.ts.map +1 -1
- package/packtory/package-processor-publish.js +19 -13
- package/packtory/package-processor-publish.js.map +1 -1
- package/packtory/packtory-pack.js +129 -141
- package/packtory/packtory-pack.js.map +1 -1
- package/packtory/packtory-release-analysis.js +8 -16
- package/packtory/packtory-release-analysis.js.map +1 -1
- package/packtory/packtory-results.d.ts +26 -11
- package/packtory/packtory-results.d.ts.map +1 -1
- package/packtory/packtory-results.js +27 -5
- package/packtory/packtory-results.js.map +1 -1
- package/packtory/packtory.js +65 -49
- package/packtory/packtory.js.map +1 -1
- package/packtory/partial-result.js +26 -0
- package/packtory/partial-result.js.map +1 -0
- package/packtory/published-release-state.d.ts +9 -0
- package/packtory/published-release-state.d.ts.map +1 -0
- package/packtory/published-release-state.js +12 -0
- package/packtory/published-release-state.js.map +1 -0
- package/packtory/release-analysis.js +77 -79
- package/packtory/release-analysis.js.map +1 -1
- package/packtory/resolved-package.js +6 -6
- package/packtory/resolved-package.js.map +1 -1
- package/packtory/scheduler.d.ts +1 -0
- package/packtory/scheduler.d.ts.map +1 -1
- package/packtory/scheduler.js +70 -52
- package/packtory/scheduler.js.map +1 -1
- package/packtory/stages/publish-stage.js +11 -6
- package/packtory/stages/publish-stage.js.map +1 -1
- package/packtory/stages/release-diff-stage.js +11 -10
- package/packtory/stages/release-diff-stage.js.map +1 -1
- package/report/aggregator/package-report-materialization.js +35 -22
- package/report/aggregator/package-report-materialization.js.map +1 -1
- package/report/config-redactor.js +5 -4
- package/report/config-redactor.js.map +1 -1
- package/report/inspectors/inspect-artifact-sizes.js +7 -3
- package/report/inspectors/inspect-artifact-sizes.js.map +1 -1
- package/report/inspectors/inspect-scan-results.js +8 -2
- package/report/inspectors/inspect-scan-results.js.map +1 -1
- package/report/preview/preview-document-diff.d.ts +6 -1
- package/report/preview/preview-document-diff.d.ts.map +1 -1
- package/report/preview/preview-document-diff.js +8 -3
- package/report/preview/preview-document-diff.js.map +1 -1
- package/report/release-diff/file-set-diff.d.ts +14 -4
- package/report/release-diff/file-set-diff.d.ts.map +1 -1
- package/report/release-diff/file-set-diff.js +28 -28
- package/report/release-diff/file-set-diff.js.map +1 -1
- package/report/release-diff/release-version-transition.js +6 -4
- package/report/release-diff/release-version-transition.js.map +1 -1
- package/resource-resolver/content.js +5 -3
- package/resource-resolver/content.js.map +1 -1
- package/sbom/license-resolver.js +3 -3
- package/sbom/license-resolver.js.map +1 -1
- package/sbom/sbom-builder.js +1 -8
- package/sbom/sbom-builder.js.map +1 -1
- package/sbom/sbom-file.d.ts.map +1 -1
- package/sbom/sbom-file.js +7 -4
- package/sbom/sbom-file.js.map +1 -1
- package/sbom/sbom-serializer.js +10 -6
- package/sbom/sbom-serializer.js.map +1 -1
- package/sbom.cdx.json +22 -5
- package/vendor-materializer/vendor-materializer.d.ts.map +1 -1
- package/vendor-materializer/vendor-materializer.js +99 -123
- package/vendor-materializer/vendor-materializer.js.map +1 -1
- package/version-manager/dependencies/bundle-dependency-grouping.js +18 -14
- package/version-manager/dependencies/bundle-dependency-grouping.js.map +1 -1
- package/version-manager/imports/versioned-bundle-imports.js +15 -12
- package/version-manager/imports/versioned-bundle-imports.js.map +1 -1
- package/version-manager/manager.d.ts.map +1 -1
- package/version-manager/manager.js +19 -24
- package/version-manager/manager.js.map +1 -1
- package/version-manager/manifest/builder.js +3 -3
- package/version-manager/manifest/builder.js.map +1 -1
- package/version-manager/optional-bundle-fields.js +2 -5
- package/version-manager/optional-bundle-fields.js.map +1 -1
- package/version-manager/representative-root.js +7 -27
- package/version-manager/representative-root.js.map +1 -1
- package/version-manager/specifier-classifier.js +13 -10
- package/version-manager/specifier-classifier.js.map +1 -1
- package/version-manager/specifier-errors.js +17 -6
- package/version-manager/specifier-errors.js.map +1 -1
- package/package-surface/explicit-specifier-build.js +0 -28
- package/package-surface/explicit-specifier-build.js.map +0 -1
- package/package-surface/explicit-specifier-resolve.js +0 -17
- package/package-surface/explicit-specifier-resolve.js.map +0 -1
- package/package-surface/implicit-specifier-build.js +0 -26
- package/package-surface/implicit-specifier-build.js.map +0 -1
- package/package-surface/implicit-specifier-resolve.js +0 -17
- package/package-surface/implicit-specifier-resolve.js.map +0 -1
|
@@ -1,40 +1,47 @@
|
|
|
1
|
-
|
|
2
|
-
if (remainingIterations === 0) {
|
|
3
|
-
throw new Error('Reachability traversal exceeded the maximum iteration budget');
|
|
4
|
-
}
|
|
5
|
-
}
|
|
6
|
-
function createTraversalBudget(maximumIterations) {
|
|
7
|
-
return Array.from({ length: maximumIterations + 1 }, (_value, index) => {
|
|
8
|
-
return maximumIterations - index;
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
function getMaximumTraversalIterations(initialVisitedSize, seedCount, maximumNodeCount) {
|
|
12
|
-
return initialVisitedSize + seedCount + maximumNodeCount * maximumNodeCount;
|
|
13
|
-
}
|
|
1
|
+
import { createWorklist } from "../../common/worklist.js";
|
|
14
2
|
function createTraversalState(initialVisited, seedList) {
|
|
15
3
|
const visited = new Set([...initialVisited, ...seedList]);
|
|
16
|
-
return { visited,
|
|
4
|
+
return { visited, pending: createWorklist(visited) };
|
|
17
5
|
}
|
|
18
6
|
function enqueueUnvisitedNeighbors(current, expand, traversalState, visitedHas) {
|
|
19
7
|
for (const neighbor of expand(current)) {
|
|
20
8
|
if (!visitedHas(traversalState.visited, neighbor)) {
|
|
21
9
|
traversalState.visited.add(neighbor);
|
|
22
|
-
traversalState.
|
|
10
|
+
traversalState.pending.schedule(neighbor);
|
|
23
11
|
}
|
|
24
12
|
}
|
|
25
13
|
}
|
|
14
|
+
function traverseWithinBudget(args) {
|
|
15
|
+
let currentNode = args.current;
|
|
16
|
+
return args.traversalBudget.some(() => {
|
|
17
|
+
enqueueUnvisitedNeighbors(currentNode, args.expand, args.traversalState, args.visitedHas);
|
|
18
|
+
const next = args.traversalState.pending.takeNext();
|
|
19
|
+
if (next === undefined) {
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
currentNode = next;
|
|
23
|
+
return false;
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
26
|
export function bfsClosure(seeds, expand, initialVisited, options) {
|
|
27
27
|
const seedList = Array.from(seeds);
|
|
28
|
-
const
|
|
28
|
+
const traversalBudget = Array.from({
|
|
29
|
+
length: initialVisited.size + seedList.length + options.maximumNodeCount * options.maximumNodeCount
|
|
30
|
+
});
|
|
29
31
|
const traversalState = createTraversalState(initialVisited, seedList);
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
32
|
+
const current = traversalState.pending.takeNext();
|
|
33
|
+
if (current === undefined) {
|
|
34
|
+
return traversalState.visited;
|
|
35
|
+
}
|
|
36
|
+
if (traverseWithinBudget({
|
|
37
|
+
current,
|
|
38
|
+
expand,
|
|
39
|
+
traversalState,
|
|
40
|
+
visitedHas: options.dependencies.visitedHas,
|
|
41
|
+
traversalBudget
|
|
42
|
+
})) {
|
|
43
|
+
return traversalState.visited;
|
|
37
44
|
}
|
|
38
|
-
|
|
45
|
+
throw new Error('Reachability traversal exceeded the maximum iteration budget');
|
|
39
46
|
}
|
|
40
47
|
//# sourceMappingURL=bfs-closure.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bfs-closure.js","sourceRoot":"","sources":["../../../../../source/dead-code-eliminator/reachability/bfs-closure.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bfs-closure.js","sourceRoot":"","sources":["../../../../../source/dead-code-eliminator/reachability/bfs-closure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAiB,MAAM,0BAA0B,CAAC;AAMzE,SAAS,oBAAoB,CACzB,cAA8B,EAC9B,QAAsB;IAKtB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAI,CAAC,GAAG,cAAc,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;IAC7D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;AACzD,CAAC;AAED,SAAS,yBAAyB,CAC9B,OAAU,EACV,MAAmC,EACnC,cAGC,EACD,UAAgD;IAEhD,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACrC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC;YAChD,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACrC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC;IACL,CAAC;AACL,CAAC;AAED,SAAS,oBAAoB,CAAI,IAShC;IACG,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;IAE/B,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE;QAClC,yBAAyB,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1F,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACpD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,WAAW,GAAG,IAAI,CAAC;QACnB,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,UAAU,CACtB,KAAkB,EAClB,MAAmC,EACnC,cAA8B,EAC9B,OAGC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC;QAC/B,MAAM,EAAE,cAAc,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB;KACtG,CAAC,CAAC;IACH,MAAM,cAAc,GAAG,oBAAoB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IACtE,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAElD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,cAAc,CAAC,OAAO,CAAC;IAClC,CAAC;IAED,IACI,oBAAoB,CAAC;QACjB,OAAO;QACP,MAAM;QACN,cAAc;QACd,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,UAAU;QAC3C,eAAe;KAClB,CAAC,EACJ,CAAC;QACC,OAAO,cAAc,CAAC,OAAO,CAAC;IAClC,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;AACpF,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { statementClassifiers } from "./statement-classifiers.js";
|
|
2
|
-
import {
|
|
2
|
+
import { describeControlFlowStatementKind, pureDeclarationKinds } from "./syntax-kind-sets.js";
|
|
3
3
|
function classifyTopLevelStatement(statement, settings) {
|
|
4
4
|
const kind = statement.getKind();
|
|
5
5
|
if (pureDeclarationKinds.has(kind)) {
|
|
6
6
|
return undefined;
|
|
7
7
|
}
|
|
8
|
-
const controlFlowKind =
|
|
8
|
+
const controlFlowKind = describeControlFlowStatementKind(kind);
|
|
9
9
|
if (controlFlowKind !== undefined) {
|
|
10
10
|
return controlFlowKind;
|
|
11
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"side-effect-classifier.js","sourceRoot":"","sources":["../../../../source/dead-code-eliminator/side-effect-classifier.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"side-effect-classifier.js","sourceRoot":"","sources":["../../../../source/dead-code-eliminator/side-effect-classifier.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,gCAAgC,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE/F,SAAS,yBAAyB,CAC9B,SAAoB,EACpB,QAAiD;IAEjD,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;IACjC,IAAI,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,eAAe,GAAG,gCAAgC,CAAC,IAAI,CAAC,CAAC;IAC/D,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,eAAe,CAAC;IAC3B,CAAC;IACD,MAAM,UAAU,GAAG,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,mBAAmB,CAC/B,UAAgC,EAChC,QAAsC;IAEtC,OAAO,UAAU,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,yBAAyB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC5D,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,OAAO,EAAE,CAAC;QACd,CAAC;QACD,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -23,12 +23,11 @@ function classifyClassDeclaration(statement, settings) {
|
|
|
23
23
|
return undefined;
|
|
24
24
|
}
|
|
25
25
|
function classifyVariableStatement(statement, settings) {
|
|
26
|
-
const
|
|
26
|
+
for (const declarator of statement.getDeclarations()) {
|
|
27
27
|
const initializer = declarator.getInitializer();
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
return 'variable initializer';
|
|
28
|
+
if (initializer !== undefined && !isPureExpression(initializer, settings)) {
|
|
29
|
+
return 'variable initializer';
|
|
30
|
+
}
|
|
32
31
|
}
|
|
33
32
|
return undefined;
|
|
34
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statement-classifiers.js","sourceRoot":"","sources":["../../../../source/dead-code-eliminator/statement-classifiers.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,UAAU,EAMb,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAOxD,SAAS,eAAe,CAAC,SAAiB;IACtC,OAAO,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,yBAAyB,CAAC,SAA4B;IAC3D,IAAI,eAAe,CAAC,SAAS,CAAC,uBAAuB,EAAE,CAAC,EAAE,CAAC;QACvD,OAAO,YAAY,CAAC;IACxB,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAS,wBAAwB,CAC7B,SAA2B,EAC3B,QAAiD;IAEjD,IAAI,gBAAgB,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC;QACxD,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC/B,CAAC;AAED,SAAS,wBAAwB,CAC7B,SAA2B,EAC3B,QAAiD;IAEjD,IAAI,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;QACxC,OAAO,mBAAmB,CAAC;IAC/B,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAS,yBAAyB,CAC9B,SAA4B,EAC5B,QAAiD;IAEjD,MAAM,
|
|
1
|
+
{"version":3,"file":"statement-classifiers.js","sourceRoot":"","sources":["../../../../source/dead-code-eliminator/statement-classifiers.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,UAAU,EAMb,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAOxD,SAAS,eAAe,CAAC,SAAiB;IACtC,OAAO,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,yBAAyB,CAAC,SAA4B;IAC3D,IAAI,eAAe,CAAC,SAAS,CAAC,uBAAuB,EAAE,CAAC,EAAE,CAAC;QACvD,OAAO,YAAY,CAAC;IACxB,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAS,wBAAwB,CAC7B,SAA2B,EAC3B,QAAiD;IAEjD,IAAI,gBAAgB,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC;QACxD,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC/B,CAAC;AAED,SAAS,wBAAwB,CAC7B,SAA2B,EAC3B,QAAiD;IAEjD,IAAI,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;QACxC,OAAO,mBAAmB,CAAC;IAC/B,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAS,yBAAyB,CAC9B,SAA4B,EAC5B,QAAiD;IAEjD,KAAK,MAAM,UAAU,IAAI,SAAS,CAAC,eAAe,EAAE,EAAE,CAAC;QACnD,MAAM,WAAW,GAAG,UAAU,CAAC,cAAc,EAAE,CAAC;QAChD,IAAI,WAAW,KAAK,SAAS,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC;YACxE,OAAO,sBAAsB,CAAC;QAClC,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAiD,IAAI,GAAG,CAGvF;IACE;QACI,UAAU,CAAC,iBAAiB;QAC5B,CAAC,SAAS,EAAE,EAAE;YACV,OAAO,yBAAyB,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC5F,CAAC;KACJ;IACD;QACI,UAAU,CAAC,gBAAgB;QAC3B,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE;YACpB,OAAO,wBAAwB,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,QAAQ,CAAC,CAAC;QACpG,CAAC;KACJ;IACD;QACI,UAAU,CAAC,gBAAgB;QAC3B,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE;YACpB,OAAO,wBAAwB,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,QAAQ,CAAC,CAAC;QACpG,CAAC;KACJ;IACD;QACI,UAAU,CAAC,iBAAiB;QAC5B,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE;YACpB,OAAO,yBAAyB,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,QAAQ,CAAC,CAAC;QACtG,CAAC;KACJ;IACD;QACI,UAAU,CAAC,mBAAmB;QAC9B,GAAG,EAAE;YACD,OAAO,sBAAsB,CAAC;QAClC,CAAC;KACJ;CACJ,CAAC,CAAC"}
|
|
@@ -1,67 +1,26 @@
|
|
|
1
1
|
import { SyntaxKind } from 'ts-morph';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
]
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
]
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
SyntaxKind.SlashToken,
|
|
27
|
-
SyntaxKind.PercentToken,
|
|
28
|
-
SyntaxKind.AsteriskAsteriskToken,
|
|
29
|
-
SyntaxKind.AmpersandAmpersandToken,
|
|
30
|
-
SyntaxKind.BarBarToken,
|
|
31
|
-
SyntaxKind.QuestionQuestionToken,
|
|
32
|
-
SyntaxKind.LessThanToken,
|
|
33
|
-
SyntaxKind.GreaterThanToken,
|
|
34
|
-
SyntaxKind.LessThanEqualsToken,
|
|
35
|
-
SyntaxKind.GreaterThanEqualsToken,
|
|
36
|
-
SyntaxKind.EqualsEqualsEqualsToken,
|
|
37
|
-
SyntaxKind.ExclamationEqualsEqualsToken
|
|
38
|
-
]);
|
|
39
|
-
export const inherentlyPurePropertyKinds = new Set([
|
|
40
|
-
SyntaxKind.ShorthandPropertyAssignment,
|
|
41
|
-
SyntaxKind.MethodDeclaration,
|
|
42
|
-
SyntaxKind.GetAccessor,
|
|
43
|
-
SyntaxKind.SetAccessor
|
|
44
|
-
]);
|
|
45
|
-
export const pureDeclarationKinds = new Set([
|
|
46
|
-
SyntaxKind.FunctionDeclaration,
|
|
47
|
-
SyntaxKind.InterfaceDeclaration,
|
|
48
|
-
SyntaxKind.TypeAliasDeclaration,
|
|
49
|
-
SyntaxKind.EnumDeclaration,
|
|
50
|
-
SyntaxKind.ModuleDeclaration,
|
|
51
|
-
SyntaxKind.ExportDeclaration,
|
|
52
|
-
SyntaxKind.EmptyStatement
|
|
53
|
-
]);
|
|
54
|
-
export const controlFlowStatementKinds = new Map([
|
|
55
|
-
[SyntaxKind.IfStatement, 'if statement'],
|
|
56
|
-
[SyntaxKind.ForStatement, 'for statement'],
|
|
57
|
-
[SyntaxKind.ForInStatement, 'for-in statement'],
|
|
58
|
-
[SyntaxKind.ForOfStatement, 'for-of statement'],
|
|
59
|
-
[SyntaxKind.WhileStatement, 'while statement'],
|
|
60
|
-
[SyntaxKind.DoStatement, 'do-while statement'],
|
|
61
|
-
[SyntaxKind.SwitchStatement, 'switch statement'],
|
|
62
|
-
[SyntaxKind.TryStatement, 'try statement'],
|
|
63
|
-
[SyntaxKind.ThrowStatement, 'throw statement'],
|
|
64
|
-
[SyntaxKind.LabeledStatement, 'labeled statement'],
|
|
65
|
-
[SyntaxKind.Block, 'block statement']
|
|
66
|
-
]);
|
|
2
|
+
function createSyntaxKindSet(...kinds) {
|
|
3
|
+
return new Set(kinds);
|
|
4
|
+
}
|
|
5
|
+
export const pureLeafKinds = createSyntaxKindSet(SyntaxKind.StringLiteral, SyntaxKind.NumericLiteral, SyntaxKind.BigIntLiteral, SyntaxKind.TrueKeyword, SyntaxKind.FalseKeyword, SyntaxKind.NullKeyword, SyntaxKind.RegularExpressionLiteral, SyntaxKind.NoSubstitutionTemplateLiteral, SyntaxKind.Identifier, SyntaxKind.FunctionExpression, SyntaxKind.ArrowFunction, SyntaxKind.ClassExpression);
|
|
6
|
+
export const allowedPrefixUnaryOperators = createSyntaxKindSet(SyntaxKind.MinusToken, SyntaxKind.PlusToken, SyntaxKind.ExclamationToken, SyntaxKind.TildeToken);
|
|
7
|
+
export const allowedBinaryOperators = createSyntaxKindSet(SyntaxKind.PlusToken, SyntaxKind.MinusToken, SyntaxKind.AsteriskToken, SyntaxKind.SlashToken, SyntaxKind.PercentToken, SyntaxKind.AsteriskAsteriskToken, SyntaxKind.AmpersandAmpersandToken, SyntaxKind.BarBarToken, SyntaxKind.QuestionQuestionToken, SyntaxKind.LessThanToken, SyntaxKind.GreaterThanToken, SyntaxKind.LessThanEqualsToken, SyntaxKind.GreaterThanEqualsToken, SyntaxKind.EqualsEqualsEqualsToken, SyntaxKind.ExclamationEqualsEqualsToken);
|
|
8
|
+
export const inherentlyPurePropertyKinds = createSyntaxKindSet(SyntaxKind.ShorthandPropertyAssignment, SyntaxKind.MethodDeclaration, SyntaxKind.GetAccessor, SyntaxKind.SetAccessor);
|
|
9
|
+
export const pureDeclarationKinds = createSyntaxKindSet(SyntaxKind.FunctionDeclaration, SyntaxKind.InterfaceDeclaration, SyntaxKind.TypeAliasDeclaration, SyntaxKind.EnumDeclaration, SyntaxKind.ModuleDeclaration, SyntaxKind.ExportDeclaration, SyntaxKind.EmptyStatement);
|
|
10
|
+
export function describeControlFlowStatementKind(kind) {
|
|
11
|
+
const descriptions = {
|
|
12
|
+
[SyntaxKind.IfStatement]: 'if statement',
|
|
13
|
+
[SyntaxKind.ForStatement]: 'for statement',
|
|
14
|
+
[SyntaxKind.ForInStatement]: 'for-in statement',
|
|
15
|
+
[SyntaxKind.ForOfStatement]: 'for-of statement',
|
|
16
|
+
[SyntaxKind.WhileStatement]: 'while statement',
|
|
17
|
+
[SyntaxKind.DoStatement]: 'do-while statement',
|
|
18
|
+
[SyntaxKind.SwitchStatement]: 'switch statement',
|
|
19
|
+
[SyntaxKind.TryStatement]: 'try statement',
|
|
20
|
+
[SyntaxKind.ThrowStatement]: 'throw statement',
|
|
21
|
+
[SyntaxKind.LabeledStatement]: 'labeled statement',
|
|
22
|
+
[SyntaxKind.Block]: 'block statement'
|
|
23
|
+
};
|
|
24
|
+
return descriptions[kind];
|
|
25
|
+
}
|
|
67
26
|
//# sourceMappingURL=syntax-kind-sets.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syntax-kind-sets.js","sourceRoot":"","sources":["../../../../source/dead-code-eliminator/syntax-kind-sets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,
|
|
1
|
+
{"version":3,"file":"syntax-kind-sets.js","sourceRoot":"","sources":["../../../../source/dead-code-eliminator/syntax-kind-sets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,SAAS,mBAAmB,CAAC,GAAG,KAA4B;IACxD,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAA4B,mBAAmB,CACrE,UAAU,CAAC,aAAa,EACxB,UAAU,CAAC,cAAc,EACzB,UAAU,CAAC,aAAa,EACxB,UAAU,CAAC,WAAW,EACtB,UAAU,CAAC,YAAY,EACvB,UAAU,CAAC,WAAW,EACtB,UAAU,CAAC,wBAAwB,EACnC,UAAU,CAAC,6BAA6B,EACxC,UAAU,CAAC,UAAU,EACrB,UAAU,CAAC,kBAAkB,EAC7B,UAAU,CAAC,aAAa,EACxB,UAAU,CAAC,eAAe,CAC7B,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAA4B,mBAAmB,CACnF,UAAU,CAAC,UAAU,EACrB,UAAU,CAAC,SAAS,EACpB,UAAU,CAAC,gBAAgB,EAC3B,UAAU,CAAC,UAAU,CACxB,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAA4B,mBAAmB,CAC9E,UAAU,CAAC,SAAS,EACpB,UAAU,CAAC,UAAU,EACrB,UAAU,CAAC,aAAa,EACxB,UAAU,CAAC,UAAU,EACrB,UAAU,CAAC,YAAY,EACvB,UAAU,CAAC,qBAAqB,EAChC,UAAU,CAAC,uBAAuB,EAClC,UAAU,CAAC,WAAW,EACtB,UAAU,CAAC,qBAAqB,EAChC,UAAU,CAAC,aAAa,EACxB,UAAU,CAAC,gBAAgB,EAC3B,UAAU,CAAC,mBAAmB,EAC9B,UAAU,CAAC,sBAAsB,EACjC,UAAU,CAAC,uBAAuB,EAClC,UAAU,CAAC,4BAA4B,CAC1C,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAA4B,mBAAmB,CACnF,UAAU,CAAC,2BAA2B,EACtC,UAAU,CAAC,iBAAiB,EAC5B,UAAU,CAAC,WAAW,EACtB,UAAU,CAAC,WAAW,CACzB,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAA4B,mBAAmB,CAC5E,UAAU,CAAC,mBAAmB,EAC9B,UAAU,CAAC,oBAAoB,EAC/B,UAAU,CAAC,oBAAoB,EAC/B,UAAU,CAAC,eAAe,EAC1B,UAAU,CAAC,iBAAiB,EAC5B,UAAU,CAAC,iBAAiB,EAC5B,UAAU,CAAC,cAAc,CAC5B,CAAC;AAEF,MAAM,UAAU,gCAAgC,CAAC,IAAgB;IAC7D,MAAM,YAAY,GAAwC;QACtD,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,cAAc;QACxC,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,eAAe;QAC1C,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,kBAAkB;QAC/C,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,kBAAkB;QAC/C,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,iBAAiB;QAC9C,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,oBAAoB;QAC9C,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,kBAAkB;QAChD,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,eAAe;QAC1C,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,iBAAiB;QAC9C,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,mBAAmB;QAClD,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,iBAAiB;KACxC,CAAC;IAEF,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import path from 'node:path';
|
|
2
1
|
import { isString } from 'remeda';
|
|
2
|
+
import { isInstalledDependencyManifestPath } from "../common/package-layout.js";
|
|
3
3
|
import { bindRequiredMethod, syncMethodNames } from "./host-method-binding.js";
|
|
4
4
|
const packageJsonIndentationSpaces = 2;
|
|
5
5
|
function isPlainObject(value) {
|
|
@@ -26,16 +26,13 @@ function rewriteManifestContent(content) {
|
|
|
26
26
|
return content;
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
-
function isNodeModulesManifestPath(filePath) {
|
|
30
|
-
return (path.basename(filePath) === 'package.json' && path.normalize(filePath).split(path.sep).includes('node_modules'));
|
|
31
|
-
}
|
|
32
29
|
export function createNodeModulesManifestSynthesizingHost(fileSystemHost) {
|
|
33
30
|
const readFileSync = bindRequiredMethod(fileSystemHost, syncMethodNames.readFile, 'a string', isString);
|
|
34
31
|
const synthesizingHost = {
|
|
35
32
|
...fileSystemHost,
|
|
36
33
|
readFile: async (filePath, encoding) => {
|
|
37
34
|
const content = await fileSystemHost.readFile(filePath, encoding);
|
|
38
|
-
if (!
|
|
35
|
+
if (!isInstalledDependencyManifestPath(filePath)) {
|
|
39
36
|
return content;
|
|
40
37
|
}
|
|
41
38
|
return rewriteManifestContent(content);
|
|
@@ -43,7 +40,7 @@ export function createNodeModulesManifestSynthesizingHost(fileSystemHost) {
|
|
|
43
40
|
[syncMethodNames.readFile]: (filePath) => {
|
|
44
41
|
// eslint-disable-next-line node/no-sync -- the ts-morph host interface requires this synchronous method
|
|
45
42
|
const content = readFileSync(filePath);
|
|
46
|
-
if (!
|
|
43
|
+
if (!isInstalledDependencyManifestPath(filePath)) {
|
|
47
44
|
return content;
|
|
48
45
|
}
|
|
49
46
|
return rewriteManifestContent(content);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-modules-manifest-synthesizer.js","sourceRoot":"","sources":["../../../../source/dependency-scanner/node-modules-manifest-synthesizer.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"node-modules-manifest-synthesizer.js","sourceRoot":"","sources":["../../../../source/dependency-scanner/node-modules-manifest-synthesizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,EAAE,iCAAiC,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE/E,MAAM,4BAA4B,GAAG,CAAC,CAAC;AAEvC,SAAS,aAAa,CAAC,KAAc;IACjC,OAAO,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY,EAAE,KAAc;IACtD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC;IAC7C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;AACvC,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAe;IAC3C,IAAI,CAAC;QACD,+IAA+I;QAC/I,MAAM,MAAM,GAA4B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5D,MAAM,gBAAgB,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC;QACnG,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,4BAA4B,CAAC,CAAC;IACxG,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,OAAO,CAAC;IACnB,CAAC;AACL,CAAC;AAED,MAAM,UAAU,yCAAyC,CAAC,cAA8B;IACpF,MAAM,YAAY,GAAG,kBAAkB,CAAC,cAAc,EAAE,eAAe,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAExG,MAAM,gBAAgB,GAAmB;QACrC,GAAG,cAAc;QACjB,QAAQ,EAAE,KAAK,EAAE,QAAgB,EAAE,QAAiB,EAAmB,EAAE;YACrE,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAClE,IAAI,CAAC,iCAAiC,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC/C,OAAO,OAAO,CAAC;YACnB,CAAC;YACD,OAAO,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;QACD,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAgB,EAAU,EAAE;YACrD,wGAAwG;YACxG,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,CAAC,iCAAiC,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC/C,OAAO,OAAO,CAAC;YACnB,CAAC;YACD,OAAO,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;KACJ,CAAC;IACF,MAAM,CAAC,cAAc,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;IACxD,OAAO,gBAAgB,CAAC;AAC5B,CAAC"}
|
|
@@ -1,17 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
function packageOwnedAssetSearchFolders(currentFolder) {
|
|
3
|
-
const resolvedFolder = path.resolve(currentFolder);
|
|
4
|
-
const rootFolder = path.parse(resolvedFolder).root;
|
|
5
|
-
const relativePath = path.relative(rootFolder, resolvedFolder);
|
|
6
|
-
const relativeSegments = relativePath.split(path.sep);
|
|
7
|
-
const maximumSegmentCount = relativePath.length === 0 ? 0 : relativeSegments.length;
|
|
8
|
-
return Array.from({ length: maximumSegmentCount + 1 }, (_unused, index) => {
|
|
9
|
-
return path.join(rootFolder, ...relativeSegments.slice(0, maximumSegmentCount - index));
|
|
10
|
-
});
|
|
11
|
-
}
|
|
1
|
+
import { ancestorInstalledDependencyPathCandidates } from "../common/package-layout.js";
|
|
12
2
|
export function findPackageOwnedAssetFilePath(importValue, currentFolder, fileExists) {
|
|
13
|
-
for (const
|
|
14
|
-
const candidatePath = path.join(searchFolder, 'node_modules', importValue);
|
|
3
|
+
for (const candidatePath of ancestorInstalledDependencyPathCandidates(currentFolder, importValue)) {
|
|
15
4
|
if (fileExists(candidatePath)) {
|
|
16
5
|
return candidatePath;
|
|
17
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-owned-asset-file-path.js","sourceRoot":"","sources":["../../../../source/dependency-scanner/package-owned-asset-file-path.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"package-owned-asset-file-path.js","sourceRoot":"","sources":["../../../../source/dependency-scanner/package-owned-asset-file-path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yCAAyC,EAAE,MAAM,6BAA6B,CAAC;AAExF,MAAM,UAAU,6BAA6B,CACzC,WAAmB,EACnB,aAAqB,EACrB,UAAyC;IAEzC,KAAK,MAAM,aAAa,IAAI,yCAAyC,CAAC,aAAa,EAAE,WAAW,CAAC,EAAE,CAAC;QAChG,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAC5B,OAAO,aAAa,CAAC;QACzB,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Maybe } from 'true-myth/maybe';
|
|
2
2
|
import { isCodeFile } from "../common/code-files.js";
|
|
3
3
|
import { createDependencyGraph } from "./dependency-graph.js";
|
|
4
|
+
import { moduleReferenceKind } from "./source-file-references.js";
|
|
4
5
|
export function createDependencyScanner(dependencyScannerDependencies) {
|
|
5
6
|
const { sourceMapFileLocator, typescriptProjectAnalyzer } = dependencyScannerDependencies;
|
|
6
7
|
async function getDependencyNodeData(project, sourceFilePath, externalDependencies, options) {
|
|
@@ -13,39 +14,48 @@ export function createDependencyScanner(dependencyScannerDependencies) {
|
|
|
13
14
|
project
|
|
14
15
|
};
|
|
15
16
|
}
|
|
16
|
-
function
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
return
|
|
17
|
+
function collectReferenceLists(references) {
|
|
18
|
+
const localReferences = [];
|
|
19
|
+
const externalDependencies = [];
|
|
20
|
+
for (const reference of references) {
|
|
21
|
+
if (reference.kind === moduleReferenceKind.externalPackage) {
|
|
22
|
+
externalDependencies.push(reference.packageName);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
localReferences.push(reference);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
localReferences,
|
|
30
|
+
externalDependencies
|
|
31
|
+
};
|
|
28
32
|
}
|
|
29
|
-
function
|
|
30
|
-
|
|
33
|
+
async function connectLocalReferences(args) {
|
|
34
|
+
for (const localReference of args.localReferences) {
|
|
35
|
+
if (!args.graph.isKnown(localReference.filePath)) {
|
|
36
|
+
await args.scanReference(args.project, localReference, args.graph, args.options);
|
|
37
|
+
}
|
|
38
|
+
if (!args.graph.hasConnection(args.sourceFilePath, localReference.filePath)) {
|
|
39
|
+
args.graph.connect(args.sourceFilePath, localReference.filePath);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
31
42
|
}
|
|
32
43
|
async function scanDependenciesOfReference(project, reference, graph, options) {
|
|
33
44
|
const sourceFilePath = reference.filePath;
|
|
34
|
-
const referencedModules =
|
|
35
|
-
const localReferences =
|
|
36
|
-
const nodeData = await getDependencyNodeData(
|
|
37
|
-
graph.addDependency(sourceFilePath,
|
|
38
|
-
...nodeData,
|
|
39
|
-
|
|
45
|
+
const referencedModules = reference.kind === moduleReferenceKind.localCode ? project.getReferencedModules(sourceFilePath) : [];
|
|
46
|
+
const { localReferences, externalDependencies } = collectReferenceLists(referencedModules);
|
|
47
|
+
const nodeData = await getDependencyNodeData(reference.kind === moduleReferenceKind.localCode ? project : undefined, sourceFilePath, externalDependencies, options);
|
|
48
|
+
graph.addDependency(sourceFilePath, reference.kind === moduleReferenceKind.generatedManifest
|
|
49
|
+
? { ...nodeData, isGeneratedManifest: true }
|
|
50
|
+
: nodeData);
|
|
51
|
+
await connectLocalReferences({
|
|
52
|
+
graph,
|
|
53
|
+
localReferences,
|
|
54
|
+
options,
|
|
55
|
+
project,
|
|
56
|
+
scanReference: scanDependenciesOfReference,
|
|
57
|
+
sourceFilePath
|
|
40
58
|
});
|
|
41
|
-
for (const localReference of localReferences) {
|
|
42
|
-
if (!graph.isKnown(localReference.filePath)) {
|
|
43
|
-
await scanDependenciesOfReference(project, localReference, graph, options);
|
|
44
|
-
}
|
|
45
|
-
if (!graph.hasConnection(sourceFilePath, localReference.filePath)) {
|
|
46
|
-
graph.connect(sourceFilePath, localReference.filePath);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
59
|
}
|
|
50
60
|
return {
|
|
51
61
|
async scan(entryPointFile, folder, options) {
|
|
@@ -60,7 +70,7 @@ export function createDependencyScanner(dependencyScannerDependencies) {
|
|
|
60
70
|
resolveDeclarationFiles: scanOptions.resolveDeclarationFiles,
|
|
61
71
|
mainPackageJson: scanOptions.mainPackageJson
|
|
62
72
|
});
|
|
63
|
-
await scanDependenciesOfReference(project, { kind:
|
|
73
|
+
await scanDependenciesOfReference(project, { kind: moduleReferenceKind.localCode, filePath: entryPointFile }, graph, scanOptions);
|
|
64
74
|
return graph;
|
|
65
75
|
}
|
|
66
76
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../../../source/dependency-scanner/scanner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAsD,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../../../source/dependency-scanner/scanner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAsD,MAAM,uBAAuB,CAAC;AAElH,OAAO,EAAE,mBAAmB,EAAwB,MAAM,6BAA6B,CAAC;AAoCxF,MAAM,UAAU,uBAAuB,CACnC,6BAAsE;IAEtE,MAAM,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,GAAG,6BAA6B,CAAC;IAE1F,KAAK,UAAU,qBAAqB,CAChC,OAAsC,EACtC,cAAsB,EACtB,oBAAuC,EACvC,OAA8B;QAE9B,MAAM,iBAAiB,GACnB,OAAO,CAAC,qBAAqB,IAAI,UAAU,CAAC,cAAc,CAAC;YACvD,CAAC,CAAC,MAAM,oBAAoB,CAAC,MAAM,CAAC,cAAc,CAAC;YACnD,CAAC,CAAC,KAAK,CAAC,OAAO,EAAU,CAAC;QAElC,OAAO;YACH,iBAAiB;YACjB,oBAAoB;YACpB,OAAO;SACV,CAAC;IACN,CAAC;IAED,SAAS,qBAAqB,CAAC,UAAsC;QACjE,MAAM,eAAe,GAA8B,EAAE,CAAC;QACtD,MAAM,oBAAoB,GAAa,EAAE,CAAC;QAE1C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACjC,IAAI,SAAS,CAAC,IAAI,KAAK,mBAAmB,CAAC,eAAe,EAAE,CAAC;gBACzD,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACJ,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACpC,CAAC;QACL,CAAC;QAED,OAAO;YACH,eAAe;YACf,oBAAoB;SACvB,CAAC;IACN,CAAC;IAED,KAAK,UAAU,sBAAsB,CAAC,IAYrC;QACG,KAAK,MAAM,cAAc,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAChD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC/C,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACrF,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;YACrE,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK,UAAU,2BAA2B,CACtC,OAA0B,EAC1B,SAAkC,EAClC,KAAsB,EACtB,OAA8B;QAE9B,MAAM,cAAc,GAAG,SAAS,CAAC,QAAQ,CAAC;QAC1C,MAAM,iBAAiB,GACnB,SAAS,CAAC,IAAI,KAAK,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzG,MAAM,EAAE,eAAe,EAAE,oBAAoB,EAAE,GAAG,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;QAC3F,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CACxC,SAAS,CAAC,IAAI,KAAK,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EACtE,cAAc,EACd,oBAAoB,EACpB,OAAO,CACV,CAAC;QACF,KAAK,CAAC,aAAa,CACf,cAAc,EACd,SAAS,CAAC,IAAI,KAAK,mBAAmB,CAAC,iBAAiB;YACpD,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,mBAAmB,EAAE,IAAI,EAAE;YAC5C,CAAC,CAAC,QAAQ,CACjB,CAAC;QACF,MAAM,sBAAsB,CAAC;YACzB,KAAK;YACL,eAAe;YACf,OAAO;YACP,OAAO;YACP,aAAa,EAAE,2BAA2B;YAC1C,cAAc;SACjB,CAAC,CAAC;IACP,CAAC;IAED,OAAO;QACH,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO;YACtC,MAAM,EAAE,uBAAuB,GAAG,KAAK,EAAE,qBAAqB,GAAG,KAAK,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;YACpG,MAAM,WAAW,GAAG;gBAChB,qBAAqB;gBACrB,uBAAuB;gBACvB,eAAe;aAClB,CAAC;YAEF,MAAM,KAAK,GAAG,qBAAqB,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,yBAAyB,CAAC,cAAc,CAAC,MAAM,EAAE;gBAC7D,uBAAuB,EAAE,WAAW,CAAC,uBAAuB;gBAC5D,eAAe,EAAE,WAAW,CAAC,eAAe;aAC/C,CAAC,CAAC;YAEH,MAAM,2BAA2B,CAC7B,OAAO,EACP,EAAE,IAAI,EAAE,mBAAmB,CAAC,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,EACjE,KAAK,EACL,WAAW,CACd,CAAC;YAEF,OAAO,KAAK,CAAC;QACjB,CAAC;KACJ,CAAC;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-file-references.d.ts","sourceRoot":"","sources":["../../../../source/dependency-scanner/source-file-references.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"source-file-references.d.ts","sourceRoot":"","sources":["../../../../source/dependency-scanner/source-file-references.ts"],"names":[],"mappings":"AAEA,OAAO,EAAM,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU"}
|