packtory 0.0.91 → 0.0.92
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/artifacts/artifacts-builder.js +4 -37
- package/artifacts/artifacts-builder.js.map +1 -1
- package/artifacts/content-collection.js +2 -59
- package/artifacts/content-collection.js.map +1 -1
- package/artifacts/folder-writer.js +2 -25
- package/artifacts/folder-writer.js.map +1 -1
- package/bundle-emitter/emitter.d.ts +0 -8
- package/bundle-emitter/emitter.d.ts.map +1 -1
- package/bundle-emitter/emitter.js +6 -106
- package/bundle-emitter/emitter.js.map +1 -1
- package/bundle-emitter/extract-package-tarball.js +2 -13
- package/bundle-emitter/extract-package-tarball.js.map +1 -1
- package/bundle-emitter/fetch-published-artifacts.js +2 -16
- package/bundle-emitter/fetch-published-artifacts.js.map +1 -1
- package/bundle-emitter/publication-outcome.d.ts +0 -3
- package/bundle-emitter/publication-outcome.d.ts.map +1 -1
- package/bundle-emitter/publication-outcome.js +0 -5
- package/bundle-emitter/publication-outcome.js.map +1 -1
- package/bundle-emitter/publish-error/auto-mode-error-matching.js +2 -28
- package/bundle-emitter/publish-error/auto-mode-error-matching.js.map +1 -1
- package/bundle-emitter/publish-error/error-shape-helpers.js +0 -9
- package/bundle-emitter/publish-error/error-shape-helpers.js.map +1 -1
- package/bundle-emitter/publish-error/file-mode-error-matching.js +2 -33
- package/bundle-emitter/publish-error/file-mode-error-matching.js.map +1 -1
- package/bundle-emitter/publish-error/publish-error-messages.js +0 -24
- package/bundle-emitter/publish-error/publish-error-messages.js.map +1 -1
- package/bundle-emitter/registry/metadata-auth-retry.js +1 -24
- package/bundle-emitter/registry/metadata-auth-retry.js.map +1 -1
- package/bundle-emitter/registry/oidc-token-exchange.js +3 -68
- package/bundle-emitter/registry/oidc-token-exchange.js.map +1 -1
- package/bundle-emitter/registry/package-metadata-fetcher.d.ts +0 -13
- package/bundle-emitter/registry/package-metadata-fetcher.d.ts.map +1 -1
- package/bundle-emitter/registry/package-metadata-fetcher.js +7 -186
- package/bundle-emitter/registry/package-metadata-fetcher.js.map +1 -1
- package/bundle-emitter/registry/publish-settings-bridge.js +3 -34
- package/bundle-emitter/registry/publish-settings-bridge.js.map +1 -1
- package/bundle-emitter/registry/registry-auth-config.js +0 -106
- package/bundle-emitter/registry/registry-auth-config.js.map +1 -1
- package/bundle-emitter/registry/registry-client.d.ts +1 -13
- package/bundle-emitter/registry/registry-client.d.ts.map +1 -1
- package/bundle-emitter/registry/registry-client.js +4 -71
- package/bundle-emitter/registry/registry-client.js.map +1 -1
- package/bundle-emitter/registry/registry-package-path.js +0 -3
- package/bundle-emitter/registry/registry-package-path.js.map +1 -1
- package/bundle-emitter/registry/registry-response-schemas.js +2 -50
- package/bundle-emitter/registry/registry-response-schemas.js.map +1 -1
- package/bundle-emitter/registry/tarball-integrity.d.ts +0 -1
- package/bundle-emitter/registry/tarball-integrity.d.ts.map +1 -1
- package/bundle-emitter/registry/tarball-integrity.js +1 -31
- package/bundle-emitter/registry/tarball-integrity.js.map +1 -1
- package/bundle-emitter/registry/validate-tarball-host.js +1 -26
- package/bundle-emitter/registry/validate-tarball-host.js.map +1 -1
- package/bundle-emitter/release-artifact-canonicalizer.js +5 -31
- package/bundle-emitter/release-artifact-canonicalizer.js.map +1 -1
- package/checks/check-runner.js +0 -8
- package/checks/check-runner.js.map +1 -1
- package/checks/rule.js +2 -12
- package/checks/rule.js.map +1 -1
- package/checks/rules/duplicate-detection.js +1 -23
- package/checks/rules/duplicate-detection.js.map +1 -1
- package/checks/rules/duplicate-messages.js +0 -22
- package/checks/rules/duplicate-messages.js.map +1 -1
- package/checks/rules/file-ownership.js +0 -15
- package/checks/rules/file-ownership.js.map +1 -1
- package/checks/rules/max-bundle-size.js +1 -55
- package/checks/rules/max-bundle-size.js.map +1 -1
- package/checks/rules/no-dev-dependency-imports.js +1 -51
- package/checks/rules/no-dev-dependency-imports.js.map +1 -1
- package/checks/rules/no-duplicated-files.js +3 -53
- package/checks/rules/no-duplicated-files.js.map +1 -1
- package/checks/rules/no-side-effects.js +1 -50
- package/checks/rules/no-side-effects.js.map +1 -1
- package/checks/rules/no-unexposed-executables.js +2 -43
- package/checks/rules/no-unexposed-executables.js.map +1 -1
- package/checks/rules/no-unused-bundle-dependencies.js +2 -30
- package/checks/rules/no-unused-bundle-dependencies.js.map +1 -1
- package/checks/rules/registry.js +9 -22
- package/checks/rules/registry.js.map +1 -1
- package/checks/rules/required-files.js +3 -41
- package/checks/rules/required-files.js.map +1 -1
- package/checks/rules/type-script-declaration-integrity.js +3 -81
- package/checks/rules/type-script-declaration-integrity.js.map +1 -1
- package/checks/rules/type-script-declaration-paths.js +1 -55
- package/checks/rules/type-script-declaration-paths.js.map +1 -1
- package/checks/rules/type-script-declaration-project.js +3 -202
- package/checks/rules/type-script-declaration-project.js.map +1 -1
- package/checks/rules/type-script-declaration-reachability.js +2 -38
- package/checks/rules/type-script-declaration-reachability.js.map +1 -1
- package/checks/rules/type-script-declaration-roots.js +0 -29
- package/checks/rules/type-script-declaration-roots.js.map +1 -1
- package/checks/rules/type-script-integrity.js +2 -72
- package/checks/rules/type-script-integrity.js.map +1 -1
- package/checks/rules/type-script-package-resolution.js +1 -42
- package/checks/rules/type-script-package-resolution.js.map +1 -1
- package/checks/rules/type-script-resolution-summary.js +0 -53
- package/checks/rules/type-script-resolution-summary.js.map +1 -1
- package/checks/rules/unique-target-paths.js +2 -34
- package/checks/rules/unique-target-paths.js.map +1 -1
- package/common/bundled-dependency-groups.js +0 -27
- package/common/bundled-dependency-groups.js.map +1 -1
- package/common/code-files.js +0 -28
- package/common/code-files.js.map +1 -1
- package/common/declaration-companion-paths.js +0 -24
- package/common/declaration-companion-paths.js.map +1 -1
- package/common/package-name-map.js +0 -7
- package/common/package-name-map.js.map +1 -1
- package/common/stable-json.js +2 -42
- package/common/stable-json.js.map +1 -1
- package/common/worklist.js +0 -22
- package/common/worklist.js.map +1 -1
- package/config/additional-files.js +2 -6
- package/config/additional-files.js.map +1 -1
- package/config/additional-package-json-attributes-schema.js +2 -6
- package/config/additional-package-json-attributes-schema.js.map +1 -1
- package/config/automatic-versioning-settings.js +2 -6
- package/config/automatic-versioning-settings.js.map +1 -1
- package/config/changelog-settings.d.ts +0 -44
- package/config/changelog-settings.d.ts.map +1 -1
- package/config/changelog-settings.js +3 -120
- package/config/changelog-settings.js.map +1 -1
- package/config/common-package-settings-schemas.js +3 -19
- package/config/common-package-settings-schemas.js.map +1 -1
- package/config/config.d.ts +1 -6
- package/config/config.d.ts.map +1 -1
- package/config/config.js +1 -3
- package/config/config.js.map +1 -1
- package/config/cross-package-validation.js +0 -17
- package/config/cross-package-validation.js.map +1 -1
- package/config/dead-code-elimination-settings.d.ts +0 -1
- package/config/dead-code-elimination-settings.d.ts.map +1 -1
- package/config/dead-code-elimination-settings.js +2 -36
- package/config/dead-code-elimination-settings.js.map +1 -1
- package/config/dependency-existence-validation.js +1 -19
- package/config/dependency-existence-validation.js.map +1 -1
- package/config/dependency-policy.js +2 -5
- package/config/dependency-policy.js.map +1 -1
- package/config/main-package-json-schema.js +2 -13
- package/config/main-package-json-schema.js.map +1 -1
- package/config/manual-versioning-settings.d.ts +0 -12
- package/config/manual-versioning-settings.d.ts.map +1 -1
- package/config/manual-versioning-settings.js +2 -29
- package/config/manual-versioning-settings.js.map +1 -1
- package/config/optional-package-settings-schema.js +7 -16
- package/config/optional-package-settings-schema.js.map +1 -1
- package/config/package-config.d.ts +0 -4
- package/config/package-config.d.ts.map +1 -1
- package/config/package-config.js +1 -2
- package/config/package-config.js.map +1 -1
- package/config/package-graph-builder.js +2 -14
- package/config/package-graph-builder.js.map +1 -1
- package/config/package-interface.js +2 -25
- package/config/package-interface.js.map +1 -1
- package/config/package-json.d.ts +0 -2
- package/config/package-json.d.ts.map +1 -1
- package/config/package-json.js +0 -16
- package/config/package-json.js.map +1 -1
- package/config/packtory-config-without-registry-schema.js +0 -6
- package/config/packtory-config-without-registry-schema.js.map +1 -1
- package/config/per-package-settings-schema.js +6 -22
- package/config/per-package-settings-schema.js.map +1 -1
- package/config/pre-graph-validation.js +5 -20
- package/config/pre-graph-validation.js.map +1 -1
- package/config/publish-settings.d.ts +0 -3
- package/config/publish-settings.d.ts.map +1 -1
- package/config/publish-settings.js +3 -25
- package/config/publish-settings.js.map +1 -1
- package/config/publish-settings.report.js +1 -17
- package/config/publish-settings.report.js.map +1 -1
- package/config/registry-settings.d.ts +0 -41
- package/config/registry-settings.d.ts.map +1 -1
- package/config/registry-settings.js +2 -40
- package/config/registry-settings.js.map +1 -1
- package/config/registry-settings.report.js +0 -46
- package/config/registry-settings.report.js.map +1 -1
- package/config/root-config-validation.js +0 -141
- package/config/root-config-validation.js.map +1 -1
- package/config/root.js +2 -6
- package/config/root.js.map +1 -1
- package/config/sbom-settings.js +1 -4
- package/config/sbom-settings.js.map +1 -1
- package/config/settings-validation.js +0 -28
- package/config/settings-validation.js.map +1 -1
- package/config/versioning-settings.d.ts +1 -18
- package/config/versioning-settings.d.ts.map +1 -1
- package/config/versioning-settings.js +3 -10
- package/config/versioning-settings.js.map +1 -1
- package/dead-code-eliminator/analyzed-bundle.d.ts +0 -11
- package/dead-code-eliminator/analyzed-bundle.d.ts.map +1 -1
- package/dead-code-eliminator/analyzed-bundle.js +0 -7
- package/dead-code-eliminator/analyzed-bundle.js.map +1 -1
- package/dead-code-eliminator/class-purity.js +2 -48
- package/dead-code-eliminator/class-purity.js.map +1 -1
- package/dead-code-eliminator/code-file-analyzer.js +4 -62
- package/dead-code-eliminator/code-file-analyzer.js.map +1 -1
- package/dead-code-eliminator/cross-bundle/bundle-index.js +1 -27
- package/dead-code-eliminator/cross-bundle/bundle-index.js.map +1 -1
- package/dead-code-eliminator/cross-bundle/cross-bundle-seeds.js +3 -18
- package/dead-code-eliminator/cross-bundle/cross-bundle-seeds.js.map +1 -1
- package/dead-code-eliminator/cross-bundle/import-export-walker.js +4 -75
- package/dead-code-eliminator/cross-bundle/import-export-walker.js.map +1 -1
- package/dead-code-eliminator/cross-bundle/seed-store.js +1 -22
- package/dead-code-eliminator/cross-bundle/seed-store.js.map +1 -1
- package/dead-code-eliminator/dependency-metadata.js +3 -205
- package/dead-code-eliminator/dependency-metadata.js.map +1 -1
- package/dead-code-eliminator/elimination-emitter.js +0 -52
- package/dead-code-eliminator/elimination-emitter.js.map +1 -1
- package/dead-code-eliminator/eliminator.js +8 -64
- package/dead-code-eliminator/eliminator.js.map +1 -1
- package/dead-code-eliminator/expression-unwrapping.js +1 -16
- package/dead-code-eliminator/expression-unwrapping.js.map +1 -1
- package/dead-code-eliminator/imported-expression-origin.js +2 -101
- package/dead-code-eliminator/imported-expression-origin.js.map +1 -1
- package/dead-code-eliminator/liveness/asset-side-effects.js +1 -9
- package/dead-code-eliminator/liveness/asset-side-effects.js.map +1 -1
- package/dead-code-eliminator/liveness/boolean-facts.js +2 -98
- package/dead-code-eliminator/liveness/boolean-facts.js.map +1 -1
- package/dead-code-eliminator/liveness/external-module-resolution.js +2 -172
- package/dead-code-eliminator/liveness/external-module-resolution.js.map +1 -1
- package/dead-code-eliminator/liveness/external-purity-summary.js +3 -294
- package/dead-code-eliminator/liveness/external-purity-summary.js.map +1 -1
- package/dead-code-eliminator/liveness/external-purity.js +3 -39
- package/dead-code-eliminator/liveness/external-purity.js.map +1 -1
- package/dead-code-eliminator/liveness/module-analysis.js +2 -27
- package/dead-code-eliminator/liveness/module-analysis.js.map +1 -1
- package/dead-code-eliminator/liveness/resource-retention.js +1 -78
- package/dead-code-eliminator/liveness/resource-retention.js.map +1 -1
- package/dead-code-eliminator/liveness/runtime-code.js +1 -15
- package/dead-code-eliminator/liveness/runtime-code.js.map +1 -1
- package/dead-code-eliminator/load-bundle.js +5 -70
- package/dead-code-eliminator/load-bundle.js.map +1 -1
- package/dead-code-eliminator/pure-expression.js +5 -178
- package/dead-code-eliminator/pure-expression.js.map +1 -1
- package/dead-code-eliminator/reachability/bfs-closure.js +0 -50
- package/dead-code-eliminator/reachability/bfs-closure.js.map +1 -1
- package/dead-code-eliminator/reachability/binding-extractor.js +2 -100
- package/dead-code-eliminator/reachability/binding-extractor.js.map +1 -1
- package/dead-code-eliminator/reachability/binding-id.js +0 -32
- package/dead-code-eliminator/reachability/binding-id.js.map +1 -1
- package/dead-code-eliminator/reachability/identifier-target-collector.js +1 -39
- package/dead-code-eliminator/reachability/identifier-target-collector.js.map +1 -1
- package/dead-code-eliminator/reachability/impure-statements.js +2 -11
- package/dead-code-eliminator/reachability/impure-statements.js.map +1 -1
- package/dead-code-eliminator/reachability/local-seed-gathering.js +4 -43
- package/dead-code-eliminator/reachability/local-seed-gathering.js.map +1 -1
- package/dead-code-eliminator/reachability/reachability.js +4 -38
- package/dead-code-eliminator/reachability/reachability.js.map +1 -1
- package/dead-code-eliminator/side-effect-classifier.js +4 -39
- package/dead-code-eliminator/side-effect-classifier.js.map +1 -1
- package/dead-code-eliminator/side-effects-field.js +1 -23
- package/dead-code-eliminator/side-effects-field.js.map +1 -1
- package/dead-code-eliminator/source-map-recomposition.js +2 -29
- package/dead-code-eliminator/source-map-recomposition.js.map +1 -1
- package/dead-code-eliminator/statement-classifiers.js +4 -94
- package/dead-code-eliminator/statement-classifiers.js.map +1 -1
- package/dead-code-eliminator/syntax-kind-sets.js +0 -16
- package/dead-code-eliminator/syntax-kind-sets.js.map +1 -1
- package/dead-code-eliminator/transform/atom-translator.d.ts +0 -8
- package/dead-code-eliminator/transform/atom-translator.d.ts.map +1 -1
- package/dead-code-eliminator/transform/atom-translator.js +2 -57
- package/dead-code-eliminator/transform/atom-translator.js.map +1 -1
- package/dead-code-eliminator/transform/declaration-removal.js +4 -135
- package/dead-code-eliminator/transform/declaration-removal.js.map +1 -1
- package/dead-code-eliminator/transform/declaration-remover.js +2 -17
- package/dead-code-eliminator/transform/declaration-remover.js.map +1 -1
- package/dead-code-eliminator/transform/line-index.d.ts +0 -7
- package/dead-code-eliminator/transform/line-index.d.ts.map +1 -1
- package/dead-code-eliminator/transform/line-index.js +0 -20
- package/dead-code-eliminator/transform/line-index.js.map +1 -1
- package/dead-code-eliminator/transform/named-declaration-kinds.js +0 -3
- package/dead-code-eliminator/transform/named-declaration-kinds.js.map +1 -1
- package/dead-code-eliminator/transform/source-map-composer.js +3 -84
- package/dead-code-eliminator/transform/source-map-composer.js.map +1 -1
- package/dead-code-eliminator/variable-declaration-bindings.js +1 -25
- package/dead-code-eliminator/variable-declaration-bindings.js.map +1 -1
- package/dependency-scanner/dependency-graph.js +3 -74
- package/dependency-scanner/dependency-graph.js.map +1 -1
- package/dependency-scanner/external-dependencies.d.ts +0 -9
- package/dependency-scanner/external-dependencies.d.ts.map +1 -1
- package/dependency-scanner/external-dependencies.js +1 -55
- package/dependency-scanner/external-dependencies.js.map +1 -1
- package/dependency-scanner/file-host-predicates.js +0 -9
- package/dependency-scanner/file-host-predicates.js.map +1 -1
- package/dependency-scanner/host-method-binding.js +0 -18
- package/dependency-scanner/host-method-binding.js.map +1 -1
- package/dependency-scanner/injected-dynamic-imports.js +1 -232
- package/dependency-scanner/injected-dynamic-imports.js.map +1 -1
- package/dependency-scanner/node-modules-manifest-synthesizer.js +4 -52
- package/dependency-scanner/node-modules-manifest-synthesizer.js.map +1 -1
- package/dependency-scanner/package-owned-asset-file-path.js +1 -9
- package/dependency-scanner/package-owned-asset-file-path.js.map +1 -1
- package/dependency-scanner/scanner.js +4 -102
- package/dependency-scanner/scanner.js.map +1 -1
- package/dependency-scanner/source-file-references.js +6 -174
- package/dependency-scanner/source-file-references.js.map +1 -1
- package/dependency-scanner/source-map-file-locator.js +2 -66
- package/dependency-scanner/source-map-file-locator.js.map +1 -1
- package/dependency-scanner/typescript-compiler-options.js +1 -21
- package/dependency-scanner/typescript-compiler-options.js.map +1 -1
- package/dependency-scanner/typescript-file-host.js +5 -49
- package/dependency-scanner/typescript-file-host.js.map +1 -1
- package/dependency-scanner/typescript-project-analyzer.js +3 -35
- package/dependency-scanner/typescript-project-analyzer.js.map +1 -1
- package/dependency-scanner/virtual-package-json-host.js +4 -45
- package/dependency-scanner/virtual-package-json-host.js.map +1 -1
- package/directed-graph/graph.d.ts +0 -1
- package/directed-graph/graph.d.ts.map +1 -1
- package/directed-graph/graph.js +1 -240
- package/directed-graph/graph.js.map +1 -1
- package/file-manager/compare.js +2 -23
- package/file-manager/compare.js.map +1 -1
- package/file-manager/equal.js +0 -5
- package/file-manager/equal.js.map +1 -1
- package/file-manager/file-description.d.ts +0 -1
- package/file-manager/file-description.d.ts.map +1 -1
- package/file-manager/file-description.js +0 -3
- package/file-manager/file-description.js.map +1 -1
- package/file-manager/permissions.js +1 -28
- package/file-manager/permissions.js.map +1 -1
- package/git/current-git-head.js +0 -24
- package/git/current-git-head.js.map +1 -1
- package/git/git-command.js +1 -49
- package/git/git-command.js.map +1 -1
- package/linker/linked-bundle.d.ts +0 -8
- package/linker/linked-bundle.d.ts.map +1 -1
- package/linker/linked-bundle.js +0 -5
- package/linker/linked-bundle.js.map +1 -1
- package/linker/linker.js +5 -51
- package/linker/linker.js.map +1 -1
- package/linker/replacement-lookup.js +8 -295
- package/linker/replacement-lookup.js.map +1 -1
- package/linker/resource-graph.js +2 -44
- package/linker/resource-graph.js.map +1 -1
- package/linker/source-modifier/import-paths.js +3 -76
- package/linker/source-modifier/import-paths.js.map +1 -1
- package/linker/substitute-bundles.js +3 -140
- package/linker/substitute-bundles.js.map +1 -1
- package/linker/substituted-resource-graph.js +2 -99
- package/linker/substituted-resource-graph.js.map +1 -1
- package/npm-oidc-id-token-resolver.js +0 -82
- package/npm-oidc-id-token-resolver.js.map +1 -1
- package/pack-emitter/pack-emitter.d.ts +0 -20
- package/pack-emitter/pack-emitter.d.ts.map +1 -1
- package/pack-emitter/pack-emitter.js +0 -27
- package/pack-emitter/pack-emitter.js.map +1 -1
- package/package-surface/bin-field.js +2 -8
- package/package-surface/bin-field.js.map +1 -1
- package/package-surface/explicit-bin.js +2 -24
- package/package-surface/explicit-bin.js.map +1 -1
- package/package-surface/explicit-exports.js +3 -26
- package/package-surface/explicit-exports.js.map +1 -1
- package/package-surface/export-map.js +2 -9
- package/package-surface/export-map.js.map +1 -1
- package/package-surface/implicit-bin.js +1 -25
- package/package-surface/implicit-bin.js.map +1 -1
- package/package-surface/implicit-exports.js +3 -10
- package/package-surface/implicit-exports.js.map +1 -1
- package/package-surface/implicit-root-exports.js +2 -13
- package/package-surface/implicit-root-exports.js.map +1 -1
- package/package-surface/package-json-export.js +0 -9
- package/package-surface/package-json-export.js.map +1 -1
- package/package-surface/package-shape.js +1 -10
- package/package-surface/package-shape.js.map +1 -1
- package/package-surface/package-surface-index.js +3 -165
- package/package-surface/package-surface-index.js.map +1 -1
- package/package-surface/public-module-usage.js +3 -46
- package/package-surface/public-module-usage.js.map +1 -1
- package/package-surface/public-specifiers.js +1 -7
- package/package-surface/public-specifiers.js.map +1 -1
- package/package-surface/root-registry.js +0 -26
- package/package-surface/root-registry.js.map +1 -1
- package/package-surface/specifier-syntax.js +0 -4
- package/package-surface/specifier-syntax.js.map +1 -1
- package/package-surface/substitution-exports.js +3 -101
- package/package-surface/substitution-exports.js.map +1 -1
- package/package-surface/surface.d.ts +0 -2
- package/package-surface/surface.d.ts.map +1 -1
- package/package-surface/surface.js +0 -12
- package/package-surface/surface.js.map +1 -1
- package/package.json +1 -1
- package/packages/package-processor.composition.d.ts +0 -22
- package/packages/package-processor.composition.d.ts.map +1 -1
- package/packages/package-processor.composition.js +34 -160
- package/packages/package-processor.composition.js.map +1 -1
- package/packtory/map-config.d.ts +3 -22
- package/packtory/map-config.d.ts.map +1 -1
- package/packtory/map-config.js +4 -35
- package/packtory/map-config.js.map +1 -1
- package/packtory/normalize-paths.js +1 -25
- package/packtory/normalize-paths.js.map +1 -1
- package/packtory/options/bundle-dependency-resolution.js +1 -17
- package/packtory/options/bundle-dependency-resolution.js.map +1 -1
- package/packtory/options/dead-code-elimination-resolution.js +1 -10
- package/packtory/options/dead-code-elimination-resolution.js.map +1 -1
- package/packtory/options/prepare-package-options.d.ts +0 -14
- package/packtory/options/prepare-package-options.d.ts.map +1 -1
- package/packtory/options/prepare-package-options.js +5 -46
- package/packtory/options/prepare-package-options.js.map +1 -1
- package/packtory/options/required-value-helpers.js +0 -17
- package/packtory/options/required-value-helpers.js.map +1 -1
- package/packtory/options/setting-resolvers.d.ts +0 -18
- package/packtory/options/setting-resolvers.d.ts.map +1 -1
- package/packtory/options/setting-resolvers.js +3 -47
- package/packtory/options/setting-resolvers.js.map +1 -1
- package/packtory/options/surface-resolution.js +2 -15
- package/packtory/options/surface-resolution.js.map +1 -1
- package/packtory/options/version-provider-context.js +2 -24
- package/packtory/options/version-provider-context.js.map +1 -1
- package/packtory/options/version-trigger.js +2 -39
- package/packtory/options/version-trigger.js.map +1 -1
- package/packtory/pack-output-preflight.js +3 -60
- package/packtory/pack-output-preflight.js.map +1 -1
- package/packtory/package-processor-build.js +3 -97
- package/packtory/package-processor-build.js.map +1 -1
- package/packtory/package-processor-publish.d.ts +0 -13
- package/packtory/package-processor-publish.d.ts.map +1 -1
- package/packtory/package-processor-publish.js +5 -293
- package/packtory/package-processor-publish.js.map +1 -1
- package/packtory/package-processor.d.ts +1 -34
- package/packtory/package-processor.d.ts.map +1 -1
- package/packtory/package-processor.js +2 -10
- package/packtory/package-processor.js.map +1 -1
- package/packtory/packtory-pack.js +10 -298
- package/packtory/packtory-pack.js.map +1 -1
- package/packtory/packtory-package-dependencies.js +7 -135
- package/packtory/packtory-package-dependencies.js.map +1 -1
- package/packtory/packtory-package-tree.js +4 -43
- package/packtory/packtory-package-tree.js.map +1 -1
- package/packtory/packtory-publish.js +4 -17
- package/packtory/packtory-publish.js.map +1 -1
- package/packtory/packtory-release-analysis.js +6 -64
- package/packtory/packtory-release-analysis.js.map +1 -1
- package/packtory/packtory-release-diff.js +5 -48
- package/packtory/packtory-release-diff.js.map +1 -1
- package/packtory/packtory-release-plan.js +6 -87
- package/packtory/packtory-release-plan.js.map +1 -1
- package/packtory/packtory-resolve.js +5 -16
- package/packtory/packtory-resolve.js.map +1 -1
- package/packtory/packtory.d.ts +1 -28
- package/packtory/packtory.d.ts.map +1 -1
- package/packtory/packtory.js +12 -225
- package/packtory/packtory.js.map +1 -1
- package/packtory/publish-failure-mapping.js +0 -6
- package/packtory/publish-failure-mapping.js.map +1 -1
- package/packtory/published-release-state.d.ts +0 -19
- package/packtory/published-release-state.d.ts.map +1 -1
- package/packtory/published-release-state.js +0 -11
- package/packtory/published-release-state.js.map +1 -1
- package/packtory/release-analysis.js +5 -153
- package/packtory/release-analysis.js.map +1 -1
- package/packtory/release-diff-failure-mapping.js +0 -6
- package/packtory/release-diff-failure-mapping.js.map +1 -1
- package/packtory/release-plan.js +7 -135
- package/packtory/release-plan.js.map +1 -1
- package/packtory/report-attachment.js +2 -35
- package/packtory/report-attachment.js.map +1 -1
- package/packtory/resolved-package.d.ts +0 -11
- package/packtory/resolved-package.d.ts.map +1 -1
- package/packtory/resolved-package.js +3 -97
- package/packtory/resolved-package.js.map +1 -1
- package/packtory/scheduler.d.ts +0 -47
- package/packtory/scheduler.d.ts.map +1 -1
- package/packtory/scheduler.js +1 -99
- package/packtory/scheduler.js.map +1 -1
- package/packtory/stages/package-analysis-stage.js +2 -50
- package/packtory/stages/package-analysis-stage.js.map +1 -1
- package/packtory/stages/package-resolution-stage.js +5 -80
- package/packtory/stages/package-resolution-stage.js.map +1 -1
- package/packtory/stages/publish-stage.js +3 -54
- package/packtory/stages/publish-stage.js.map +1 -1
- package/packtory/stages/release-diff-stage.js +5 -84
- package/packtory/stages/release-diff-stage.js.map +1 -1
- package/progress/progress-broadcaster.d.ts +0 -1
- package/progress/progress-broadcaster.d.ts.map +1 -1
- package/progress/progress-broadcaster.js +0 -45
- package/progress/progress-broadcaster.js.map +1 -1
- package/published-package/published-package.d.ts +0 -2
- package/published-package/published-package.d.ts.map +1 -1
- package/published-package/published-package.js +1 -12
- package/published-package/published-package.js.map +1 -1
- package/report/aggregator/artifact-entry-merger.js +0 -20
- package/report/aggregator/artifact-entry-merger.js.map +1 -1
- package/report/aggregator/package-report-materialization.js +2 -75
- package/report/aggregator/package-report-materialization.js.map +1 -1
- package/report/aggregator/report-aggregator.js +2 -37
- package/report/aggregator/report-aggregator.js.map +1 -1
- package/report/aggregator/report-event-handlers.js +2 -141
- package/report/aggregator/report-event-handlers.js.map +1 -1
- package/report/aggregator/report-types.d.ts +0 -21
- package/report/aggregator/report-types.d.ts.map +1 -1
- package/report/aggregator/report-types.js +0 -3
- package/report/aggregator/report-types.js.map +1 -1
- package/report/config-redactor.js +3 -29
- package/report/config-redactor.js.map +1 -1
- package/report/decorators.js +0 -76
- package/report/decorators.js.map +1 -1
- package/report/inspectors/inspect-artifact-sizes.js +1 -34
- package/report/inspectors/inspect-artifact-sizes.js.map +1 -1
- package/report/inspectors/inspect-linker-rewrites.js +1 -14
- package/report/inspectors/inspect-linker-rewrites.js.map +1 -1
- package/report/inspectors/inspect-package-json-provenance.js +0 -15
- package/report/inspectors/inspect-package-json-provenance.js.map +1 -1
- package/report/inspectors/inspect-scan-results.js +0 -15
- package/report/inspectors/inspect-scan-results.js.map +1 -1
- package/report/release-diff/release-version-transition.js +0 -18
- package/report/release-diff/release-version-transition.js.map +1 -1
- package/resource-resolver/bundle-resource-lookup.js +0 -25
- package/resource-resolver/bundle-resource-lookup.js.map +1 -1
- package/resource-resolver/content.js +3 -81
- package/resource-resolver/content.js.map +1 -1
- package/resource-resolver/dependency-resolution-walker.js +2 -73
- package/resource-resolver/dependency-resolution-walker.js.map +1 -1
- package/resource-resolver/resolved-bundle.d.ts +0 -17
- package/resource-resolver/resolved-bundle.d.ts.map +1 -1
- package/resource-resolver/resolved-bundle.js +0 -3
- package/resource-resolver/resolved-bundle.js.map +1 -1
- package/resource-resolver/resource-resolve-options.d.ts +0 -5
- package/resource-resolver/resource-resolve-options.d.ts.map +1 -1
- package/resource-resolver/resource-resolve-options.js +1 -13
- package/resource-resolver/resource-resolve-options.js.map +1 -1
- package/resource-resolver/resource-resolver.js +5 -83
- package/resource-resolver/resource-resolver.js.map +1 -1
- package/sbom/extract-license.js +1 -11
- package/sbom/extract-license.js.map +1 -1
- package/sbom/license-resolver.js +2 -23
- package/sbom/license-resolver.js.map +1 -1
- package/sbom/sbom-builder.js +2 -57
- package/sbom/sbom-builder.js.map +1 -1
- package/sbom/sbom-canonicalizer.js +3 -45
- package/sbom/sbom-canonicalizer.js.map +1 -1
- package/sbom/sbom-file.d.ts +0 -10
- package/sbom/sbom-file.d.ts.map +1 -1
- package/sbom/sbom-file.js +5 -54
- package/sbom/sbom-file.js.map +1 -1
- package/sbom/sbom-serializer.js +1 -14
- package/sbom/sbom-serializer.js.map +1 -1
- package/sbom/tool-version.js +1 -49
- package/sbom/tool-version.js.map +1 -1
- package/sbom.cdx.json +5 -5
- package/tar/extract-tar.js +3 -83
- package/tar/extract-tar.js.map +1 -1
- package/tar/gzipped-pack.js +0 -20
- package/tar/gzipped-pack.js.map +1 -1
- package/tar/tarball-builder.js +4 -44
- package/tar/tarball-builder.js.map +1 -1
- package/vendor-materializer/vendor-entry.js +1 -20
- package/vendor-materializer/vendor-entry.js.map +1 -1
- package/vendor-materializer/vendor-materializer.js +8 -240
- package/vendor-materializer/vendor-materializer.js.map +1 -1
- package/version-manager/dependencies/bundle-dependency-grouping.js +2 -32
- package/version-manager/dependencies/bundle-dependency-grouping.js.map +1 -1
- package/version-manager/dependencies/dependency-groups.js +1 -11
- package/version-manager/dependencies/dependency-groups.js.map +1 -1
- package/version-manager/dependencies/external-dependency-classification.js +3 -82
- package/version-manager/dependencies/external-dependency-classification.js.map +1 -1
- package/version-manager/dependencies/versioned-bundle-dependencies.js +3 -8
- package/version-manager/dependencies/versioned-bundle-dependencies.js.map +1 -1
- package/version-manager/imports/hash-import-scanner.js +2 -20
- package/version-manager/imports/hash-import-scanner.js.map +1 -1
- package/version-manager/imports/imports-key-matcher.js +0 -22
- package/version-manager/imports/imports-key-matcher.js.map +1 -1
- package/version-manager/imports/versioned-bundle-imports.js +2 -44
- package/version-manager/imports/versioned-bundle-imports.js.map +1 -1
- package/version-manager/manager.d.ts +0 -5
- package/version-manager/manager.d.ts.map +1 -1
- package/version-manager/manager.js +6 -46
- package/version-manager/manager.js.map +1 -1
- package/version-manager/manifest/builder.js +1 -51
- package/version-manager/manifest/builder.js.map +1 -1
- package/version-manager/manifest/serialize.js +1 -8
- package/version-manager/manifest/serialize.js.map +1 -1
- package/version-manager/optional-bundle-fields.js +1 -5
- package/version-manager/optional-bundle-fields.js.map +1 -1
- package/version-manager/representative-root.js +1 -9
- package/version-manager/representative-root.js.map +1 -1
- package/version-manager/specifier-classifier.js +2 -42
- package/version-manager/specifier-classifier.js.map +1 -1
- package/version-manager/specifier-errors.js +0 -58
- package/version-manager/specifier-errors.js.map +1 -1
- package/version-manager/versioned-bundle.d.ts +1 -3
- package/version-manager/versioned-bundle.d.ts.map +1 -1
- package/version-manager/versioned-bundle.js +6 -31
- package/version-manager/versioned-bundle.js.map +1 -1
- package/zip/zip-builder.js +2 -81
- package/zip/zip-builder.js.map +1 -1
- package/artifacts/artifacts-builder.d.ts +0 -28
- package/artifacts/artifacts-builder.d.ts.map +0 -1
- package/bundle-emitter/registry/registry-auth-config.d.ts +0 -17
- package/bundle-emitter/registry/registry-auth-config.d.ts.map +0 -1
- package/checks/check-runner.d.ts +0 -18
- package/checks/check-runner.d.ts.map +0 -1
- package/checks/rule.d.ts +0 -42
- package/checks/rule.d.ts.map +0 -1
- package/checks/rules/max-bundle-size.d.ts +0 -13
- package/checks/rules/max-bundle-size.d.ts.map +0 -1
- package/checks/rules/no-dev-dependency-imports.d.ts +0 -11
- package/checks/rules/no-dev-dependency-imports.d.ts.map +0 -1
- package/checks/rules/no-duplicated-files.d.ts +0 -11
- package/checks/rules/no-duplicated-files.d.ts.map +0 -1
- package/checks/rules/no-side-effects.d.ts +0 -15
- package/checks/rules/no-side-effects.d.ts.map +0 -1
- package/checks/rules/no-unexposed-executables.d.ts +0 -8
- package/checks/rules/no-unexposed-executables.d.ts.map +0 -1
- package/checks/rules/no-unused-bundle-dependencies.d.ts +0 -8
- package/checks/rules/no-unused-bundle-dependencies.d.ts.map +0 -1
- package/checks/rules/registry.d.ts +0 -23
- package/checks/rules/registry.d.ts.map +0 -1
- package/checks/rules/required-files.d.ts +0 -15
- package/checks/rules/required-files.d.ts.map +0 -1
- package/checks/rules/type-script-declaration-integrity.d.ts +0 -9
- package/checks/rules/type-script-declaration-integrity.d.ts.map +0 -1
- package/checks/rules/type-script-declaration-project.d.ts +0 -29
- package/checks/rules/type-script-declaration-project.d.ts.map +0 -1
- package/checks/rules/type-script-integrity.d.ts +0 -24
- package/checks/rules/type-script-integrity.d.ts.map +0 -1
- package/checks/rules/type-script-package-resolution.d.ts +0 -29
- package/checks/rules/type-script-package-resolution.d.ts.map +0 -1
- package/checks/rules/unique-target-paths.d.ts +0 -8
- package/checks/rules/unique-target-paths.d.ts.map +0 -1
- package/dependency-scanner/dependency-graph.d.ts +0 -38
- package/dependency-scanner/dependency-graph.d.ts.map +0 -1
- package/dependency-scanner/scanner.d.ts +0 -20
- package/dependency-scanner/scanner.d.ts.map +0 -1
- package/dependency-scanner/source-file-references.d.ts +0 -30
- package/dependency-scanner/source-file-references.d.ts.map +0 -1
- package/dependency-scanner/source-map-file-locator.d.ts +0 -10
- package/dependency-scanner/source-map-file-locator.d.ts.map +0 -1
- package/dependency-scanner/typescript-compiler-options.d.ts +0 -8
- package/dependency-scanner/typescript-compiler-options.d.ts.map +0 -1
- package/dependency-scanner/typescript-file-host.d.ts +0 -12
- package/dependency-scanner/typescript-file-host.d.ts.map +0 -1
- package/dependency-scanner/typescript-project-analyzer.d.ts +0 -19
- package/dependency-scanner/typescript-project-analyzer.d.ts.map +0 -1
- package/git/current-git-head.d.ts +0 -12
- package/git/current-git-head.d.ts.map +0 -1
- package/linker/linker.d.ts +0 -13
- package/linker/linker.d.ts.map +0 -1
- package/resource-resolver/resource-resolver.d.ts +0 -15
- package/resource-resolver/resource-resolver.d.ts.map +0 -1
- package/sbom/license-resolver.d.ts +0 -14
- package/sbom/license-resolver.d.ts.map +0 -1
- package/sbom/sbom-serializer.d.ts +0 -8
- package/sbom/sbom-serializer.d.ts.map +0 -1
- package/tar/tarball-builder.d.ts +0 -14
- package/tar/tarball-builder.d.ts.map +0 -1
- package/vendor-materializer/vendor-entry.d.ts +0 -12
- package/vendor-materializer/vendor-entry.d.ts.map +0 -1
- package/vendor-materializer/vendor-materializer.d.ts +0 -55
- package/vendor-materializer/vendor-materializer.d.ts.map +0 -1
- package/zip/zip-builder.d.ts +0 -22
- package/zip/zip-builder.d.ts.map +0 -1
package/sbom/sbom-file.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sbom-file.d.ts","sourceRoot":"","sources":["../../../../source/sbom/sbom-file.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAClG,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"sbom-file.d.ts","sourceRoot":"","sources":["../../../../source/sbom/sbom-file.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAClG,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;MAe3F,MAAM,eAAe,GAAG;IAC1B,QAAQ,EAAE,CACN,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,SAAS,kBAAkB,EAAE,EACvC,eAAe,EAAE,eAAe,KAC/B,OAAO,CAAC,SAAS,eAAe,EAAE,GAAG,SAAS,CAAC,CAAC;CACxD,CAAC;AAuBF"}
|
package/sbom/sbom-file.js
CHANGED
|
@@ -1,55 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
function isSbomEnabled(publishSettings) {
|
|
7
|
-
return publishSettings.sbom?.enabled ?? true;
|
|
8
|
-
}
|
|
9
|
-
function listDependencyEntries(bundle) {
|
|
10
|
-
return [
|
|
11
|
-
...Object.entries(bundle.dependencies).map(function ([name, specifier]) {
|
|
12
|
-
return { name, specifier, scope: cdx.Enums.ComponentScope.Required };
|
|
13
|
-
}),
|
|
14
|
-
...Object.entries(bundle.peerDependencies).map(function ([name, specifier]) {
|
|
15
|
-
return { name, specifier, scope: cdx.Enums.ComponentScope.Optional };
|
|
16
|
-
})
|
|
17
|
-
];
|
|
18
|
-
}
|
|
19
|
-
export function createSbomFileBuilder(dependencies) {
|
|
20
|
-
const { licenseResolver, sbomSerializer, toolVersionProvider, projectFolder } = dependencies;
|
|
21
|
-
async function resolveDependencyEntries(bundle, siblings) {
|
|
22
|
-
const siblingsByName = new Map(siblings.map(function (sibling) {
|
|
23
|
-
return [sibling.name, sibling];
|
|
24
|
-
}));
|
|
25
|
-
const entries = listDependencyEntries(bundle);
|
|
26
|
-
return Promise.all(entries.map(async function (entry) {
|
|
27
|
-
const sibling = siblingsByName.get(entry.name);
|
|
28
|
-
const license = sibling === undefined
|
|
29
|
-
? await licenseResolver.resolveLicense({ projectFolder, dependencyName: entry.name })
|
|
30
|
-
: extractLicenseFromManifest(sibling.packageJson);
|
|
31
|
-
return { ...entry, license };
|
|
32
|
-
}));
|
|
33
|
-
}
|
|
34
|
-
async function buildFile(bundle, siblings) {
|
|
35
|
-
const [resolvedToolVersion, sbomDependencies] = await Promise.all([
|
|
36
|
-
toolVersionProvider(),
|
|
37
|
-
resolveDependencyEntries(bundle, siblings)
|
|
38
|
-
]);
|
|
39
|
-
const bom = buildSbom({
|
|
40
|
-
toolVersion: resolvedToolVersion,
|
|
41
|
-
rootComponent: { name: bundle.packageJson.name, version: bundle.packageJson.version },
|
|
42
|
-
dependencies: sbomDependencies
|
|
43
|
-
});
|
|
44
|
-
return createFileDescription(sbomArtifactFilePath, sbomSerializer.serialize(bom));
|
|
45
|
-
}
|
|
46
|
-
return {
|
|
47
|
-
async generate(bundle, siblings, publishSettings) {
|
|
48
|
-
if (!isSbomEnabled(publishSettings)) {
|
|
49
|
-
return undefined;
|
|
50
|
-
}
|
|
51
|
-
return [await buildFile(bundle, siblings)];
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
}
|
|
1
|
+
import '@cyclonedx/cyclonedx-library';
|
|
2
|
+
import "../common/package-layout.js";
|
|
3
|
+
import "../file-manager/file-description.js";
|
|
4
|
+
import "./extract-license.js";
|
|
5
|
+
import "./sbom-builder.js";
|
|
55
6
|
//# sourceMappingURL=sbom-file.js.map
|
package/sbom/sbom-file.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sbom-file.js","sourceRoot":"","sources":["../../../../source/sbom/sbom-file.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"sbom-file.js","sourceRoot":"","sources":["../../../../source/sbom/sbom-file.ts"],"names":[],"mappings":"AAAA,OAAqB,8BAA8B,CAAC;AACpD,OAAqC,6BAA6B,CAAC;AAEnE,OAA4D,qCAAqC,CAAC;AAElG,OAA2C,sBAAsB,CAAC;AAGlE,OAA+C,mBAAmB,CAAC"}
|
package/sbom/sbom-serializer.js
CHANGED
|
@@ -1,15 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
function createCycloneDxJsonSerializer() {
|
|
3
|
-
return new cdx.Serialize.JsonSerializer(new cdx.Serialize.JSON.Normalize.Factory(cdx.Spec.Spec1dot6));
|
|
4
|
-
}
|
|
5
|
-
function serializeBom(serializer, bom) {
|
|
6
|
-
return String(Reflect.apply(serializer.serialize, serializer, [bom, { sortLists: true, space: 4 }]));
|
|
7
|
-
}
|
|
8
|
-
export function createSbomSerializer() {
|
|
9
|
-
const serializer = createCycloneDxJsonSerializer();
|
|
10
|
-
const serialize = function (bom) {
|
|
11
|
-
return serializeBom(serializer, bom);
|
|
12
|
-
};
|
|
13
|
-
return { serialize };
|
|
14
|
-
}
|
|
1
|
+
import '@cyclonedx/cyclonedx-library';
|
|
15
2
|
//# sourceMappingURL=sbom-serializer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sbom-serializer.js","sourceRoot":"","sources":["../../../../source/sbom/sbom-serializer.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"sbom-serializer.js","sourceRoot":"","sources":["../../../../source/sbom/sbom-serializer.ts"],"names":[],"mappings":"AAAA,OAAqB,8BAA8B,CAAC"}
|
package/sbom/tool-version.js
CHANGED
|
@@ -1,50 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
const candidatePackageNames = ['@packtory/cli', 'packtory'];
|
|
3
|
-
function buildUnresolvableMessage() {
|
|
4
|
-
const intro = 'Cannot determine packtory tool version: neither "@packtory/cli" nor "packtory" is resolvable.';
|
|
5
|
-
return `${intro} Install packtory via npm so it lives under node_modules/.`;
|
|
6
|
-
}
|
|
7
|
-
function isCandidatePackageName(value) {
|
|
8
|
-
return value === '@packtory/cli' || value === 'packtory';
|
|
9
|
-
}
|
|
10
|
-
function isImportResolutionError(error) {
|
|
11
|
-
if (!isObjectType(error) || !Object.hasOwn(error, 'code')) {
|
|
12
|
-
return false;
|
|
13
|
-
}
|
|
14
|
-
const code = Reflect.get(error, 'code');
|
|
15
|
-
return code === 'ERR_MODULE_NOT_FOUND' || code === 'ERR_PACKAGE_PATH_NOT_EXPORTED';
|
|
16
|
-
}
|
|
17
|
-
function unwrapJsonModule(importedModule) {
|
|
18
|
-
if (!isPlainObject(importedModule) || !Object.hasOwn(importedModule, 'default')) {
|
|
19
|
-
return importedModule;
|
|
20
|
-
}
|
|
21
|
-
return importedModule.default;
|
|
22
|
-
}
|
|
23
|
-
function parseToolPackageJson(specifier, importedModule) {
|
|
24
|
-
const parsed = unwrapJsonModule(importedModule);
|
|
25
|
-
if (!isPlainObject(parsed) || typeof parsed.version !== 'string') {
|
|
26
|
-
throw new Error(`Imported packtory package.json from "${specifier}" is missing a version field`);
|
|
27
|
-
}
|
|
28
|
-
if (!isCandidatePackageName(parsed.name)) {
|
|
29
|
-
throw new Error(`Imported packtory package.json from "${specifier}" has unexpected package name`);
|
|
30
|
-
}
|
|
31
|
-
return parsed.version;
|
|
32
|
-
}
|
|
33
|
-
export function createPacktoryToolVersionResolver(dependencies) {
|
|
34
|
-
const { importPackageJson } = dependencies;
|
|
35
|
-
return async function resolvePacktoryToolVersion() {
|
|
36
|
-
for (const candidatePackageName of candidatePackageNames) {
|
|
37
|
-
const specifier = `${candidatePackageName}/package.json`;
|
|
38
|
-
try {
|
|
39
|
-
return parseToolPackageJson(specifier, await importPackageJson(specifier));
|
|
40
|
-
}
|
|
41
|
-
catch (error) {
|
|
42
|
-
if (!isImportResolutionError(error)) {
|
|
43
|
-
throw error;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
throw new Error(buildUnresolvableMessage());
|
|
48
|
-
};
|
|
49
|
-
}
|
|
1
|
+
import 'remeda';
|
|
50
2
|
//# sourceMappingURL=tool-version.js.map
|
package/sbom/tool-version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-version.js","sourceRoot":"","sources":["../../../../source/sbom/tool-version.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"tool-version.js","sourceRoot":"","sources":["../../../../source/sbom/tool-version.ts"],"names":[],"mappings":"AAAA,OAA4C,QAAQ,CAAC"}
|
package/sbom.cdx.json
CHANGED
|
@@ -9,16 +9,16 @@
|
|
|
9
9
|
{
|
|
10
10
|
"type": "application",
|
|
11
11
|
"name": "packtory",
|
|
12
|
-
"version": "0.0.
|
|
12
|
+
"version": "0.0.98"
|
|
13
13
|
}
|
|
14
14
|
]
|
|
15
15
|
},
|
|
16
16
|
"component": {
|
|
17
17
|
"type": "library",
|
|
18
18
|
"name": "packtory",
|
|
19
|
-
"version": "0.0.
|
|
20
|
-
"bom-ref": "pkg:npm/packtory@0.0.
|
|
21
|
-
"purl": "pkg:npm/packtory@0.0.
|
|
19
|
+
"version": "0.0.92",
|
|
20
|
+
"bom-ref": "pkg:npm/packtory@0.0.92",
|
|
21
|
+
"purl": "pkg:npm/packtory@0.0.92"
|
|
22
22
|
}
|
|
23
23
|
},
|
|
24
24
|
"components": [
|
|
@@ -376,7 +376,7 @@
|
|
|
376
376
|
"ref": "pkg:npm/npm-registry-fetch@20.0.1"
|
|
377
377
|
},
|
|
378
378
|
{
|
|
379
|
-
"ref": "pkg:npm/packtory@0.0.
|
|
379
|
+
"ref": "pkg:npm/packtory@0.0.92",
|
|
380
380
|
"dependsOn": [
|
|
381
381
|
"pkg:npm/@arethetypeswrong/core@0.18.5",
|
|
382
382
|
"pkg:npm/@cyclonedx/cyclonedx-library@10.2.0",
|
package/tar/extract-tar.js
CHANGED
|
@@ -1,84 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
function defaultExtractTarLimits() {
|
|
5
|
-
return {
|
|
6
|
-
maxEntryCount: 50_000,
|
|
7
|
-
maxEntryPathLength: 4096,
|
|
8
|
-
maxExtractedBytes: 1_073_741_824
|
|
9
|
-
};
|
|
10
|
-
}
|
|
11
|
-
function toError(error) {
|
|
12
|
-
return error instanceof Error ? error : new Error(String(error));
|
|
13
|
-
}
|
|
14
|
-
function assertWithinEntryCountLimit(entries, limits) {
|
|
15
|
-
if (entries.length >= limits.maxEntryCount) {
|
|
16
|
-
throw new Error(`Refusing to extract tarball with more than ${limits.maxEntryCount} entries`);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
function assertWithinEntryPathLimit(entry, limits) {
|
|
20
|
-
if (entry.header.name.length > limits.maxEntryPathLength) {
|
|
21
|
-
throw new Error(`Refusing to extract tarball entry with path longer than ${limits.maxEntryPathLength} characters`);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
function assertWithinExtractedSizeLimit(extractedBytes, limits) {
|
|
25
|
-
if (extractedBytes > limits.maxExtractedBytes) {
|
|
26
|
-
throw new Error(`Refusing to extract tarball larger than ${limits.maxExtractedBytes} bytes`);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
async function readEntryContent(entry, currentExtractedBytes, limits) {
|
|
30
|
-
let result = '';
|
|
31
|
-
let extractedBytes = currentExtractedBytes;
|
|
32
|
-
for await (const chunk of entry) {
|
|
33
|
-
extractedBytes += chunk.length;
|
|
34
|
-
assertWithinExtractedSizeLimit(extractedBytes, limits);
|
|
35
|
-
result += chunk.toString();
|
|
36
|
-
}
|
|
37
|
-
return { content: result, extractedBytes };
|
|
38
|
-
}
|
|
39
|
-
function stableTarHeader(header) {
|
|
40
|
-
const contentHeader = { ...header };
|
|
41
|
-
Reflect.deleteProperty(contentHeader, 'byteOffset');
|
|
42
|
-
return contentHeader;
|
|
43
|
-
}
|
|
44
|
-
async function collectTarEntries(stream, limits) {
|
|
45
|
-
const entries = [];
|
|
46
|
-
let extractedBytes = 0;
|
|
47
|
-
for await (const entry of stream) {
|
|
48
|
-
assertWithinEntryCountLimit(entries, limits);
|
|
49
|
-
assertWithinEntryPathLimit(entry, limits);
|
|
50
|
-
const content = await readEntryContent(entry, extractedBytes, limits);
|
|
51
|
-
extractedBytes = content.extractedBytes;
|
|
52
|
-
entries.push({ header: stableTarHeader(entry.header), content: content.content });
|
|
53
|
-
}
|
|
54
|
-
return entries;
|
|
55
|
-
}
|
|
56
|
-
async function waitForStreamError(stream) {
|
|
57
|
-
return await new Promise(function (_resolve, reject) {
|
|
58
|
-
stream.once('error', function (error) {
|
|
59
|
-
reject(toError(error));
|
|
60
|
-
});
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
function appendOutcome(outcomes, outcome) {
|
|
64
|
-
outcomes.add(outcome);
|
|
65
|
-
return outcomes;
|
|
66
|
-
}
|
|
67
|
-
async function raceExtractionOutcomes(streams, limits) {
|
|
68
|
-
const entries = await Promise.race(appendOutcome(appendOutcome(appendOutcome(appendOutcome(new Set(), collectTarEntries(streams.tarEntries, limits)), waitForStreamError(streams.source)), waitForStreamError(streams.gunzip)), waitForStreamError(streams.extractStream)));
|
|
69
|
-
return Array.from(entries);
|
|
70
|
-
}
|
|
71
|
-
export async function extractTarEntries(buffer, dependencies = {}, limits = defaultExtractTarLimits()) {
|
|
72
|
-
const createSource = dependencies.createSource ?? Readable.from;
|
|
73
|
-
const extractStream = extract();
|
|
74
|
-
const source = createSource(buffer);
|
|
75
|
-
const gunzip = createGunzip();
|
|
76
|
-
const tarEntries = source.pipe(gunzip).pipe(extractStream);
|
|
77
|
-
try {
|
|
78
|
-
return await raceExtractionOutcomes({ extractStream, gunzip, source, tarEntries }, limits);
|
|
79
|
-
}
|
|
80
|
-
catch (error) {
|
|
81
|
-
throw toError(error);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
1
|
+
import 'node:zlib';
|
|
2
|
+
import 'node:stream';
|
|
3
|
+
import 'tar-stream';
|
|
84
4
|
//# sourceMappingURL=extract-tar.js.map
|
package/tar/extract-tar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract-tar.js","sourceRoot":"","sources":["../../../../source/tar/extract-tar.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"extract-tar.js","sourceRoot":"","sources":["../../../../source/tar/extract-tar.ts"],"names":[],"mappings":"AAAA,OAA6B,WAAW,CAAC;AACzC,OAAyB,aAAa,CAAC;AACvC,OAAyD,YAAY,CAAC"}
|
package/tar/gzipped-pack.js
CHANGED
|
@@ -1,21 +1 @@
|
|
|
1
|
-
const gzipHeaderOperatingSystemFieldIndex = 9;
|
|
2
|
-
const gzipHeaderOperatingSystemUnknown = 255;
|
|
3
|
-
function normalizeGzipHeader(data) {
|
|
4
|
-
const normalized = Buffer.from(data);
|
|
5
|
-
normalized[gzipHeaderOperatingSystemFieldIndex] = gzipHeaderOperatingSystemUnknown;
|
|
6
|
-
return normalized;
|
|
7
|
-
}
|
|
8
|
-
function gzipStreamChunkToBuffer(chunk) {
|
|
9
|
-
if (typeof chunk === 'string' || chunk instanceof Uint8Array) {
|
|
10
|
-
return Buffer.from(chunk);
|
|
11
|
-
}
|
|
12
|
-
throw new TypeError('Expected gzip stream to yield Buffer, Uint8Array, or string chunks');
|
|
13
|
-
}
|
|
14
|
-
export async function collectGzippedPack(pack, gzip) {
|
|
15
|
-
const chunks = [];
|
|
16
|
-
for await (const chunk of pack.pipe(gzip)) {
|
|
17
|
-
chunks.push(gzipStreamChunkToBuffer(chunk));
|
|
18
|
-
}
|
|
19
|
-
return normalizeGzipHeader(Buffer.concat(chunks));
|
|
20
|
-
}
|
|
21
1
|
//# sourceMappingURL=gzipped-pack.js.map
|
package/tar/gzipped-pack.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gzipped-pack.js","sourceRoot":"","sources":["../../../../source/tar/gzipped-pack.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gzipped-pack.js","sourceRoot":"","sources":["../../../../source/tar/gzipped-pack.ts"],"names":[],"mappings":""}
|
package/tar/tarball-builder.js
CHANGED
|
@@ -1,46 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
1
|
+
import 'node:zlib';
|
|
2
|
+
import 'tar-stream';
|
|
3
|
+
import "../vendor-materializer/vendor-entry.js";
|
|
4
|
+
import "./gzipped-pack.js";
|
|
5
5
|
const staticFileModificationTime = new Date(0);
|
|
6
|
-
const executableFileMode = 493;
|
|
7
|
-
const nonExecutableFileMode = 420;
|
|
8
|
-
export function createTarballBuilder(dependencies = {}) {
|
|
9
|
-
const createGzip = dependencies.createGzip ?? zlib.createGzip;
|
|
10
|
-
const fileManager = dependencies.fileManager ?? {
|
|
11
|
-
async getRealPath(filePath) {
|
|
12
|
-
return filePath;
|
|
13
|
-
},
|
|
14
|
-
async readFileBytes() {
|
|
15
|
-
throw new Error('readFileBytes is required to materialize vendor entries into the tarball');
|
|
16
|
-
}
|
|
17
|
-
};
|
|
18
|
-
function addEntry(pack, filePath, isExecutable, payload) {
|
|
19
|
-
const entry = pack.entry({
|
|
20
|
-
name: filePath,
|
|
21
|
-
mtime: staticFileModificationTime,
|
|
22
|
-
mode: isExecutable ? executableFileMode : nonExecutableFileMode
|
|
23
|
-
}, payload);
|
|
24
|
-
entry.end();
|
|
25
|
-
}
|
|
26
|
-
async function createPack(fileDescriptions, vendorEntries) {
|
|
27
|
-
const pack = tar.pack();
|
|
28
|
-
for (const fileDescription of fileDescriptions) {
|
|
29
|
-
addEntry(pack, fileDescription.filePath, fileDescription.isExecutable, fileDescription.content);
|
|
30
|
-
}
|
|
31
|
-
for (const vendorEntry of vendorEntries) {
|
|
32
|
-
await validateVendorEntrySource(fileManager, vendorEntry);
|
|
33
|
-
const payload = await fileManager.readFileBytes(vendorEntry.sourceAbsolutePath);
|
|
34
|
-
addEntry(pack, vendorEntry.targetRelativePath, vendorEntry.isExecutable, payload);
|
|
35
|
-
}
|
|
36
|
-
pack.finalize();
|
|
37
|
-
return pack;
|
|
38
|
-
}
|
|
39
|
-
return {
|
|
40
|
-
async build(fileDescriptions, vendorEntries = []) {
|
|
41
|
-
const pack = await createPack(fileDescriptions, vendorEntries);
|
|
42
|
-
return collectGzippedPack(pack, createGzip({ level: 9 }));
|
|
43
|
-
}
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
6
|
//# sourceMappingURL=tarball-builder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tarball-builder.js","sourceRoot":"","sources":["../../../../source/tar/tarball-builder.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"tarball-builder.js","sourceRoot":"","sources":["../../../../source/tar/tarball-builder.ts"],"names":[],"mappings":"AAAA,OAAiB,WAAW,CAAC;AAC7B,OAA+B,YAAY,CAAC;AAG5C,OAA4D,wCAAwC,CAAC;AACrG,OAAmC,mBAAmB,CAAC;AAWvD,MAAM,0BAA0B,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -1,21 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
function isInFolder(folder, candidate) {
|
|
3
|
-
const relativePath = path.relative(folder, candidate);
|
|
4
|
-
return !relativePath.startsWith('..') && !path.isAbsolute(relativePath);
|
|
5
|
-
}
|
|
6
|
-
export async function validateVendorEntrySource(validator, entry) {
|
|
7
|
-
const rootPath = path.resolve(entry.sourcePackageRootPath);
|
|
8
|
-
const realSourcePath = await validator.getRealPath(entry.sourceAbsolutePath);
|
|
9
|
-
if (!isInFolder(rootPath, path.resolve(realSourcePath))) {
|
|
10
|
-
throw new Error(`Vendored file "${entry.sourceAbsolutePath}" resolved outside package root "${entry.sourcePackageRootPath}"`);
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
export function applyPrefixToVendorEntry(prefix, entry) {
|
|
14
|
-
return {
|
|
15
|
-
sourceAbsolutePath: entry.sourceAbsolutePath,
|
|
16
|
-
sourcePackageRootPath: entry.sourcePackageRootPath,
|
|
17
|
-
targetRelativePath: `${prefix}/${entry.targetRelativePath}`,
|
|
18
|
-
isExecutable: entry.isExecutable
|
|
19
|
-
};
|
|
20
|
-
}
|
|
1
|
+
import 'node:path';
|
|
21
2
|
//# sourceMappingURL=vendor-entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vendor-entry.js","sourceRoot":"","sources":["../../../../source/vendor-materializer/vendor-entry.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"vendor-entry.js","sourceRoot":"","sources":["../../../../source/vendor-materializer/vendor-entry.ts"],"names":[],"mappings":"AAAA,OAAiB,WAAW,CAAC"}
|
|
@@ -1,241 +1,9 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
export const vendorMaterializerFailureType = {
|
|
10
|
-
dependencyNotFound: 'dependency-not-found',
|
|
11
|
-
invalidDependencyName: 'invalid-dependency-name',
|
|
12
|
-
symlinkTargetOutsidePackage: 'symlink-target-outside-package'
|
|
13
|
-
};
|
|
14
|
-
const dependencyMapSchema = z.optional(z.record(z.string(), z.string()));
|
|
15
|
-
function packageManifestSchema() {
|
|
16
|
-
return z.object({
|
|
17
|
-
dependencies: dependencyMapSchema,
|
|
18
|
-
peerDependencies: dependencyMapSchema
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
function getPackageArgumentName(name) {
|
|
22
|
-
const parsed = tryOr(undefined, function () {
|
|
23
|
-
return parsePackageArgument(name).name ?? undefined;
|
|
24
|
-
});
|
|
25
|
-
return parsed.isOk ? parsed.value : undefined;
|
|
26
|
-
}
|
|
27
|
-
function findFirstInvalidDependencyName(names) {
|
|
28
|
-
for (const name of names) {
|
|
29
|
-
if (getPackageArgumentName(name) !== name) {
|
|
30
|
-
return name;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
return undefined;
|
|
34
|
-
}
|
|
35
|
-
function parseManifestSummary(sourcePackageName, content) {
|
|
36
|
-
const parsed = safeParse(packageManifestSchema(), JSON.parse(content));
|
|
37
|
-
if (!parsed.success) {
|
|
38
|
-
return Result.ok({ dependencies: [], peers: [] });
|
|
39
|
-
}
|
|
40
|
-
const dependencyNames = Object.keys(parsed.data.dependencies ?? {});
|
|
41
|
-
const peerDependencyNames = Object.keys(parsed.data.peerDependencies ?? {});
|
|
42
|
-
const invalidDependencyName = findFirstInvalidDependencyName(dependencyNames.concat(peerDependencyNames));
|
|
43
|
-
if (invalidDependencyName !== undefined) {
|
|
44
|
-
return Result.err({
|
|
45
|
-
type: vendorMaterializerFailureType.invalidDependencyName,
|
|
46
|
-
sourcePackageName,
|
|
47
|
-
invalidDependencyName
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
return Result.ok({
|
|
51
|
-
dependencies: dependencyNames,
|
|
52
|
-
peers: peerDependencyNames
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
async function collectPackageFileEntry(walker, state, relativeEntryPath) {
|
|
56
|
-
const sourceAbsolutePath = path.join(state.packageDirectory.rootDirectory, relativeEntryPath);
|
|
57
|
-
const targetRelativePath = bundledInstalledDependencyPath(state.packageDirectory.packageName, relativeEntryPath);
|
|
58
|
-
const fileDescription = await walker.getTransferableFileDescriptionFromPath(sourceAbsolutePath, targetRelativePath);
|
|
59
|
-
state.collected.push({
|
|
60
|
-
sourceAbsolutePath,
|
|
61
|
-
sourcePackageRootPath: state.packageDirectory.rootDirectory,
|
|
62
|
-
targetRelativePath,
|
|
63
|
-
isExecutable: fileDescription.isExecutable
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
async function getResolvedTargetPath(walker, absoluteEntryPath) {
|
|
67
|
-
try {
|
|
68
|
-
return Result.ok(await walker.getRealPath(absoluteEntryPath));
|
|
69
|
-
}
|
|
70
|
-
catch {
|
|
71
|
-
return Result.err(absoluteEntryPath);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
function isPathInsideRoot(rootDirectory, candidatePath) {
|
|
75
|
-
const normalizedRoot = path.resolve(rootDirectory);
|
|
76
|
-
const normalizedCandidate = path.resolve(candidatePath);
|
|
77
|
-
return normalizedCandidate === normalizedRoot || normalizedCandidate.startsWith(`${normalizedRoot}${path.sep}`);
|
|
78
|
-
}
|
|
79
|
-
async function checkSymlinkInsidePackage(walker, rootDirectory, packageName, relativeEntryPath) {
|
|
80
|
-
const absoluteEntryPath = path.join(rootDirectory, relativeEntryPath);
|
|
81
|
-
const normalizedEntryRelativePath = relativeEntryPath.split(path.sep).join('/');
|
|
82
|
-
const resolvedTarget = await getResolvedTargetPath(walker, absoluteEntryPath);
|
|
83
|
-
const resolvedTargetPath = resolvedTarget.isOk ? resolvedTarget.value : resolvedTarget.error;
|
|
84
|
-
if (resolvedTarget.isErr) {
|
|
85
|
-
return Result.err({
|
|
86
|
-
type: vendorMaterializerFailureType.symlinkTargetOutsidePackage,
|
|
87
|
-
packageName,
|
|
88
|
-
entryRelativePath: normalizedEntryRelativePath,
|
|
89
|
-
resolvedTargetPath
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
if (!isPathInsideRoot(rootDirectory, resolvedTargetPath)) {
|
|
93
|
-
return Result.err({
|
|
94
|
-
type: vendorMaterializerFailureType.symlinkTargetOutsidePackage,
|
|
95
|
-
packageName,
|
|
96
|
-
entryRelativePath: normalizedEntryRelativePath,
|
|
97
|
-
resolvedTargetPath
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
return Result.ok(undefined);
|
|
101
|
-
}
|
|
102
|
-
async function validatePackageDirectoryEntry(walker, packageDirectory, relativeEntryPath, entry) {
|
|
103
|
-
if (!entry.isSymbolicLink) {
|
|
104
|
-
return Result.ok(undefined);
|
|
105
|
-
}
|
|
106
|
-
return checkSymlinkInsidePackage(walker, packageDirectory.rootDirectory, packageDirectory.packageName, relativeEntryPath);
|
|
107
|
-
}
|
|
108
|
-
const walkPackageDirectory = async function (walker, state, relativeDirectory) {
|
|
109
|
-
const absoluteDirectory = path.join(state.packageDirectory.rootDirectory, relativeDirectory);
|
|
110
|
-
const entries = await walker.listDirectoryEntries(absoluteDirectory);
|
|
111
|
-
const collectDirectoryEntry = async function (entry) {
|
|
112
|
-
if (entry.name === installedDependenciesFolderName) {
|
|
113
|
-
return Result.ok(undefined);
|
|
114
|
-
}
|
|
115
|
-
const relativeEntryPath = path.join(relativeDirectory, entry.name);
|
|
116
|
-
const symlinkCheck = await validatePackageDirectoryEntry(walker, state.packageDirectory, relativeEntryPath, entry);
|
|
117
|
-
if (symlinkCheck.isErr) {
|
|
118
|
-
return symlinkCheck;
|
|
119
|
-
}
|
|
120
|
-
if (entry.isDirectory) {
|
|
121
|
-
return walkPackageDirectory(walker, state, relativeEntryPath);
|
|
122
|
-
}
|
|
123
|
-
await collectPackageFileEntry(walker, state, relativeEntryPath);
|
|
124
|
-
return Result.ok(undefined);
|
|
125
|
-
};
|
|
126
|
-
for (const entry of entries) {
|
|
127
|
-
const result = await collectDirectoryEntry(entry);
|
|
128
|
-
if (result.isErr) {
|
|
129
|
-
return result;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
return Result.ok(undefined);
|
|
133
|
-
};
|
|
134
|
-
export function createVendorMaterializer(dependencies) {
|
|
135
|
-
const { fileManager } = dependencies;
|
|
136
|
-
function queueItem(name, fromFolder, sourcePackageName, required) {
|
|
137
|
-
return { name, fromFolder, required, sourcePackageName };
|
|
138
|
-
}
|
|
139
|
-
function scheduleManifestDependencies(closure, name, realPath, summary) {
|
|
140
|
-
closure.pendingPackages.scheduleAll(summary.dependencies.map(function (dependencyName) {
|
|
141
|
-
return queueItem(dependencyName, realPath, name, true);
|
|
142
|
-
}));
|
|
143
|
-
closure.pendingPackages.scheduleAll(summary.peers.map(function (dependencyName) {
|
|
144
|
-
return queueItem(dependencyName, realPath, name, false);
|
|
145
|
-
}));
|
|
146
|
-
}
|
|
147
|
-
async function collectVendorEntries(packageName, realPath) {
|
|
148
|
-
const collected = [];
|
|
149
|
-
const walkResult = await walkPackageDirectory(fileManager, { packageDirectory: { rootDirectory: realPath, packageName }, collected }, '');
|
|
150
|
-
if (walkResult.isErr) {
|
|
151
|
-
return Result.err(walkResult.error);
|
|
152
|
-
}
|
|
153
|
-
return Result.ok(Array.from(collected));
|
|
154
|
-
}
|
|
155
|
-
async function readManifestSummary(packageName, realPath) {
|
|
156
|
-
const manifestPath = packageManifestPathIn(realPath);
|
|
157
|
-
const content = await fileManager.readFile(manifestPath);
|
|
158
|
-
return parseManifestSummary(packageName, content);
|
|
159
|
-
}
|
|
160
|
-
async function findPackageRealPath(packageName, startFolder) {
|
|
161
|
-
for (const candidatePath of ancestorInstalledDependencyPathCandidates(startFolder, packageName)) {
|
|
162
|
-
const readability = await fileManager.checkReadability(candidatePath);
|
|
163
|
-
if (readability.isReadable) {
|
|
164
|
-
return await fileManager.getRealPath(candidatePath);
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
return undefined;
|
|
168
|
-
}
|
|
169
|
-
async function ingestResolvedPackage(closure, name, realPath) {
|
|
170
|
-
const summaryResult = await readManifestSummary(name, realPath);
|
|
171
|
-
if (summaryResult.isErr) {
|
|
172
|
-
return Result.err(summaryResult.error);
|
|
173
|
-
}
|
|
174
|
-
scheduleManifestDependencies(closure, name, realPath, summaryResult.value);
|
|
175
|
-
closure.peerRequirements.set(name, summaryResult.value.peers);
|
|
176
|
-
const collectedResult = await collectVendorEntries(name, realPath);
|
|
177
|
-
if (collectedResult.isErr) {
|
|
178
|
-
return Result.err(collectedResult.error);
|
|
179
|
-
}
|
|
180
|
-
closure.entries.push(...collectedResult.value);
|
|
181
|
-
return Result.ok(undefined);
|
|
182
|
-
}
|
|
183
|
-
async function processPendingPackageItem(closure, item) {
|
|
184
|
-
if (closure.visited.has(item.name)) {
|
|
185
|
-
return Result.ok(undefined);
|
|
186
|
-
}
|
|
187
|
-
const realPath = await findPackageRealPath(item.name, item.fromFolder);
|
|
188
|
-
if (realPath === undefined) {
|
|
189
|
-
if (item.required) {
|
|
190
|
-
return Result.err({
|
|
191
|
-
type: vendorMaterializerFailureType.dependencyNotFound,
|
|
192
|
-
sourcePackageName: item.sourcePackageName,
|
|
193
|
-
dependencyName: item.name
|
|
194
|
-
});
|
|
195
|
-
}
|
|
196
|
-
return Result.ok(undefined);
|
|
197
|
-
}
|
|
198
|
-
closure.visited.add(item.name);
|
|
199
|
-
return ingestResolvedPackage(closure, item.name, realPath);
|
|
200
|
-
}
|
|
201
|
-
async function drainPendingPackages(closure) {
|
|
202
|
-
for (let item = closure.pendingPackages.takeNext(); item !== undefined; item = closure.pendingPackages.takeNext()) {
|
|
203
|
-
const processed = await processPendingPackageItem(closure, item);
|
|
204
|
-
if (processed.isErr) {
|
|
205
|
-
return processed;
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
return Result.ok(undefined);
|
|
209
|
-
}
|
|
210
|
-
return {
|
|
211
|
-
async materializeExternals(options) {
|
|
212
|
-
const invalidInitialName = findFirstInvalidDependencyName(options.initialDependencyNames);
|
|
213
|
-
if (invalidInitialName !== undefined) {
|
|
214
|
-
return Result.err({
|
|
215
|
-
type: vendorMaterializerFailureType.invalidDependencyName,
|
|
216
|
-
sourcePackageName: undefined,
|
|
217
|
-
invalidDependencyName: invalidInitialName
|
|
218
|
-
});
|
|
219
|
-
}
|
|
220
|
-
const entries = [];
|
|
221
|
-
const closure = {
|
|
222
|
-
visited: new Set(),
|
|
223
|
-
entries,
|
|
224
|
-
pendingPackages: createWorklist(options.initialDependencyNames.map(function (name) {
|
|
225
|
-
return queueItem(name, options.projectFolder, undefined, true);
|
|
226
|
-
})),
|
|
227
|
-
peerRequirements: new Map()
|
|
228
|
-
};
|
|
229
|
-
const drained = await drainPendingPackages(closure);
|
|
230
|
-
if (drained.isErr) {
|
|
231
|
-
return Result.err(drained.error);
|
|
232
|
-
}
|
|
233
|
-
return Result.ok({
|
|
234
|
-
entries: Array.from(closure.entries),
|
|
235
|
-
packageNames: Array.from(closure.visited),
|
|
236
|
-
peerRequirements: new Map(closure.peerRequirements)
|
|
237
|
-
});
|
|
238
|
-
}
|
|
239
|
-
};
|
|
240
|
-
}
|
|
1
|
+
import 'node:path';
|
|
2
|
+
import 'npm-package-arg';
|
|
3
|
+
import 'true-myth';
|
|
4
|
+
import 'true-myth/result';
|
|
5
|
+
import 'zod/mini';
|
|
6
|
+
import "../common/schema-validation.js";
|
|
7
|
+
import "../common/package-layout.js";
|
|
8
|
+
import "../common/worklist.js";
|
|
241
9
|
//# sourceMappingURL=vendor-materializer.js.map
|