packtory 0.0.10 → 0.0.11
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.d.ts +0 -14
- package/artifacts/artifacts-builder.d.ts.map +1 -1
- package/artifacts/artifacts-builder.js +75 -0
- package/artifacts/artifacts-builder.js.map +1 -1
- package/bundle-emitter/emitter.d.ts +0 -30
- package/bundle-emitter/emitter.d.ts.map +1 -1
- package/bundle-emitter/emitter.js +34 -0
- package/bundle-emitter/emitter.js.map +1 -1
- package/bundle-emitter/extract-package-tarball.js +11 -0
- package/bundle-emitter/extract-package-tarball.js.map +1 -1
- package/bundle-emitter/registry-client.d.ts +0 -21
- package/bundle-emitter/registry-client.d.ts.map +1 -1
- package/bundle-emitter/registry-client.js +261 -0
- package/bundle-emitter/registry-client.js.map +1 -1
- package/bundle-emitter/repository-url-normalizer.js +36 -0
- package/bundle-emitter/repository-url-normalizer.js.map +1 -1
- package/checks/check-runner.js +5 -0
- package/checks/check-runner.js.map +1 -1
- package/checks/rules/registry.js +9 -0
- package/checks/rules/registry.js.map +1 -1
- package/common/clock.d.ts +0 -6
- package/common/clock.d.ts.map +1 -1
- package/common/code-files.js +4 -0
- package/common/code-files.js.map +1 -1
- package/config/additional-files.js +4 -0
- package/config/additional-files.js.map +1 -1
- package/config/automatic-versioning-settings.js +4 -0
- package/config/automatic-versioning-settings.js.map +1 -1
- package/config/config.js +2 -0
- package/config/config.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 +19 -0
- package/config/dead-code-elimination-settings.js.map +1 -1
- package/config/dependency-policy.js +3 -0
- package/config/dependency-policy.js.map +1 -1
- package/config/main-package-json-schema.js +1 -0
- package/config/main-package-json-schema.js.map +1 -1
- package/config/manual-versioning-settings.js +4 -0
- package/config/manual-versioning-settings.js.map +1 -1
- package/config/package-config.js +6 -0
- package/config/package-config.js.map +1 -1
- package/config/package-interface.js +26 -0
- package/config/package-interface.js.map +1 -1
- package/config/package-json.d.ts +0 -1
- package/config/package-json.d.ts.map +1 -1
- package/config/package-json.js +16 -0
- package/config/package-json.js.map +1 -1
- package/config/packtory-config-schema.js +3 -0
- package/config/packtory-config-schema.js.map +1 -1
- package/config/publish-settings.js +22 -0
- package/config/publish-settings.js.map +1 -1
- package/config/registry-settings.d.ts +0 -18
- package/config/registry-settings.d.ts.map +1 -1
- package/config/registry-settings.js +38 -0
- package/config/registry-settings.js.map +1 -1
- package/config/root.js +4 -0
- package/config/root.js.map +1 -1
- package/config/sbom-settings.js +3 -0
- package/config/sbom-settings.js.map +1 -1
- package/config/validation.d.ts +0 -18
- package/config/validation.d.ts.map +1 -1
- package/config/validation.js +254 -0
- package/config/validation.js.map +1 -1
- package/config/versioning-settings.js +1 -0
- package/config/versioning-settings.js.map +1 -1
- package/dead-code-eliminator/analyzed-bundle.d.ts +0 -9
- package/dead-code-eliminator/analyzed-bundle.d.ts.map +1 -1
- package/dead-code-eliminator/analyzed-bundle.js +7 -0
- package/dead-code-eliminator/analyzed-bundle.js.map +1 -1
- package/dead-code-eliminator/eliminator.js +12 -1
- package/dead-code-eliminator/eliminator.js.map +1 -1
- package/dead-code-eliminator/load-bundle.js +10 -5
- package/dead-code-eliminator/load-bundle.js.map +1 -1
- package/dead-code-eliminator/reachability/binding-extractor.js +20 -7
- package/dead-code-eliminator/reachability/binding-extractor.js.map +1 -1
- package/dead-code-eliminator/reachability/reachability.js +1 -1
- package/dead-code-eliminator/reachability/reachability.js.map +1 -1
- package/dead-code-eliminator/transform/declaration-remover.js +3 -2
- package/dead-code-eliminator/transform/declaration-remover.js.map +1 -1
- package/dead-code-eliminator/variable-declaration-bindings.js +34 -0
- package/dead-code-eliminator/variable-declaration-bindings.js.map +1 -0
- package/dependency-scanner/dependency-graph.d.ts +0 -27
- package/dependency-scanner/dependency-graph.d.ts.map +1 -1
- package/dependency-scanner/dependency-graph.js +73 -0
- package/dependency-scanner/dependency-graph.js.map +1 -1
- package/dependency-scanner/external-dependencies.js +16 -0
- package/dependency-scanner/external-dependencies.js.map +1 -1
- package/dependency-scanner/scanner.d.ts +0 -13
- package/dependency-scanner/scanner.d.ts.map +1 -1
- package/dependency-scanner/scanner.js +69 -0
- package/dependency-scanner/scanner.js.map +1 -1
- package/dependency-scanner/source-file-references.js +10 -0
- package/dependency-scanner/source-file-references.js.map +1 -1
- package/dependency-scanner/source-map-file-locator.d.ts +0 -7
- package/dependency-scanner/source-map-file-locator.d.ts.map +1 -1
- package/dependency-scanner/source-map-file-locator.js +27 -0
- package/dependency-scanner/source-map-file-locator.js.map +1 -1
- package/dependency-scanner/typescript-file-host.d.ts +0 -9
- package/dependency-scanner/typescript-file-host.d.ts.map +1 -1
- package/dependency-scanner/typescript-file-host.js +114 -0
- package/dependency-scanner/typescript-file-host.js.map +1 -1
- package/dependency-scanner/typescript-project-analyzer.d.ts +0 -17
- package/dependency-scanner/typescript-project-analyzer.d.ts.map +1 -1
- package/dependency-scanner/typescript-project-analyzer.js +52 -0
- package/dependency-scanner/typescript-project-analyzer.js.map +1 -1
- package/directed-graph/graph.d.ts +0 -26
- package/directed-graph/graph.d.ts.map +1 -1
- package/directed-graph/graph.js +229 -0
- package/directed-graph/graph.js.map +1 -1
- package/file-manager/compare.js +17 -0
- package/file-manager/compare.js.map +1 -1
- package/file-manager/equal.js +5 -0
- package/file-manager/equal.js.map +1 -1
- package/file-manager/file-manager.d.ts +0 -15
- package/file-manager/file-manager.d.ts.map +1 -1
- package/file-manager/file-manager.js +52 -0
- package/file-manager/file-manager.js.map +1 -1
- package/file-manager/permissions.js +26 -0
- package/file-manager/permissions.js.map +1 -1
- package/linker/linker.d.ts +0 -8
- package/linker/linker.d.ts.map +1 -1
- package/linker/linker.js +23 -0
- package/linker/linker.js.map +1 -1
- package/linker/resource-graph.js +25 -0
- package/linker/resource-graph.js.map +1 -1
- package/linker/source-modifier/import-paths.js +22 -0
- package/linker/source-modifier/import-paths.js.map +1 -1
- package/linker/substitute-bundles.js +84 -0
- package/linker/substitute-bundles.js.map +1 -1
- package/linker/substituted-resource-graph.js +72 -0
- package/linker/substituted-resource-graph.js.map +1 -1
- package/package-surface/modules.js +232 -5
- package/package-surface/modules.js.map +1 -1
- package/package-surface/surface.d.ts +0 -1
- package/package-surface/surface.d.ts.map +1 -1
- package/package-surface/surface.js +15 -0
- package/package-surface/surface.js.map +1 -1
- package/package.json +1 -1
- package/packtory/map-config.d.ts +0 -10
- package/packtory/map-config.d.ts.map +1 -1
- package/packtory/map-config.js +14 -0
- package/packtory/map-config.js.map +1 -1
- package/packtory/normalize-paths.js +24 -0
- package/packtory/normalize-paths.js.map +1 -1
- package/packtory/package-processor-build.js +72 -0
- package/packtory/package-processor-build.js.map +1 -1
- package/packtory/package-processor-publish.d.ts +0 -5
- package/packtory/package-processor-publish.d.ts.map +1 -1
- package/packtory/package-processor-publish.js +133 -0
- package/packtory/package-processor-publish.js.map +1 -1
- package/packtory/package-processor.d.ts +0 -17
- package/packtory/package-processor.d.ts.map +1 -1
- package/packtory/package-processor.js +8 -0
- package/packtory/package-processor.js.map +1 -1
- package/packtory/packtory-results.d.ts +0 -10
- package/packtory/packtory-results.d.ts.map +1 -1
- package/packtory/packtory-results.js +15 -0
- package/packtory/packtory-results.js.map +1 -1
- package/packtory/packtory.d.ts +0 -8
- package/packtory/packtory.d.ts.map +1 -1
- package/packtory/prepare-package-options.d.ts +0 -2
- package/packtory/prepare-package-options.d.ts.map +1 -1
- package/packtory/prepare-package-options.js +122 -0
- package/packtory/prepare-package-options.js.map +1 -1
- package/packtory/resolved-package.d.ts +0 -2
- package/packtory/resolved-package.d.ts.map +1 -1
- package/packtory/resolved-package.js +31 -0
- package/packtory/resolved-package.js.map +1 -1
- package/packtory/scheduler.d.ts +0 -37
- package/packtory/scheduler.d.ts.map +1 -1
- package/progress/progress-broadcaster.d.ts +0 -13
- package/progress/progress-broadcaster.d.ts.map +1 -1
- package/progress/progress-broadcaster.js +45 -0
- package/progress/progress-broadcaster.js.map +1 -1
- package/report/artifact-entry-merger.js +20 -0
- package/report/artifact-entry-merger.js.map +1 -1
- package/report/inspectors.js +73 -0
- package/report/inspectors.js.map +1 -1
- package/report/report-aggregator.d.ts +0 -5
- package/report/report-aggregator.d.ts.map +1 -1
- package/report/report-aggregator.js +185 -0
- package/report/report-aggregator.js.map +1 -1
- package/resource-resolver/content.js +53 -0
- package/resource-resolver/content.js.map +1 -1
- package/resource-resolver/resolved-bundle.d.ts +0 -10
- package/resource-resolver/resolved-bundle.d.ts.map +1 -1
- package/resource-resolver/resource-resolve-options.d.ts +0 -4
- package/resource-resolver/resource-resolve-options.d.ts.map +1 -1
- package/resource-resolver/resource-resolve-options.js +12 -0
- package/resource-resolver/resource-resolve-options.js.map +1 -1
- package/resource-resolver/resource-resolver.d.ts +0 -8
- package/resource-resolver/resource-resolver.d.ts.map +1 -1
- package/resource-resolver/resource-resolver.js +78 -0
- package/resource-resolver/resource-resolver.js.map +1 -1
- package/sbom/extract-license.js +10 -0
- package/sbom/extract-license.js.map +1 -1
- package/sbom/license-resolver.d.ts +0 -11
- package/sbom/license-resolver.d.ts.map +1 -1
- package/sbom/license-resolver.js +19 -0
- package/sbom/license-resolver.js.map +1 -1
- package/sbom/sbom-file.d.ts +0 -12
- package/sbom/sbom-file.d.ts.map +1 -1
- package/sbom/sbom-file.js +54 -0
- package/sbom/sbom-file.js.map +1 -1
- package/sbom/sbom-serializer.d.ts +0 -4
- package/sbom/sbom-serializer.d.ts.map +1 -1
- package/sbom/sbom-serializer.js +9 -0
- package/sbom/sbom-serializer.js.map +1 -1
- package/tar/extract-tar.js +38 -0
- package/tar/extract-tar.js.map +1 -1
- package/tar/tarball-builder.d.ts +0 -4
- package/tar/tarball-builder.d.ts.map +1 -1
- package/version-manager/manager.d.ts +0 -4
- package/version-manager/manager.d.ts.map +1 -1
- package/version-manager/manager.js +46 -0
- package/version-manager/manager.js.map +1 -1
- package/version-manager/manifest/builder.js +56 -0
- package/version-manager/manifest/builder.js.map +1 -1
- package/version-manager/manifest/serialize.js +46 -0
- package/version-manager/manifest/serialize.js.map +1 -1
- package/version-manager/manifest/sort-values.js +16 -0
- package/version-manager/manifest/sort-values.js.map +1 -1
- package/version-manager/specifier-classifier.js +33 -0
- package/version-manager/specifier-classifier.js.map +1 -1
- package/version-manager/specifier-errors.js +43 -0
- package/version-manager/specifier-errors.js.map +1 -1
- package/version-manager/versioned-bundle-dependencies.js +107 -0
- package/version-manager/versioned-bundle-dependencies.js.map +1 -1
- package/version-manager/versioned-bundle-imports.js +72 -0
- package/version-manager/versioned-bundle-imports.js.map +1 -1
- package/version-manager/versioned-bundle.js +60 -0
- package/version-manager/versioned-bundle.js.map +1 -1
- package/sbom.cdx.json +0 -390
|
@@ -1,2 +1,35 @@
|
|
|
1
1
|
import npa from 'npm-package-arg';
|
|
2
|
+
const workspaceProtocolPrefix = 'workspace:';
|
|
3
|
+
const portalProtocolPrefix = 'portal:';
|
|
4
|
+
const workspaceMalformedReason = 'workspace protocol is yarn/pnpm/bun-specific; resolved at install time by the workspace,' +
|
|
5
|
+
' not valid in a published manifest';
|
|
6
|
+
const portalMalformedReason = 'portal protocol is yarn-specific; resolved as a local symlink, not valid in a published manifest';
|
|
7
|
+
const npaTypeKindMap = {
|
|
8
|
+
alias: { kind: 'registry' },
|
|
9
|
+
version: { kind: 'registry' },
|
|
10
|
+
range: { kind: 'registry' },
|
|
11
|
+
tag: { kind: 'registry' },
|
|
12
|
+
git: { kind: 'mutable', npaType: 'git' },
|
|
13
|
+
remote: { kind: 'mutable', npaType: 'remote' },
|
|
14
|
+
file: { kind: 'mutable', npaType: 'file' },
|
|
15
|
+
directory: { kind: 'mutable', npaType: 'directory' }
|
|
16
|
+
};
|
|
17
|
+
function classifyNpaResult(result) {
|
|
18
|
+
return npaTypeKindMap[result.type];
|
|
19
|
+
}
|
|
20
|
+
export function classifySpecifier(name, specifier) {
|
|
21
|
+
if (specifier.startsWith(workspaceProtocolPrefix)) {
|
|
22
|
+
return { kind: 'malformed', reason: workspaceMalformedReason };
|
|
23
|
+
}
|
|
24
|
+
if (specifier.startsWith(portalProtocolPrefix)) {
|
|
25
|
+
return { kind: 'malformed', reason: portalMalformedReason };
|
|
26
|
+
}
|
|
27
|
+
try {
|
|
28
|
+
const result = npa.resolve(name, specifier);
|
|
29
|
+
return classifyNpaResult(result);
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
return { kind: 'malformed', reason: String(error) };
|
|
33
|
+
}
|
|
34
|
+
}
|
|
2
35
|
//# sourceMappingURL=specifier-classifier.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"specifier-classifier.js","sourceRoot":"","sources":["../../../../source/version-manager/specifier-classifier.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,iBAAiB"}
|
|
1
|
+
{"version":3,"file":"specifier-classifier.js","sourceRoot":"","sources":["../../../../source/version-manager/specifier-classifier.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,iBAAiB,CAAC;AAElC,MAAM,uBAAuB,GAAG,YAAY,CAAC;AAC7C,MAAM,oBAAoB,GAAG,SAAS,CAAC;AAEvC,MAAM,wBAAwB,GAC1B,0FAA0F;IAC1F,oCAAoC,CAAC;AACzC,MAAM,qBAAqB,GACvB,kGAAkG,CAAC;AAWvG,MAAM,cAAc,GAAoD;IACpE,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;IAC3B,OAAO,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;IAC7B,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;IAC3B,GAAG,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;IACzB,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;IACxC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE;IAC9C,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE;IAC1C,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE;CACvD,CAAC;AAEF,SAAS,iBAAiB,CAAC,MAAkB;IACzC,OAAO,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,SAAiB;IAC7D,IAAI,SAAS,CAAC,UAAU,CAAC,uBAAuB,CAAC,EAAE,CAAC;QAChD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC;IACnE,CAAC;IACD,IAAI,SAAS,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE,CAAC;QAC7C,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC;IAChE,CAAC;IAED,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC5C,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACtB,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IACxD,CAAC;AACL,CAAC"}
|
|
@@ -1 +1,44 @@
|
|
|
1
|
+
function dependencyWord(count) {
|
|
2
|
+
return count === 1 ? 'dependency' : 'dependencies';
|
|
3
|
+
}
|
|
4
|
+
function entryWord(count) {
|
|
5
|
+
return count === 1 ? 'entry' : 'entries';
|
|
6
|
+
}
|
|
7
|
+
export function renderMutableSpecifierMessage(offenders) {
|
|
8
|
+
const isSingular = offenders.length === 1;
|
|
9
|
+
const verbAndNoun = isSingular ? 'uses a mutable specifier' : 'use mutable specifiers';
|
|
10
|
+
const bypassVerb = isSingular ? 'bypasses' : 'bypass';
|
|
11
|
+
const noun = dependencyWord(offenders.length);
|
|
12
|
+
const header = `Refusing to publish: ${offenders.length} ${noun} ${verbAndNoun},` +
|
|
13
|
+
` which ${bypassVerb} the npm registry's integrity guarantees:`;
|
|
14
|
+
const lines = offenders.map((offender) => {
|
|
15
|
+
return ` - "${offender.name}" → "${offender.specifier}" (${offender.npaType})`;
|
|
16
|
+
});
|
|
17
|
+
const footer = 'Add the dep name to dependencyPolicy.allowMutableSpecifiers to allow this on purpose.';
|
|
18
|
+
return [header, ...lines, footer].join('\n');
|
|
19
|
+
}
|
|
20
|
+
export function renderMalformedSpecifierMessage(offenders) {
|
|
21
|
+
const isSingular = offenders.length === 1;
|
|
22
|
+
const verb = isSingular ? 'has' : 'have';
|
|
23
|
+
const noun = dependencyWord(offenders.length);
|
|
24
|
+
const header = `Refusing to publish: ${offenders.length} ${noun} ${verb} a specifier that npm cannot publish:`;
|
|
25
|
+
const lines = offenders.map((offender) => {
|
|
26
|
+
return ` - "${offender.name}" → "${offender.specifier}" (${offender.reason})`;
|
|
27
|
+
});
|
|
28
|
+
const replacementHint = 'Replace with a registry version (e.g. "^1.2.3").';
|
|
29
|
+
const allowListHint = 'Mutable-specifier allow-listing does not apply here.';
|
|
30
|
+
return [header, ...lines, `${replacementHint} ${allowListHint}`].join('\n');
|
|
31
|
+
}
|
|
32
|
+
export function renderUnusedAllowListMessage(unusedEntries) {
|
|
33
|
+
const isSingular = unusedEntries.length === 1;
|
|
34
|
+
const verb = isSingular ? 'is' : 'are';
|
|
35
|
+
const noun = entryWord(unusedEntries.length);
|
|
36
|
+
const header = `Refusing to publish: ${unusedEntries.length} ${noun} in` +
|
|
37
|
+
` dependencyPolicy.allowMutableSpecifiers ${verb} not in use:`;
|
|
38
|
+
const lines = unusedEntries.map((entry) => {
|
|
39
|
+
return ` - "${entry}"`;
|
|
40
|
+
});
|
|
41
|
+
const footer = 'Remove unused entries — they reflect stale exceptions to the integrity policy.';
|
|
42
|
+
return [header, ...lines, footer].join('\n');
|
|
43
|
+
}
|
|
1
44
|
//# sourceMappingURL=specifier-errors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"specifier-errors.js","sourceRoot":"","sources":["../../../../source/version-manager/specifier-errors.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"specifier-errors.js","sourceRoot":"","sources":["../../../../source/version-manager/specifier-errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,4 +2,111 @@ import { oneLine } from 'common-tags';
|
|
|
2
2
|
import { mergeAll } from 'remeda';
|
|
3
3
|
import { classifySpecifier } from "./specifier-classifier.js";
|
|
4
4
|
import { renderMalformedSpecifierMessage, renderMutableSpecifierMessage, renderUnusedAllowListMessage } from "./specifier-errors.js";
|
|
5
|
+
function getVersionFromDependencies(moduleName, mainPackageJson, kind) {
|
|
6
|
+
const dependencies = { ...mainPackageJson[kind] };
|
|
7
|
+
return String(dependencies[moduleName]);
|
|
8
|
+
}
|
|
9
|
+
function findBundleByPackageName(bundles, name) {
|
|
10
|
+
return bundles.find((bundle) => {
|
|
11
|
+
return bundle.name === name;
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
function mergeDependencyGroups(...groups) {
|
|
15
|
+
return {
|
|
16
|
+
dependencies: mergeAll(groups.map((group) => {
|
|
17
|
+
return group.dependencies;
|
|
18
|
+
})),
|
|
19
|
+
peerDependencies: mergeAll(groups.map((group) => {
|
|
20
|
+
return group.peerDependencies;
|
|
21
|
+
}))
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
function groupBundleDependencies(bundle, bundlePeerDependencies, bundleDependencies) {
|
|
25
|
+
const grouped = { dependencies: {}, peerDependencies: {} };
|
|
26
|
+
for (const dependencyName of bundle.linkedBundleDependencies.keys()) {
|
|
27
|
+
const peerBundle = findBundleByPackageName(bundlePeerDependencies, dependencyName);
|
|
28
|
+
if (peerBundle === undefined) {
|
|
29
|
+
const foundBundle = findBundleByPackageName(bundleDependencies, dependencyName);
|
|
30
|
+
if (foundBundle === undefined) {
|
|
31
|
+
throw new Error(`Couldn’t determine version number of bundle dependency ${dependencyName}`);
|
|
32
|
+
}
|
|
33
|
+
grouped.dependencies[dependencyName] = foundBundle.version;
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
grouped.peerDependencies[dependencyName] = peerBundle.version;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return grouped;
|
|
40
|
+
}
|
|
41
|
+
function resolveExternalDependencyEntry(dependencyName, mainPackageJson) {
|
|
42
|
+
const isPeer = mainPackageJson.peerDependencies?.[dependencyName] !== undefined;
|
|
43
|
+
const isDirect = mainPackageJson.dependencies?.[dependencyName] !== undefined;
|
|
44
|
+
if (!isPeer && !isDirect) {
|
|
45
|
+
throw new Error(oneLine `Couldn’t determine version number of ${dependencyName},
|
|
46
|
+
because it is not listed in the main package.json`);
|
|
47
|
+
}
|
|
48
|
+
const kind = isPeer ? 'peerDependencies' : 'dependencies';
|
|
49
|
+
return {
|
|
50
|
+
name: dependencyName,
|
|
51
|
+
version: getVersionFromDependencies(dependencyName, mainPackageJson, kind),
|
|
52
|
+
kind
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
function recordClassification(entry, allowMutableSpecifiers, accumulator) {
|
|
56
|
+
const classification = classifySpecifier(entry.name, entry.version);
|
|
57
|
+
if (classification.kind === 'malformed') {
|
|
58
|
+
accumulator.malformedOffenders.push({
|
|
59
|
+
name: entry.name,
|
|
60
|
+
specifier: entry.version,
|
|
61
|
+
reason: classification.reason
|
|
62
|
+
});
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
if (classification.kind === 'mutable') {
|
|
66
|
+
if (allowMutableSpecifiers.includes(entry.name)) {
|
|
67
|
+
accumulator.usedAllowListEntries.add(entry.name);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
accumulator.mutableOffenders.push({
|
|
71
|
+
name: entry.name,
|
|
72
|
+
specifier: entry.version,
|
|
73
|
+
npaType: classification.npaType
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
function throwHighestPriorityFailure(accumulator, allowMutableSpecifiers) {
|
|
79
|
+
if (accumulator.malformedOffenders.length > 0) {
|
|
80
|
+
throw new Error(renderMalformedSpecifierMessage(accumulator.malformedOffenders));
|
|
81
|
+
}
|
|
82
|
+
if (accumulator.mutableOffenders.length > 0) {
|
|
83
|
+
throw new Error(renderMutableSpecifierMessage(accumulator.mutableOffenders));
|
|
84
|
+
}
|
|
85
|
+
const unusedAllowListEntries = allowMutableSpecifiers.filter((entry) => {
|
|
86
|
+
return !accumulator.usedAllowListEntries.has(entry);
|
|
87
|
+
});
|
|
88
|
+
if (unusedAllowListEntries.length > 0) {
|
|
89
|
+
throw new Error(renderUnusedAllowListMessage(unusedAllowListEntries));
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
function groupExternalDependencies(bundle, mainPackageJson, allowMutableSpecifiers) {
|
|
93
|
+
const grouped = { dependencies: {}, peerDependencies: {} };
|
|
94
|
+
const accumulator = {
|
|
95
|
+
mutableOffenders: [],
|
|
96
|
+
malformedOffenders: [],
|
|
97
|
+
usedAllowListEntries: new Set()
|
|
98
|
+
};
|
|
99
|
+
for (const dependencyName of bundle.externalDependencies.keys()) {
|
|
100
|
+
const entry = resolveExternalDependencyEntry(dependencyName, mainPackageJson);
|
|
101
|
+
recordClassification(entry, allowMutableSpecifiers, accumulator);
|
|
102
|
+
grouped[entry.kind][entry.name] = entry.version;
|
|
103
|
+
}
|
|
104
|
+
throwHighestPriorityFailure(accumulator, allowMutableSpecifiers);
|
|
105
|
+
return grouped;
|
|
106
|
+
}
|
|
107
|
+
export function distributeDependencies(options) {
|
|
108
|
+
const bundleGrouped = groupBundleDependencies(options.bundle, options.bundlePeerDependencies, options.bundleDependencies);
|
|
109
|
+
const externalGrouped = groupExternalDependencies(options.bundle, options.mainPackageJson, options.allowMutableSpecifiers);
|
|
110
|
+
return mergeDependencyGroups(bundleGrouped, externalGrouped);
|
|
111
|
+
}
|
|
5
112
|
//# sourceMappingURL=versioned-bundle-dependencies.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"versioned-bundle-dependencies.js","sourceRoot":"","sources":["../../../../source/version-manager/versioned-bundle-dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa;
|
|
1
|
+
{"version":3,"file":"versioned-bundle-dependencies.js","sourceRoot":"","sources":["../../../../source/version-manager/versioned-bundle-dependencies.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,75 @@
|
|
|
1
1
|
import { ts as typescript } from 'ts-morph';
|
|
2
2
|
import { isCodeFile } from "../common/code-files.js";
|
|
3
|
+
function getHashImportSpecifiers(bundle) {
|
|
4
|
+
const importSpecifiers = new Set();
|
|
5
|
+
for (const resource of bundle.contents) {
|
|
6
|
+
const { fileDescription: { targetFilePath, content } } = resource;
|
|
7
|
+
if (isCodeFile(targetFilePath)) {
|
|
8
|
+
const parsedFile = typescript.preProcessFile(content, true);
|
|
9
|
+
for (const literal of parsedFile.importedFiles) {
|
|
10
|
+
const specifier = literal.fileName;
|
|
11
|
+
if (specifier.startsWith('#')) {
|
|
12
|
+
importSpecifiers.add(specifier);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return importSpecifiers;
|
|
18
|
+
}
|
|
19
|
+
function escapeRegExp(value) {
|
|
20
|
+
return value.replaceAll(/[.*+?^${}()|[\]\\]/gu, '\\$&');
|
|
21
|
+
}
|
|
22
|
+
function findMatchingImportEntryKey(specifier, importsField) {
|
|
23
|
+
const matchingKeys = Object.keys(importsField)
|
|
24
|
+
.filter((key) => {
|
|
25
|
+
const wildcardPattern = `^${escapeRegExp(key).replaceAll('\\*', '.*')}$`;
|
|
26
|
+
return new RegExp(wildcardPattern).test(specifier);
|
|
27
|
+
})
|
|
28
|
+
.toSorted((left, right) => {
|
|
29
|
+
if (left === specifier || right === specifier) {
|
|
30
|
+
return left === specifier ? -1 : 1;
|
|
31
|
+
}
|
|
32
|
+
return right.length - left.length;
|
|
33
|
+
});
|
|
34
|
+
return matchingKeys[0];
|
|
35
|
+
}
|
|
36
|
+
function getConfiguredImportsOrThrow(mainPackageJson, referencedSpecifiers) {
|
|
37
|
+
if (mainPackageJson.imports !== undefined) {
|
|
38
|
+
return mainPackageJson.imports;
|
|
39
|
+
}
|
|
40
|
+
const [firstSpecifier] = referencedSpecifiers;
|
|
41
|
+
throw new Error([
|
|
42
|
+
`Found surviving package.json imports specifier "${firstSpecifier}"`,
|
|
43
|
+
'but mainPackageJson.imports is not configured'
|
|
44
|
+
].join(' '));
|
|
45
|
+
}
|
|
46
|
+
function collectReferencedImportsEntries(referencedSpecifiers, configuredImports) {
|
|
47
|
+
const importsField = {};
|
|
48
|
+
for (const specifier of referencedSpecifiers) {
|
|
49
|
+
const matchingKey = findMatchingImportEntryKey(specifier, configuredImports);
|
|
50
|
+
if (matchingKey === undefined) {
|
|
51
|
+
throw new Error([
|
|
52
|
+
`Found surviving package.json imports specifier "${specifier}"`,
|
|
53
|
+
'but no matching mainPackageJson.imports entry'
|
|
54
|
+
].join(' '));
|
|
55
|
+
}
|
|
56
|
+
const matchingImport = configuredImports[matchingKey];
|
|
57
|
+
if (matchingImport === undefined) {
|
|
58
|
+
throw new Error([
|
|
59
|
+
`Found surviving package.json imports specifier "${specifier}"`,
|
|
60
|
+
`but matching mainPackageJson.imports entry "${matchingKey}" is undefined`
|
|
61
|
+
].join(' '));
|
|
62
|
+
}
|
|
63
|
+
importsField[matchingKey] = matchingImport;
|
|
64
|
+
}
|
|
65
|
+
return importsField;
|
|
66
|
+
}
|
|
67
|
+
export function buildImportsField(bundle, mainPackageJson) {
|
|
68
|
+
const referencedSpecifiers = getHashImportSpecifiers(bundle);
|
|
69
|
+
if (referencedSpecifiers.size === 0) {
|
|
70
|
+
return undefined;
|
|
71
|
+
}
|
|
72
|
+
const configuredImports = getConfiguredImportsOrThrow(mainPackageJson, referencedSpecifiers);
|
|
73
|
+
return collectReferencedImportsEntries(referencedSpecifiers, configuredImports);
|
|
74
|
+
}
|
|
3
75
|
//# sourceMappingURL=versioned-bundle-imports.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"versioned-bundle-imports.js","sourceRoot":"","sources":["../../../../source/version-manager/versioned-bundle-imports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,UAAU,EAAE,MAAM,UAAU;
|
|
1
|
+
{"version":3,"file":"versioned-bundle-imports.js","sourceRoot":"","sources":["../../../../source/version-manager/versioned-bundle-imports.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,4 +2,64 @@ import { isImplicitPackageSurface } from "../package-surface/surface.js";
|
|
|
2
2
|
import { buildBinField, buildExportsField } from "../package-surface/modules.js";
|
|
3
3
|
import { distributeDependencies } from "./versioned-bundle-dependencies.js";
|
|
4
4
|
import { buildImportsField } from "./versioned-bundle-imports.js";
|
|
5
|
+
function firstExplicitRootId(packageInterface) {
|
|
6
|
+
const firstModule = packageInterface.modules?.[0];
|
|
7
|
+
if (firstModule !== undefined) {
|
|
8
|
+
return firstModule.root;
|
|
9
|
+
}
|
|
10
|
+
const firstBin = packageInterface.bins?.[0];
|
|
11
|
+
if (firstBin !== undefined) {
|
|
12
|
+
return firstBin.root;
|
|
13
|
+
}
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
function resolveRepresentativeRootId(bundle) {
|
|
17
|
+
if (isImplicitPackageSurface(bundle.surface)) {
|
|
18
|
+
return bundle.surface.defaultModuleRoot;
|
|
19
|
+
}
|
|
20
|
+
const referencedRootId = firstExplicitRootId(bundle.surface.packageInterface);
|
|
21
|
+
if (referencedRootId === undefined) {
|
|
22
|
+
throw new Error(`Package "${bundle.name}" explicit surface declares neither modules nor bins`);
|
|
23
|
+
}
|
|
24
|
+
return referencedRootId;
|
|
25
|
+
}
|
|
26
|
+
function resolveRepresentativeRoot(bundle, rootId) {
|
|
27
|
+
// Invariant: buildExportsField (implicit) and buildBinField (explicit) run before this
|
|
28
|
+
// and throw when the referenced root is absent, so the lookup cannot return undefined.
|
|
29
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- see invariant above
|
|
30
|
+
return bundle.roots[rootId];
|
|
31
|
+
}
|
|
32
|
+
function buildOptionalVersionedBundleFields(params) {
|
|
33
|
+
const { importsField, binField, typesMainFile } = params;
|
|
34
|
+
return {
|
|
35
|
+
...(importsField === undefined ? {} : { importsField }),
|
|
36
|
+
...(binField === undefined ? {} : { binField }),
|
|
37
|
+
...(typesMainFile === undefined ? {} : { typesMainFile })
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export function buildVersionedBundle(options) {
|
|
41
|
+
const { bundle, version, mainPackageJson, additionalPackageJsonAttributes } = options;
|
|
42
|
+
const distributedDependencies = distributeDependencies(options);
|
|
43
|
+
const importsField = buildImportsField(bundle, mainPackageJson);
|
|
44
|
+
const exportsField = buildExportsField(bundle, options.substitutionPublicModuleSourcePaths ?? new Set());
|
|
45
|
+
const binField = buildBinField(bundle);
|
|
46
|
+
const representativeRoot = resolveRepresentativeRoot(bundle, resolveRepresentativeRootId(bundle));
|
|
47
|
+
const mainFile = representativeRoot.js;
|
|
48
|
+
const typesMainFile = representativeRoot.declarationFile;
|
|
49
|
+
return {
|
|
50
|
+
name: bundle.name,
|
|
51
|
+
version,
|
|
52
|
+
roots: bundle.roots,
|
|
53
|
+
surface: bundle.surface,
|
|
54
|
+
dependencies: distributedDependencies.dependencies,
|
|
55
|
+
peerDependencies: distributedDependencies.peerDependencies,
|
|
56
|
+
exportsField,
|
|
57
|
+
contents: bundle.contents,
|
|
58
|
+
mainFile,
|
|
59
|
+
additionalAttributes: additionalPackageJsonAttributes,
|
|
60
|
+
packageType: mainPackageJson.type,
|
|
61
|
+
sideEffectsField: bundle.sideEffectsField,
|
|
62
|
+
...buildOptionalVersionedBundleFields({ importsField, binField, typesMainFile })
|
|
63
|
+
};
|
|
64
|
+
}
|
|
5
65
|
//# sourceMappingURL=versioned-bundle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"versioned-bundle.js","sourceRoot":"","sources":["../../../../source/version-manager/versioned-bundle.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B;
|
|
1
|
+
{"version":3,"file":"versioned-bundle.js","sourceRoot":"","sources":["../../../../source/version-manager/versioned-bundle.ts"],"names":[],"mappings":"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"}
|