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.
- package/bundle-emitter/emitter.d.ts.map +1 -1
- package/bundle-emitter/emitter.js +2 -2
- package/bundle-emitter/emitter.js.map +1 -1
- package/bundle-emitter/publish-error/auto-mode-error-matching.js +6 -7
- package/bundle-emitter/publish-error/auto-mode-error-matching.js.map +1 -1
- package/bundle-emitter/publish-error/file-mode-error-matching.js +16 -10
- package/bundle-emitter/publish-error/file-mode-error-matching.js.map +1 -1
- package/bundle-emitter/publish-error/publish-error-messages.js +15 -27
- package/bundle-emitter/publish-error/publish-error-messages.js.map +1 -1
- package/bundle-emitter/registry/metadata-auth-retry.js +5 -6
- package/bundle-emitter/registry/metadata-auth-retry.js.map +1 -1
- package/bundle-emitter/registry/oidc-token-exchange.js +6 -14
- package/bundle-emitter/registry/oidc-token-exchange.js.map +1 -1
- package/bundle-emitter/registry/package-metadata-fetcher.js +12 -17
- package/bundle-emitter/registry/package-metadata-fetcher.js.map +1 -1
- package/bundle-emitter/registry/publish-settings-bridge.js +8 -12
- package/bundle-emitter/registry/publish-settings-bridge.js.map +1 -1
- package/bundle-emitter/registry/registry-auth-config.js +22 -26
- package/bundle-emitter/registry/registry-auth-config.js.map +1 -1
- package/bundle-emitter/registry/registry-client.d.ts +1 -1
- package/bundle-emitter/registry/registry-client.d.ts.map +1 -1
- package/bundle-emitter/registry/registry-client.js +13 -6
- package/bundle-emitter/registry/registry-client.js.map +1 -1
- package/bundle-emitter/registry/registry-package-path.js +4 -0
- package/bundle-emitter/registry/registry-package-path.js.map +1 -0
- package/bundle-emitter/repository-coherence.js +17 -23
- package/bundle-emitter/repository-coherence.js.map +1 -1
- package/bundle-emitter/repository-url-normalizer.js +5 -8
- package/bundle-emitter/repository-url-normalizer.js.map +1 -1
- package/checks/rules/duplicate-messages.js +7 -10
- package/checks/rules/duplicate-messages.js.map +1 -1
- package/checks/rules/no-unused-bundle-dependencies.js +10 -13
- package/checks/rules/no-unused-bundle-dependencies.js.map +1 -1
- package/common/bundled-dependency-groups.js +28 -0
- package/common/bundled-dependency-groups.js.map +1 -0
- package/common/package-layout.js +49 -0
- package/common/package-layout.js.map +1 -0
- package/common/package-name-map.js +8 -0
- package/common/package-name-map.js.map +1 -0
- package/common/worklist.js +23 -0
- package/common/worklist.js.map +1 -0
- package/config/config.d.ts +1 -1
- package/config/config.d.ts.map +1 -1
- package/config/dependency-existence-validation.js +15 -17
- package/config/dependency-existence-validation.js.map +1 -1
- package/config/package-config.d.ts.map +1 -1
- package/config/package-config.js +2 -6
- package/config/package-config.js.map +1 -1
- package/config/publish-settings.d.ts.map +1 -1
- package/config/publish-settings.report.js +8 -7
- package/config/publish-settings.report.js.map +1 -1
- package/config/registry-settings.d.ts.map +1 -1
- package/config/root-config-validation.js +86 -81
- package/config/root-config-validation.js.map +1 -1
- package/dead-code-eliminator/cross-bundle/bundle-index.js +0 -3
- package/dead-code-eliminator/cross-bundle/bundle-index.js.map +1 -1
- package/dead-code-eliminator/cross-bundle/import-export-walker.js +4 -2
- package/dead-code-eliminator/cross-bundle/import-export-walker.js.map +1 -1
- package/dead-code-eliminator/eliminator.js.map +1 -1
- package/dead-code-eliminator/imported-expression-origin.js +28 -32
- package/dead-code-eliminator/imported-expression-origin.js.map +1 -1
- package/dead-code-eliminator/pure-expression.js +53 -64
- package/dead-code-eliminator/pure-expression.js.map +1 -1
- package/dead-code-eliminator/reachability/bfs-closure.js +31 -24
- package/dead-code-eliminator/reachability/bfs-closure.js.map +1 -1
- package/dead-code-eliminator/side-effect-classifier.js +2 -2
- package/dead-code-eliminator/side-effect-classifier.js.map +1 -1
- package/dead-code-eliminator/statement-classifiers.js +4 -5
- package/dead-code-eliminator/statement-classifiers.js.map +1 -1
- package/dead-code-eliminator/syntax-kind-sets.js +24 -65
- package/dead-code-eliminator/syntax-kind-sets.js.map +1 -1
- package/dependency-scanner/node-modules-manifest-synthesizer.js +3 -6
- package/dependency-scanner/node-modules-manifest-synthesizer.js.map +1 -1
- package/dependency-scanner/package-owned-asset-file-path.js +2 -13
- package/dependency-scanner/package-owned-asset-file-path.js.map +1 -1
- package/dependency-scanner/scanner.js +39 -29
- package/dependency-scanner/scanner.js.map +1 -1
- package/dependency-scanner/source-file-references.d.ts.map +1 -1
- package/dependency-scanner/source-file-references.js +75 -79
- package/dependency-scanner/source-file-references.js.map +1 -1
- package/dependency-scanner/typescript-project-analyzer.d.ts.map +1 -1
- package/dependency-scanner/typescript-project-analyzer.js +2 -1
- package/dependency-scanner/typescript-project-analyzer.js.map +1 -1
- package/dependency-scanner/virtual-package-json-host.js +2 -1
- package/dependency-scanner/virtual-package-json-host.js.map +1 -1
- package/directed-graph/graph.js +38 -64
- package/directed-graph/graph.js.map +1 -1
- package/file-manager/compare.js +7 -3
- package/file-manager/compare.js.map +1 -1
- package/file-manager/file-description-by-path.js +8 -0
- package/file-manager/file-description-by-path.js.map +1 -0
- package/npm-oidc-id-token-resolver.js +17 -14
- package/npm-oidc-id-token-resolver.js.map +1 -1
- package/package-surface/implicit-bin.js +9 -6
- package/package-surface/implicit-bin.js.map +1 -1
- package/package-surface/package-json-export.js +4 -3
- package/package-surface/package-json-export.js.map +1 -1
- package/package-surface/package-shape.js +4 -3
- package/package-surface/package-shape.js.map +1 -1
- package/package-surface/package-surface-index.js +136 -0
- package/package-surface/package-surface-index.js.map +1 -0
- package/package-surface/public-specifiers.js +3 -12
- package/package-surface/public-specifiers.js.map +1 -1
- package/package-surface/root-registry.js +10 -20
- package/package-surface/root-registry.js.map +1 -1
- package/package-surface/specifier-syntax.js +0 -19
- package/package-surface/specifier-syntax.js.map +1 -1
- package/package-surface/substitution-exports.js +59 -35
- package/package-surface/substitution-exports.js.map +1 -1
- package/package-surface/surface.js +0 -3
- package/package-surface/surface.js.map +1 -1
- package/package.json +16 -4
- package/packtory/options/bundle-dependency-resolution.js +6 -8
- package/packtory/options/bundle-dependency-resolution.js.map +1 -1
- package/packtory/options/version-trigger.js.map +1 -1
- package/packtory/package-processor-publish.d.ts +2 -1
- package/packtory/package-processor-publish.d.ts.map +1 -1
- package/packtory/package-processor-publish.js +19 -13
- package/packtory/package-processor-publish.js.map +1 -1
- package/packtory/packtory-pack.js +129 -141
- package/packtory/packtory-pack.js.map +1 -1
- package/packtory/packtory-release-analysis.js +8 -16
- package/packtory/packtory-release-analysis.js.map +1 -1
- package/packtory/packtory-results.d.ts +26 -11
- package/packtory/packtory-results.d.ts.map +1 -1
- package/packtory/packtory-results.js +27 -5
- package/packtory/packtory-results.js.map +1 -1
- package/packtory/packtory.js +65 -49
- package/packtory/packtory.js.map +1 -1
- package/packtory/partial-result.js +26 -0
- package/packtory/partial-result.js.map +1 -0
- package/packtory/published-release-state.d.ts +9 -0
- package/packtory/published-release-state.d.ts.map +1 -0
- package/packtory/published-release-state.js +12 -0
- package/packtory/published-release-state.js.map +1 -0
- package/packtory/release-analysis.js +74 -81
- package/packtory/release-analysis.js.map +1 -1
- package/packtory/resolved-package.js +6 -6
- package/packtory/resolved-package.js.map +1 -1
- package/packtory/scheduler.d.ts +1 -0
- package/packtory/scheduler.d.ts.map +1 -1
- package/packtory/scheduler.js +70 -52
- package/packtory/scheduler.js.map +1 -1
- package/packtory/stages/publish-stage.js +11 -6
- package/packtory/stages/publish-stage.js.map +1 -1
- package/packtory/stages/release-diff-stage.js +11 -10
- package/packtory/stages/release-diff-stage.js.map +1 -1
- package/report/aggregator/package-report-materialization.js +35 -22
- package/report/aggregator/package-report-materialization.js.map +1 -1
- package/report/config-redactor.js +5 -4
- package/report/config-redactor.js.map +1 -1
- package/report/inspectors/inspect-artifact-sizes.js +7 -3
- package/report/inspectors/inspect-artifact-sizes.js.map +1 -1
- package/report/inspectors/inspect-scan-results.js +8 -2
- package/report/inspectors/inspect-scan-results.js.map +1 -1
- package/report/preview/preview-document-diff.d.ts +6 -1
- package/report/preview/preview-document-diff.d.ts.map +1 -1
- package/report/preview/preview-document-diff.js +8 -3
- package/report/preview/preview-document-diff.js.map +1 -1
- package/report/release-diff/file-set-diff.d.ts +14 -4
- package/report/release-diff/file-set-diff.d.ts.map +1 -1
- package/report/release-diff/file-set-diff.js +28 -28
- package/report/release-diff/file-set-diff.js.map +1 -1
- package/report/release-diff/release-version-transition.js +6 -4
- package/report/release-diff/release-version-transition.js.map +1 -1
- package/resource-resolver/content.js +5 -3
- package/resource-resolver/content.js.map +1 -1
- package/sbom/license-resolver.js +3 -3
- package/sbom/license-resolver.js.map +1 -1
- package/sbom/sbom-builder.js +1 -8
- package/sbom/sbom-builder.js.map +1 -1
- package/sbom/sbom-file.d.ts.map +1 -1
- package/sbom/sbom-file.js +7 -4
- package/sbom/sbom-file.js.map +1 -1
- package/sbom/sbom-serializer.js +10 -6
- package/sbom/sbom-serializer.js.map +1 -1
- package/sbom.cdx.json +22 -5
- package/vendor-materializer/vendor-materializer.d.ts.map +1 -1
- package/vendor-materializer/vendor-materializer.js +99 -123
- package/vendor-materializer/vendor-materializer.js.map +1 -1
- package/version-manager/dependencies/bundle-dependency-grouping.js +18 -14
- package/version-manager/dependencies/bundle-dependency-grouping.js.map +1 -1
- package/version-manager/imports/versioned-bundle-imports.js +15 -12
- package/version-manager/imports/versioned-bundle-imports.js.map +1 -1
- package/version-manager/manager.d.ts.map +1 -1
- package/version-manager/manager.js +19 -24
- package/version-manager/manager.js.map +1 -1
- package/version-manager/manifest/builder.js +3 -3
- package/version-manager/manifest/builder.js.map +1 -1
- package/version-manager/optional-bundle-fields.js +2 -5
- package/version-manager/optional-bundle-fields.js.map +1 -1
- package/version-manager/representative-root.js +7 -27
- package/version-manager/representative-root.js.map +1 -1
- package/version-manager/specifier-classifier.js +13 -10
- package/version-manager/specifier-classifier.js.map +1 -1
- package/version-manager/specifier-errors.js +17 -6
- package/version-manager/specifier-errors.js.map +1 -1
- package/package-surface/explicit-specifier-build.js +0 -28
- package/package-surface/explicit-specifier-build.js.map +0 -1
- package/package-surface/explicit-specifier-resolve.js +0 -17
- package/package-surface/explicit-specifier-resolve.js.map +0 -1
- package/package-surface/implicit-specifier-build.js +0 -26
- package/package-surface/implicit-specifier-build.js.map +0 -1
- package/package-surface/implicit-specifier-resolve.js +0 -17
- package/package-surface/implicit-specifier-resolve.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../../../../source/bundle-emitter/emitter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW;AACjC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC;
|
|
1
|
+
{"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../../../../source/bundle-emitter/emitter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW;AACjC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC;AAE1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC;AAC1E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2CAA2C;AAEvF,OAAO,EAA2B,KAAK,yBAAyB,EAAE,MAAM,gCAAgC;AACxG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* eslint-disable import/max-dependencies -- the publish/check flow legitimately depends on registry, artifacts, file-manager, and provenance helpers */
|
|
2
2
|
import { Maybe } from 'true-myth';
|
|
3
|
-
import { compareFileDescriptions } from "../file-manager/compare.js";
|
|
3
|
+
import { compareFileDescriptions, fileDescriptionComparisonStatus } from "../file-manager/compare.js";
|
|
4
4
|
import { canonicalizeSbomInFileSet } from "../sbom/sbom-canonicalizer.js";
|
|
5
5
|
import { fetchPublishedArtifacts } from "./fetch-published-artifacts.js";
|
|
6
6
|
import { assertRepositoryCoherence } from "./repository-coherence.js";
|
|
@@ -26,7 +26,7 @@ export function createBundleEmitter(dependencies) {
|
|
|
26
26
|
const artifactContents = artifactsBuilder.collectContents(bundle, 'package', extraFiles);
|
|
27
27
|
const comparison = compareFileDescriptions(canonicalizeSbomInFileSet(artifactContents), canonicalizeSbomInFileSet(previous.value.files));
|
|
28
28
|
return {
|
|
29
|
-
alreadyPublishedAsLatest: comparison.status ===
|
|
29
|
+
alreadyPublishedAsLatest: comparison.status === fileDescriptionComparisonStatus.equal,
|
|
30
30
|
previousReleaseArtifacts: previous
|
|
31
31
|
};
|
|
32
32
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../../../source/bundle-emitter/emitter.ts"],"names":[],"mappings":"AAAA,wJAAwJ;AACxJ,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../../../source/bundle-emitter/emitter.ts"],"names":[],"mappings":"AAAA,wJAAwJ;AACxJ,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAKlC,OAAO,EAAE,uBAAuB,EAAE,+BAA+B,EAAE,MAAM,4BAA4B,CAAC;AAGtG,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAkC,MAAM,gCAAgC,CAAC;AAEzG,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAsCtE,MAAM,UAAU,mBAAmB,CAAC,YAAuC;IACvE,MAAM,EAAE,gBAAgB,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,YAAY,CAAC;IAE3E,OAAO;QACH,KAAK,CAAC,uBAAuB,CAAC,OAAO;YACjC,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;YAEvD,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;gBACvB,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;gBACtF,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;oBACjC,OAAO,OAAO,CAAC,OAAO,CAAC;gBAC3B,CAAC,CAAC,CAAC;YACP,CAAC;YAED,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;QAED,KAAK,CAAC,2BAA2B,CAAC,OAAO;YACrC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;YACzD,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC,cAAc,EAAE,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;YAC9F,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;gBACrB,OAAO,EAAE,wBAAwB,EAAE,KAAK,EAAE,wBAAwB,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YAC1F,CAAC;YAED,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;YACzF,MAAM,UAAU,GAAG,uBAAuB,CACtC,yBAAyB,CAAC,gBAAgB,CAAC,EAC3C,yBAAyB,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAClD,CAAC;YACF,OAAO;gBACH,wBAAwB,EAAE,UAAU,CAAC,MAAM,KAAK,+BAA+B,CAAC,KAAK;gBACrF,wBAAwB,EAAE,QAAQ;aACrC,CAAC;QACN,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,OAAO;YACjB,IAAI,OAAO,CAAC,eAAe,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,eAAe,CAAC,UAAU,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;gBACrG,yBAAyB,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;YAC3E,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;YAExF,MAAM,cAAc,CAAC,cAAc,CAC/B,OAAO,CAAC,MAAM,CAAC,WAAW,EAC1B,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,gBAAgB,EACxB,OAAO,CAAC,eAAe,CAC1B,CAAC;QACN,CAAC;KACJ,CAAC;AACN,CAAC"}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import { isErrorLike } from "./error-shape-helpers.js";
|
|
2
2
|
import { buildUnsupportedProviderMessage, githubActionsIdTokenMessage, gitlabSigstoreIdTokenMessage, unsupportedProviderMarker } from "./publish-error-messages.js";
|
|
3
3
|
function getCiName(message) {
|
|
4
|
-
const
|
|
5
|
-
|
|
4
|
+
const providerSection = message
|
|
5
|
+
.slice(message.indexOf(unsupportedProviderMarker) + unsupportedProviderMarker.length)
|
|
6
|
+
.trimStart();
|
|
7
|
+
if (providerSection === '') {
|
|
6
8
|
return 'unknown';
|
|
7
9
|
}
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
return tail;
|
|
11
|
-
}
|
|
12
|
-
return tail.slice(0, whitespaceIndex);
|
|
10
|
+
const providerEnd = providerSection.search(/\s/u);
|
|
11
|
+
return providerEnd === -1 ? providerSection : providerSection.slice(0, providerEnd);
|
|
13
12
|
}
|
|
14
13
|
export function matchAutoModeError(error) {
|
|
15
14
|
if (!isErrorLike(error)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-mode-error-matching.js","sourceRoot":"","sources":["../../../../../source/bundle-emitter/publish-error/auto-mode-error-matching.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EACH,+BAA+B,EAC/B,2BAA2B,EAC3B,4BAA4B,EAC5B,yBAAyB,EAC5B,MAAM,6BAA6B,CAAC;AAErC,SAAS,SAAS,CAAC,OAAe;IAC9B,MAAM,
|
|
1
|
+
{"version":3,"file":"auto-mode-error-matching.js","sourceRoot":"","sources":["../../../../../source/bundle-emitter/publish-error/auto-mode-error-matching.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EACH,+BAA+B,EAC/B,2BAA2B,EAC3B,4BAA4B,EAC5B,yBAAyB,EAC5B,MAAM,6BAA6B,CAAC;AAErC,SAAS,SAAS,CAAC,OAAe;IAC9B,MAAM,eAAe,GAAG,OAAO;SAC1B,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,yBAAyB,CAAC,GAAG,yBAAyB,CAAC,MAAM,CAAC;SACpF,SAAS,EAAE,CAAC;IACjB,IAAI,eAAe,KAAK,EAAE,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClD,OAAO,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;AACxF,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC7C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAC1B,IAAI,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC;QAC9C,OAAO,IAAI,KAAK,CAAC,+BAA+B,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5F,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,CAAC,6CAA6C,CAAC,EAAE,CAAC;QAClE,OAAO,IAAI,KAAK,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACxC,OAAO,IAAI,KAAK,CAAC,4BAA4B,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC"}
|
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
import { isErrorLike, isRecord } from "./error-shape-helpers.js";
|
|
2
2
|
import { buildInvalidProvenanceFileMessage, buildMissingProvenanceFileMessage, buildProvenanceDigestMismatchMessage } from "./publish-error-messages.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
3
|
+
const provenanceBundleMarkers = [
|
|
4
|
+
'Bundle is invalid',
|
|
5
|
+
'Unsupported bundle format',
|
|
6
|
+
'Invalid bundle',
|
|
7
|
+
'subject does not match'
|
|
8
|
+
];
|
|
9
|
+
const provenanceDigestMismatchMarkers = ['subject', 'digest'];
|
|
10
|
+
function includesOneOf(message, markers) {
|
|
11
|
+
for (const marker of markers) {
|
|
12
|
+
if (message.includes(marker)) {
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return false;
|
|
11
17
|
}
|
|
12
18
|
export function matchFileModeError(error, filePath) {
|
|
13
19
|
if (isRecord(error) && error.code === 'ENOENT') {
|
|
@@ -17,10 +23,10 @@ export function matchFileModeError(error, filePath) {
|
|
|
17
23
|
return undefined;
|
|
18
24
|
}
|
|
19
25
|
const { message } = error;
|
|
20
|
-
if (!
|
|
26
|
+
if (!includesOneOf(message, provenanceBundleMarkers)) {
|
|
21
27
|
return undefined;
|
|
22
28
|
}
|
|
23
|
-
if (
|
|
29
|
+
if (includesOneOf(message, provenanceDigestMismatchMarkers)) {
|
|
24
30
|
return new Error(buildProvenanceDigestMismatchMessage(filePath), { cause: error });
|
|
25
31
|
}
|
|
26
32
|
return new Error(buildInvalidProvenanceFileMessage(filePath), { cause: error });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-mode-error-matching.js","sourceRoot":"","sources":["../../../../../source/bundle-emitter/publish-error/file-mode-error-matching.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EACH,iCAAiC,EACjC,iCAAiC,EACjC,oCAAoC,EACvC,MAAM,6BAA6B,CAAC;AAErC,
|
|
1
|
+
{"version":3,"file":"file-mode-error-matching.js","sourceRoot":"","sources":["../../../../../source/bundle-emitter/publish-error/file-mode-error-matching.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EACH,iCAAiC,EACjC,iCAAiC,EACjC,oCAAoC,EACvC,MAAM,6BAA6B,CAAC;AAErC,MAAM,uBAAuB,GAAG;IAC5B,mBAAmB;IACnB,2BAA2B;IAC3B,gBAAgB;IAChB,wBAAwB;CAClB,CAAC;AACX,MAAM,+BAA+B,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAU,CAAC;AAEvE,SAAS,aAAa,CAAC,OAAe,EAAE,OAA0B;IAC9D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAc,EAAE,QAAgB;IAC/D,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7C,OAAO,IAAI,KAAK,CAAC,iCAAiC,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACpF,CAAC;IACD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAC1B,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,uBAAuB,CAAC,EAAE,CAAC;QACnD,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,IAAI,aAAa,CAAC,OAAO,EAAE,+BAA+B,CAAC,EAAE,CAAC;QAC1D,OAAO,IAAI,KAAK,CAAC,oCAAoC,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACvF,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,iCAAiC,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AACpF,CAAC"}
|
|
@@ -1,37 +1,25 @@
|
|
|
1
1
|
export const unsupportedProviderMarker = 'not supported for provider:';
|
|
2
|
-
export const githubActionsIdTokenMessage =
|
|
3
|
-
'
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export const gitlabSigstoreIdTokenMessage = [
|
|
7
|
-
'GitLab CI provenance needs an "id_tokens" entry with audience "sigstore"',
|
|
8
|
-
'exposed as SIGSTORE_ID_TOKEN. See the packtory readme for the workflow snippet.'
|
|
9
|
-
].join(' ');
|
|
2
|
+
export const githubActionsIdTokenMessage = 'GitHub Actions provenance needs "permissions: id-token: write" on the workflow job. ' +
|
|
3
|
+
'See the packtory readme for the workflow snippet.';
|
|
4
|
+
export const gitlabSigstoreIdTokenMessage = 'GitLab CI provenance needs an "id_tokens" entry with audience "sigstore" ' +
|
|
5
|
+
'exposed as SIGSTORE_ID_TOKEN. See the packtory readme for the workflow snippet.';
|
|
10
6
|
export function buildUnsupportedProviderMessage(ciName) {
|
|
11
|
-
return
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
"Use provenance: { type: 'file' } for other environments."
|
|
15
|
-
].join(' ');
|
|
7
|
+
return ('Provenance auto mode requires GitHub Actions or GitLab CI. ' +
|
|
8
|
+
`Detected CI: ${ciName}. ` +
|
|
9
|
+
"Use provenance: { type: 'file' } for other environments.");
|
|
16
10
|
}
|
|
17
11
|
export function buildMissingProvenanceFileMessage(filePath) {
|
|
18
|
-
return
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
'before running packtory.'
|
|
22
|
-
].join(' ');
|
|
12
|
+
return (`Provenance bundle file "${filePath}" does not exist. ` +
|
|
13
|
+
"Generate it with your CI's attestation tool (e.g. actions/attest-build-provenance) " +
|
|
14
|
+
'before running packtory.');
|
|
23
15
|
}
|
|
24
16
|
export function buildInvalidProvenanceFileMessage(filePath) {
|
|
25
|
-
return
|
|
26
|
-
|
|
27
|
-
'Re-generate it from the current build.'
|
|
28
|
-
].join(' ');
|
|
17
|
+
return (`Provenance bundle file "${filePath}" is not a valid sigstore bundle. ` +
|
|
18
|
+
'Re-generate it from the current build.');
|
|
29
19
|
}
|
|
30
20
|
export function buildProvenanceDigestMismatchMessage(filePath) {
|
|
31
|
-
return
|
|
32
|
-
|
|
33
|
-
'
|
|
34
|
-
'shipping a mismatched attestation would defeat the purpose of provenance.'
|
|
35
|
-
].join(' ');
|
|
21
|
+
return (`Provenance bundle at "${filePath}" was signed against a different tarball ` +
|
|
22
|
+
'than the one packtory built. Re-generate the bundle from the current source — ' +
|
|
23
|
+
'shipping a mismatched attestation would defeat the purpose of provenance.');
|
|
36
24
|
}
|
|
37
25
|
//# sourceMappingURL=publish-error-messages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish-error-messages.js","sourceRoot":"","sources":["../../../../../source/bundle-emitter/publish-error/publish-error-messages.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,yBAAyB,GAAG,6BAA6B,CAAC;AAEvE,MAAM,CAAC,MAAM,2BAA2B,
|
|
1
|
+
{"version":3,"file":"publish-error-messages.js","sourceRoot":"","sources":["../../../../../source/bundle-emitter/publish-error/publish-error-messages.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,yBAAyB,GAAG,6BAA6B,CAAC;AAEvE,MAAM,CAAC,MAAM,2BAA2B,GACpC,sFAAsF;IACtF,mDAAmD,CAAC;AAExD,MAAM,CAAC,MAAM,4BAA4B,GACrC,2EAA2E;IAC3E,iFAAiF,CAAC;AAEtF,MAAM,UAAU,+BAA+B,CAAC,MAAc;IAC1D,OAAO,CACH,6DAA6D;QAC7D,gBAAgB,MAAM,IAAI;QAC1B,0DAA0D,CAC7D,CAAC;AACN,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,QAAgB;IAC9D,OAAO,CACH,2BAA2B,QAAQ,oBAAoB;QACvD,qFAAqF;QACrF,0BAA0B,CAC7B,CAAC;AACN,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,QAAgB;IAC9D,OAAO,CACH,2BAA2B,QAAQ,oCAAoC;QACvE,wCAAwC,CAC3C,CAAC;AACN,CAAC;AAED,MAAM,UAAU,oCAAoC,CAAC,QAAgB;IACjE,OAAO,CACH,yBAAyB,QAAQ,2CAA2C;QAC5E,gFAAgF;QAChF,2EAA2E,CAC9E,CAAC;AACN,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { buildAuthOptions, resolvePublishAuth } from "./registry-auth-config.js";
|
|
2
2
|
const unauthorizedStatusCode = 401;
|
|
3
3
|
const forbiddenStatusCode = 403;
|
|
4
|
-
function
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
function isAuthFailure(error) {
|
|
5
|
+
const statusCode = error instanceof Object && 'statusCode' in error
|
|
6
|
+
? error.statusCode
|
|
7
|
+
: undefined;
|
|
8
8
|
return statusCode === forbiddenStatusCode || statusCode === unauthorizedStatusCode;
|
|
9
9
|
}
|
|
10
10
|
export async function retryWithFallbackAuth(registrySettings, auth, run) {
|
|
@@ -12,8 +12,7 @@ export async function retryWithFallbackAuth(registrySettings, auth, run) {
|
|
|
12
12
|
return await run(auth.options);
|
|
13
13
|
}
|
|
14
14
|
catch (error) {
|
|
15
|
-
|
|
16
|
-
if (!auth.allowsAutomaticRetry || !isAuthFailureStatus(statusCode)) {
|
|
15
|
+
if (!auth.allowsAutomaticRetry || !isAuthFailure(error)) {
|
|
17
16
|
throw error;
|
|
18
17
|
}
|
|
19
18
|
const publishAuth = resolvePublishAuth(registrySettings);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata-auth-retry.js","sourceRoot":"","sources":["../../../../../source/bundle-emitter/registry/metadata-auth-retry.ts"],"names":[],"mappings":"AACA,OAAO,EACH,gBAAgB,EAChB,kBAAkB,EAGrB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AACnC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC,SAAS,
|
|
1
|
+
{"version":3,"file":"metadata-auth-retry.js","sourceRoot":"","sources":["../../../../../source/bundle-emitter/registry/metadata-auth-retry.ts"],"names":[],"mappings":"AACA,OAAO,EACH,gBAAgB,EAChB,kBAAkB,EAGrB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AACnC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC,SAAS,aAAa,CAAC,KAAc;IACjC,MAAM,UAAU,GACZ,KAAK,YAAY,MAAM,IAAI,YAAY,IAAI,KAAK;QAC5C,CAAC,CAAE,KAA2C,CAAC,UAAU;QACzD,CAAC,CAAC,SAAS,CAAC;IACpB,OAAO,UAAU,KAAK,mBAAmB,IAAI,UAAU,KAAK,sBAAsB,CAAC;AACvF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACvC,gBAA4C,EAC5C,IAAoB,EACpB,GAA6C;IAE7C,IAAI,CAAC;QACD,OAAO,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,MAAM,KAAK,CAAC;QAChB,CAAC;QAED,MAAM,WAAW,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;QACzD,IAAI,WAAW,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAClC,MAAM,KAAK,CAAC;QAChB,CAAC;QAED,OAAO,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC;IACxE,CAAC;AACL,CAAC"}
|
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
import { buildAuthOptions, createBaseOptions, isNpmRegistry, npmRegistryUrl, resolvePublishAuth, resolveRegistryUrl } from "./registry-auth-config.js";
|
|
2
|
+
import { toRegistryPackagePath } from "./registry-package-path.js";
|
|
2
3
|
import { parseOidcExchangeResponse } from "./registry-response-schemas.js";
|
|
3
4
|
const oidcExchangeRefreshThresholdInMilliseconds = 60_000;
|
|
4
|
-
function encodePackageName(name) {
|
|
5
|
-
return name.replace('/', '%2F');
|
|
6
|
-
}
|
|
7
|
-
async function readJson(response) {
|
|
8
|
-
return response.json();
|
|
9
|
-
}
|
|
10
5
|
export function createOidcTokenExchanger(dependencies) {
|
|
11
6
|
const { fetch: fetchImplementation, clock, resolveIdToken } = dependencies;
|
|
12
7
|
const cache = new Map();
|
|
@@ -24,12 +19,6 @@ export function createOidcTokenExchanger(dependencies) {
|
|
|
24
19
|
}
|
|
25
20
|
return undefined;
|
|
26
21
|
}
|
|
27
|
-
async function postExchangeRequest(packageName, idToken) {
|
|
28
|
-
return fetchImplementation(`${npmRegistryUrl}-/npm/v1/oidc/token/exchange/package/${encodePackageName(packageName)}`, {
|
|
29
|
-
method: 'POST',
|
|
30
|
-
headers: { Authorization: `Bearer ${idToken}` }
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
22
|
function parseExchangedToken(body) {
|
|
34
23
|
const parsed = parseOidcExchangeResponse(body);
|
|
35
24
|
if (!parsed.success) {
|
|
@@ -39,11 +28,14 @@ export function createOidcTokenExchanger(dependencies) {
|
|
|
39
28
|
}
|
|
40
29
|
async function requestExchange(packageName, auth) {
|
|
41
30
|
const idToken = await resolveIdToken(auth);
|
|
42
|
-
const exchangeResponse = await
|
|
31
|
+
const exchangeResponse = await fetchImplementation(`${npmRegistryUrl}-/npm/v1/oidc/token/exchange/package/${toRegistryPackagePath(packageName)}`, {
|
|
32
|
+
method: 'POST',
|
|
33
|
+
headers: { Authorization: `Bearer ${idToken}` }
|
|
34
|
+
});
|
|
43
35
|
if (!exchangeResponse.ok) {
|
|
44
36
|
throw new Error(`OIDC token exchange failed with status ${exchangeResponse.status}`);
|
|
45
37
|
}
|
|
46
|
-
return parseExchangedToken(await
|
|
38
|
+
return parseExchangedToken((await exchangeResponse.json()));
|
|
47
39
|
}
|
|
48
40
|
async function exchangeToken(packageName, registrySettings, auth) {
|
|
49
41
|
const cacheKey = getCacheKey(packageName, registrySettings);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oidc-token-exchange.js","sourceRoot":"","sources":["../../../../../source/bundle-emitter/registry/oidc-token-exchange.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAErB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"oidc-token-exchange.js","sourceRoot":"","sources":["../../../../../source/bundle-emitter/registry/oidc-token-exchange.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { Maybe } from 'true-myth';
|
|
2
2
|
import { retryWithFallbackAuth } from "./metadata-auth-retry.js";
|
|
3
|
+
import { toRegistryPackagePath } from "./registry-package-path.js";
|
|
3
4
|
import { resolveMetadataAuthOptions } from "./registry-auth-config.js";
|
|
4
5
|
import { parseAbbreviatedPackageResponse, parseFullPackageResponse } from "./registry-response-schemas.js";
|
|
5
6
|
const notFoundStatusCode = 404;
|
|
6
7
|
const forbiddenStatusCode = 403;
|
|
7
8
|
const abbreviatedResponseAcceptHeader = 'application/vnd.npm.install-v1+json';
|
|
8
|
-
function encodePackageName(name) {
|
|
9
|
-
return name.replace('/', '%2F');
|
|
10
|
-
}
|
|
11
9
|
function isRecord(value) {
|
|
12
10
|
return value instanceof Object;
|
|
13
11
|
}
|
|
@@ -22,11 +20,19 @@ function parseTimestamp(timestamp) {
|
|
|
22
20
|
}
|
|
23
21
|
return parsed;
|
|
24
22
|
}
|
|
23
|
+
const abbreviatedPackageMetadataRequest = {
|
|
24
|
+
parsePackageResponse: parseAbbreviatedPackageResponse,
|
|
25
|
+
headers: { accept: abbreviatedResponseAcceptHeader }
|
|
26
|
+
};
|
|
27
|
+
const fullPackageMetadataRequest = {
|
|
28
|
+
parsePackageResponse: parseFullPackageResponse,
|
|
29
|
+
headers: undefined
|
|
30
|
+
};
|
|
25
31
|
async function fetchAndParsePackageMetadata(npmFetch, packageName, registrySettings, request) {
|
|
26
32
|
const auth = resolveMetadataAuthOptions(registrySettings);
|
|
27
33
|
try {
|
|
28
34
|
const response = await retryWithFallbackAuth(registrySettings, auth, async (options) => {
|
|
29
|
-
return npmFetch.json(`/${
|
|
35
|
+
return npmFetch.json(`/${toRegistryPackagePath(packageName)}`, {
|
|
30
36
|
...options,
|
|
31
37
|
headers: request.headers
|
|
32
38
|
});
|
|
@@ -44,17 +50,6 @@ async function fetchAndParsePackageMetadata(npmFetch, packageName, registrySetti
|
|
|
44
50
|
throw error;
|
|
45
51
|
}
|
|
46
52
|
}
|
|
47
|
-
async function fetchPackageMetadata(npmFetch, packageName, registrySettings) {
|
|
48
|
-
return fetchAndParsePackageMetadata(npmFetch, packageName, registrySettings, {
|
|
49
|
-
parsePackageResponse: parseAbbreviatedPackageResponse,
|
|
50
|
-
headers: { accept: abbreviatedResponseAcceptHeader }
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
async function fetchFullPackageMetadata(npmFetch, packageName, registrySettings) {
|
|
54
|
-
return fetchAndParsePackageMetadata(npmFetch, packageName, registrySettings, {
|
|
55
|
-
parsePackageResponse: parseFullPackageResponse
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
53
|
function extractLatestVersionDetails(packageResponse, packageName) {
|
|
59
54
|
const latestVersion = packageResponse['dist-tags'].latest;
|
|
60
55
|
if (latestVersion === undefined) {
|
|
@@ -67,14 +62,14 @@ function extractLatestVersionDetails(packageResponse, packageName) {
|
|
|
67
62
|
return Maybe.just({ version: latestVersion, tarballUrl: versionData.dist.tarball });
|
|
68
63
|
}
|
|
69
64
|
export async function fetchLatestPackageVersion(npmFetch, packageName, registrySettings) {
|
|
70
|
-
const packageResponse = await
|
|
65
|
+
const packageResponse = await fetchAndParsePackageMetadata(npmFetch, packageName, registrySettings, abbreviatedPackageMetadataRequest);
|
|
71
66
|
if (packageResponse.isNothing) {
|
|
72
67
|
return Maybe.nothing();
|
|
73
68
|
}
|
|
74
69
|
return extractLatestVersionDetails(packageResponse.value, packageName);
|
|
75
70
|
}
|
|
76
71
|
export async function fetchLatestPackageReleaseMetadata(npmFetch, packageName, registrySettings) {
|
|
77
|
-
const packageResponse = await
|
|
72
|
+
const packageResponse = await fetchAndParsePackageMetadata(npmFetch, packageName, registrySettings, fullPackageMetadataRequest);
|
|
78
73
|
if (packageResponse.isNothing) {
|
|
79
74
|
return Maybe.nothing();
|
|
80
75
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-metadata-fetcher.js","sourceRoot":"","sources":["../../../../../source/bundle-emitter/registry/package-metadata-fetcher.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EACH,+BAA+B,EAC/B,wBAAwB,EAG3B,MAAM,gCAAgC,CAAC;AAExC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAC/B,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAChC,MAAM,+BAA+B,GAAG,qCAAqC,CAAC;AAa9E,SAAS,
|
|
1
|
+
{"version":3,"file":"package-metadata-fetcher.js","sourceRoot":"","sources":["../../../../../source/bundle-emitter/registry/package-metadata-fetcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,22 +5,18 @@ export function buildPublishOptionsForPublishSettings(publishSettings) {
|
|
|
5
5
|
if (publishSettings.access === 'restricted') {
|
|
6
6
|
return { access: 'restricted' };
|
|
7
7
|
}
|
|
8
|
-
if (publishSettings.provenance ===
|
|
9
|
-
return { access: 'public' };
|
|
10
|
-
}
|
|
11
|
-
if (publishSettings.provenance.type === 'auto') {
|
|
8
|
+
if (publishSettings.provenance?.type === 'auto') {
|
|
12
9
|
return { access: 'public', provenance: true };
|
|
13
10
|
}
|
|
14
|
-
|
|
11
|
+
if (publishSettings.provenance?.type === 'file') {
|
|
12
|
+
return { access: 'public', provenanceFile: publishSettings.provenance.path };
|
|
13
|
+
}
|
|
14
|
+
return { access: 'public' };
|
|
15
15
|
}
|
|
16
16
|
function getProvenanceFilePath(publishSettings) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
if (publishSettings.provenance?.type !== 'file') {
|
|
21
|
-
return undefined;
|
|
22
|
-
}
|
|
23
|
-
return publishSettings.provenance.path;
|
|
17
|
+
return publishSettings.access === 'public' && publishSettings.provenance?.type === 'file'
|
|
18
|
+
? publishSettings.provenance.path
|
|
19
|
+
: undefined;
|
|
24
20
|
}
|
|
25
21
|
export function remapPublishError(error, publishSettings) {
|
|
26
22
|
const autoModeError = matchAutoModeError(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish-settings-bridge.js","sourceRoot":"","sources":["../../../../../source/bundle-emitter/registry/publish-settings-bridge.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAQlF,MAAM,UAAU,qCAAqC,CACjD,eAA0C;IAE1C,IAAI,eAAe,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;QAC1C,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IACpC,CAAC;
|
|
1
|
+
{"version":3,"file":"publish-settings-bridge.js","sourceRoot":"","sources":["../../../../../source/bundle-emitter/registry/publish-settings-bridge.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAQlF,MAAM,UAAU,qCAAqC,CACjD,eAA0C;IAE1C,IAAI,eAAe,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;QAC1C,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IACpC,CAAC;IAED,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;QAC9C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAClD,CAAC;IAED,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;QAC9C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACjF,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAChC,CAAC;AAED,SAAS,qBAAqB,CAAC,eAA0C;IACrE,OAAO,eAAe,CAAC,MAAM,KAAK,QAAQ,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,KAAK,MAAM;QACrF,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI;QACjC,CAAC,CAAC,SAAS,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAc,EAAE,eAA0C;IACxF,MAAM,aAAa,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,aAAa,CAAC;IACzB,CAAC;IAED,MAAM,QAAQ,GAAG,qBAAqB,CAAC,eAAe,CAAC,CAAC;IACxD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,aAAa,GAAG,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC1D,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,aAAa,CAAC;QACzB,CAAC;IACL,CAAC;IAED,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC"}
|
|
@@ -5,20 +5,8 @@ export function resolveRegistryUrl(registrySettings) {
|
|
|
5
5
|
export function isNpmRegistry(registry) {
|
|
6
6
|
return new URL(registry ?? npmRegistryUrl).href === npmRegistryUrl;
|
|
7
7
|
}
|
|
8
|
-
function normalizeAuthConfig(registrySettings) {
|
|
9
|
-
if ('type' in registrySettings.auth) {
|
|
10
|
-
return {
|
|
11
|
-
publish: registrySettings.auth,
|
|
12
|
-
metadata: undefined
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
return {
|
|
16
|
-
publish: registrySettings.auth.publish,
|
|
17
|
-
metadata: registrySettings.auth.metadata
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
8
|
export function resolvePublishAuth(registrySettings) {
|
|
21
|
-
return
|
|
9
|
+
return 'type' in registrySettings.auth ? registrySettings.auth : registrySettings.auth.publish;
|
|
22
10
|
}
|
|
23
11
|
export function createBaseOptions(registrySettings) {
|
|
24
12
|
return {
|
|
@@ -49,7 +37,7 @@ export function buildAuthOptions(auth, registrySettings) {
|
|
|
49
37
|
forceAuth: {
|
|
50
38
|
_auth: Buffer.from(`${auth.username}:${auth.password}`).toString('base64')
|
|
51
39
|
},
|
|
52
|
-
...(auth.email === undefined ?
|
|
40
|
+
...(auth.email === undefined ? undefined : { email: auth.email })
|
|
53
41
|
}
|
|
54
42
|
};
|
|
55
43
|
}
|
|
@@ -60,23 +48,31 @@ function createAnonymousAuthResolution(registrySettings) {
|
|
|
60
48
|
options: createBaseOptions(registrySettings)
|
|
61
49
|
};
|
|
62
50
|
}
|
|
51
|
+
function createAutomaticRetryAuthResolution(registrySettings) {
|
|
52
|
+
return {
|
|
53
|
+
...createAnonymousAuthResolution(registrySettings),
|
|
54
|
+
allowsAutomaticRetry: true
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
function resolveInheritedMetadataAuth(publishAuth, registrySettings) {
|
|
58
|
+
return publishAuth.type === 'npm-oidc'
|
|
59
|
+
? createAnonymousAuthResolution(registrySettings)
|
|
60
|
+
: buildAuthOptions(publishAuth, registrySettings);
|
|
61
|
+
}
|
|
63
62
|
export function resolveMetadataAuthOptions(registrySettings) {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
if (publishAuth.type === 'npm-oidc') {
|
|
67
|
-
return createAnonymousAuthResolution(registrySettings);
|
|
68
|
-
}
|
|
69
|
-
return buildAuthOptions(publishAuth, registrySettings);
|
|
63
|
+
if ('type' in registrySettings.auth) {
|
|
64
|
+
return resolveInheritedMetadataAuth(registrySettings.auth, registrySettings);
|
|
70
65
|
}
|
|
66
|
+
const metadataMode = registrySettings.auth.metadata;
|
|
71
67
|
if (metadataMode === 'auto') {
|
|
72
|
-
return
|
|
73
|
-
...createAnonymousAuthResolution(registrySettings),
|
|
74
|
-
allowsAutomaticRetry: true
|
|
75
|
-
};
|
|
68
|
+
return createAutomaticRetryAuthResolution(registrySettings);
|
|
76
69
|
}
|
|
77
|
-
if (
|
|
70
|
+
if (metadataMode === 'anonymous') {
|
|
78
71
|
return createAnonymousAuthResolution(registrySettings);
|
|
79
72
|
}
|
|
80
|
-
|
|
73
|
+
if (typeof metadataMode === 'object') {
|
|
74
|
+
return buildAuthOptions(metadataMode, registrySettings);
|
|
75
|
+
}
|
|
76
|
+
return resolveInheritedMetadataAuth(registrySettings.auth.publish, registrySettings);
|
|
81
77
|
}
|
|
82
78
|
//# sourceMappingURL=registry-auth-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry-auth-config.js","sourceRoot":"","sources":["../../../../../source/bundle-emitter/registry/registry-auth-config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"registry-auth-config.js","sourceRoot":"","sources":["../../../../../source/bundle-emitter/registry/registry-auth-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import type { publish as _publish } from 'libnpmpublish';
|
|
|
3
3
|
import type { Maybe } from 'true-myth';
|
|
4
4
|
import type { Clock } from '../../common/clock.ts';
|
|
5
5
|
import type { PublishSettings } from '../../config/publish-settings.ts';
|
|
6
|
-
import type {
|
|
6
|
+
import type { NpmOidcPublishAuth, RegistrySettings } from '../../config/registry-settings.ts';
|
|
7
7
|
import type { PublishedPackageJson } from '../../published-package/published-package.ts';
|
|
8
8
|
import { type PackageReleaseMetadata, type PackageVersionDetails } from './package-metadata-fetcher.ts';
|
|
9
9
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry-client.d.ts","sourceRoot":"","sources":["../../../../../source/bundle-emitter/registry/registry-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,oBAAoB;AAC/C,OAAO,KAAK,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,eAAe;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,WAAW;AACtC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC;AACvE,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"registry-client.d.ts","sourceRoot":"","sources":["../../../../../source/bundle-emitter/registry/registry-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,oBAAoB;AAC/C,OAAO,KAAK,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,eAAe;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,WAAW;AACtC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC;AACvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,mCAAmC;AAC7F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8CAA8C;AAExF,OAAO,EAIH,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC7B,MAAM,+BAA+B"}
|
|
@@ -15,13 +15,20 @@ export function createRegistryClient(dependencies) {
|
|
|
15
15
|
async publishPackage(manifest, tarData, registrySettings, publishSettings) {
|
|
16
16
|
const authOptions = await oidcExchanger.resolveWriteAuthOptions(manifest.name, registrySettings);
|
|
17
17
|
const publishOptionsFromSettings = buildPublishOptionsForPublishSettings(publishSettings);
|
|
18
|
+
const publishOptions = {
|
|
19
|
+
defaultTag: 'latest',
|
|
20
|
+
...authOptions,
|
|
21
|
+
...publishOptionsFromSettings
|
|
22
|
+
};
|
|
23
|
+
const publishOptionsWithOneTimePassword = {
|
|
24
|
+
...publishOptions,
|
|
25
|
+
otpPrompt: promptForOneTimePassword
|
|
26
|
+
};
|
|
27
|
+
const publishPromise = promptForOneTimePassword === undefined
|
|
28
|
+
? publish(toPublishManifest(manifest), tarData, publishOptions)
|
|
29
|
+
: publish(toPublishManifest(manifest), tarData, publishOptionsWithOneTimePassword);
|
|
18
30
|
try {
|
|
19
|
-
await
|
|
20
|
-
defaultTag: 'latest',
|
|
21
|
-
...authOptions,
|
|
22
|
-
...publishOptionsFromSettings,
|
|
23
|
-
...(promptForOneTimePassword === undefined ? {} : { otpPrompt: promptForOneTimePassword })
|
|
24
|
-
});
|
|
31
|
+
await publishPromise;
|
|
25
32
|
}
|
|
26
33
|
catch (error) {
|
|
27
34
|
throw remapPublishError(error, publishSettings);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry-client.js","sourceRoot":"","sources":["../../../../../source/bundle-emitter/registry/registry-client.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EACH,iCAAiC,EACjC,yBAAyB,EACzB,mBAAmB,EAGtB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,qCAAqC,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"registry-client.js","sourceRoot":"","sources":["../../../../../source/bundle-emitter/registry/registry-client.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EACH,iCAAiC,EACjC,yBAAyB,EACzB,mBAAmB,EAGtB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,qCAAqC,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AA6BxG,SAAS,iBAAiB,CAAC,QAAwC;IAC/D,qLAAqL;IACrL,OAAO,QAAsC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,YAAkD;IACnF,MAAM,EACF,QAAQ,EACR,OAAO,EACP,KAAK,EAAE,mBAAmB,EAC1B,KAAK,EACL,wBAAwB,EACxB,cAAc,EACjB,GAAG,YAAY,CAAC;IACjB,MAAM,aAAa,GAAG,wBAAwB,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;IAEtG,OAAO;QACH,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,gBAAgB;YAC3C,OAAO,mBAAmB,CAAC,QAAQ,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;QACvE,CAAC;QAED,KAAK,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,gBAAgB,EAAE,eAAe;YACrE,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,uBAAuB,CAAC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;YACjG,MAAM,0BAA0B,GAAG,qCAAqC,CAAC,eAAe,CAAC,CAAC;YAC1F,MAAM,cAAc,GAAG;gBACnB,UAAU,EAAE,QAAQ;gBACpB,GAAG,WAAW;gBACd,GAAG,0BAA0B;aAChC,CAAC;YACF,MAAM,iCAAiC,GAAG;gBACtC,GAAG,cAAc;gBACjB,SAAS,EAAE,wBAAwB;aACtC,CAAC;YACF,MAAM,cAAc,GAChB,wBAAwB,KAAK,SAAS;gBAClC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC;gBAC/D,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,iCAAiC,CAAC,CAAC;YAE3F,IAAI,CAAC;gBACD,MAAM,cAAc,CAAC;YACzB,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACtB,MAAM,iBAAiB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;YACpD,CAAC;QACL,CAAC;QAED,KAAK,CAAC,kBAAkB,CAAC,WAAW,EAAE,gBAAgB;YAClD,OAAO,yBAAyB,CAAC,QAAQ,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;QAC9E,CAAC;QAED,KAAK,CAAC,0BAA0B,CAAC,WAAW,EAAE,gBAAgB;YAC1D,OAAO,iCAAiC,CAAC,QAAQ,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;QACtF,CAAC;KACJ,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry-package-path.js","sourceRoot":"","sources":["../../../../../source/bundle-emitter/registry/registry-package-path.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,qBAAqB,CAAC,WAAmB;IACrD,OAAO,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC3C,CAAC"}
|