packtory 0.0.22 → 0.0.24

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 (205) hide show
  1. package/bundle-emitter/emitter.d.ts.map +1 -1
  2. package/bundle-emitter/emitter.js +2 -2
  3. package/bundle-emitter/emitter.js.map +1 -1
  4. package/bundle-emitter/publish-error/auto-mode-error-matching.js +6 -7
  5. package/bundle-emitter/publish-error/auto-mode-error-matching.js.map +1 -1
  6. package/bundle-emitter/publish-error/file-mode-error-matching.js +16 -10
  7. package/bundle-emitter/publish-error/file-mode-error-matching.js.map +1 -1
  8. package/bundle-emitter/publish-error/publish-error-messages.js +15 -27
  9. package/bundle-emitter/publish-error/publish-error-messages.js.map +1 -1
  10. package/bundle-emitter/registry/metadata-auth-retry.js +5 -6
  11. package/bundle-emitter/registry/metadata-auth-retry.js.map +1 -1
  12. package/bundle-emitter/registry/oidc-token-exchange.js +6 -14
  13. package/bundle-emitter/registry/oidc-token-exchange.js.map +1 -1
  14. package/bundle-emitter/registry/package-metadata-fetcher.js +12 -17
  15. package/bundle-emitter/registry/package-metadata-fetcher.js.map +1 -1
  16. package/bundle-emitter/registry/publish-settings-bridge.js +8 -12
  17. package/bundle-emitter/registry/publish-settings-bridge.js.map +1 -1
  18. package/bundle-emitter/registry/registry-auth-config.js +22 -26
  19. package/bundle-emitter/registry/registry-auth-config.js.map +1 -1
  20. package/bundle-emitter/registry/registry-client.d.ts +1 -1
  21. package/bundle-emitter/registry/registry-client.d.ts.map +1 -1
  22. package/bundle-emitter/registry/registry-client.js +13 -6
  23. package/bundle-emitter/registry/registry-client.js.map +1 -1
  24. package/bundle-emitter/registry/registry-package-path.js +4 -0
  25. package/bundle-emitter/registry/registry-package-path.js.map +1 -0
  26. package/bundle-emitter/repository-coherence.js +17 -23
  27. package/bundle-emitter/repository-coherence.js.map +1 -1
  28. package/bundle-emitter/repository-url-normalizer.js +5 -8
  29. package/bundle-emitter/repository-url-normalizer.js.map +1 -1
  30. package/checks/rules/duplicate-messages.js +7 -10
  31. package/checks/rules/duplicate-messages.js.map +1 -1
  32. package/checks/rules/no-unused-bundle-dependencies.js +10 -13
  33. package/checks/rules/no-unused-bundle-dependencies.js.map +1 -1
  34. package/common/bundled-dependency-groups.js +28 -0
  35. package/common/bundled-dependency-groups.js.map +1 -0
  36. package/common/package-layout.js +49 -0
  37. package/common/package-layout.js.map +1 -0
  38. package/common/package-name-map.js +8 -0
  39. package/common/package-name-map.js.map +1 -0
  40. package/common/worklist.js +23 -0
  41. package/common/worklist.js.map +1 -0
  42. package/config/config.d.ts +1 -1
  43. package/config/config.d.ts.map +1 -1
  44. package/config/dependency-existence-validation.js +15 -17
  45. package/config/dependency-existence-validation.js.map +1 -1
  46. package/config/package-config.d.ts.map +1 -1
  47. package/config/package-config.js +2 -6
  48. package/config/package-config.js.map +1 -1
  49. package/config/publish-settings.d.ts.map +1 -1
  50. package/config/publish-settings.report.js +8 -7
  51. package/config/publish-settings.report.js.map +1 -1
  52. package/config/registry-settings.d.ts.map +1 -1
  53. package/config/root-config-validation.js +86 -81
  54. package/config/root-config-validation.js.map +1 -1
  55. package/dead-code-eliminator/cross-bundle/bundle-index.js +0 -3
  56. package/dead-code-eliminator/cross-bundle/bundle-index.js.map +1 -1
  57. package/dead-code-eliminator/cross-bundle/import-export-walker.js +4 -2
  58. package/dead-code-eliminator/cross-bundle/import-export-walker.js.map +1 -1
  59. package/dead-code-eliminator/eliminator.js.map +1 -1
  60. package/dead-code-eliminator/imported-expression-origin.js +28 -32
  61. package/dead-code-eliminator/imported-expression-origin.js.map +1 -1
  62. package/dead-code-eliminator/pure-expression.js +53 -64
  63. package/dead-code-eliminator/pure-expression.js.map +1 -1
  64. package/dead-code-eliminator/reachability/bfs-closure.js +31 -24
  65. package/dead-code-eliminator/reachability/bfs-closure.js.map +1 -1
  66. package/dead-code-eliminator/side-effect-classifier.js +2 -2
  67. package/dead-code-eliminator/side-effect-classifier.js.map +1 -1
  68. package/dead-code-eliminator/statement-classifiers.js +4 -5
  69. package/dead-code-eliminator/statement-classifiers.js.map +1 -1
  70. package/dead-code-eliminator/syntax-kind-sets.js +24 -65
  71. package/dead-code-eliminator/syntax-kind-sets.js.map +1 -1
  72. package/dependency-scanner/node-modules-manifest-synthesizer.js +3 -6
  73. package/dependency-scanner/node-modules-manifest-synthesizer.js.map +1 -1
  74. package/dependency-scanner/package-owned-asset-file-path.js +2 -13
  75. package/dependency-scanner/package-owned-asset-file-path.js.map +1 -1
  76. package/dependency-scanner/scanner.js +39 -29
  77. package/dependency-scanner/scanner.js.map +1 -1
  78. package/dependency-scanner/source-file-references.d.ts.map +1 -1
  79. package/dependency-scanner/source-file-references.js +75 -79
  80. package/dependency-scanner/source-file-references.js.map +1 -1
  81. package/dependency-scanner/typescript-project-analyzer.d.ts.map +1 -1
  82. package/dependency-scanner/typescript-project-analyzer.js +2 -1
  83. package/dependency-scanner/typescript-project-analyzer.js.map +1 -1
  84. package/dependency-scanner/virtual-package-json-host.js +2 -1
  85. package/dependency-scanner/virtual-package-json-host.js.map +1 -1
  86. package/directed-graph/graph.js +38 -64
  87. package/directed-graph/graph.js.map +1 -1
  88. package/file-manager/compare.js +7 -3
  89. package/file-manager/compare.js.map +1 -1
  90. package/file-manager/file-description-by-path.js +8 -0
  91. package/file-manager/file-description-by-path.js.map +1 -0
  92. package/npm-oidc-id-token-resolver.js +17 -14
  93. package/npm-oidc-id-token-resolver.js.map +1 -1
  94. package/package-surface/implicit-bin.js +9 -6
  95. package/package-surface/implicit-bin.js.map +1 -1
  96. package/package-surface/package-json-export.js +4 -3
  97. package/package-surface/package-json-export.js.map +1 -1
  98. package/package-surface/package-shape.js +4 -3
  99. package/package-surface/package-shape.js.map +1 -1
  100. package/package-surface/package-surface-index.js +136 -0
  101. package/package-surface/package-surface-index.js.map +1 -0
  102. package/package-surface/public-specifiers.js +3 -12
  103. package/package-surface/public-specifiers.js.map +1 -1
  104. package/package-surface/root-registry.js +10 -20
  105. package/package-surface/root-registry.js.map +1 -1
  106. package/package-surface/specifier-syntax.js +0 -19
  107. package/package-surface/specifier-syntax.js.map +1 -1
  108. package/package-surface/substitution-exports.js +59 -35
  109. package/package-surface/substitution-exports.js.map +1 -1
  110. package/package-surface/surface.js +0 -3
  111. package/package-surface/surface.js.map +1 -1
  112. package/package.json +16 -4
  113. package/packtory/options/bundle-dependency-resolution.js +6 -8
  114. package/packtory/options/bundle-dependency-resolution.js.map +1 -1
  115. package/packtory/options/version-trigger.js.map +1 -1
  116. package/packtory/package-processor-publish.d.ts +2 -1
  117. package/packtory/package-processor-publish.d.ts.map +1 -1
  118. package/packtory/package-processor-publish.js +19 -13
  119. package/packtory/package-processor-publish.js.map +1 -1
  120. package/packtory/packtory-pack.js +129 -141
  121. package/packtory/packtory-pack.js.map +1 -1
  122. package/packtory/packtory-release-analysis.js +8 -16
  123. package/packtory/packtory-release-analysis.js.map +1 -1
  124. package/packtory/packtory-results.d.ts +26 -11
  125. package/packtory/packtory-results.d.ts.map +1 -1
  126. package/packtory/packtory-results.js +27 -5
  127. package/packtory/packtory-results.js.map +1 -1
  128. package/packtory/packtory.js +65 -49
  129. package/packtory/packtory.js.map +1 -1
  130. package/packtory/partial-result.js +26 -0
  131. package/packtory/partial-result.js.map +1 -0
  132. package/packtory/published-release-state.d.ts +9 -0
  133. package/packtory/published-release-state.d.ts.map +1 -0
  134. package/packtory/published-release-state.js +12 -0
  135. package/packtory/published-release-state.js.map +1 -0
  136. package/packtory/release-analysis.js +74 -81
  137. package/packtory/release-analysis.js.map +1 -1
  138. package/packtory/resolved-package.js +6 -6
  139. package/packtory/resolved-package.js.map +1 -1
  140. package/packtory/scheduler.d.ts +1 -0
  141. package/packtory/scheduler.d.ts.map +1 -1
  142. package/packtory/scheduler.js +70 -52
  143. package/packtory/scheduler.js.map +1 -1
  144. package/packtory/stages/publish-stage.js +11 -6
  145. package/packtory/stages/publish-stage.js.map +1 -1
  146. package/packtory/stages/release-diff-stage.js +11 -10
  147. package/packtory/stages/release-diff-stage.js.map +1 -1
  148. package/report/aggregator/package-report-materialization.js +35 -22
  149. package/report/aggregator/package-report-materialization.js.map +1 -1
  150. package/report/config-redactor.js +5 -4
  151. package/report/config-redactor.js.map +1 -1
  152. package/report/inspectors/inspect-artifact-sizes.js +7 -3
  153. package/report/inspectors/inspect-artifact-sizes.js.map +1 -1
  154. package/report/inspectors/inspect-scan-results.js +8 -2
  155. package/report/inspectors/inspect-scan-results.js.map +1 -1
  156. package/report/preview/preview-document-diff.d.ts +6 -1
  157. package/report/preview/preview-document-diff.d.ts.map +1 -1
  158. package/report/preview/preview-document-diff.js +8 -3
  159. package/report/preview/preview-document-diff.js.map +1 -1
  160. package/report/release-diff/file-set-diff.d.ts +14 -4
  161. package/report/release-diff/file-set-diff.d.ts.map +1 -1
  162. package/report/release-diff/file-set-diff.js +28 -28
  163. package/report/release-diff/file-set-diff.js.map +1 -1
  164. package/report/release-diff/release-version-transition.js +6 -4
  165. package/report/release-diff/release-version-transition.js.map +1 -1
  166. package/resource-resolver/content.js +5 -3
  167. package/resource-resolver/content.js.map +1 -1
  168. package/sbom/license-resolver.js +3 -3
  169. package/sbom/license-resolver.js.map +1 -1
  170. package/sbom/sbom-builder.js +1 -8
  171. package/sbom/sbom-builder.js.map +1 -1
  172. package/sbom/sbom-file.d.ts.map +1 -1
  173. package/sbom/sbom-file.js +7 -4
  174. package/sbom/sbom-file.js.map +1 -1
  175. package/sbom/sbom-serializer.js +10 -6
  176. package/sbom/sbom-serializer.js.map +1 -1
  177. package/sbom.cdx.json +22 -5
  178. package/vendor-materializer/vendor-materializer.d.ts.map +1 -1
  179. package/vendor-materializer/vendor-materializer.js +99 -123
  180. package/vendor-materializer/vendor-materializer.js.map +1 -1
  181. package/version-manager/dependencies/bundle-dependency-grouping.js +18 -14
  182. package/version-manager/dependencies/bundle-dependency-grouping.js.map +1 -1
  183. package/version-manager/imports/versioned-bundle-imports.js +15 -12
  184. package/version-manager/imports/versioned-bundle-imports.js.map +1 -1
  185. package/version-manager/manager.d.ts.map +1 -1
  186. package/version-manager/manager.js +19 -24
  187. package/version-manager/manager.js.map +1 -1
  188. package/version-manager/manifest/builder.js +3 -3
  189. package/version-manager/manifest/builder.js.map +1 -1
  190. package/version-manager/optional-bundle-fields.js +2 -5
  191. package/version-manager/optional-bundle-fields.js.map +1 -1
  192. package/version-manager/representative-root.js +7 -27
  193. package/version-manager/representative-root.js.map +1 -1
  194. package/version-manager/specifier-classifier.js +13 -10
  195. package/version-manager/specifier-classifier.js.map +1 -1
  196. package/version-manager/specifier-errors.js +17 -6
  197. package/version-manager/specifier-errors.js.map +1 -1
  198. package/package-surface/explicit-specifier-build.js +0 -28
  199. package/package-surface/explicit-specifier-build.js.map +0 -1
  200. package/package-surface/explicit-specifier-resolve.js +0 -17
  201. package/package-surface/explicit-specifier-resolve.js.map +0 -1
  202. package/package-surface/implicit-specifier-build.js +0 -26
  203. package/package-surface/implicit-specifier-build.js.map +0 -1
  204. package/package-surface/implicit-specifier-resolve.js +0 -17
  205. package/package-surface/implicit-specifier-resolve.js.map +0 -1
@@ -5,19 +5,22 @@ function isShebangContent(content) {
5
5
  function unscopedPackageName(packageName) {
6
6
  return packageName.replace(/^@[^/]+\//u, '');
7
7
  }
8
- function getExecutableShebangRoots(bundle) {
9
- return Object.values(bundle.roots).filter((root) => {
8
+ function findExecutableShebangRoot(bundle) {
9
+ const executableShebangRoots = Object.values(bundle.roots).filter((root) => {
10
10
  return root.js.isExecutable && isShebangContent(root.js.content);
11
11
  });
12
+ if (executableShebangRoots.length > 1) {
13
+ const duplicateShebangRootsMessage = `Package "${bundle.name}" has multiple executable shebang roots; ` +
14
+ 'declare packageInterface.bins explicitly';
15
+ throw new Error(duplicateShebangRootsMessage);
16
+ }
17
+ return executableShebangRoots[0];
12
18
  }
13
19
  export function buildImplicitBinField(bundle) {
14
- const [root, extraRoot] = getExecutableShebangRoots(bundle);
20
+ const root = findExecutableShebangRoot(bundle);
15
21
  if (root === undefined) {
16
22
  return undefined;
17
23
  }
18
- if (extraRoot !== undefined) {
19
- throw new Error(`Package "${bundle.name}" has multiple executable shebang roots; declare packageInterface.bins explicitly`);
20
- }
21
24
  return { [unscopedPackageName(bundle.name)]: toImportTarget(root.js.targetFilePath) };
22
25
  }
23
26
  //# sourceMappingURL=implicit-bin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"implicit-bin.js","sourceRoot":"","sources":["../../../../source/package-surface/implicit-bin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAA6C,MAAM,oBAAoB,CAAC;AAI/F,SAAS,gBAAgB,CAAC,OAAe;IACrC,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,mBAAmB,CAAC,WAAmB;IAC5C,OAAO,WAAW,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,yBAAyB,CAAC,MAAwC;IACvE,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QAC/C,OAAO,IAAI,CAAC,EAAE,CAAC,YAAY,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAyB;IAC3D,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAC5D,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACrB,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACX,YAAY,MAAM,CAAC,IAAI,mFAAmF,CAC7G,CAAC;IACN,CAAC;IACD,OAAO,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC;AAC1F,CAAC"}
1
+ {"version":3,"file":"implicit-bin.js","sourceRoot":"","sources":["../../../../source/package-surface/implicit-bin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAA6C,MAAM,oBAAoB,CAAC;AAI/F,SAAS,gBAAgB,CAAC,OAAe;IACrC,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,mBAAmB,CAAC,WAAmB;IAC5C,OAAO,WAAW,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,yBAAyB,CAAC,MAAyB;IACxD,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACvE,OAAO,IAAI,CAAC,EAAE,CAAC,YAAY,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,IAAI,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,4BAA4B,GAC9B,YAAY,MAAM,CAAC,IAAI,2CAA2C;YAClE,0CAA0C,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,sBAAsB,CAAC,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAyB;IAC3D,MAAM,IAAI,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACrB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,OAAO,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC;AAC1F,CAAC"}
@@ -1,10 +1,11 @@
1
- const packageJsonExportKey = './package.json';
2
- const packageJsonExportTarget = './package.json';
1
+ function packageJsonExportPath() {
2
+ return './package.json';
3
+ }
3
4
  export function decorateWithPackageJsonExport(bundle, exportsField) {
4
5
  if (bundle.exportPackageJson !== true) {
5
6
  return exportsField;
6
7
  }
7
8
  // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- spread preserves the generic record shape
8
- return { ...exportsField, [packageJsonExportKey]: packageJsonExportTarget };
9
+ return { ...exportsField, [packageJsonExportPath()]: packageJsonExportPath() };
9
10
  }
10
11
  //# sourceMappingURL=package-json-export.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"package-json-export.js","sourceRoot":"","sources":["../../../../source/package-surface/package-json-export.ts"],"names":[],"mappings":"AAEA,MAAM,oBAAoB,GAAG,gBAAgB,CAAC;AAC9C,MAAM,uBAAuB,GAAG,gBAAgB,CAAC;AAEjD,MAAM,UAAU,6BAA6B,CACzC,MAA6B,EAC7B,YAAsB;IAEtB,IAAI,MAAM,CAAC,iBAAiB,KAAK,IAAI,EAAE,CAAC;QACpC,OAAO,YAAY,CAAC;IACxB,CAAC;IAED,sHAAsH;IACtH,OAAO,EAAE,GAAG,YAAY,EAAE,CAAC,oBAAoB,CAAC,EAAE,uBAAuB,EAAc,CAAC;AAC5F,CAAC"}
1
+ {"version":3,"file":"package-json-export.js","sourceRoot":"","sources":["../../../../source/package-surface/package-json-export.ts"],"names":[],"mappings":"AAEA,SAAS,qBAAqB;IAC1B,OAAO,gBAAgB,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,6BAA6B,CACzC,MAA6B,EAC7B,YAAsB;IAEtB,IAAI,MAAM,CAAC,iBAAiB,KAAK,IAAI,EAAE,CAAC;QACpC,OAAO,YAAY,CAAC;IACxB,CAAC;IAED,sHAAsH;IACtH,OAAO,EAAE,GAAG,YAAY,EAAE,CAAC,qBAAqB,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAc,CAAC;AAC/F,CAAC"}
@@ -1,10 +1,11 @@
1
+ import { isDefined, pickBy } from 'remeda';
1
2
  export function toImportTarget(targetFilePath) {
2
3
  return `./${targetFilePath}`;
3
4
  }
4
5
  export function buildExportEntry(root) {
5
- return {
6
+ return pickBy({
6
7
  import: toImportTarget(root.js.targetFilePath),
7
- ...(root.declarationFile === undefined ? {} : { types: toImportTarget(root.declarationFile.targetFilePath) })
8
- };
8
+ types: root.declarationFile === undefined ? undefined : toImportTarget(root.declarationFile.targetFilePath)
9
+ }, isDefined);
9
10
  }
10
11
  //# sourceMappingURL=package-shape.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"package-shape.js","sourceRoot":"","sources":["../../../../source/package-surface/package-shape.ts"],"names":[],"mappings":"AA+BA,MAAM,UAAU,cAAc,CAAC,cAAsB;IACjD,OAAO,KAAK,cAAc,EAAE,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAyB;IACtD,OAAO;QACH,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC;QAC9C,GAAG,CAAC,IAAI,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,EAAE,CAAC;KAChH,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"package-shape.js","sourceRoot":"","sources":["../../../../source/package-surface/package-shape.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AA8B3C,MAAM,UAAU,cAAc,CAAC,cAAsB;IACjD,OAAO,KAAK,cAAc,EAAE,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAyB;IACtD,OAAO,MAAM,CACT;QACI,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC;QAC9C,KAAK,EAAE,IAAI,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC;KAC9G,EACD,SAAS,CACZ,CAAC;AACN,CAAC"}
@@ -0,0 +1,136 @@
1
+ import { getEntryRootIds, getRoot } from "./root-registry.js";
2
+ import { toPackageSpecifier } from "./specifier-syntax.js";
3
+ function createMutablePublicModuleIndex() {
4
+ return {
5
+ sourceFilePathBySpecifier: new Map(),
6
+ specifierBySourceFilePath: new Map()
7
+ };
8
+ }
9
+ function recordSourceFileSpecifier(publicModuleIndex, sourceFilePath, candidateSpecifier) {
10
+ const currentSpecifier = publicModuleIndex.specifierBySourceFilePath.get(sourceFilePath);
11
+ if (currentSpecifier === undefined) {
12
+ publicModuleIndex.specifierBySourceFilePath.set(sourceFilePath, candidateSpecifier);
13
+ }
14
+ }
15
+ function recordShortestSourceFileSpecifier(publicModuleIndex, sourceFilePath, candidateSpecifier) {
16
+ const currentSpecifier = publicModuleIndex.specifierBySourceFilePath.get(sourceFilePath);
17
+ if (currentSpecifier === undefined || candidateSpecifier.length < currentSpecifier.length) {
18
+ publicModuleIndex.specifierBySourceFilePath.set(sourceFilePath, candidateSpecifier);
19
+ }
20
+ }
21
+ function recordPublicSourceFilePath(publicModuleIndex, write) {
22
+ const hasPublicSpecifier = publicModuleIndex.sourceFilePathBySpecifier.has(write.specifier);
23
+ if (write.publicSourceFilePath !== undefined && !hasPublicSpecifier) {
24
+ publicModuleIndex.sourceFilePathBySpecifier.set(write.specifier, write.publicSourceFilePath);
25
+ }
26
+ }
27
+ function recordFirstIndexedPublicSpecifier(publicModuleIndex, write) {
28
+ for (const sourceFilePath of write.sourceFilePaths) {
29
+ recordSourceFileSpecifier(publicModuleIndex, sourceFilePath, write.specifier);
30
+ }
31
+ recordPublicSourceFilePath(publicModuleIndex, write);
32
+ }
33
+ function recordShortestIndexedPublicSpecifier(publicModuleIndex, write) {
34
+ for (const sourceFilePath of write.sourceFilePaths) {
35
+ recordShortestSourceFileSpecifier(publicModuleIndex, sourceFilePath, write.specifier);
36
+ }
37
+ recordPublicSourceFilePath(publicModuleIndex, write);
38
+ }
39
+ function rootSourceFilePaths(root) {
40
+ if (root.declarationFile === undefined) {
41
+ return [root.js.sourceFilePath];
42
+ }
43
+ return [root.js.sourceFilePath, root.declarationFile.sourceFilePath];
44
+ }
45
+ function isExplicitSummaryBundle(bundle) {
46
+ return bundle.surface.mode === 'explicit';
47
+ }
48
+ function isImplicitSummaryBundle(bundle) {
49
+ return bundle.surface.mode === 'implicit';
50
+ }
51
+ function isExplicitModuleBundle(bundle) {
52
+ return bundle.surface.mode === 'explicit';
53
+ }
54
+ function isImplicitModuleBundle(bundle) {
55
+ return bundle.surface.mode === 'implicit';
56
+ }
57
+ function firstExplicitRootId(surface) {
58
+ return surface.packageInterface.modules?.[0]?.root ?? surface.packageInterface.bins?.[0]?.root;
59
+ }
60
+ function summarizeImplicitPackageSurface(bundle) {
61
+ return {
62
+ publicRootIds: getEntryRootIds(bundle),
63
+ representativeRootId: bundle.surface.defaultModuleRoot
64
+ };
65
+ }
66
+ function summarizeExplicitPackageSurface(bundle) {
67
+ const representativeRootId = firstExplicitRootId(bundle.surface);
68
+ if (representativeRootId === undefined) {
69
+ throw new Error(`Package "${bundle.name}" explicit surface declares neither modules nor bins`);
70
+ }
71
+ return {
72
+ publicRootIds: getEntryRootIds(bundle),
73
+ representativeRootId
74
+ };
75
+ }
76
+ export function summarizePackageSurface(bundle) {
77
+ if (isExplicitSummaryBundle(bundle)) {
78
+ return summarizeExplicitPackageSurface(bundle);
79
+ }
80
+ if (isImplicitSummaryBundle(bundle)) {
81
+ return summarizeImplicitPackageSurface(bundle);
82
+ }
83
+ throw new Error(`Unsupported package surface mode: ${bundle.surface.mode}`);
84
+ }
85
+ function indexExplicitPublicModules(bundle) {
86
+ const publicModuleIndex = createMutablePublicModuleIndex();
87
+ const { modules } = bundle.surface.packageInterface;
88
+ if (modules === undefined) {
89
+ return publicModuleIndex;
90
+ }
91
+ for (const entry of modules) {
92
+ const root = getRoot(bundle, entry.root);
93
+ recordShortestIndexedPublicSpecifier(publicModuleIndex, {
94
+ publicSourceFilePath: root.js.sourceFilePath,
95
+ sourceFilePaths: rootSourceFilePaths(root),
96
+ specifier: toPackageSpecifier(bundle.name, entry.export)
97
+ });
98
+ }
99
+ return publicModuleIndex;
100
+ }
101
+ function indexImplicitPublicModules(bundle) {
102
+ const publicModuleIndex = createMutablePublicModuleIndex();
103
+ const defaultRoot = getRoot(bundle, bundle.surface.defaultModuleRoot);
104
+ recordFirstIndexedPublicSpecifier(publicModuleIndex, {
105
+ publicSourceFilePath: defaultRoot.js.sourceFilePath,
106
+ sourceFilePaths: rootSourceFilePaths(defaultRoot),
107
+ specifier: bundle.name
108
+ });
109
+ for (const root of Object.values(bundle.roots)) {
110
+ if (root.declarationFile !== undefined) {
111
+ recordFirstIndexedPublicSpecifier(publicModuleIndex, {
112
+ publicSourceFilePath: undefined,
113
+ sourceFilePaths: [root.declarationFile.sourceFilePath],
114
+ specifier: toPackageSpecifier(bundle.name, `./${root.js.targetFilePath}`)
115
+ });
116
+ }
117
+ }
118
+ for (const entry of bundle.contents) {
119
+ recordFirstIndexedPublicSpecifier(publicModuleIndex, {
120
+ publicSourceFilePath: entry.fileDescription.sourceFilePath,
121
+ sourceFilePaths: [entry.fileDescription.sourceFilePath],
122
+ specifier: toPackageSpecifier(bundle.name, `./${entry.fileDescription.targetFilePath}`)
123
+ });
124
+ }
125
+ return publicModuleIndex;
126
+ }
127
+ export function indexPublicModules(bundle) {
128
+ if (isExplicitModuleBundle(bundle)) {
129
+ return indexExplicitPublicModules(bundle);
130
+ }
131
+ if (isImplicitModuleBundle(bundle)) {
132
+ return indexImplicitPublicModules(bundle);
133
+ }
134
+ throw new Error(`Unsupported package surface mode: ${bundle.surface.mode}`);
135
+ }
136
+ //# sourceMappingURL=package-surface-index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-surface-index.js","sourceRoot":"","sources":["../../../../source/package-surface/package-surface-index.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,8 @@
1
- import { getExplicitPublicModuleSpecifier } from "./explicit-specifier-build.js";
2
- import { resolveExplicitPublicModuleSourceFilePath } from "./explicit-specifier-resolve.js";
3
- import { getImplicitPublicModuleSpecifier } from "./implicit-specifier-build.js";
4
- import { resolveImplicitPublicModuleSourceFilePath } from "./implicit-specifier-resolve.js";
1
+ import { indexPublicModules } from "./package-surface-index.js";
5
2
  export function getPublicModuleSpecifierForSourcePath(bundle, sourceFilePath) {
6
- if (bundle.surface.mode === 'explicit') {
7
- return getExplicitPublicModuleSpecifier(bundle, bundle.surface, sourceFilePath);
8
- }
9
- return getImplicitPublicModuleSpecifier(bundle, bundle.surface, sourceFilePath);
3
+ return indexPublicModules(bundle).specifierBySourceFilePath.get(sourceFilePath);
10
4
  }
11
5
  export function resolvePublicModuleSourceFilePath(bundle, specifier) {
12
- if (bundle.surface.mode === 'explicit') {
13
- return resolveExplicitPublicModuleSourceFilePath(bundle, bundle.surface, specifier);
14
- }
15
- return resolveImplicitPublicModuleSourceFilePath(bundle, bundle.surface, specifier);
6
+ return indexPublicModules(bundle).sourceFilePathBySpecifier.get(specifier);
16
7
  }
17
8
  //# sourceMappingURL=public-specifiers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"public-specifiers.js","sourceRoot":"","sources":["../../../../source/package-surface/public-specifiers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gCAAgC,EAAE,MAAM,+BAA+B,CAAC;AACjF,OAAO,EAAE,yCAAyC,EAAE,MAAM,iCAAiC,CAAC;AAC5F,OAAO,EAAE,gCAAgC,EAAE,MAAM,+BAA+B,CAAC;AACjF,OAAO,EAAE,yCAAyC,EAAE,MAAM,iCAAiC,CAAC;AAG5F,MAAM,UAAU,qCAAqC,CAAC,MAAkB,EAAE,cAAsB;IAC5F,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACrC,OAAO,gCAAgC,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IACpF,CAAC;IACD,OAAO,gCAAgC,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,MAAkB,EAAE,SAAiB;IACnF,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACrC,OAAO,yCAAyC,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACxF,CAAC;IACD,OAAO,yCAAyC,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AACxF,CAAC"}
1
+ {"version":3,"file":"public-specifiers.js","sourceRoot":"","sources":["../../../../source/package-surface/public-specifiers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAGhE,MAAM,UAAU,qCAAqC,CAAC,MAAkB,EAAE,cAAsB;IAC5F,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC,yBAAyB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,MAAkB,EAAE,SAAiB;IACnF,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC,yBAAyB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC/E,CAAC"}
@@ -1,4 +1,3 @@
1
- import { isImplicitPackageSurface } from "./surface.js";
2
1
  export function getRoot(bundle, rootId) {
3
2
  const root = bundle.roots[rootId];
4
3
  if (root === undefined) {
@@ -6,30 +5,21 @@ export function getRoot(bundle, rootId) {
6
5
  }
7
6
  return root;
8
7
  }
9
- export function isMatchingRootSourcePath(root, sourceFilePath) {
10
- if (root.js.sourceFilePath === sourceFilePath) {
11
- return true;
8
+ function collectExplicitPublicRootIds(surface) {
9
+ const publicRootIds = new Set();
10
+ for (const entry of surface.packageInterface.modules ?? []) {
11
+ publicRootIds.add(entry.root);
12
12
  }
13
- return root.declarationFile?.sourceFilePath === sourceFilePath;
14
- }
15
- function getPublicRootIds(bundle) {
16
- if (isImplicitPackageSurface(bundle.surface)) {
17
- return new Set(Object.keys(bundle.roots));
18
- }
19
- const rootIds = new Set();
20
- for (const entry of bundle.surface.packageInterface.modules ?? []) {
21
- rootIds.add(entry.root);
13
+ for (const entry of surface.packageInterface.bins ?? []) {
14
+ publicRootIds.add(entry.root);
22
15
  }
23
- for (const entry of bundle.surface.packageInterface.bins ?? []) {
24
- rootIds.add(entry.root);
25
- }
26
- return rootIds;
16
+ return publicRootIds;
27
17
  }
28
18
  export function getEntryRootIds(bundle) {
29
- const publicRootIds = getPublicRootIds(bundle);
30
- if (isImplicitPackageSurface(bundle.surface)) {
31
- return publicRootIds;
19
+ if (bundle.surface.mode === 'implicit') {
20
+ return new Set(Object.keys(bundle.roots));
32
21
  }
22
+ const publicRootIds = collectExplicitPublicRootIds(bundle.surface);
33
23
  return new Set([...publicRootIds, ...(bundle.surface.packageInterface.privateRoots ?? [])]);
34
24
  }
35
25
  //# sourceMappingURL=root-registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"root-registry.js","sourceRoot":"","sources":["../../../../source/package-surface/root-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAGxD,MAAM,UAAU,OAAO,CAAC,MAA0C,EAAE,MAAc;IAC9E,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,YAAY,MAAM,CAAC,IAAI,8BAA8B,MAAM,GAAG,CAAC,CAAC;IACpF,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAyB,EAAE,cAAsB;IACtF,IAAI,IAAI,CAAC,EAAE,CAAC,cAAc,KAAK,cAAc,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,IAAI,CAAC,eAAe,EAAE,cAAc,KAAK,cAAc,CAAC;AACnE,CAAC;AAED,SAAS,gBAAgB,CAAC,MAA6C;IACnE,IAAI,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3C,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAA6C;IACzE,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAI,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3C,OAAO,aAAa,CAAC;IACzB,CAAC;IAED,OAAO,IAAI,GAAG,CAAC,CAAC,GAAG,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAChG,CAAC"}
1
+ {"version":3,"file":"root-registry.js","sourceRoot":"","sources":["../../../../source/package-surface/root-registry.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,OAAO,CAAC,MAA0C,EAAE,MAAc;IAC9E,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,YAAY,MAAM,CAAC,IAAI,8BAA8B,MAAM,GAAG,CAAC,CAAC;IACpF,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,4BAA4B,CAAC,OAAwB;IAC1D,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,gBAAgB,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;QACzD,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,gBAAgB,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;QACtD,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,aAAa,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAA6C;IACzE,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACrC,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,aAAa,GAAG,4BAA4B,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnE,OAAO,IAAI,GAAG,CAAC,CAAC,GAAG,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAChG,CAAC"}
@@ -2,23 +2,4 @@ const exportKeyPrefixLength = 2;
2
2
  export function toPackageSpecifier(packageName, exportKey) {
3
3
  return exportKey === '.' ? packageName : `${packageName}/${exportKey.slice(exportKeyPrefixLength)}`;
4
4
  }
5
- export function resolveExplicitExportKey(packageName, specifier) {
6
- if (specifier === packageName) {
7
- return '.';
8
- }
9
- if (specifier.startsWith(`${packageName}/`)) {
10
- return `./${specifier.slice(packageName.length + 1)}`;
11
- }
12
- return undefined;
13
- }
14
- export function resolveImplicitSpecifier(bundleName, specifier) {
15
- if (specifier === bundleName) {
16
- return ['root'];
17
- }
18
- const prefix = `${bundleName}/`;
19
- if (!specifier.startsWith(prefix)) {
20
- return ['private'];
21
- }
22
- return ['content', specifier.slice(prefix.length)];
23
- }
24
5
  //# sourceMappingURL=specifier-syntax.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"specifier-syntax.js","sourceRoot":"","sources":["../../../../source/package-surface/specifier-syntax.ts"],"names":[],"mappings":"AAAA,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAIhC,MAAM,UAAU,kBAAkB,CAAC,WAAmB,EAAE,SAAiB;IACrE,OAAO,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,IAAI,SAAS,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAAE,CAAC;AACxG,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,WAAmB,EAAE,SAAiB;IAC3E,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;QAC5B,OAAO,GAAG,CAAC;IACf,CAAC;IACD,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC;QAC1C,OAAO,KAAK,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;IAC1D,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,UAAkB,EAAE,SAAiB;IAC1E,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;QAC3B,OAAO,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,MAAM,GAAG,GAAG,UAAU,GAAG,CAAC;IAChC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AACvD,CAAC"}
1
+ {"version":3,"file":"specifier-syntax.js","sourceRoot":"","sources":["../../../../source/package-surface/specifier-syntax.ts"],"names":[],"mappings":"AAAA,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAEhC,MAAM,UAAU,kBAAkB,CAAC,WAAmB,EAAE,SAAiB;IACrE,OAAO,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,IAAI,SAAS,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAAE,CAAC;AACxG,CAAC"}
@@ -1,62 +1,86 @@
1
+ import { isDefined, pickBy } from 'remeda';
1
2
  import { toImportTarget } from "./package-shape.js";
2
- const jsExtensionToDeclarationExtension = new Map([
3
- ['.mjs', '.d.mts'],
4
- ['.cjs', '.d.cts'],
5
- ['.js', '.d.ts']
6
- ]);
7
- function isRootSourcePath(bundle, sourceFilePath) {
8
- return Object.values(bundle.roots).some((root) => {
9
- return root.js.sourceFilePath === sourceFilePath;
10
- });
3
+ function collectRootSourceFilePaths(bundle) {
4
+ const rootSourceFilePaths = new Set();
5
+ for (const root of Object.values(bundle.roots)) {
6
+ rootSourceFilePaths.add(root.js.sourceFilePath);
7
+ }
8
+ return rootSourceFilePaths;
9
+ }
10
+ function collectBundleContentLookups(bundle) {
11
+ const contentBySourceFilePath = new Map();
12
+ const targetFilePaths = new Set();
13
+ for (const entry of bundle.contents) {
14
+ const { sourceFilePath, targetFilePath } = entry.fileDescription;
15
+ if (!contentBySourceFilePath.has(sourceFilePath)) {
16
+ contentBySourceFilePath.set(sourceFilePath, entry);
17
+ }
18
+ targetFilePaths.add(targetFilePath);
19
+ }
20
+ return { contentBySourceFilePath, targetFilePaths };
11
21
  }
12
- function isDeclarationTargetFilePath(targetFilePath) {
13
- return targetFilePath.endsWith('.d.ts') || targetFilePath.endsWith('.d.mts') || targetFilePath.endsWith('.d.cts');
22
+ function createSubstitutionBundleLookups(bundle) {
23
+ const { contentBySourceFilePath, targetFilePaths } = collectBundleContentLookups(bundle);
24
+ return {
25
+ contentBySourceFilePath,
26
+ targetFilePaths,
27
+ rootSourceFilePaths: collectRootSourceFilePaths(bundle)
28
+ };
14
29
  }
15
- function findContent(bundle, sourceFilePath) {
16
- const content = bundle.contents.find((entry) => {
17
- return entry.fileDescription.sourceFilePath === sourceFilePath;
18
- });
30
+ function findBundleContent(bundleName, contentBySourceFilePath, sourceFilePath) {
31
+ const content = contentBySourceFilePath.get(sourceFilePath);
19
32
  if (content === undefined) {
20
- throw new Error(`Package "${bundle.name}" is missing content for "${sourceFilePath}"`);
33
+ throw new Error(`Package "${bundleName}" is missing content for "${sourceFilePath}"`);
21
34
  }
22
35
  return content;
23
36
  }
24
- function findContentTargetPath(bundle, targetFilePath) {
25
- const match = bundle.contents.find((entry) => {
26
- return entry.fileDescription.targetFilePath === targetFilePath;
27
- });
28
- return match?.fileDescription.targetFilePath;
37
+ function declarationCompanionTargetPathFor(rule, targetFilePaths, targetFilePath) {
38
+ if (targetFilePath.endsWith(rule.declarationExtension)) {
39
+ return null;
40
+ }
41
+ if (!targetFilePath.endsWith(rule.jsExtension)) {
42
+ return undefined;
43
+ }
44
+ const targetPathWithoutExtension = targetFilePath.slice(0, -rule.jsExtension.length);
45
+ const declarationTargetFilePath = `${targetPathWithoutExtension}${rule.declarationExtension}`;
46
+ return targetFilePaths.has(declarationTargetFilePath) ? declarationTargetFilePath : undefined;
29
47
  }
30
- function findDeclarationCompanionTargetPath(bundle, jsTargetFilePath) {
31
- for (const [jsExtension, declarationExtension] of jsExtensionToDeclarationExtension) {
32
- if (jsTargetFilePath.endsWith(jsExtension)) {
33
- const candidatePath = `${jsTargetFilePath.slice(0, -jsExtension.length)}${declarationExtension}`;
34
- return findContentTargetPath(bundle, candidatePath);
48
+ function findDeclarationCompanionTargetPath(targetFilePaths, targetFilePath) {
49
+ for (const rule of [
50
+ { declarationExtension: '.d.mts', jsExtension: '.mjs' },
51
+ { declarationExtension: '.d.cts', jsExtension: '.cjs' },
52
+ { declarationExtension: '.d.ts', jsExtension: '.js' }
53
+ ]) {
54
+ const declarationTargetPath = declarationCompanionTargetPathFor(rule, targetFilePaths, targetFilePath);
55
+ if (declarationTargetPath !== undefined) {
56
+ return declarationTargetPath;
35
57
  }
36
58
  }
37
59
  return undefined;
38
60
  }
39
- function buildSubstitutionExportEntry(bundle, sourceFilePath) {
40
- if (isRootSourcePath(bundle, sourceFilePath)) {
61
+ function buildSubstitutionExportEntry(bundleName, lookups, sourceFilePath) {
62
+ if (lookups.rootSourceFilePaths.has(sourceFilePath)) {
41
63
  return undefined;
42
64
  }
43
- const jsTargetFilePath = findContent(bundle, sourceFilePath).fileDescription.targetFilePath;
44
- if (isDeclarationTargetFilePath(jsTargetFilePath)) {
65
+ const content = findBundleContent(bundleName, lookups.contentBySourceFilePath, sourceFilePath);
66
+ const jsTargetFilePath = content.fileDescription.targetFilePath;
67
+ const declarationTargetFilePath = findDeclarationCompanionTargetPath(lookups.targetFilePaths, jsTargetFilePath);
68
+ if (declarationTargetFilePath === null) {
45
69
  return undefined;
46
70
  }
47
- const declarationTargetFilePath = findDeclarationCompanionTargetPath(bundle, jsTargetFilePath);
48
71
  return [
49
72
  `./${jsTargetFilePath}`,
50
- {
73
+ pickBy({
51
74
  import: toImportTarget(jsTargetFilePath),
52
- ...(declarationTargetFilePath === undefined ? {} : { types: toImportTarget(declarationTargetFilePath) })
53
- }
75
+ types: declarationTargetFilePath === undefined ? undefined : toImportTarget(declarationTargetFilePath)
76
+ }, isDefined)
54
77
  ];
55
78
  }
56
79
  export function collectSubstitutionExports(bundle, substitutionPublicModuleSourcePaths) {
80
+ const lookups = createSubstitutionBundleLookups(bundle);
57
81
  const substitutionExports = {};
58
82
  for (const sourceFilePath of substitutionPublicModuleSourcePaths) {
59
- const entry = buildSubstitutionExportEntry(bundle, sourceFilePath);
83
+ const entry = buildSubstitutionExportEntry(bundle.name, lookups, sourceFilePath);
60
84
  if (entry !== undefined) {
61
85
  const [exportKey, exportEntry] = entry;
62
86
  substitutionExports[exportKey] = exportEntry;
@@ -1 +1 @@
1
- {"version":3,"file":"substitution-exports.js","sourceRoot":"","sources":["../../../../source/package-surface/substitution-exports.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"substitution-exports.js","sourceRoot":"","sources":["../../../../source/package-surface/substitution-exports.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,4 @@ export function explicitPackageSurface(packageInterface) {
10
10
  packageInterface
11
11
  };
12
12
  }
13
- export function isImplicitPackageSurface(packageSurface) {
14
- return packageSurface.mode === 'implicit';
15
- }
16
13
  //# sourceMappingURL=surface.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"surface.js","sourceRoot":"","sources":["../../../../source/package-surface/surface.ts"],"names":[],"mappings":"AAcA,MAAM,UAAU,sBAAsB,CAAC,iBAAyB;IAC5D,OAAO;QACH,IAAI,EAAE,UAAU;QAChB,iBAAiB;KACpB,CAAC;AACN,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,gBAAkC;IACrE,OAAO;QACH,IAAI,EAAE,UAAU;QAChB,gBAAgB;KACnB,CAAC;AACN,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,cAA8B;IACnE,OAAO,cAAc,CAAC,IAAI,KAAK,UAAU,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"surface.js","sourceRoot":"","sources":["../../../../source/package-surface/surface.ts"],"names":[],"mappings":"AAcA,MAAM,UAAU,sBAAsB,CAAC,iBAAyB;IAC5D,OAAO;QACH,IAAI,EAAE,UAAU;QAChB,iBAAiB;KACpB,CAAC;AACN,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,gBAAkC;IACrE,OAAO;QACH,IAAI,EAAE,UAAU;QAChB,gBAAgB;KACnB,CAAC;AACN,CAAC"}
package/package.json CHANGED
@@ -24,6 +24,7 @@
24
24
  "tar-stream": "3.1.8",
25
25
  "true-myth": "9.4.0",
26
26
  "ts-morph": "27.0.2",
27
+ "ts-pattern": "5.9.0",
27
28
  "type-fest": "5.6.0",
28
29
  "unix-permissions": "6.0.1",
29
30
  "zod": "4.4.3"
@@ -44,6 +45,9 @@
44
45
  "import": "./common/clock.js",
45
46
  "types": "./common/clock.d.ts"
46
47
  },
48
+ "./common/package-layout.js": {
49
+ "import": "./common/package-layout.js"
50
+ },
47
51
  "./common/typed-diff.js": {
48
52
  "import": "./common/typed-diff.js",
49
53
  "types": "./common/typed-diff.d.ts"
@@ -56,10 +60,17 @@
56
60
  "./packages/package-processor.composition.js": {
57
61
  "import": "./packages/package-processor.composition.js"
58
62
  },
63
+ "./packtory/packtory-results.js": {
64
+ "import": "./packtory/packtory-results.js",
65
+ "types": "./packtory/packtory-results.d.ts"
66
+ },
59
67
  "./packtory/packtory.js": {
60
68
  "import": "./packtory/packtory.js",
61
69
  "types": "./packtory/packtory.d.ts"
62
70
  },
71
+ "./packtory/partial-result.js": {
72
+ "import": "./packtory/partial-result.js"
73
+ },
63
74
  "./packtory/scheduler.js": {
64
75
  "import": "./packtory/scheduler.js",
65
76
  "types": "./packtory/scheduler.d.ts"
@@ -67,6 +78,10 @@
67
78
  "./report/preview/preview-document-diff.js": {
68
79
  "import": "./report/preview/preview-document-diff.js",
69
80
  "types": "./report/preview/preview-document-diff.d.ts"
81
+ },
82
+ "./report/release-diff/file-set-diff.js": {
83
+ "import": "./report/release-diff/file-set-diff.js",
84
+ "types": "./report/release-diff/file-set-diff.d.ts"
70
85
  }
71
86
  },
72
87
  "keywords": [
@@ -88,8 +103,6 @@
88
103
  "url": "git+ssh://git@github.com/enormora/packtory.git"
89
104
  },
90
105
  "sideEffects": [
91
- "./bundle-emitter/publish-error/publish-error-messages.js",
92
- "./bundle-emitter/repository-coherence.js",
93
106
  "./config/checks-schema.js",
94
107
  "./config/package-schemas.js",
95
108
  "./config/packtory-config-without-registry-schema.js",
@@ -99,9 +112,8 @@
99
112
  "./dead-code-eliminator/transform/named-declaration-kinds.js",
100
113
  "./packages/package-processor.composition.js",
101
114
  "./packages/packtory/packtory.entry-point.js",
102
- "./sbom/sbom-builder.js",
103
115
  "./tar/tarball-builder.js"
104
116
  ],
105
117
  "type": "module",
106
- "version": "0.0.22"
118
+ "version": "0.0.24"
107
119
  }
@@ -1,10 +1,7 @@
1
- import { indexBy } from 'remeda';
2
- function dependencyNamesToBundles(dependencyNames, bundles) {
3
- const bundlesByName = indexBy(bundles, (bundle) => {
4
- return bundle.name;
5
- });
1
+ import { packageNameMap } from "../../common/package-name-map.js";
2
+ function dependencyNamesToBundles(dependencyNames, bundlesByName) {
6
3
  return dependencyNames.map((dependencyName) => {
7
- const matchingBundle = bundlesByName[dependencyName];
4
+ const matchingBundle = bundlesByName.get(dependencyName);
8
5
  if (matchingBundle === undefined) {
9
6
  throw new Error(`Dependent bundle "${dependencyName}" not found`);
10
7
  }
@@ -12,9 +9,10 @@ function dependencyNamesToBundles(dependencyNames, bundles) {
12
9
  });
13
10
  }
14
11
  export function resolveBundleDependencies(packageConfig, existingBundles) {
12
+ const bundlesByName = packageNameMap(existingBundles);
15
13
  return {
16
- bundleDependencies: dependencyNamesToBundles(packageConfig.bundleDependencies ?? [], existingBundles),
17
- bundlePeerDependencies: dependencyNamesToBundles(packageConfig.bundlePeerDependencies ?? [], existingBundles)
14
+ bundleDependencies: dependencyNamesToBundles(packageConfig.bundleDependencies ?? [], bundlesByName),
15
+ bundlePeerDependencies: dependencyNamesToBundles(packageConfig.bundlePeerDependencies ?? [], bundlesByName)
18
16
  };
19
17
  }
20
18
  //# sourceMappingURL=bundle-dependency-resolution.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bundle-dependency-resolution.js","sourceRoot":"","sources":["../../../../../source/packtory/options/bundle-dependency-resolution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAGjC,SAAS,wBAAwB,CAC7B,eAAkC,EAClC,OAA2B;IAE3B,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE;QAC9C,OAAO,MAAM,CAAC,IAAI,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE;QAC1C,MAAM,cAAc,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;QACrD,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,qBAAqB,cAAc,aAAa,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,cAAc,CAAC;IAC1B,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,yBAAyB,CACrC,aAA4B,EAC5B,eAAmC;IAKnC,OAAO;QACH,kBAAkB,EAAE,wBAAwB,CAAC,aAAa,CAAC,kBAAkB,IAAI,EAAE,EAAE,eAAe,CAAC;QACrG,sBAAsB,EAAE,wBAAwB,CAAC,aAAa,CAAC,sBAAsB,IAAI,EAAE,EAAE,eAAe,CAAC;KAChH,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"bundle-dependency-resolution.js","sourceRoot":"","sources":["../../../../../source/packtory/options/bundle-dependency-resolution.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAElE,SAAS,wBAAwB,CAC7B,eAAkC,EAClC,aAA2C;IAE3C,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE;QAC1C,MAAM,cAAc,GAAG,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACzD,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,qBAAqB,cAAc,aAAa,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,cAAc,CAAC;IAC1B,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,yBAAyB,CACrC,aAA4B,EAC5B,eAAmC;IAKnC,MAAM,aAAa,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC;IAEtD,OAAO;QACH,kBAAkB,EAAE,wBAAwB,CAAC,aAAa,CAAC,kBAAkB,IAAI,EAAE,EAAE,aAAa,CAAC;QACnG,sBAAsB,EAAE,wBAAwB,CAAC,aAAa,CAAC,sBAAsB,IAAI,EAAE,EAAE,aAAa,CAAC;KAC9G,CAAC;AACN,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"version-trigger.js","sourceRoot":"","sources":["../../../../../source/packtory/options/version-trigger.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,qBAAqB,CAAC,cAA6B,EAAE,OAA+B;IAChG,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;QACxB,OAAO,cAAc,CAAC,KAAK,CAAC;IAChC,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;IACtC,CAAC;IACD,OAAO,OAAO,CAAC,UAAU,CAAC,cAAc,IAAI,OAAO,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,cAA6B,EAAE,OAA+B;IAChG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,OAAO,cAAc,CAAC,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC,cAAc,KAAK,SAAS,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,mBAAmB,CAC/B,cAA6B,EAC7B,OAA+B,EAC/B,OAAgB;IAEhB,IAAI,OAAO,EAAE,CAAC;QACV,OAAO,iBAAiB,CAAC;IAC7B,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QAChC,OAAO,QAAQ,CAAC;IACpB,CAAC;IACD,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;QACxB,OAAO,iBAAiB,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,UAAU,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QAClD,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"version-trigger.js","sourceRoot":"","sources":["../../../../../source/packtory/options/version-trigger.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,qBAAqB,CAAC,cAA6B,EAAE,OAA+B;IAChG,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;QACxB,OAAO,cAAc,CAAC,KAAK,CAAC;IAChC,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;IACtC,CAAC;IACD,OAAO,OAAO,CAAC,UAAU,CAAC,cAAc,IAAI,OAAO,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,cAA6B,EAAE,OAA+B;IAChG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,OAAO,cAAc,CAAC,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC,cAAc,KAAK,SAAS,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,mBAAmB,CAC/B,cAA6B,EAC7B,OAA+B,EAC/B,OAAgB;IAEhB,IAAI,OAAO,EAAE,CAAC;QACV,OAAO,iBAAiB,CAAC;IAC7B,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QAChC,OAAO,QAAQ,CAAC;IACpB,CAAC;IACD,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;QACxB,OAAO,iBAAiB,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,UAAU,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QAClD,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC"}