packtory 0.0.22 → 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.
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
@@ -10,29 +10,36 @@ export type UnsatisfiedPeerDependency = {
10
10
  readonly packageName: string;
11
11
  readonly peer: string;
12
12
  };
13
+ export declare const packPackageFailureType: {
14
+ readonly bundleDependenciesUnsupported: "bundle-dependencies-unsupported";
15
+ readonly packageNotFound: "package-not-found";
16
+ readonly peerDependenciesUnsatisfied: "peer-dependencies-unsatisfied";
17
+ readonly vendorInvalidDependencyName: "vendor-invalid-dependency-name";
18
+ readonly vendorSymlinkTargetOutsidePackage: "vendor-symlink-target-outside-package";
19
+ };
13
20
  type PeerDependenciesUnsatisfiedFailure = {
14
- readonly type: 'peer-dependencies-unsatisfied';
21
+ readonly type: typeof packPackageFailureType.peerDependenciesUnsatisfied;
15
22
  readonly packageName: string;
16
23
  readonly items: readonly UnsatisfiedPeerDependency[];
17
24
  };
18
25
  type VendorSymlinkOutsidePackageFailure = {
19
- readonly type: 'vendor-symlink-target-outside-package';
26
+ readonly type: typeof packPackageFailureType.vendorSymlinkTargetOutsidePackage;
20
27
  readonly packageName: string;
21
28
  readonly vendoredPackageName: string;
22
29
  readonly entryRelativePath: string;
23
30
  readonly resolvedTargetPath: string;
24
31
  };
25
32
  type VendorInvalidDependencyNameFailure = {
26
- readonly type: 'vendor-invalid-dependency-name';
33
+ readonly type: typeof packPackageFailureType.vendorInvalidDependencyName;
27
34
  readonly packageName: string;
28
35
  readonly sourcePackageName: string | undefined;
29
36
  readonly invalidDependencyName: string;
30
37
  };
31
38
  export type PackPackageFailure = PeerDependenciesUnsatisfiedFailure | VendorInvalidDependencyNameFailure | VendorSymlinkOutsidePackageFailure | {
32
- readonly type: 'bundle-dependencies-unsupported';
39
+ readonly type: typeof packPackageFailureType.bundleDependenciesUnsupported;
33
40
  readonly packageName: string;
34
41
  } | {
35
- readonly type: 'package-not-found';
42
+ readonly type: typeof packPackageFailureType.packageNotFound;
36
43
  readonly packageName: string;
37
44
  };
38
45
  export type BuildAndPublishAllOptions = {
@@ -43,6 +50,14 @@ export type ResolveAndLinkAllOptions = {
43
50
  readonly collectReport?: boolean;
44
51
  };
45
52
  export type BuildReport = ReportBuildReport;
53
+ export declare const configErrorType = "config";
54
+ export declare const partialFailureType = "partial";
55
+ export declare const releaseAnalysisClassification: {
56
+ readonly dependencyOnly: "dependency-only";
57
+ readonly firstPublish: "first-publish";
58
+ readonly substantive: "substantive";
59
+ readonly unchanged: "unchanged";
60
+ };
46
61
  export type PublishAllOutcome = {
47
62
  readonly result: PublishAllResult;
48
63
  readonly getReport: () => BuildReport | undefined;
@@ -52,28 +67,28 @@ export type ResolveAndLinkAllOutcome = {
52
67
  readonly getReport: () => BuildReport | undefined;
53
68
  };
54
69
  export type ConfigError = {
55
- type: 'config';
70
+ type: typeof configErrorType;
56
71
  issues: readonly string[];
57
72
  };
58
73
  export type PublishFailure = CheckError | ConfigError | (PartialError<BuildAndPublishResult> & {
59
- type: 'partial';
74
+ type: typeof partialFailureType;
60
75
  });
61
76
  export type PublishAllResult = Result<readonly BuildAndPublishResult[], PublishFailure>;
62
77
  export type PartialErrorResult = {
63
- type: 'partial';
78
+ type: typeof partialFailureType;
64
79
  error: PartialError<ResolvedPackage>;
65
80
  };
66
81
  export type ResolveAndLinkFailure = CheckError | ConfigError | PartialErrorResult;
67
82
  export type ResolveAndLinkAllResult = Result<readonly ResolvedPackage[], ResolveAndLinkFailure>;
68
83
  export type ReleaseDiffFailure = CheckError | ConfigError | (PartialError<PackageReleaseDiff> & {
69
- type: 'partial';
84
+ type: typeof partialFailureType;
70
85
  });
71
86
  export type ReleaseDiffAllResult = Result<readonly PackageReleaseDiff[], ReleaseDiffFailure>;
72
87
  export type ReleaseDiffAllOutcome = {
73
88
  readonly result: ReleaseDiffAllResult;
74
89
  readonly getReport: () => BuildReport;
75
90
  };
76
- export type PackageReleaseAnalysisClassification = 'dependency-only' | 'first-publish' | 'substantive' | 'unchanged';
91
+ export type PackageReleaseAnalysisClassification = (typeof releaseAnalysisClassification)[keyof typeof releaseAnalysisClassification];
77
92
  export type PackageReleaseAnalysis = {
78
93
  readonly classification: PackageReleaseAnalysisClassification;
79
94
  readonly latestPublishedAt?: Date | undefined;
@@ -86,7 +101,7 @@ export type ReleaseAnalysis = {
86
101
  readonly packageAnalyses: readonly PackageReleaseAnalysis[];
87
102
  };
88
103
  export type ReleaseAnalysisFailure = CheckError | ConfigError | (PartialError<PackageReleaseAnalysis> & {
89
- type: 'partial';
104
+ type: typeof partialFailureType;
90
105
  });
91
106
  export type ReleaseAnalysisResult = Result<ReleaseAnalysis, ReleaseAnalysisFailure>;
92
107
  export type ReleaseAnalysisOutcome = {
@@ -1 +1 @@
1
- {"version":3,"file":"packtory-results.d.ts","sourceRoot":"","sources":["../../../../source/packtory/packtory-results.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"packtory-results.d.ts","sourceRoot":"","sources":["../../../../source/packtory/packtory-results.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,27 @@
1
+ export const packPackageFailureType = {
2
+ bundleDependenciesUnsupported: 'bundle-dependencies-unsupported',
3
+ packageNotFound: 'package-not-found',
4
+ peerDependenciesUnsatisfied: 'peer-dependencies-unsatisfied',
5
+ vendorInvalidDependencyName: 'vendor-invalid-dependency-name',
6
+ vendorSymlinkTargetOutsidePackage: 'vendor-symlink-target-outside-package'
7
+ };
8
+ export const checksErrorType = 'checks';
9
+ export const configErrorType = 'config';
10
+ export const partialFailureType = 'partial';
11
+ export const previewResultType = {
12
+ checks: checksErrorType,
13
+ config: configErrorType,
14
+ partial: partialFailureType,
15
+ success: 'success'
16
+ };
17
+ export const releaseAnalysisClassification = {
18
+ dependencyOnly: 'dependency-only',
19
+ firstPublish: 'first-publish',
20
+ substantive: 'substantive',
21
+ unchanged: 'unchanged'
22
+ };
1
23
  export function configError(issues) {
2
- return { type: 'config', issues };
24
+ return { type: configErrorType, issues };
3
25
  }
4
26
  export function createPublishAllOutcome(result, getReport) {
5
27
  return { result, getReport };
@@ -8,10 +30,10 @@ export function createResolveAndLinkAllOutcome(result, getReport) {
8
30
  return { result, getReport };
9
31
  }
10
32
  export function publishPartialFailure(error) {
11
- return { type: 'partial', ...error };
33
+ return { type: partialFailureType, ...error };
12
34
  }
13
35
  export function resolvePartialFailure(error) {
14
- return { type: 'partial', error };
36
+ return { type: partialFailureType, error };
15
37
  }
16
38
  export function createReleaseDiffAllOutcome(result, getReport) {
17
39
  return { result, getReport };
@@ -20,10 +42,10 @@ export function createReleaseAnalysisOutcome(result, getReport) {
20
42
  return { result, getReport };
21
43
  }
22
44
  export function releaseDiffPartialFailure(error) {
23
- return { type: 'partial', ...error };
45
+ return { type: partialFailureType, ...error };
24
46
  }
25
47
  export function releaseAnalysisPartialFailure(error) {
26
- return { type: 'partial', ...error };
48
+ return { type: partialFailureType, ...error };
27
49
  }
28
50
  export function createPackOutcome(result) {
29
51
  return { result };
@@ -1 +1 @@
1
- {"version":3,"file":"packtory-results.js","sourceRoot":"","sources":["../../../../source/packtory/packtory-results.ts"],"names":[],"mappings":"AAqDA,MAAM,UAAU,WAAW,CAAC,MAAyB;IACjD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AACtC,CAAC;AAOD,MAAM,UAAU,uBAAuB,CACnC,MAAwB,EACxB,SAAwC;IAExC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AACjC,CAAC;AAOD,MAAM,UAAU,8BAA8B,CAC1C,MAA+B,EAC/B,SAAwC;IAExC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AACjC,CAAC;AAWD,MAAM,UAAU,qBAAqB,CAAC,KAA0C;IAC5E,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,CAAC;AACzC,CAAC;AAOD,MAAM,UAAU,qBAAqB,CAAC,KAAoC;IACtE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AACtC,CAAC;AAaD,MAAM,UAAU,2BAA2B,CACvC,MAA4B,EAC5B,SAA4B;IAE5B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AACjC,CAAC;AA4BD,MAAM,UAAU,4BAA4B,CACxC,MAA6B,EAC7B,SAA4B;IAE5B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAAuC;IAC7E,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,KAA2C;IACrF,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,CAAC;AACzC,CAAC;AAkBD,MAAM,UAAU,iBAAiB,CAAC,MAAkB;IAChD,OAAO,EAAE,MAAM,EAAE,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"packtory-results.js","sourceRoot":"","sources":["../../../../source/packtory/packtory-results.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,MAAM,sBAAsB,GAAG;IAClC,6BAA6B,EAAE,iCAAiC;IAChE,eAAe,EAAE,mBAAmB;IACpC,2BAA2B,EAAE,+BAA+B;IAC5D,2BAA2B,EAAE,gCAAgC;IAC7D,iCAAiC,EAAE,uCAAuC;CACpE,CAAC;AAyCX,MAAM,CAAC,MAAM,eAAe,GAAG,QAAQ,CAAC;AACxC,MAAM,CAAC,MAAM,eAAe,GAAG,QAAQ,CAAC;AACxC,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAAC;AAC5C,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC7B,MAAM,EAAE,eAAe;IACvB,MAAM,EAAE,eAAe;IACvB,OAAO,EAAE,kBAAkB;IAC3B,OAAO,EAAE,SAAS;CACZ,CAAC;AACX,MAAM,CAAC,MAAM,6BAA6B,GAAG;IACzC,cAAc,EAAE,iBAAiB;IACjC,YAAY,EAAE,eAAe;IAC7B,WAAW,EAAE,aAAa;IAC1B,SAAS,EAAE,WAAW;CAChB,CAAC;AAEX,MAAM,UAAU,WAAW,CAAC,MAAyB;IACjD,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC;AAC7C,CAAC;AAOD,MAAM,UAAU,uBAAuB,CACnC,MAAwB,EACxB,SAAwC;IAExC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AACjC,CAAC;AAOD,MAAM,UAAU,8BAA8B,CAC1C,MAA+B,EAC/B,SAAwC;IAExC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AACjC,CAAC;AAcD,MAAM,UAAU,qBAAqB,CAAC,KAA0C;IAC5E,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,KAAK,EAAE,CAAC;AAClD,CAAC;AAOD,MAAM,UAAU,qBAAqB,CAAC,KAAoC;IACtE,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC;AAC/C,CAAC;AAgBD,MAAM,UAAU,2BAA2B,CACvC,MAA4B,EAC5B,SAA4B;IAE5B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AACjC,CAAC;AA6BD,MAAM,UAAU,4BAA4B,CACxC,MAA6B,EAC7B,SAA4B;IAE5B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAAuC;IAC7E,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,KAAK,EAAE,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,KAA2C;IACrF,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,KAAK,EAAE,CAAC;AAClD,CAAC;AAkBD,MAAM,UAAU,iBAAiB,CAAC,MAAkB;IAChD,OAAO,EAAE,MAAM,EAAE,CAAC;AACtB,CAAC"}
@@ -20,40 +20,52 @@ function createValidatedRunners(dependencies) {
20
20
  export function createPacktory(dependencies) {
21
21
  const { progressBroadcaster } = dependencies;
22
22
  const { resolveAndLinkAllValidated, runBuildAndPublishValidated, diffAgainstLatestPublishedValidated, analyzeReleaseAgainstLatestPublishedValidated, runPackValidated } = createValidatedRunners(dependencies);
23
- async function resolveAndLinkAllPublic(config, options) {
24
- const reporting = maybeAttachAggregator(progressBroadcaster, options?.collectReport);
23
+ async function runReportedOperation(args) {
24
+ const reporting = args.attachReporting();
25
25
  try {
26
- const validation = validateConfigWithoutRegistry(config);
27
- if (validation.isErr) {
28
- return createResolveAndLinkAllOutcome(Result.err(configError(validation.error)), reporting.getReport);
29
- }
30
- const result = await resolveAndLinkAllValidated(validation.value);
31
- if (result.isErr) {
32
- return createResolveAndLinkAllOutcome(Result.err(result.error), reporting.getReport);
33
- }
34
- return createResolveAndLinkAllOutcome(Result.ok(result.value), reporting.getReport);
26
+ const validation = args.validate(args.config);
27
+ const result = validation.isErr
28
+ ? args.createValidationErrorResult(validation.error)
29
+ : await args.runValidated(validation.value);
30
+ return args.createOutcome(result, reporting.getReport);
35
31
  }
36
32
  finally {
37
33
  reporting.dispose();
38
34
  }
39
35
  }
36
+ async function resolveAndLinkAllPublic(config, options) {
37
+ return runReportedOperation({
38
+ config,
39
+ attachReporting() {
40
+ return maybeAttachAggregator(progressBroadcaster, options?.collectReport);
41
+ },
42
+ validate: validateConfigWithoutRegistry,
43
+ runValidated: resolveAndLinkAllValidated,
44
+ createValidationErrorResult(issues) {
45
+ return Result.err(configError(issues));
46
+ },
47
+ createOutcome: createResolveAndLinkAllOutcome
48
+ });
49
+ }
40
50
  async function runBuildAndPublish(validated, options) {
41
51
  emitEffectiveConfigPerPackage(progressBroadcaster, validated.packtoryConfig);
42
52
  return runBuildAndPublishValidated(validated, options, resolveAndLinkAllValidated);
43
53
  }
44
54
  async function buildAndPublishAllPublic(config, options) {
45
- const reporting = maybeAttachAggregator(progressBroadcaster, options.collectReport);
46
- try {
47
- const validation = validateConfig(config);
48
- if (validation.isErr) {
49
- return createPublishAllOutcome(Result.err(configError(validation.error)), reporting.getReport);
50
- }
51
- const result = await runBuildAndPublish(validation.value, options);
52
- return createPublishAllOutcome(result, reporting.getReport);
53
- }
54
- finally {
55
- reporting.dispose();
56
- }
55
+ return runReportedOperation({
56
+ config,
57
+ attachReporting() {
58
+ return maybeAttachAggregator(progressBroadcaster, options.collectReport);
59
+ },
60
+ validate: validateConfig,
61
+ async runValidated(validated) {
62
+ return runBuildAndPublish(validated, options);
63
+ },
64
+ createValidationErrorResult(issues) {
65
+ return Result.err(configError(issues));
66
+ },
67
+ createOutcome: createPublishAllOutcome
68
+ });
57
69
  }
58
70
  async function packPackagePublic(config, options) {
59
71
  const validation = validateConfigWithoutRegistry(config);
@@ -64,34 +76,38 @@ export function createPacktory(dependencies) {
64
76
  return createPackOutcome(result);
65
77
  }
66
78
  async function diffAgainstLatestPublishedPublic(config) {
67
- const reporting = attachAggregator(progressBroadcaster);
68
- try {
69
- const validation = validateConfig(config);
70
- if (validation.isErr) {
71
- return createReleaseDiffAllOutcome(Result.err(configError(validation.error)), reporting.getReport);
72
- }
73
- emitEffectiveConfigPerPackage(progressBroadcaster, validation.value.packtoryConfig);
74
- const result = await diffAgainstLatestPublishedValidated(validation.value, resolveAndLinkAllValidated);
75
- return createReleaseDiffAllOutcome(result, reporting.getReport);
76
- }
77
- finally {
78
- reporting.dispose();
79
- }
79
+ return runReportedOperation({
80
+ config,
81
+ attachReporting() {
82
+ return attachAggregator(progressBroadcaster);
83
+ },
84
+ validate: validateConfig,
85
+ async runValidated(validated) {
86
+ emitEffectiveConfigPerPackage(progressBroadcaster, validated.packtoryConfig);
87
+ return diffAgainstLatestPublishedValidated(validated, resolveAndLinkAllValidated);
88
+ },
89
+ createValidationErrorResult(issues) {
90
+ return Result.err(configError(issues));
91
+ },
92
+ createOutcome: createReleaseDiffAllOutcome
93
+ });
80
94
  }
81
95
  async function analyzeReleaseAgainstLatestPublishedPublic(config) {
82
- const reporting = attachAggregator(progressBroadcaster);
83
- try {
84
- const validation = validateConfig(config);
85
- if (validation.isErr) {
86
- return createReleaseAnalysisOutcome(Result.err(configError(validation.error)), reporting.getReport);
87
- }
88
- emitEffectiveConfigPerPackage(progressBroadcaster, validation.value.packtoryConfig);
89
- const result = await analyzeReleaseAgainstLatestPublishedValidated(validation.value, resolveAndLinkAllValidated);
90
- return createReleaseAnalysisOutcome(result, reporting.getReport);
91
- }
92
- finally {
93
- reporting.dispose();
94
- }
96
+ return runReportedOperation({
97
+ config,
98
+ attachReporting() {
99
+ return attachAggregator(progressBroadcaster);
100
+ },
101
+ validate: validateConfig,
102
+ async runValidated(validated) {
103
+ emitEffectiveConfigPerPackage(progressBroadcaster, validated.packtoryConfig);
104
+ return analyzeReleaseAgainstLatestPublishedValidated(validated, resolveAndLinkAllValidated);
105
+ },
106
+ createValidationErrorResult(issues) {
107
+ return Result.err(configError(issues));
108
+ },
109
+ createOutcome: createReleaseAnalysisOutcome
110
+ });
95
111
  }
96
112
  return {
97
113
  analyzeReleaseAgainstLatestPublished: analyzeReleaseAgainstLatestPublishedPublic,
@@ -1 +1 @@
1
- {"version":3,"file":"packtory.js","sourceRoot":"","sources":["../../../../source/packtory/packtory.ts"],"names":[],"mappings":"AAAA,iMAAiM;AACjM,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,OAAO,EAAE,cAAc,EAAE,6BAA6B,EAA0B,MAAM,yBAAyB,CAAC;AAKhH,OAAO,EAAE,mDAAmD,EAAE,MAAM,gCAAgC,CAAC;AACrG,OAAO,EAAE,yCAAyC,EAAE,MAAM,4BAA4B,CAAC;AACvF,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAChH,OAAO,EAAE,gCAAgC,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,iCAAiC,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EACH,4BAA4B,EAC5B,WAAW,EACX,iBAAiB,EACjB,uBAAuB,EACvB,2BAA2B,EAC3B,8BAA8B,EAqBjC,MAAM,uBAAuB,CAAC;AA6C/B,SAAS,sBAAsB,CAAC,YAAkC;IAC9D,OAAO;QACH,0BAA0B,EAAE,gCAAgC,CAAC,YAAY,CAAC;QAC1E,2BAA2B,EAAE,iCAAiC,CAAC,YAAY,CAAC;QAC5E,mCAAmC,EAAE,yCAAyC,CAAC,YAAY,CAAC;QAC5F,6CAA6C,EACzC,mDAAmD,CAAC,YAAY,CAAC;QACrE,gBAAgB,EAAE,sBAAsB,CAAC,YAAY,CAAC;KACzD,CAAC;AACN,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,YAAkC;IAC7D,MAAM,EAAE,mBAAmB,EAAE,GAAG,YAAY,CAAC;IAC7C,MAAM,EACF,0BAA0B,EAC1B,2BAA2B,EAC3B,mCAAmC,EACnC,6CAA6C,EAC7C,gBAAgB,EACnB,GAAG,sBAAsB,CAAC,YAAY,CAAC,CAAC;IAEzC,KAAK,UAAU,uBAAuB,CAClC,MAAe,EACf,OAAkC;QAElC,MAAM,SAAS,GAAG,qBAAqB,CAAC,mBAAmB,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;QACrF,IAAI,CAAC;YACD,MAAM,UAAU,GAAG,6BAA6B,CAAC,MAAM,CAAC,CAAC;YACzD,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;gBACnB,OAAO,8BAA8B,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;YAC1G,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAClE,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,OAAO,8BAA8B,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;YACzF,CAAC;YACD,OAAO,8BAA8B,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QACxF,CAAC;gBAAS,CAAC;YACP,SAAS,CAAC,OAAO,EAAE,CAAC;QACxB,CAAC;IACL,CAAC;IAED,KAAK,UAAU,kBAAkB,CAC7B,SAA4B,EAC5B,OAAkC;QAElC,6BAA6B,CAAC,mBAAmB,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;QAC7E,OAAO,2BAA2B,CAAC,SAAS,EAAE,OAAO,EAAE,0BAA0B,CAAC,CAAC;IACvF,CAAC;IAED,KAAK,UAAU,wBAAwB,CACnC,MAAe,EACf,OAAkC;QAElC,MAAM,SAAS,GAAG,qBAAqB,CAAC,mBAAmB,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QACpF,IAAI,CAAC;YACD,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;gBACnB,OAAO,uBAAuB,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;YACnG,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACnE,OAAO,uBAAuB,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAChE,CAAC;gBAAS,CAAC;YACP,SAAS,CAAC,OAAO,EAAE,CAAC;QACxB,CAAC;IACL,CAAC;IAED,KAAK,UAAU,iBAAiB,CAAC,MAAe,EAAE,OAA0B;QACxE,MAAM,UAAU,GAAG,6BAA6B,CAAC,MAAM,CAAC,CAAC;QACzD,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,0BAA0B,CAAC,CAAC;QAC7F,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,UAAU,gCAAgC,CAAC,MAAe;QAC3D,MAAM,SAAS,GAAG,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;QACxD,IAAI,CAAC;YACD,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;gBACnB,OAAO,2BAA2B,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;YACvG,CAAC;YAED,6BAA6B,CAAC,mBAAmB,EAAE,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YACpF,MAAM,MAAM,GAAG,MAAM,mCAAmC,CAAC,UAAU,CAAC,KAAK,EAAE,0BAA0B,CAAC,CAAC;YACvG,OAAO,2BAA2B,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QACpE,CAAC;gBAAS,CAAC;YACP,SAAS,CAAC,OAAO,EAAE,CAAC;QACxB,CAAC;IACL,CAAC;IAED,KAAK,UAAU,0CAA0C,CAAC,MAAe;QACrE,MAAM,SAAS,GAAG,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;QACxD,IAAI,CAAC;YACD,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;gBACnB,OAAO,4BAA4B,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;YACxG,CAAC;YAED,6BAA6B,CAAC,mBAAmB,EAAE,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YACpF,MAAM,MAAM,GAAG,MAAM,6CAA6C,CAC9D,UAAU,CAAC,KAAK,EAChB,0BAA0B,CAC7B,CAAC;YACF,OAAO,4BAA4B,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QACrE,CAAC;gBAAS,CAAC;YACP,SAAS,CAAC,OAAO,EAAE,CAAC;QACxB,CAAC;IACL,CAAC;IAED,OAAO;QACH,oCAAoC,EAAE,0CAA0C;QAChF,kBAAkB,EAAE,wBAAwB;QAC5C,0BAA0B,EAAE,gCAAgC;QAC5D,iBAAiB,EAAE,uBAAuB;QAC1C,WAAW,EAAE,iBAAiB;KACjC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"packtory.js","sourceRoot":"","sources":["../../../../source/packtory/packtory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { partialFailureType } from "./packtory-results.js";
2
+ function isPartialSuccessLike(value) {
3
+ return typeof value === 'object' && value !== null && 'succeeded' in value && 'failures' in value;
4
+ }
5
+ export function succeededResultsFrom(result) {
6
+ if (result.isOk) {
7
+ return result.value;
8
+ }
9
+ return isPartialSuccessLike(result.error) ? result.error.succeeded : [];
10
+ }
11
+ export function isSuccessOrPartialSuccess(result) {
12
+ return result.isOk || succeededResultsFrom(result).length > 0;
13
+ }
14
+ export function partialFailureMessages(error) {
15
+ return error.failures.map((failure) => {
16
+ return failure.message;
17
+ });
18
+ }
19
+ export function mapResolvePartialFailure(error) {
20
+ return {
21
+ type: partialFailureType,
22
+ succeeded: [],
23
+ failures: error.error.failures
24
+ };
25
+ }
26
+ //# sourceMappingURL=partial-result.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partial-result.js","sourceRoot":"","sources":["../../../../source/packtory/partial-result.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAA2B,MAAM,uBAAuB,CAAC;AAMpF,SAAS,oBAAoB,CAAI,KAAc;IAC3C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,WAAW,IAAI,KAAK,IAAI,UAAU,IAAI,KAAK,CAAC;AACtG,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAc,MAAsC;IACpF,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,MAAM,CAAC,KAAK,CAAC;IACxB,CAAC;IAED,OAAO,oBAAoB,CAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAc,MAAsC;IACzF,OAAO,MAAM,CAAC,IAAI,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAI,KAAsB;IAC5D,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAClC,OAAO,OAAO,CAAC,OAAO,CAAC;IAC3B,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAI,KAAyB;IACjE,OAAO;QACH,IAAI,EAAE,kBAAkB;QACxB,SAAS,EAAE,EAAE;QACb,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ;KACjC,CAAC;AACN,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { PublishedReleaseArtifacts } from '../bundle-emitter/fetch-published-artifacts.ts';
2
+ export declare const publishedReleaseStatus: {
3
+ readonly alreadyPublished: "already-published";
4
+ readonly initialVersion: "initial-version";
5
+ readonly newVersion: "new-version";
6
+ };
7
+ export type PublishedReleaseStatus = (typeof publishedReleaseStatus)[keyof typeof publishedReleaseStatus];
8
+ export {};
9
+ //# sourceMappingURL=published-release-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"published-release-state.d.ts","sourceRoot":"","sources":["../../../../source/packtory/published-release-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gDAAgD;AAE/F,eAAO,MAAM,sBAAsB;;;;CAIzB;AAEV,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,OAAO,sBAAsB,CAAC"}
@@ -0,0 +1,12 @@
1
+ export const publishedReleaseStatus = {
2
+ alreadyPublished: 'already-published',
3
+ initialVersion: 'initial-version',
4
+ newVersion: 'new-version'
5
+ };
6
+ export function wasAlreadyPublished(buildResult) {
7
+ return buildResult.status === publishedReleaseStatus.alreadyPublished;
8
+ }
9
+ export function publishedReleaseArtifactsOf(buildResult) {
10
+ return buildResult.previousReleaseArtifacts.isJust ? buildResult.previousReleaseArtifacts.value : undefined;
11
+ }
12
+ //# sourceMappingURL=published-release-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"published-release-state.js","sourceRoot":"","sources":["../../../../source/packtory/published-release-state.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,sBAAsB,GAAG;IAClC,gBAAgB,EAAE,mBAAmB;IACrC,cAAc,EAAE,iBAAiB;IACjC,UAAU,EAAE,aAAa;CACnB,CAAC;AAWX,MAAM,UAAU,mBAAmB,CAAC,WAA0C;IAC1E,OAAO,WAAW,CAAC,MAAM,KAAK,sBAAsB,CAAC,gBAAgB,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,2BAA2B,CACvC,WAA0C;IAE1C,OAAO,WAAW,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAChH,CAAC"}
@@ -1,78 +1,83 @@
1
1
  import { isDeepStrictEqual } from 'node:util';
2
2
  import { maxDate } from "../common/max-date.js";
3
+ import { packageManifestFilePath } from "../common/package-layout.js";
4
+ import { fileDescriptionByPath } from "../file-manager/file-description-by-path.js";
3
5
  import { sbomFilePath } from "../sbom/sbom-file.js";
4
- const dependencyDerivedFilePaths = new Set(['package.json', sbomFilePath]);
5
- const dependencyOnlyPackageJsonFields = new Set([
6
- 'bundleDependencies',
7
- 'bundledDependencies',
8
- 'dependencies',
9
- 'optionalDependencies',
10
- 'peerDependencies',
11
- 'peerDependenciesMeta',
12
- 'version'
13
- ]);
14
- const unchangedPriority = 0;
15
- const dependencyOnlyPriority = 1;
16
- const substantivePriority = 2;
17
- const firstPublishPriority = 3;
18
- function parseJsonFile(file) {
19
- const { content } = file;
20
- return (() => {
21
- try {
22
- return { invalid: false, value: JSON.parse(content) };
23
- }
24
- catch {
25
- return { invalid: true };
26
- }
27
- })();
6
+ import { releaseAnalysisClassification } from "./packtory-results.js";
7
+ import { publishedReleaseStatus } from "./published-release-state.js";
8
+ function dependencyOnlyPackageJsonFields() {
9
+ return [
10
+ 'bundleDependencies',
11
+ 'bundledDependencies',
12
+ 'dependencies',
13
+ 'optionalDependencies',
14
+ 'peerDependencies',
15
+ 'peerDependenciesMeta',
16
+ 'version'
17
+ ];
28
18
  }
29
- function packageJsonValueForComparison(index) {
30
- const file = index.get('package.json');
31
- if (file === undefined) {
32
- return { invalid: true };
19
+ function isDependencyOnlyPackageJsonField(key) {
20
+ return dependencyOnlyPackageJsonFields().includes(key);
21
+ }
22
+ function parseJsonFile(fileContent) {
23
+ try {
24
+ return JSON.parse(fileContent);
25
+ }
26
+ catch {
27
+ return Number.NEGATIVE_INFINITY;
33
28
  }
34
- return parseJsonFile(file);
35
29
  }
36
- function maxClassificationPriority(current, nextPriority) {
37
- const [highestPriority = unchangedPriority] = [current, nextPriority].toSorted((left, right) => {
38
- return right - left;
39
- });
40
- return highestPriority;
30
+ function packageJsonValueForComparison(index) {
31
+ const packageJsonFile = index.get(packageManifestFilePath);
32
+ return packageJsonFile === undefined ? Number.NEGATIVE_INFINITY : parseJsonFile(packageJsonFile.content);
33
+ }
34
+ function includesClassification(current, next, classification) {
35
+ return current === classification || next === classification;
36
+ }
37
+ function moreSignificantClassification(current, next) {
38
+ if (includesClassification(current, next, releaseAnalysisClassification.firstPublish)) {
39
+ return releaseAnalysisClassification.firstPublish;
40
+ }
41
+ if (includesClassification(current, next, releaseAnalysisClassification.substantive)) {
42
+ return releaseAnalysisClassification.substantive;
43
+ }
44
+ return releaseAnalysisClassification.dependencyOnly;
41
45
  }
42
46
  function hasLatestPublishedAt(analysis) {
43
47
  return analysis.latestPublishedAt !== undefined;
44
48
  }
49
+ function hasInvalidPackageJsonValues(previousValue, newValue) {
50
+ return previousValue === Number.NEGATIVE_INFINITY || newValue === Number.NEGATIVE_INFINITY;
51
+ }
45
52
  function normalizePackageJsonForDependencyComparison(value) {
46
53
  return JSON.parse(JSON.stringify(value, (key, entryValue) => {
47
- return dependencyOnlyPackageJsonFields.has(key) ? undefined : entryValue;
54
+ return isDependencyOnlyPackageJsonField(key) ? undefined : entryValue;
48
55
  }));
49
56
  }
50
- function indexFiles(files) {
51
- return new Map(files.map((file) => {
52
- return [file.filePath, file];
53
- }));
57
+ function isDependencyDerivedFilePath(filePath) {
58
+ return filePath === packageManifestFilePath || filePath === sbomFilePath();
54
59
  }
55
60
  function nonDependencyDerivedFilesMatch(previousIndex, newIndex) {
56
- return Array.from(previousIndex.entries()).every(([filePath, previousFile]) => {
57
- if (dependencyDerivedFilePaths.has(filePath)) {
58
- return true;
59
- }
61
+ for (const [filePath, previousFile] of previousIndex.entries()) {
60
62
  const currentFile = newIndex.get(filePath);
61
- return isDeepStrictEqual(previousFile, currentFile);
62
- });
63
+ if (!isDependencyDerivedFilePath(filePath) && !isDeepStrictEqual(previousFile, currentFile)) {
64
+ return false;
65
+ }
66
+ }
67
+ return true;
63
68
  }
64
69
  function packageJsonChangeIsDependencyOnly(previousIndex, newIndex) {
65
70
  const previousPackageJsonValue = packageJsonValueForComparison(previousIndex);
66
71
  const newPackageJsonValue = packageJsonValueForComparison(newIndex);
67
- if (previousPackageJsonValue.invalid || newPackageJsonValue.invalid) {
72
+ if (hasInvalidPackageJsonValues(previousPackageJsonValue, newPackageJsonValue)) {
68
73
  return false;
69
74
  }
70
- return isDeepStrictEqual(normalizePackageJsonForDependencyComparison(previousPackageJsonValue.value), normalizePackageJsonForDependencyComparison(newPackageJsonValue.value));
75
+ return isDeepStrictEqual(normalizePackageJsonForDependencyComparison(previousPackageJsonValue), normalizePackageJsonForDependencyComparison(newPackageJsonValue));
71
76
  }
72
77
  function createComparisonIndexes(previousFiles, newFiles) {
73
78
  return {
74
- previousIndex: indexFiles(previousFiles),
75
- newIndex: indexFiles(newFiles)
79
+ previousIndex: fileDescriptionByPath(previousFiles),
80
+ newIndex: fileDescriptionByPath(newFiles)
76
81
  };
77
82
  }
78
83
  function isDependencyOnlyPublishedChange(previousFiles, newFiles) {
@@ -92,9 +97,9 @@ export function classifyPackageRelease(buildResult, newFiles) {
92
97
  const latestPublishedAt = buildResult.previousReleaseArtifacts.isJust
93
98
  ? buildResult.previousReleaseArtifacts.value.publishedAt
94
99
  : undefined;
95
- if (buildResult.status === 'already-published') {
100
+ if (buildResult.status === publishedReleaseStatus.alreadyPublished) {
96
101
  return {
97
- classification: 'unchanged',
102
+ classification: releaseAnalysisClassification.unchanged,
98
103
  latestPublishedAt,
99
104
  latestPublishedVersion,
100
105
  name: buildResult.bundle.name
@@ -102,13 +107,13 @@ export function classifyPackageRelease(buildResult, newFiles) {
102
107
  }
103
108
  if (buildResult.previousReleaseArtifacts.isNothing) {
104
109
  return {
105
- classification: 'first-publish',
110
+ classification: releaseAnalysisClassification.firstPublish,
106
111
  name: buildResult.bundle.name
107
112
  };
108
113
  }
109
114
  const classification = isDependencyOnlyPublishedChange(buildResult.previousReleaseArtifacts.value.files, newFiles)
110
- ? 'dependency-only'
111
- : 'substantive';
115
+ ? releaseAnalysisClassification.dependencyOnly
116
+ : releaseAnalysisClassification.substantive;
112
117
  return {
113
118
  classification,
114
119
  latestPublishedAt,
@@ -117,35 +122,23 @@ export function classifyPackageRelease(buildResult, newFiles) {
117
122
  };
118
123
  }
119
124
  export function summarizeReleaseAnalysis(packageAnalyses) {
120
- const changedAnalyses = packageAnalyses.filter((analysis) => {
121
- return analysis.classification !== 'unchanged';
122
- });
123
- const classificationPriority = {
124
- unchanged: unchangedPriority,
125
- 'dependency-only': dependencyOnlyPriority,
126
- substantive: substantivePriority,
127
- 'first-publish': firstPublishPriority
128
- };
129
- const classificationByPriority = {
130
- [unchangedPriority]: 'unchanged',
131
- [dependencyOnlyPriority]: 'dependency-only',
132
- [substantivePriority]: 'substantive',
133
- [firstPublishPriority]: 'first-publish'
134
- };
135
- const highestPriority = changedAnalyses.reduce((current, analysis) => {
136
- const nextPriority = classificationPriority[analysis.classification];
137
- return maxClassificationPriority(current, nextPriority);
138
- }, unchangedPriority);
139
- const classification = classificationByPriority[highestPriority];
140
- const publishedDates = changedAnalyses.filter(hasLatestPublishedAt).map((analysis) => {
141
- return analysis.latestPublishedAt;
142
- });
143
- const mostRecentPublishedAt = publishedDates.reduce((current, publishedAt) => {
144
- return current === undefined ? publishedAt : maxDate(current, [publishedAt]);
145
- }, undefined);
125
+ let classification = releaseAnalysisClassification.unchanged;
126
+ let hasPublishedAt = false;
127
+ let mostRecentPublishedAt = new Date(0);
128
+ for (const analysis of packageAnalyses) {
129
+ if (analysis.classification !== releaseAnalysisClassification.unchanged) {
130
+ classification = moreSignificantClassification(classification, analysis.classification);
131
+ if (hasLatestPublishedAt(analysis)) {
132
+ mostRecentPublishedAt = hasPublishedAt
133
+ ? maxDate(mostRecentPublishedAt, [analysis.latestPublishedAt])
134
+ : analysis.latestPublishedAt;
135
+ hasPublishedAt = true;
136
+ }
137
+ }
138
+ }
146
139
  return {
147
140
  classification,
148
- mostRecentPublishedAt,
141
+ mostRecentPublishedAt: hasPublishedAt ? mostRecentPublishedAt : undefined,
149
142
  packageAnalyses
150
143
  };
151
144
  }