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.
Files changed (96) hide show
  1. package/dead-code-eliminator/analyzed-bundle.d.ts +1 -0
  2. package/dead-code-eliminator/analyzed-bundle.d.ts.map +1 -1
  3. package/dead-code-eliminator/analyzed-bundle.js.map +1 -1
  4. package/dead-code-eliminator/code-file-analyzer.js +10 -3
  5. package/dead-code-eliminator/code-file-analyzer.js.map +1 -1
  6. package/dead-code-eliminator/dependency-metadata.js +206 -0
  7. package/dead-code-eliminator/dependency-metadata.js.map +1 -0
  8. package/dead-code-eliminator/eliminator.js +5 -222
  9. package/dead-code-eliminator/eliminator.js.map +1 -1
  10. package/dead-code-eliminator/expression-unwrapping.js.map +1 -1
  11. package/dead-code-eliminator/imported-expression-origin.js +23 -11
  12. package/dead-code-eliminator/imported-expression-origin.js.map +1 -1
  13. package/dead-code-eliminator/liveness/asset-side-effects.js +10 -0
  14. package/dead-code-eliminator/liveness/asset-side-effects.js.map +1 -0
  15. package/dead-code-eliminator/liveness/boolean-facts.js +99 -0
  16. package/dead-code-eliminator/liveness/boolean-facts.js.map +1 -0
  17. package/dead-code-eliminator/liveness/external-module-resolution.js +173 -0
  18. package/dead-code-eliminator/liveness/external-module-resolution.js.map +1 -0
  19. package/dead-code-eliminator/liveness/external-purity-summary.js +295 -0
  20. package/dead-code-eliminator/liveness/external-purity-summary.js.map +1 -0
  21. package/dead-code-eliminator/liveness/external-purity.js +40 -0
  22. package/dead-code-eliminator/liveness/external-purity.js.map +1 -0
  23. package/dead-code-eliminator/liveness/module-analysis.js +28 -0
  24. package/dead-code-eliminator/liveness/module-analysis.js.map +1 -0
  25. package/dead-code-eliminator/liveness/resource-retention.js +79 -0
  26. package/dead-code-eliminator/liveness/resource-retention.js.map +1 -0
  27. package/dead-code-eliminator/liveness/runtime-code.js +16 -0
  28. package/dead-code-eliminator/liveness/runtime-code.js.map +1 -0
  29. package/dead-code-eliminator/load-bundle.js +25 -9
  30. package/dead-code-eliminator/load-bundle.js.map +1 -1
  31. package/dead-code-eliminator/pure-expression.js +18 -6
  32. package/dead-code-eliminator/pure-expression.js.map +1 -1
  33. package/dead-code-eliminator/reachability/local-seed-gathering.js +1 -2
  34. package/dead-code-eliminator/reachability/local-seed-gathering.js.map +1 -1
  35. package/dead-code-eliminator/side-effect-classifier.js +23 -10
  36. package/dead-code-eliminator/side-effect-classifier.js.map +1 -1
  37. package/dead-code-eliminator/side-effects-field.js +2 -2
  38. package/dead-code-eliminator/side-effects-field.js.map +1 -1
  39. package/dead-code-eliminator/statement-classifiers.js +2 -7
  40. package/dead-code-eliminator/statement-classifiers.js.map +1 -1
  41. package/dead-code-eliminator/transform/atom-translator.d.ts.map +1 -1
  42. package/dead-code-eliminator/transform/atom-translator.js +8 -6
  43. package/dead-code-eliminator/transform/atom-translator.js.map +1 -1
  44. package/dead-code-eliminator/transform/declaration-removal.js +4 -0
  45. package/dead-code-eliminator/transform/declaration-removal.js.map +1 -1
  46. package/dependency-scanner/dependency-graph.d.ts +3 -2
  47. package/dependency-scanner/dependency-graph.d.ts.map +1 -1
  48. package/dependency-scanner/dependency-graph.js +5 -17
  49. package/dependency-scanner/dependency-graph.js.map +1 -1
  50. package/dependency-scanner/external-dependencies.d.ts +14 -0
  51. package/dependency-scanner/external-dependencies.d.ts.map +1 -1
  52. package/dependency-scanner/external-dependencies.js +39 -1
  53. package/dependency-scanner/external-dependencies.js.map +1 -1
  54. package/dependency-scanner/scanner.d.ts.map +1 -1
  55. package/dependency-scanner/scanner.js +5 -1
  56. package/dependency-scanner/scanner.js.map +1 -1
  57. package/dependency-scanner/source-file-references.d.ts +1 -0
  58. package/dependency-scanner/source-file-references.d.ts.map +1 -1
  59. package/dependency-scanner/source-file-references.js +4 -2
  60. package/dependency-scanner/source-file-references.js.map +1 -1
  61. package/linker/replacement-lookup.js +2 -2
  62. package/linker/replacement-lookup.js.map +1 -1
  63. package/linker/resource-graph.js +19 -3
  64. package/linker/resource-graph.js.map +1 -1
  65. package/linker/source-modifier/import-paths.js +30 -17
  66. package/linker/source-modifier/import-paths.js.map +1 -1
  67. package/linker/substitute-bundles.js +13 -1
  68. package/linker/substitute-bundles.js.map +1 -1
  69. package/linker/substituted-resource-graph.js +8 -20
  70. package/linker/substituted-resource-graph.js.map +1 -1
  71. package/package.json +3 -3
  72. package/packages/package-processor.composition.d.ts.map +1 -1
  73. package/packages/package-processor.composition.js +1 -2
  74. package/packages/package-processor.composition.js.map +1 -1
  75. package/packages/packtory/packtory.entry-point.d.ts +5 -2
  76. package/packages/packtory/packtory.entry-point.d.ts.map +1 -1
  77. package/packages/packtory/packtory.entry-point.js +1 -1
  78. package/packages/packtory/packtory.entry-point.js.map +1 -1
  79. package/packtory/package-processor-build.js +6 -1
  80. package/packtory/package-processor-build.js.map +1 -1
  81. package/packtory/packtory-package-dependencies.js +136 -0
  82. package/packtory/packtory-package-dependencies.js.map +1 -0
  83. package/packtory/packtory-package-tree.js +2 -1
  84. package/packtory/packtory-package-tree.js.map +1 -1
  85. package/packtory/packtory-results.d.ts +40 -0
  86. package/packtory/packtory-results.d.ts.map +1 -1
  87. package/packtory/packtory-results.js +3 -0
  88. package/packtory/packtory-results.js.map +1 -1
  89. package/packtory/packtory.d.ts +4 -1
  90. package/packtory/packtory.d.ts.map +1 -1
  91. package/packtory/packtory.js +19 -2
  92. package/packtory/packtory.js.map +1 -1
  93. package/packtory/stages/package-analysis-stage.js +27 -0
  94. package/packtory/stages/package-analysis-stage.js.map +1 -1
  95. package/readme.md +9 -2
  96. 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 { buildAndPublishAll, packAllPackages, packPackage, resolveAndLinkAll } from 'packtory';
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.92"
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.86",
20
- "bom-ref": "pkg:npm/packtory@0.0.86",
21
- "purl": "pkg:npm/packtory@0.0.86"
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.1.1",
42
- "bom-ref": "pkg:npm/@cyclonedx/cyclonedx-library@10.1.1",
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.1.1"
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.40.0",
198
- "bom-ref": "pkg:npm/remeda@2.40.0",
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.40.0"
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.1.1"
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.86",
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.1.1",
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.40.0",
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.40.0"
408
+ "ref": "pkg:npm/remeda@2.42.0"
409
409
  },
410
410
  {
411
411
  "ref": "pkg:npm/semver@7.8.5"