packtory 0.0.86 → 0.0.88
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/dead-code-eliminator/analyzed-bundle.d.ts +1 -0
- package/dead-code-eliminator/analyzed-bundle.d.ts.map +1 -1
- package/dead-code-eliminator/analyzed-bundle.js.map +1 -1
- package/dead-code-eliminator/code-file-analyzer.js +10 -3
- package/dead-code-eliminator/code-file-analyzer.js.map +1 -1
- package/dead-code-eliminator/dependency-metadata.js +206 -0
- package/dead-code-eliminator/dependency-metadata.js.map +1 -0
- package/dead-code-eliminator/eliminator.js +5 -222
- package/dead-code-eliminator/eliminator.js.map +1 -1
- package/dead-code-eliminator/expression-unwrapping.js.map +1 -1
- package/dead-code-eliminator/imported-expression-origin.js +23 -11
- package/dead-code-eliminator/imported-expression-origin.js.map +1 -1
- package/dead-code-eliminator/liveness/asset-side-effects.js +10 -0
- package/dead-code-eliminator/liveness/asset-side-effects.js.map +1 -0
- package/dead-code-eliminator/liveness/boolean-facts.js +99 -0
- package/dead-code-eliminator/liveness/boolean-facts.js.map +1 -0
- package/dead-code-eliminator/liveness/external-module-resolution.js +173 -0
- package/dead-code-eliminator/liveness/external-module-resolution.js.map +1 -0
- package/dead-code-eliminator/liveness/external-purity-summary.js +295 -0
- package/dead-code-eliminator/liveness/external-purity-summary.js.map +1 -0
- package/dead-code-eliminator/liveness/external-purity.js +40 -0
- package/dead-code-eliminator/liveness/external-purity.js.map +1 -0
- package/dead-code-eliminator/liveness/module-analysis.js +28 -0
- package/dead-code-eliminator/liveness/module-analysis.js.map +1 -0
- package/dead-code-eliminator/liveness/resource-retention.js +79 -0
- package/dead-code-eliminator/liveness/resource-retention.js.map +1 -0
- package/dead-code-eliminator/liveness/runtime-code.js +16 -0
- package/dead-code-eliminator/liveness/runtime-code.js.map +1 -0
- package/dead-code-eliminator/load-bundle.js +25 -9
- package/dead-code-eliminator/load-bundle.js.map +1 -1
- package/dead-code-eliminator/pure-expression.js +18 -6
- package/dead-code-eliminator/pure-expression.js.map +1 -1
- package/dead-code-eliminator/reachability/local-seed-gathering.js +1 -2
- package/dead-code-eliminator/reachability/local-seed-gathering.js.map +1 -1
- package/dead-code-eliminator/side-effect-classifier.js +23 -10
- package/dead-code-eliminator/side-effect-classifier.js.map +1 -1
- package/dead-code-eliminator/side-effects-field.js +2 -2
- package/dead-code-eliminator/side-effects-field.js.map +1 -1
- package/dead-code-eliminator/statement-classifiers.js +2 -7
- package/dead-code-eliminator/statement-classifiers.js.map +1 -1
- package/dead-code-eliminator/transform/atom-translator.d.ts.map +1 -1
- package/dead-code-eliminator/transform/atom-translator.js +8 -6
- package/dead-code-eliminator/transform/atom-translator.js.map +1 -1
- package/dead-code-eliminator/transform/declaration-removal.js +4 -0
- package/dead-code-eliminator/transform/declaration-removal.js.map +1 -1
- package/dependency-scanner/dependency-graph.d.ts +3 -2
- package/dependency-scanner/dependency-graph.d.ts.map +1 -1
- package/dependency-scanner/dependency-graph.js +5 -17
- package/dependency-scanner/dependency-graph.js.map +1 -1
- package/dependency-scanner/external-dependencies.d.ts +14 -0
- package/dependency-scanner/external-dependencies.d.ts.map +1 -1
- package/dependency-scanner/external-dependencies.js +39 -1
- package/dependency-scanner/external-dependencies.js.map +1 -1
- package/dependency-scanner/scanner.d.ts.map +1 -1
- package/dependency-scanner/scanner.js +5 -1
- package/dependency-scanner/scanner.js.map +1 -1
- package/dependency-scanner/source-file-references.d.ts +1 -0
- package/dependency-scanner/source-file-references.d.ts.map +1 -1
- package/dependency-scanner/source-file-references.js +4 -2
- package/dependency-scanner/source-file-references.js.map +1 -1
- package/linker/replacement-lookup.js +2 -2
- package/linker/replacement-lookup.js.map +1 -1
- package/linker/resource-graph.js +19 -3
- package/linker/resource-graph.js.map +1 -1
- package/linker/source-modifier/import-paths.js +30 -17
- package/linker/source-modifier/import-paths.js.map +1 -1
- package/linker/substitute-bundles.js +13 -1
- package/linker/substitute-bundles.js.map +1 -1
- package/linker/substituted-resource-graph.js +8 -20
- package/linker/substituted-resource-graph.js.map +1 -1
- package/package.json +3 -3
- package/packages/package-processor.composition.d.ts.map +1 -1
- package/packages/package-processor.composition.js +1 -2
- package/packages/package-processor.composition.js.map +1 -1
- package/packages/packtory/packtory.entry-point.d.ts +5 -2
- package/packages/packtory/packtory.entry-point.d.ts.map +1 -1
- package/packages/packtory/packtory.entry-point.js +1 -1
- package/packages/packtory/packtory.entry-point.js.map +1 -1
- package/packtory/package-processor-build.js +6 -1
- package/packtory/package-processor-build.js.map +1 -1
- package/packtory/packtory-package-dependencies.js +136 -0
- package/packtory/packtory-package-dependencies.js.map +1 -0
- package/packtory/packtory-package-tree.js +2 -1
- package/packtory/packtory-package-tree.js.map +1 -1
- package/packtory/packtory-results.d.ts +40 -0
- package/packtory/packtory-results.d.ts.map +1 -1
- package/packtory/packtory-results.js +3 -0
- package/packtory/packtory-results.js.map +1 -1
- package/packtory/packtory.d.ts +4 -1
- package/packtory/packtory.d.ts.map +1 -1
- package/packtory/packtory.js +19 -2
- package/packtory/packtory.js.map +1 -1
- package/packtory/stages/package-analysis-stage.js +27 -0
- package/packtory/stages/package-analysis-stage.js.map +1 -1
- package/readme.md +9 -2
- package/sbom.cdx.json +15 -15
|
@@ -1,7 +1,33 @@
|
|
|
1
1
|
import { resolveDeadCodeEliminationByName } from "../options/dead-code-elimination-resolution.js";
|
|
2
2
|
import { createResolvedPackage } from "../resolved-package.js";
|
|
3
|
+
function mergeSourceFilePaths(existing, sourceFilePaths) {
|
|
4
|
+
const merged = new Set(existing);
|
|
5
|
+
for (const sourceFilePath of sourceFilePaths) {
|
|
6
|
+
merged.add(sourceFilePath);
|
|
7
|
+
}
|
|
8
|
+
return merged;
|
|
9
|
+
}
|
|
10
|
+
function withSubstitutionPublicModuleSourceFilePaths(sourceFilePathsByPackageName, packageName, sourceFilePaths) {
|
|
11
|
+
const updated = new Map(sourceFilePathsByPackageName);
|
|
12
|
+
updated.set(packageName, mergeSourceFilePaths(sourceFilePathsByPackageName.get(packageName), sourceFilePaths));
|
|
13
|
+
return updated;
|
|
14
|
+
}
|
|
15
|
+
function collectSubstitutionPublicModuleSourceFilePaths(linkedPackages) {
|
|
16
|
+
let sourceFilePathsByPackageName = new Map();
|
|
17
|
+
for (const linkedPackage of linkedPackages) {
|
|
18
|
+
const substitutions = linkedPackage.linkedBundle.substitutedSourceFilePathsByPackageName;
|
|
19
|
+
for (const [packageName, sourceFilePaths] of substitutions) {
|
|
20
|
+
sourceFilePathsByPackageName = withSubstitutionPublicModuleSourceFilePaths(sourceFilePathsByPackageName, packageName, sourceFilePaths);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return sourceFilePathsByPackageName;
|
|
24
|
+
}
|
|
25
|
+
function substitutionPublicModuleSourceFilePathsFor(sourceFilePathsByPackageName, packageName) {
|
|
26
|
+
return sourceFilePathsByPackageName.get(packageName) ?? new Set();
|
|
27
|
+
}
|
|
3
28
|
export async function analyzeResolvedPackages(dependencies, config, linkedPackages) {
|
|
4
29
|
const deadCodeEliminationByName = resolveDeadCodeEliminationByName(config);
|
|
30
|
+
const publicSubstitutionPathsByName = collectSubstitutionPublicModuleSourceFilePaths(linkedPackages);
|
|
5
31
|
const analyzedBundles = await dependencies.deadCodeEliminator.eliminate(linkedPackages.map(function (linkedPackage) {
|
|
6
32
|
const deadCodeElimination = deadCodeEliminationByName.get(linkedPackage.name);
|
|
7
33
|
if (!deadCodeEliminationByName.has(linkedPackage.name)) {
|
|
@@ -10,6 +36,7 @@ export async function analyzeResolvedPackages(dependencies, config, linkedPackag
|
|
|
10
36
|
return {
|
|
11
37
|
bundle: linkedPackage.linkedBundle,
|
|
12
38
|
transformationsEnabled: deadCodeElimination?.enabled ?? true,
|
|
39
|
+
substitutionPublicModuleSourceFilePaths: substitutionPublicModuleSourceFilePathsFor(publicSubstitutionPathsByName, linkedPackage.name),
|
|
13
40
|
deadCodeElimination
|
|
14
41
|
};
|
|
15
42
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-analysis-stage.js","sourceRoot":"","sources":["../../../../../source/packtory/stages/package-analysis-stage.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gCAAgC,EAAE,MAAM,gDAAgD,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAwB,MAAM,wBAAwB,CAAC;AAOrF,MAAM,CAAC,KAAK,UAAU,uBAAuB,CACzC,YAAyC,EACzC,MAAwC,EACxC,cAAwC;IAExC,MAAM,yBAAyB,GAAG,gCAAgC,CAAC,MAAM,CAAC,CAAC;IAC3E,MAAM,eAAe,GAAG,MAAM,YAAY,CAAC,kBAAkB,CAAC,SAAS,CACnE,cAAc,CAAC,GAAG,CAAC,UAAU,aAAa;QACtC,MAAM,mBAAmB,GAAG,yBAAyB,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC9E,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,uDAAuD,aAAa,CAAC,IAAI,GAAG,CAAC,CAAC;QAClG,CAAC;QACD,OAAO;YACH,MAAM,EAAE,aAAa,CAAC,YAAY;YAClC,sBAAsB,EAAE,mBAAmB,EAAE,OAAO,IAAI,IAAI;YAC5D,mBAAmB;SACtB,CAAC;IACN,CAAC,CAAC,CACL,CAAC;IAEF,OAAO,cAAc,CAAC,GAAG,CAAC,UAAU,aAAa,EAAE,KAAK;QACpD,MAAM,cAAc,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,wCAAwC,aAAa,CAAC,IAAI,GAAG,CAAC,CAAC;QACnF,CAAC;QACD,OAAO,qBAAqB,CAAC,aAAa,CAAC,IAAI,EAAE,cAAc,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IACnG,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
1
|
+
{"version":3,"file":"package-analysis-stage.js","sourceRoot":"","sources":["../../../../../source/packtory/stages/package-analysis-stage.ts"],"names":[],"mappings":"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"}
|
package/readme.md
CHANGED
|
@@ -7,10 +7,17 @@ npm install packtory
|
|
|
7
7
|
```
|
|
8
8
|
|
|
9
9
|
```javascript
|
|
10
|
-
import {
|
|
10
|
+
import {
|
|
11
|
+
buildAndPublishAll,
|
|
12
|
+
inspectPackageDependencies,
|
|
13
|
+
packAllPackages,
|
|
14
|
+
packPackage,
|
|
15
|
+
resolveAndLinkAll
|
|
16
|
+
} from 'packtory';
|
|
11
17
|
|
|
12
18
|
await buildAndPublishAll(config, { dryRun: true, stage: false });
|
|
13
19
|
await resolveAndLinkAll(config);
|
|
20
|
+
await inspectPackageDependencies(config, 'pkg');
|
|
14
21
|
await packPackage(config, {
|
|
15
22
|
packageName: 'pkg',
|
|
16
23
|
format: 'zip',
|
|
@@ -25,6 +32,6 @@ await packAllPackages(config, {
|
|
|
25
32
|
});
|
|
26
33
|
```
|
|
27
34
|
|
|
28
|
-
Main exports: `buildAndPublishAll`, `resolveAndLinkAll`, `diffAgainstLatestPublished`, `planReleaseAgainstLatestPublished`, `packPackage`, and `packAllPackages`.
|
|
35
|
+
Main exports: `buildAndPublishAll`, `resolveAndLinkAll`, `diffAgainstLatestPublished`, `planReleaseAgainstLatestPublished`, `inspectPackageDependencies`, `packPackage`, and `packAllPackages`.
|
|
29
36
|
|
|
30
37
|
See the repository readme for configuration and workflow documentation.
|
package/sbom.cdx.json
CHANGED
|
@@ -9,16 +9,16 @@
|
|
|
9
9
|
{
|
|
10
10
|
"type": "application",
|
|
11
11
|
"name": "packtory",
|
|
12
|
-
"version": "0.0.
|
|
12
|
+
"version": "0.0.97"
|
|
13
13
|
}
|
|
14
14
|
]
|
|
15
15
|
},
|
|
16
16
|
"component": {
|
|
17
17
|
"type": "library",
|
|
18
18
|
"name": "packtory",
|
|
19
|
-
"version": "0.0.
|
|
20
|
-
"bom-ref": "pkg:npm/packtory@0.0.
|
|
21
|
-
"purl": "pkg:npm/packtory@0.0.
|
|
19
|
+
"version": "0.0.88",
|
|
20
|
+
"bom-ref": "pkg:npm/packtory@0.0.88",
|
|
21
|
+
"purl": "pkg:npm/packtory@0.0.88"
|
|
22
22
|
}
|
|
23
23
|
},
|
|
24
24
|
"components": [
|
|
@@ -38,15 +38,15 @@
|
|
|
38
38
|
{
|
|
39
39
|
"type": "library",
|
|
40
40
|
"name": "@cyclonedx/cyclonedx-library",
|
|
41
|
-
"version": "10.
|
|
42
|
-
"bom-ref": "pkg:npm/@cyclonedx/cyclonedx-library@10.
|
|
41
|
+
"version": "10.2.0",
|
|
42
|
+
"bom-ref": "pkg:npm/@cyclonedx/cyclonedx-library@10.2.0",
|
|
43
43
|
"scope": "required",
|
|
44
44
|
"licenses": [
|
|
45
45
|
{
|
|
46
46
|
"expression": "Apache-2.0"
|
|
47
47
|
}
|
|
48
48
|
],
|
|
49
|
-
"purl": "pkg:npm/@cyclonedx/cyclonedx-library@10.
|
|
49
|
+
"purl": "pkg:npm/@cyclonedx/cyclonedx-library@10.2.0"
|
|
50
50
|
},
|
|
51
51
|
{
|
|
52
52
|
"type": "library",
|
|
@@ -194,15 +194,15 @@
|
|
|
194
194
|
{
|
|
195
195
|
"type": "library",
|
|
196
196
|
"name": "remeda",
|
|
197
|
-
"version": "2.
|
|
198
|
-
"bom-ref": "pkg:npm/remeda@2.
|
|
197
|
+
"version": "2.42.0",
|
|
198
|
+
"bom-ref": "pkg:npm/remeda@2.42.0",
|
|
199
199
|
"scope": "required",
|
|
200
200
|
"licenses": [
|
|
201
201
|
{
|
|
202
202
|
"expression": "MIT"
|
|
203
203
|
}
|
|
204
204
|
],
|
|
205
|
-
"purl": "pkg:npm/remeda@2.
|
|
205
|
+
"purl": "pkg:npm/remeda@2.42.0"
|
|
206
206
|
},
|
|
207
207
|
{
|
|
208
208
|
"type": "library",
|
|
@@ -340,7 +340,7 @@
|
|
|
340
340
|
"ref": "pkg:npm/@arethetypeswrong/core@0.18.5"
|
|
341
341
|
},
|
|
342
342
|
{
|
|
343
|
-
"ref": "pkg:npm/@cyclonedx/cyclonedx-library@10.
|
|
343
|
+
"ref": "pkg:npm/@cyclonedx/cyclonedx-library@10.2.0"
|
|
344
344
|
},
|
|
345
345
|
{
|
|
346
346
|
"ref": "pkg:npm/@jridgewell/trace-mapping@0.3.31"
|
|
@@ -376,10 +376,10 @@
|
|
|
376
376
|
"ref": "pkg:npm/npm-registry-fetch@20.0.1"
|
|
377
377
|
},
|
|
378
378
|
{
|
|
379
|
-
"ref": "pkg:npm/packtory@0.0.
|
|
379
|
+
"ref": "pkg:npm/packtory@0.0.88",
|
|
380
380
|
"dependsOn": [
|
|
381
381
|
"pkg:npm/@arethetypeswrong/core@0.18.5",
|
|
382
|
-
"pkg:npm/@cyclonedx/cyclonedx-library@10.
|
|
382
|
+
"pkg:npm/@cyclonedx/cyclonedx-library@10.2.0",
|
|
383
383
|
"pkg:npm/@jridgewell/trace-mapping@0.3.31",
|
|
384
384
|
"pkg:npm/@schema-hub/zod-error-formatter@0.0.16",
|
|
385
385
|
"pkg:npm/@ts-morph/common@0.29.0",
|
|
@@ -391,7 +391,7 @@
|
|
|
391
391
|
"pkg:npm/libnpmpublish@12.0.0",
|
|
392
392
|
"pkg:npm/npm-package-arg@14.0.0",
|
|
393
393
|
"pkg:npm/npm-registry-fetch@20.0.1",
|
|
394
|
-
"pkg:npm/remeda@2.
|
|
394
|
+
"pkg:npm/remeda@2.42.0",
|
|
395
395
|
"pkg:npm/semver@7.8.5",
|
|
396
396
|
"pkg:npm/spdx-expression-parse@5.0.0",
|
|
397
397
|
"pkg:npm/ssri@14.0.0",
|
|
@@ -405,7 +405,7 @@
|
|
|
405
405
|
]
|
|
406
406
|
},
|
|
407
407
|
{
|
|
408
|
-
"ref": "pkg:npm/remeda@2.
|
|
408
|
+
"ref": "pkg:npm/remeda@2.42.0"
|
|
409
409
|
},
|
|
410
410
|
{
|
|
411
411
|
"ref": "pkg:npm/semver@7.8.5"
|