packtory 0.0.8 → 0.0.10
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 +7 -5
- package/artifacts/artifacts-builder.d.ts.map +1 -1
- package/artifacts/artifacts-builder.js +1 -47
- package/artifacts/artifacts-builder.js.map +1 -1
- package/bundle-emitter/emitter.d.ts +12 -2
- package/bundle-emitter/emitter.d.ts.map +1 -1
- package/bundle-emitter/emitter.js +2 -31
- package/bundle-emitter/emitter.js.map +1 -1
- package/bundle-emitter/extract-package-tarball.js +0 -12
- package/bundle-emitter/extract-package-tarball.js.map +1 -1
- package/bundle-emitter/publish-settings-bridge.js +133 -0
- package/bundle-emitter/publish-settings-bridge.js.map +1 -0
- package/bundle-emitter/registry-client.d.ts +13 -6
- package/bundle-emitter/registry-client.d.ts.map +1 -1
- package/bundle-emitter/registry-client.js +1 -90
- package/bundle-emitter/registry-client.js.map +1 -1
- package/bundle-emitter/repository-coherence.js +54 -0
- package/bundle-emitter/repository-coherence.js.map +1 -0
- package/bundle-emitter/repository-url-normalizer.js +2 -0
- package/bundle-emitter/repository-url-normalizer.js.map +1 -0
- package/checks/check-runner.js +1 -12
- package/checks/check-runner.js.map +1 -1
- package/checks/rule.js +5 -0
- package/checks/rule.js.map +1 -0
- package/checks/rules/max-bundle-size.js +9 -0
- package/checks/rules/max-bundle-size.js.map +1 -0
- package/checks/rules/no-dev-dependency-imports.js +9 -0
- package/checks/rules/no-dev-dependency-imports.js.map +1 -0
- package/checks/rules/no-duplicated-files.js +6 -38
- package/checks/rules/no-duplicated-files.js.map +1 -1
- package/checks/rules/no-side-effects.js +9 -0
- package/checks/rules/no-side-effects.js.map +1 -0
- package/checks/rules/no-unused-bundle-dependencies.js +9 -0
- package/checks/rules/no-unused-bundle-dependencies.js.map +1 -0
- package/checks/rules/registry.js +8 -0
- package/checks/rules/registry.js.map +1 -0
- package/checks/rules/required-files.js +10 -0
- package/checks/rules/required-files.js.map +1 -0
- package/checks/rules/unique-target-paths.js +9 -0
- package/checks/rules/unique-target-paths.js.map +1 -0
- package/common/clock.d.ts +7 -0
- package/common/clock.d.ts.map +1 -0
- package/common/clock.js +11 -0
- package/common/clock.js.map +1 -0
- package/common/code-files.js +5 -0
- package/common/code-files.js.map +1 -0
- package/config/additional-files.js +0 -4
- package/config/additional-files.js.map +1 -1
- package/config/additional-package-json-attributes-schema.js +7 -0
- package/config/additional-package-json-attributes-schema.js.map +1 -0
- package/config/automatic-versioning-settings.js +3 -0
- package/config/automatic-versioning-settings.js.map +1 -0
- package/config/checks-schema.d.ts +74 -0
- package/config/checks-schema.d.ts.map +1 -0
- package/config/checks-schema.js +27 -0
- package/config/checks-schema.js.map +1 -0
- package/config/common-package-settings-schemas.js +20 -0
- package/config/common-package-settings-schemas.js.map +1 -0
- package/config/config.d.ts +16 -704
- package/config/config.d.ts.map +1 -1
- package/config/config.js +1 -71
- package/config/config.js.map +1 -1
- package/config/dead-code-elimination-settings.d.ts +12 -0
- package/config/dead-code-elimination-settings.d.ts.map +1 -0
- package/config/dead-code-elimination-settings.js +3 -0
- package/config/dead-code-elimination-settings.js.map +1 -0
- package/config/dependency-policy.d.ts +6 -0
- package/config/dependency-policy.d.ts.map +1 -0
- package/config/dependency-policy.js +3 -0
- package/config/dependency-policy.js.map +1 -0
- package/config/main-package-json-schema.js +13 -0
- package/config/main-package-json-schema.js.map +1 -0
- package/config/manual-versioning-settings.js +3 -0
- package/config/manual-versioning-settings.js.map +1 -0
- package/config/optional-package-settings-schema.js +15 -0
- package/config/optional-package-settings-schema.js.map +1 -0
- package/config/package-config.d.ts +49 -0
- package/config/package-config.d.ts.map +1 -0
- package/config/package-config.js +1 -0
- package/config/package-config.js.map +1 -0
- package/config/package-interface.d.ts +36 -0
- package/config/package-interface.d.ts.map +1 -0
- package/config/package-interface.js +3 -0
- package/config/package-interface.js.map +1 -0
- package/config/package-json.d.ts +10 -10
- package/config/package-json.d.ts.map +1 -1
- package/config/package-json.js +0 -24
- package/config/package-json.js.map +1 -1
- package/config/package-schemas.js +10 -0
- package/config/package-schemas.js.map +1 -0
- package/config/packtory-config-schema.js +4 -0
- package/config/packtory-config-schema.js.map +1 -0
- package/config/packtory-config-without-registry-schema.js +32 -0
- package/config/packtory-config-without-registry-schema.js.map +1 -0
- package/config/per-package-settings-schema.js +22 -0
- package/config/per-package-settings-schema.js.map +1 -0
- package/config/publish-settings.d.ts +22 -0
- package/config/publish-settings.d.ts.map +1 -0
- package/config/publish-settings.js +4 -0
- package/config/publish-settings.js.map +1 -0
- package/config/publish-settings.report.js +17 -0
- package/config/publish-settings.report.js.map +1 -0
- package/config/registry-settings.d.ts +63 -1
- package/config/registry-settings.d.ts.map +1 -1
- package/config/registry-settings.js +0 -4
- package/config/registry-settings.js.map +1 -1
- package/config/registry-settings.report.js +41 -0
- package/config/registry-settings.report.js.map +1 -0
- package/config/root.d.ts +7 -0
- package/config/root.d.ts.map +1 -0
- package/config/root.js +3 -0
- package/config/root.js.map +1 -0
- package/config/sbom-settings.js +2 -0
- package/config/sbom-settings.js.map +1 -0
- package/config/validation.d.ts +2 -2
- package/config/validation.d.ts.map +1 -1
- package/config/validation.js +4 -118
- package/config/validation.js.map +1 -1
- package/config/versioning-settings.d.ts.map +1 -1
- package/config/versioning-settings.js +2 -10
- package/config/versioning-settings.js.map +1 -1
- package/dead-code-eliminator/analyzed-bundle.d.ts +29 -0
- package/dead-code-eliminator/analyzed-bundle.d.ts.map +1 -0
- package/dead-code-eliminator/analyzed-bundle.js +1 -0
- package/dead-code-eliminator/analyzed-bundle.js.map +1 -0
- package/dead-code-eliminator/cross-bundle/cross-bundle-seeds.js +126 -0
- package/dead-code-eliminator/cross-bundle/cross-bundle-seeds.js.map +1 -0
- package/dead-code-eliminator/elimination-emitter.js +53 -0
- package/dead-code-eliminator/elimination-emitter.js.map +1 -0
- package/dead-code-eliminator/eliminator.js +142 -0
- package/dead-code-eliminator/eliminator.js.map +1 -0
- package/dead-code-eliminator/load-bundle.js +53 -0
- package/dead-code-eliminator/load-bundle.js.map +1 -0
- package/dead-code-eliminator/reachability/binding-extractor.js +88 -0
- package/dead-code-eliminator/reachability/binding-extractor.js.map +1 -0
- package/dead-code-eliminator/reachability/impure-statements.js +12 -0
- package/dead-code-eliminator/reachability/impure-statements.js.map +1 -0
- package/dead-code-eliminator/reachability/reachability.js +141 -0
- package/dead-code-eliminator/reachability/reachability.js.map +1 -0
- package/dead-code-eliminator/side-effect-classifier.js +406 -0
- package/dead-code-eliminator/side-effect-classifier.js.map +1 -0
- package/dead-code-eliminator/side-effects-field.js +25 -0
- package/dead-code-eliminator/side-effects-field.js.map +1 -0
- package/dead-code-eliminator/transform/atom-translator.js +13 -0
- package/dead-code-eliminator/transform/atom-translator.js.map +1 -0
- package/dead-code-eliminator/transform/declaration-remover.js +92 -0
- package/dead-code-eliminator/transform/declaration-remover.js.map +1 -0
- package/dead-code-eliminator/transform/line-index.js +27 -0
- package/dead-code-eliminator/transform/line-index.js.map +1 -0
- package/dead-code-eliminator/transform/source-map-composer.js +68 -0
- package/dead-code-eliminator/transform/source-map-composer.js.map +1 -0
- package/dependency-scanner/dependency-graph.d.ts +1 -3
- package/dependency-scanner/dependency-graph.d.ts.map +1 -1
- package/dependency-scanner/dependency-graph.js +1 -76
- package/dependency-scanner/dependency-graph.js.map +1 -1
- package/dependency-scanner/external-dependencies.d.ts +0 -1
- package/dependency-scanner/external-dependencies.d.ts.map +1 -1
- package/dependency-scanner/external-dependencies.js +1 -17
- package/dependency-scanner/external-dependencies.js.map +1 -1
- package/dependency-scanner/scanner.d.ts +7 -7
- package/dependency-scanner/scanner.d.ts.map +1 -1
- package/dependency-scanner/scanner.js +1 -75
- package/dependency-scanner/scanner.js.map +1 -1
- package/dependency-scanner/source-file-references.js +2 -73
- package/dependency-scanner/source-file-references.js.map +1 -1
- package/dependency-scanner/source-map-file-locator.d.ts.map +1 -1
- package/dependency-scanner/source-map-file-locator.js +0 -20
- package/dependency-scanner/source-map-file-locator.js.map +1 -1
- package/dependency-scanner/typescript-file-host.d.ts +2 -0
- package/dependency-scanner/typescript-file-host.d.ts.map +1 -1
- package/dependency-scanner/typescript-file-host.js +1 -48
- package/dependency-scanner/typescript-file-host.js.map +1 -1
- package/dependency-scanner/typescript-project-analyzer.d.ts +4 -6
- package/dependency-scanner/typescript-project-analyzer.d.ts.map +1 -1
- package/dependency-scanner/typescript-project-analyzer.js +0 -64
- package/dependency-scanner/typescript-project-analyzer.js.map +1 -1
- package/directed-graph/graph.d.ts +1 -2
- package/directed-graph/graph.d.ts.map +1 -1
- package/directed-graph/graph.js +0 -194
- package/directed-graph/graph.js.map +1 -1
- package/file-manager/compare.js +1 -16
- 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-manager.d.ts +1 -1
- package/file-manager/file-manager.d.ts.map +1 -1
- package/file-manager/file-manager.js +0 -46
- package/file-manager/file-manager.js.map +1 -1
- package/file-manager/permissions.js +0 -12
- package/file-manager/permissions.js.map +1 -1
- package/linker/linked-bundle.d.ts +5 -3
- package/linker/linked-bundle.d.ts.map +1 -1
- package/linker/linker.d.ts.map +1 -1
- package/linker/linker.js +0 -22
- package/linker/linker.js.map +1 -1
- package/linker/resource-graph.js +1 -29
- package/linker/resource-graph.js.map +1 -1
- package/linker/source-modifier/import-paths.js +0 -33
- package/linker/source-modifier/import-paths.js.map +1 -1
- package/linker/substitute-bundles.js +1 -73
- package/linker/substitute-bundles.js.map +1 -1
- package/linker/substituted-resource-graph.js +1 -76
- package/linker/substituted-resource-graph.js.map +1 -1
- package/npm-oidc-id-token-resolver.js +56 -0
- package/npm-oidc-id-token-resolver.js.map +1 -0
- package/package-surface/modules.js +89 -0
- package/package-surface/modules.js.map +1 -0
- package/package-surface/public-module-usage.js +37 -0
- package/package-surface/public-module-usage.js.map +1 -0
- package/package-surface/surface.d.ts +12 -0
- package/package-surface/surface.d.ts.map +1 -0
- package/package-surface/surface.js +1 -0
- package/package-surface/surface.js.map +1 -0
- package/package.json +53 -11
- package/packages/package-processor.composition.js +127 -0
- package/packages/package-processor.composition.js.map +1 -0
- package/packages/packtory/packtory.entry-point.d.ts +10 -5
- package/packages/packtory/packtory.entry-point.d.ts.map +1 -1
- package/packages/packtory/packtory.entry-point.js +7 -43
- package/packages/packtory/packtory.entry-point.js.map +1 -1
- package/packtory/map-config.d.ts +7 -16
- package/packtory/map-config.d.ts.map +1 -1
- package/packtory/map-config.js +1 -70
- package/packtory/map-config.js.map +1 -1
- package/packtory/normalize-paths.js +0 -24
- package/packtory/normalize-paths.js.map +1 -1
- package/packtory/package-processor-build.js +3 -0
- package/packtory/package-processor-build.js.map +1 -0
- package/packtory/package-processor-publish.d.ts +18 -0
- package/packtory/package-processor-publish.d.ts.map +1 -0
- package/packtory/package-processor-publish.js +1 -0
- package/packtory/package-processor-publish.js.map +1 -0
- package/packtory/package-processor.d.ts +17 -21
- package/packtory/package-processor.d.ts.map +1 -1
- package/packtory/package-processor.js +2 -85
- package/packtory/package-processor.js.map +1 -1
- package/packtory/packtory-publish.js +66 -0
- package/packtory/packtory-publish.js.map +1 -0
- package/packtory/packtory-resolve.js +84 -0
- package/packtory/packtory-resolve.js.map +1 -0
- package/packtory/packtory-results.d.ts +47 -0
- package/packtory/packtory-results.d.ts.map +1 -0
- package/packtory/packtory-results.js +1 -0
- package/packtory/packtory-results.js.map +1 -0
- package/packtory/packtory.d.ts +16 -37
- package/packtory/packtory.d.ts.map +1 -1
- package/packtory/packtory.js +33 -114
- package/packtory/packtory.js.map +1 -1
- package/packtory/prepare-package-options.d.ts +16 -0
- package/packtory/prepare-package-options.d.ts.map +1 -0
- package/packtory/prepare-package-options.js +5 -0
- package/packtory/prepare-package-options.js.map +1 -0
- package/packtory/report-attachment.js +25 -0
- package/packtory/report-attachment.js.map +1 -0
- package/packtory/resolved-package.d.ts +17 -0
- package/packtory/resolved-package.d.ts.map +1 -0
- package/packtory/resolved-package.js +4 -0
- package/packtory/resolved-package.js.map +1 -0
- package/packtory/scheduler.d.ts.map +1 -1
- package/packtory/scheduler.js +17 -15
- package/packtory/scheduler.js.map +1 -1
- package/progress/progress-broadcaster.d.ts +128 -5
- package/progress/progress-broadcaster.d.ts.map +1 -1
- package/progress/progress-broadcaster.js +0 -16
- package/progress/progress-broadcaster.js.map +1 -1
- package/report/artifact-entry-merger.js +2 -0
- package/report/artifact-entry-merger.js.map +1 -0
- package/report/config-redactor.js +27 -0
- package/report/config-redactor.js.map +1 -0
- package/report/decorators.js +68 -0
- package/report/decorators.js.map +1 -0
- package/report/inspectors.js +1 -0
- package/report/inspectors.js.map +1 -0
- package/report/report-aggregator.d.ts +61 -0
- package/report/report-aggregator.d.ts.map +1 -0
- package/report/report-aggregator.js +2 -0
- package/report/report-aggregator.js.map +1 -0
- package/resource-resolver/content.js +1 -40
- package/resource-resolver/content.js.map +1 -1
- package/resource-resolver/resolved-bundle.d.ts +4 -2
- package/resource-resolver/resolved-bundle.d.ts.map +1 -1
- package/resource-resolver/resource-resolve-options.d.ts +12 -5
- package/resource-resolver/resource-resolve-options.d.ts.map +1 -1
- package/resource-resolver/resource-resolve-options.js +2 -0
- package/resource-resolver/resource-resolve-options.js.map +1 -0
- package/resource-resolver/resource-resolver.d.ts +1 -1
- package/resource-resolver/resource-resolver.d.ts.map +1 -1
- package/resource-resolver/resource-resolver.js +1 -64
- package/resource-resolver/resource-resolver.js.map +1 -1
- package/sbom/extract-license.js +2 -0
- package/sbom/extract-license.js.map +1 -0
- package/sbom/license-resolver.d.ts +14 -0
- package/sbom/license-resolver.d.ts.map +1 -0
- package/sbom/license-resolver.js +3 -0
- package/sbom/license-resolver.js.map +1 -0
- package/sbom/sbom-builder.js +68 -0
- package/sbom/sbom-builder.js.map +1 -0
- package/sbom/sbom-file.d.ts +19 -0
- package/sbom/sbom-file.d.ts.map +1 -0
- package/sbom/sbom-file.js +3 -0
- package/sbom/sbom-file.js.map +1 -0
- package/sbom/sbom-serializer.d.ts +6 -0
- package/sbom/sbom-serializer.d.ts.map +1 -0
- package/sbom/sbom-serializer.js +2 -0
- package/sbom/sbom-serializer.js.map +1 -0
- package/sbom/tool-version.js +44 -0
- package/sbom/tool-version.js.map +1 -0
- package/sbom.cdx.json +390 -0
- package/tar/extract-tar.js +0 -13
- package/tar/extract-tar.js.map +1 -1
- package/tar/tarball-builder.d.ts.map +1 -1
- package/tar/tarball-builder.js +10 -7
- package/tar/tarball-builder.js.map +1 -1
- package/version-manager/manager.d.ts +5 -1
- package/version-manager/manager.d.ts.map +1 -1
- package/version-manager/manager.js +1 -39
- package/version-manager/manager.js.map +1 -1
- package/version-manager/manifest/builder.js +2 -12
- package/version-manager/manifest/builder.js.map +1 -1
- package/version-manager/manifest/serialize.js +1 -55
- package/version-manager/manifest/serialize.js.map +1 -1
- package/version-manager/manifest/sort-values.js +1 -0
- package/version-manager/manifest/sort-values.js.map +1 -0
- package/version-manager/specifier-classifier.js +2 -0
- package/version-manager/specifier-classifier.js.map +1 -0
- package/version-manager/specifier-errors.js +1 -0
- package/version-manager/specifier-errors.js.map +1 -0
- package/version-manager/versioned-bundle-dependencies.js +5 -0
- package/version-manager/versioned-bundle-dependencies.js.map +1 -0
- package/version-manager/versioned-bundle-imports.d.ts +4 -0
- package/version-manager/versioned-bundle-imports.d.ts.map +1 -0
- package/version-manager/versioned-bundle-imports.js +3 -0
- package/version-manager/versioned-bundle-imports.js.map +1 -0
- package/version-manager/versioned-bundle.d.ts +16 -9
- package/version-manager/versioned-bundle.d.ts.map +1 -1
- package/version-manager/versioned-bundle.js +4 -78
- package/version-manager/versioned-bundle.js.map +1 -1
- package/config/entry-point.d.ts +0 -7
- package/config/entry-point.d.ts.map +0 -1
- package/config/entry-point.js +0 -7
- package/config/entry-point.js.map +0 -1
- package/file-manager/sort.js +0 -13
- package/file-manager/sort.js.map +0 -1
- package/list/unique-list.js +0 -5
- package/list/unique-list.js.map +0 -1
- package/version-manager/manifest/builder.d.ts +0 -5
- package/version-manager/manifest/builder.d.ts.map +0 -1
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { Result } from 'true-myth';
|
|
2
|
+
import { resolveDeadCodeEliminationSettings } from "../config/dead-code-elimination-settings.js";
|
|
3
|
+
import { resolveRootsAndSurface } from "../resource-resolver/resource-resolve-options.js";
|
|
4
|
+
import { withFailureCapture } from "../report/decorators.js";
|
|
5
|
+
import { configToResolveAndLinkOptions } from "./map-config.js";
|
|
6
|
+
import { resolvePartialFailure } from "./packtory-results.js";
|
|
7
|
+
import { buildChecksResult, createResolvedPackage } from "./resolved-package.js";
|
|
8
|
+
function resolveDeadCodeEliminationByName(validated) {
|
|
9
|
+
const commonSettings = validated.packtoryConfig.commonPackageSettings?.deadCodeElimination;
|
|
10
|
+
return new Map(validated.packtoryConfig.packages.map((packageConfig) => {
|
|
11
|
+
return [
|
|
12
|
+
packageConfig.name,
|
|
13
|
+
resolveDeadCodeEliminationSettings(packageConfig.deadCodeElimination, commonSettings)
|
|
14
|
+
];
|
|
15
|
+
}));
|
|
16
|
+
}
|
|
17
|
+
function createResolveOptions(packageName, existing, config) {
|
|
18
|
+
return configToResolveAndLinkOptions(packageName, config.packageConfigs, config.packtoryConfig, existing);
|
|
19
|
+
}
|
|
20
|
+
async function resolvePackages(dependencies, config) {
|
|
21
|
+
return dependencies.scheduler.runForEachScheduledPackage({
|
|
22
|
+
config,
|
|
23
|
+
createOptions: (context) => {
|
|
24
|
+
const options = createResolveOptions(context.packageName, context.existing, context.config);
|
|
25
|
+
if (dependencies.progressBroadcaster.provider.hasSubscribers('inputsResolved')) {
|
|
26
|
+
const normalizedInputs = resolveRootsAndSurface(options);
|
|
27
|
+
dependencies.progressBroadcaster.provider.emit('inputsResolved', {
|
|
28
|
+
packageName: options.name,
|
|
29
|
+
roots: Object.fromEntries(Object.entries(normalizedInputs.roots).map(([rootId, root]) => {
|
|
30
|
+
return [rootId, root.js];
|
|
31
|
+
})),
|
|
32
|
+
sourceFileCount: 0,
|
|
33
|
+
siblingVersions: {}
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
return options;
|
|
37
|
+
},
|
|
38
|
+
execute: withFailureCapture(dependencies.progressBroadcaster.provider, 'resolveAndLink', async (resolveOptions) => {
|
|
39
|
+
const linkedBundle = await dependencies.packageProcessor.resolveAndLink(resolveOptions);
|
|
40
|
+
return {
|
|
41
|
+
name: resolveOptions.name,
|
|
42
|
+
linkedBundle,
|
|
43
|
+
resolveOptions
|
|
44
|
+
};
|
|
45
|
+
}),
|
|
46
|
+
selectNext: (params) => {
|
|
47
|
+
return params.result.linkedBundle;
|
|
48
|
+
},
|
|
49
|
+
emitScheduledEvents: true
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
async function analyzeResolvedPackages(dependencies, config, linkedPackages) {
|
|
53
|
+
const deadCodeEliminationByName = resolveDeadCodeEliminationByName(config);
|
|
54
|
+
const analyzedBundles = await dependencies.deadCodeEliminator.eliminate(linkedPackages.map((linkedPackage) => {
|
|
55
|
+
const deadCodeElimination = deadCodeEliminationByName.get(linkedPackage.name);
|
|
56
|
+
if (!deadCodeEliminationByName.has(linkedPackage.name)) {
|
|
57
|
+
throw new Error(`Missing dead-code elimination settings for package "${linkedPackage.name}"`);
|
|
58
|
+
}
|
|
59
|
+
return {
|
|
60
|
+
bundle: linkedPackage.linkedBundle,
|
|
61
|
+
transformationsEnabled: deadCodeElimination?.enabled ?? true,
|
|
62
|
+
deadCodeElimination
|
|
63
|
+
};
|
|
64
|
+
}));
|
|
65
|
+
return linkedPackages.map((linkedPackage, index) => {
|
|
66
|
+
const analyzedBundle = analyzedBundles[index];
|
|
67
|
+
if (analyzedBundle === undefined) {
|
|
68
|
+
throw new Error(`Analyzed bundle missing for package "${linkedPackage.name}"`);
|
|
69
|
+
}
|
|
70
|
+
return createResolvedPackage(linkedPackage.name, analyzedBundle, linkedPackage.resolveOptions);
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
export function createResolveAndLinkAllValidated(dependencies) {
|
|
74
|
+
return async function resolveAndLinkAllValidated(config) {
|
|
75
|
+
const runResult = await resolvePackages(dependencies, config);
|
|
76
|
+
if (runResult.isErr) {
|
|
77
|
+
const succeeded = await analyzeResolvedPackages(dependencies, config, runResult.error.succeeded);
|
|
78
|
+
return Result.err(resolvePartialFailure({ succeeded, failures: runResult.error.failures }));
|
|
79
|
+
}
|
|
80
|
+
const resolvedPackages = await analyzeResolvedPackages(dependencies, config, runResult.value);
|
|
81
|
+
return buildChecksResult(config, resolvedPackages);
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=packtory-resolve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packtory-resolve.js","sourceRoot":"","sources":["../../../../source/packtory/packtory-resolve.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { Result } from 'true-myth';
|
|
2
|
+
import type { ProgressBroadcaster as ProgressBroadcasterBase } from '../progress/progress-broadcaster.ts';
|
|
3
|
+
import type { BuildReport as ReportBuildReport } from '../report/report-aggregator.ts';
|
|
4
|
+
import type { BuildAndPublishResult } from './package-processor.ts';
|
|
5
|
+
import type { CheckError, ResolvedPackage } from './resolved-package.ts';
|
|
6
|
+
import type { PartialError } from './scheduler.ts';
|
|
7
|
+
export type BuildAndPublishAllOptions = {
|
|
8
|
+
readonly dryRun: boolean;
|
|
9
|
+
readonly collectReport?: boolean;
|
|
10
|
+
};
|
|
11
|
+
export type ResolveAndLinkAllOptions = {
|
|
12
|
+
readonly collectReport?: boolean;
|
|
13
|
+
};
|
|
14
|
+
export type BuildReport = ReportBuildReport;
|
|
15
|
+
export declare function configError(issues: readonly string[]): ConfigError;
|
|
16
|
+
export type PublishAllOutcome = {
|
|
17
|
+
readonly result: PublishAllResult;
|
|
18
|
+
readonly getReport: () => BuildReport | undefined;
|
|
19
|
+
};
|
|
20
|
+
export declare function createPublishAllOutcome(result: PublishAllResult, getReport: () => BuildReport | undefined): PublishAllOutcome;
|
|
21
|
+
export type ResolveAndLinkAllOutcome = {
|
|
22
|
+
readonly result: ResolveAndLinkAllResult;
|
|
23
|
+
readonly getReport: () => BuildReport | undefined;
|
|
24
|
+
};
|
|
25
|
+
export declare function createResolveAndLinkAllOutcome(result: ResolveAndLinkAllResult, getReport: () => BuildReport | undefined): ResolveAndLinkAllOutcome;
|
|
26
|
+
export type ConfigError = {
|
|
27
|
+
type: 'config';
|
|
28
|
+
issues: readonly string[];
|
|
29
|
+
};
|
|
30
|
+
export type PublishFailure = CheckError | ConfigError | (PartialError<BuildAndPublishResult> & {
|
|
31
|
+
type: 'partial';
|
|
32
|
+
});
|
|
33
|
+
export type PublishAllResult = Result<readonly BuildAndPublishResult[], PublishFailure>;
|
|
34
|
+
export declare function publishPartialFailure(error: PartialError<BuildAndPublishResult>): PublishFailure;
|
|
35
|
+
export type PartialErrorResult = {
|
|
36
|
+
type: 'partial';
|
|
37
|
+
error: PartialError<ResolvedPackage>;
|
|
38
|
+
};
|
|
39
|
+
export declare function resolvePartialFailure(error: PartialError<ResolvedPackage>): PartialErrorResult;
|
|
40
|
+
export type ResolveAndLinkFailure = CheckError | ConfigError | PartialErrorResult;
|
|
41
|
+
export type ResolveAndLinkAllResult = Result<readonly ResolvedPackage[], ResolveAndLinkFailure>;
|
|
42
|
+
export type Packtory = {
|
|
43
|
+
buildAndPublishAll: (config: unknown, options: BuildAndPublishAllOptions) => Promise<PublishAllOutcome>;
|
|
44
|
+
resolveAndLinkAll: (config: unknown, options?: ResolveAndLinkAllOptions) => Promise<ResolveAndLinkAllOutcome>;
|
|
45
|
+
};
|
|
46
|
+
export type ProgressBroadcaster = ProgressBroadcasterBase;
|
|
47
|
+
//# sourceMappingURL=packtory-results.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packtory-results.d.ts","sourceRoot":"","sources":["../../../../source/packtory/packtory-results.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=packtory-results.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packtory-results.js","sourceRoot":"","sources":["../../../../source/packtory/packtory-results.ts"],"names":[],"mappings":""}
|
package/packtory/packtory.d.ts
CHANGED
|
@@ -1,42 +1,21 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type
|
|
3
|
-
import type {
|
|
4
|
-
import type { Scheduler
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
type
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
type
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
type CheckError = {
|
|
15
|
-
type: 'checks';
|
|
16
|
-
issues: readonly string[];
|
|
17
|
-
};
|
|
18
|
-
export type PublishFailure = CheckError | ConfigError | (PartialError<BuildAndPublishResult> & {
|
|
19
|
-
type: 'partial';
|
|
20
|
-
});
|
|
21
|
-
export type PublishAllResult = Result<readonly BuildAndPublishResult[], PublishFailure>;
|
|
22
|
-
export type ResolvedPackage = {
|
|
23
|
-
readonly name: string;
|
|
24
|
-
readonly linkedBundle: LinkedBundle;
|
|
25
|
-
readonly resolveOptions: ResolveAndLinkOptions;
|
|
26
|
-
};
|
|
27
|
-
type PartialErrorResult = {
|
|
28
|
-
type: 'partial';
|
|
29
|
-
error: PartialError<ResolvedPackage>;
|
|
30
|
-
};
|
|
31
|
-
export type ResolveAndLinkFailure = CheckError | ConfigError | PartialErrorResult;
|
|
32
|
-
export type ResolveAndLinkAllResult = Result<readonly ResolvedPackage[], ResolveAndLinkFailure>;
|
|
33
|
-
export type Packtory = {
|
|
34
|
-
buildAndPublishAll: (config: PacktoryConfig | unknown, options: Options) => Promise<PublishAllResult>;
|
|
35
|
-
resolveAndLinkAll: (config: PacktoryConfigWithoutRegistry | unknown) => Promise<ResolveAndLinkAllResult>;
|
|
36
|
-
};
|
|
1
|
+
import type { DeadCodeEliminator } from '../dead-code-eliminator/analyzed-bundle.ts';
|
|
2
|
+
import { type BuildAndPublishAllOptions as BuildAndPublishAllOptionsBase, type BuildReport as BuildReportBase, type Packtory as PacktoryBase, type ProgressBroadcaster, type PublishAllOutcome as PublishAllOutcomeBase, type PublishAllResult as PublishAllResultBase, type ResolveAndLinkFailure as ResolveAndLinkFailureBase, type ResolveAndLinkAllOutcome as ResolveAndLinkAllOutcomeBase, type ResolveAndLinkAllResult as ResolveAndLinkAllResultBase, type ResolveAndLinkAllOptions as ResolveAndLinkAllOptionsBase } from './packtory-results.ts';
|
|
3
|
+
import type { PackageProcessor } from './package-processor.ts';
|
|
4
|
+
import type { Scheduler as PacktoryScheduler } from './scheduler.ts';
|
|
5
|
+
export type BuildAndPublishAllOptions = BuildAndPublishAllOptionsBase;
|
|
6
|
+
export type ResolveAndLinkAllOptions = ResolveAndLinkAllOptionsBase;
|
|
7
|
+
export type BuildReport = BuildReportBase;
|
|
8
|
+
export type PublishAllOutcome = PublishAllOutcomeBase;
|
|
9
|
+
export type ResolveAndLinkAllOutcome = ResolveAndLinkAllOutcomeBase;
|
|
10
|
+
export type PublishAllResult = PublishAllResultBase;
|
|
11
|
+
export type ResolveAndLinkAllResult = ResolveAndLinkAllResultBase;
|
|
12
|
+
export type ResolveAndLinkFailure = ResolveAndLinkFailureBase;
|
|
13
|
+
export type Packtory = PacktoryBase;
|
|
37
14
|
type PacktoryDependencies = {
|
|
38
15
|
readonly packageProcessor: PackageProcessor;
|
|
39
|
-
readonly scheduler:
|
|
16
|
+
readonly scheduler: PacktoryScheduler;
|
|
17
|
+
readonly deadCodeEliminator: DeadCodeEliminator;
|
|
18
|
+
readonly progressBroadcaster: ProgressBroadcaster;
|
|
40
19
|
};
|
|
41
20
|
export declare function createPacktory(dependencies: PacktoryDependencies): Packtory;
|
|
42
21
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packtory.d.ts","sourceRoot":"","sources":["../../../../source/packtory/packtory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"packtory.d.ts","sourceRoot":"","sources":["../../../../source/packtory/packtory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAIrF,OAAO,EAIH,KAAK,yBAAyB,IAAI,6BAA6B,EAC/D,KAAK,WAAW,IAAI,eAAe,EACnC,KAAK,QAAQ,IAAI,YAAY,EAC7B,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,IAAI,qBAAqB,EAC/C,KAAK,gBAAgB,IAAI,oBAAoB,EAC7C,KAAK,qBAAqB,IAAI,yBAAyB,EACvD,KAAK,wBAAwB,IAAI,4BAA4B,EAC7D,KAAK,uBAAuB,IAAI,2BAA2B,EAC3D,KAAK,wBAAwB,IAAI,4BAA4B,EAChE,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,IAAI,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAErE,MAAM,MAAM,yBAAyB,GAAG,6BAA6B,CAAC;AACtE,MAAM,MAAM,wBAAwB,GAAG,4BAA4B,CAAC;AACpE,MAAM,MAAM,WAAW,GAAG,eAAe,CAAC;AAC1C,MAAM,MAAM,iBAAiB,GAAG,qBAAqB,CAAC;AACtD,MAAM,MAAM,wBAAwB,GAAG,4BAA4B,CAAC;AACpE,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AACpD,MAAM,MAAM,uBAAuB,GAAG,2BAA2B,CAAC;AAClE,MAAM,MAAM,qBAAqB,GAAG,yBAAyB,CAAC;AAC9D,MAAM,MAAM,QAAQ,GAAG,YAAY,CAAC;AAEpC,KAAK,oBAAoB,GAAG;IACxB,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAChD,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;CACrD,CAAC;AAEF,wBAAgB,cAAc,CAAC,YAAY,EAAE,oBAAoB,GAAG,QAAQ,CAwD3E"}
|
package/packtory/packtory.js
CHANGED
|
@@ -1,128 +1,47 @@
|
|
|
1
1
|
import { Result } from 'true-myth';
|
|
2
2
|
import { validateConfig, validateConfigWithoutRegistry } from "../config/validation.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { emitEffectiveConfigPerPackage, maybeAttachAggregator } from "./report-attachment.js";
|
|
4
|
+
import { createResolveAndLinkAllValidated } from "./packtory-resolve.js";
|
|
5
|
+
import { createRunBuildAndPublishValidated } from "./packtory-publish.js";
|
|
6
|
+
import { configError, createPublishAllOutcome, createResolveAndLinkAllOutcome } from "./packtory-results.js";
|
|
5
7
|
export function createPacktory(dependencies) {
|
|
6
|
-
const {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
return
|
|
15
|
-
},
|
|
16
|
-
execute: async (resolveOptions) => {
|
|
17
|
-
const linkedBundle = await packageProcessor.resolveAndLink(resolveOptions);
|
|
18
|
-
return {
|
|
19
|
-
name: resolveOptions.name,
|
|
20
|
-
linkedBundle,
|
|
21
|
-
resolveOptions
|
|
22
|
-
};
|
|
23
|
-
},
|
|
24
|
-
selectNext: (params) => {
|
|
25
|
-
const { result } = params;
|
|
26
|
-
return result.linkedBundle;
|
|
27
|
-
},
|
|
28
|
-
emitScheduledEvents: true
|
|
29
|
-
});
|
|
30
|
-
if (runResult.isErr) {
|
|
31
|
-
return Result.err({ type: 'partial', error: runResult.error });
|
|
32
|
-
}
|
|
33
|
-
const resolvedPackages = runResult.value;
|
|
34
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- ok in this case
|
|
35
|
-
const sanitizedConfig = config.packtoryConfig;
|
|
36
|
-
const checkIssues = runChecks({
|
|
37
|
-
settings: sanitizedConfig.checks ?? {},
|
|
38
|
-
bundles: resolvedPackages.map((resolvedPackage) => {
|
|
39
|
-
return resolvedPackage.linkedBundle;
|
|
40
|
-
})
|
|
41
|
-
});
|
|
42
|
-
if (checkIssues.length > 0) {
|
|
43
|
-
return Result.err({ type: 'checks', issues: checkIssues });
|
|
44
|
-
}
|
|
45
|
-
return Result.ok(resolvedPackages);
|
|
46
|
-
}
|
|
47
|
-
async function determineVersionAndPublishAll(config, resolvedPackages, options) {
|
|
48
|
-
const linkedBundlesByName = new Map(resolvedPackages.map((resolvedPackage) => {
|
|
49
|
-
return [resolvedPackage.name, resolvedPackage.linkedBundle];
|
|
50
|
-
}));
|
|
51
|
-
return scheduler.runForEachScheduledPackage({
|
|
52
|
-
config,
|
|
53
|
-
createOptions: (context) => {
|
|
54
|
-
const { packageName, existing, config: validatedConfig } = context;
|
|
55
|
-
return configToBuildAndPublishOptions(packageName, validatedConfig.packageConfigs, validatedConfig.packtoryConfig, existing);
|
|
56
|
-
},
|
|
57
|
-
execute: async (buildOptions) => {
|
|
58
|
-
const linkedBundle = linkedBundlesByName.get(buildOptions.name);
|
|
59
|
-
if (linkedBundle === undefined) {
|
|
60
|
-
throw new Error(`Linked bundle for package "${buildOptions.name}" is missing`);
|
|
61
|
-
}
|
|
62
|
-
const processorOptions = {
|
|
63
|
-
linkedBundle,
|
|
64
|
-
buildOptions
|
|
65
|
-
};
|
|
66
|
-
if (options.dryRun) {
|
|
67
|
-
return packageProcessor.tryBuildAndPublish(processorOptions);
|
|
68
|
-
}
|
|
69
|
-
return packageProcessor.buildAndPublish(processorOptions);
|
|
70
|
-
},
|
|
71
|
-
selectNext: (params) => {
|
|
72
|
-
return params.result.bundle;
|
|
73
|
-
},
|
|
74
|
-
emitScheduledEvents: false,
|
|
75
|
-
createProgressEvent: (params) => {
|
|
76
|
-
const { result } = params;
|
|
77
|
-
return {
|
|
78
|
-
version: result.bundle.packageJson.version,
|
|
79
|
-
status: result.status
|
|
80
|
-
};
|
|
8
|
+
const { progressBroadcaster } = dependencies;
|
|
9
|
+
const resolveAndLinkAllValidated = createResolveAndLinkAllValidated(dependencies);
|
|
10
|
+
const runBuildAndPublishValidated = createRunBuildAndPublishValidated(dependencies);
|
|
11
|
+
async function resolveAndLinkAllPublic(config, options) {
|
|
12
|
+
const reporting = maybeAttachAggregator(progressBroadcaster, options?.collectReport);
|
|
13
|
+
try {
|
|
14
|
+
const validation = validateConfigWithoutRegistry(config);
|
|
15
|
+
if (validation.isErr) {
|
|
16
|
+
return createResolveAndLinkAllOutcome(Result.err(configError(validation.error)), reporting.getReport);
|
|
81
17
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
const validation = validateConfigWithoutRegistry(config);
|
|
86
|
-
if (validation.isErr) {
|
|
87
|
-
return Result.err({ type: 'config', issues: validation.error });
|
|
88
|
-
}
|
|
89
|
-
const result = await resolveAndLinkAllValidated(validation.value);
|
|
90
|
-
if (result.isErr) {
|
|
91
|
-
if (result.error.type === 'partial') {
|
|
92
|
-
return Result.err({ type: 'partial', error: result.error.error });
|
|
18
|
+
const result = await resolveAndLinkAllValidated(validation.value);
|
|
19
|
+
if (result.isErr) {
|
|
20
|
+
return createResolveAndLinkAllOutcome(Result.err(result.error), reporting.getReport);
|
|
93
21
|
}
|
|
94
|
-
return Result.
|
|
22
|
+
return createResolveAndLinkAllOutcome(Result.ok(result.value), reporting.getReport);
|
|
23
|
+
}
|
|
24
|
+
finally {
|
|
25
|
+
reporting.dispose();
|
|
95
26
|
}
|
|
96
|
-
return Result.ok(result.value);
|
|
97
27
|
}
|
|
98
|
-
|
|
28
|
+
async function runBuildAndPublish(validated, options) {
|
|
29
|
+
emitEffectiveConfigPerPackage(progressBroadcaster, validated.packtoryConfig);
|
|
30
|
+
return runBuildAndPublishValidated(validated, options, resolveAndLinkAllValidated);
|
|
31
|
+
}
|
|
99
32
|
async function buildAndPublishAllPublic(config, options) {
|
|
100
|
-
const
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
const resolvedBundlesResult = await resolveAndLinkAllValidated(validation.value);
|
|
108
|
-
if (resolvedBundlesResult.isErr) {
|
|
109
|
-
if (resolvedBundlesResult.error.type === 'partial') {
|
|
110
|
-
return Result.err({
|
|
111
|
-
type: 'partial',
|
|
112
|
-
succeeded: [],
|
|
113
|
-
failures: resolvedBundlesResult.error.error.failures
|
|
114
|
-
});
|
|
33
|
+
const reporting = maybeAttachAggregator(progressBroadcaster, options.collectReport);
|
|
34
|
+
try {
|
|
35
|
+
const validation = validateConfig(config);
|
|
36
|
+
if (validation.isErr) {
|
|
37
|
+
return createPublishAllOutcome(Result.err(configError(validation.error)), reporting.getReport);
|
|
115
38
|
}
|
|
116
|
-
|
|
39
|
+
const result = await runBuildAndPublish(validation.value, options);
|
|
40
|
+
return createPublishAllOutcome(result, reporting.getReport);
|
|
117
41
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
return Result.err({
|
|
121
|
-
type: 'partial',
|
|
122
|
-
...publishResult.error
|
|
123
|
-
});
|
|
42
|
+
finally {
|
|
43
|
+
reporting.dispose();
|
|
124
44
|
}
|
|
125
|
-
return Result.ok(publishResult.value);
|
|
126
45
|
}
|
|
127
46
|
return {
|
|
128
47
|
buildAndPublishAll: buildAndPublishAllPublic,
|
package/packtory/packtory.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packtory.js","sourceRoot":"","sources":["../../../../source/packtory/packtory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"packtory.js","sourceRoot":"","sources":["../../../../source/packtory/packtory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,6BAA6B,EAA0B,MAAM,yBAAyB,CAAC;AAEhH,OAAO,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC9F,OAAO,EAAE,gCAAgC,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,iCAAiC,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EACH,WAAW,EACX,uBAAuB,EACvB,8BAA8B,EAWjC,MAAM,uBAAuB,CAAC;AAqB/B,MAAM,UAAU,cAAc,CAAC,YAAkC;IAC7D,MAAM,EAAE,mBAAmB,EAAE,GAAG,YAAY,CAAC;IAC7C,MAAM,0BAA0B,GAAG,gCAAgC,CAAC,YAAY,CAAC,CAAC;IAClF,MAAM,2BAA2B,GAAG,iCAAiC,CAAC,YAAY,CAAC,CAAC;IAEpF,KAAK,UAAU,uBAAuB,CAClC,MAAe,EACf,OAAkC;QAElC,MAAM,SAAS,GAAG,qBAAqB,CAAC,mBAAmB,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;QACrF,IAAI,CAAC;YACD,MAAM,UAAU,GAAG,6BAA6B,CAAC,MAAM,CAAC,CAAC;YACzD,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;gBACnB,OAAO,8BAA8B,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;YAC1G,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAClE,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,OAAO,8BAA8B,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;YACzF,CAAC;YACD,OAAO,8BAA8B,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QACxF,CAAC;gBAAS,CAAC;YACP,SAAS,CAAC,OAAO,EAAE,CAAC;QACxB,CAAC;IACL,CAAC;IAED,KAAK,UAAU,kBAAkB,CAC7B,SAA4B,EAC5B,OAAkC;QAElC,6BAA6B,CAAC,mBAAmB,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;QAC7E,OAAO,2BAA2B,CAAC,SAAS,EAAE,OAAO,EAAE,0BAA0B,CAAC,CAAC;IACvF,CAAC;IAED,KAAK,UAAU,wBAAwB,CACnC,MAAe,EACf,OAAkC;QAElC,MAAM,SAAS,GAAG,qBAAqB,CAAC,mBAAmB,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QACpF,IAAI,CAAC;YACD,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;gBACnB,OAAO,uBAAuB,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;YACnG,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACnE,OAAO,uBAAuB,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAChE,CAAC;gBAAS,CAAC;YACP,SAAS,CAAC,OAAO,EAAE,CAAC;QACxB,CAAC;IACL,CAAC;IAED,OAAO;QACH,kBAAkB,EAAE,wBAAwB;QAC5C,iBAAiB,EAAE,uBAAuB;KAC7C,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { PackageConfig, PackageConfigsByName, PacktoryConfigWithoutRegistry } from '../config/config.ts';
|
|
2
|
+
import { type DeadCodeEliminationSettings } from '../config/dead-code-elimination-settings.ts';
|
|
3
|
+
import type { ResourceResolveOptions } from '../resource-resolver/resource-resolve-options.ts';
|
|
4
|
+
import type { BuildVersionedBundleOptions } from '../version-manager/versioned-bundle.ts';
|
|
5
|
+
export type PublishSettings = NonNullable<PackageConfig['publishSettings']>;
|
|
6
|
+
export type VersioningSettings = NonNullable<PackageConfig['versioning']>;
|
|
7
|
+
type ManifestOptionsSubset = Pick<BuildVersionedBundleOptions, 'additionalPackageJsonAttributes' | 'allowMutableSpecifiers' | 'mainPackageJson'>;
|
|
8
|
+
export type SharedPackageOptions<TBundle extends {
|
|
9
|
+
name: string;
|
|
10
|
+
}> = ManifestOptionsSubset & ResourceResolveOptions & {
|
|
11
|
+
readonly bundleDependencies: readonly TBundle[];
|
|
12
|
+
readonly bundlePeerDependencies: readonly TBundle[];
|
|
13
|
+
readonly deadCodeElimination?: DeadCodeEliminationSettings | undefined;
|
|
14
|
+
};
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=prepare-package-options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepare-package-options.d.ts","sourceRoot":"","sources":["../../../../source/packtory/prepare-package-options.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,6BAA6B,EAAE,MAAM,qBAAqB;AAC7G,OAAO,EAEH,KAAK,2BAA2B,EACnC,MAAM,6CAA6C;AAEpD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kDAAkD;AAC9F,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wCAAwC;AAGzF,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;AAC3E,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;AAKzE,KAAK,qBAAqB,GAAG,IAAI,CAC7B,2BAA2B,EAC3B,iCAAiC,GAAG,wBAAwB,GAAG,iBAAiB,CACnF;AAED,MAAM,MAAM,oBAAoB,CAAC,OAAO,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,IAAI,qBAAqB,GACtF,sBAAsB,GAAG;IACrB,QAAQ,CAAC,kBAAkB,EAAE,SAAS,OAAO,EAAE,CAAC;IAChD,QAAQ,CAAC,sBAAsB,EAAE,SAAS,OAAO,EAAE,CAAC;IACpD,QAAQ,CAAC,mBAAmB,CAAC,EAAE,2BAA2B,GAAG,SAAS,CAAC;CAC1E"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { indexBy, values } from 'remeda';
|
|
2
|
+
import { resolveDeadCodeEliminationSettings } from "../config/dead-code-elimination-settings.js";
|
|
3
|
+
import { explicitPackageSurface, implicitPackageSurface } from "../package-surface/surface.js";
|
|
4
|
+
import { normalizeAdditionalFile, normalizeRoot } from "./normalize-paths.js";
|
|
5
|
+
//# sourceMappingURL=prepare-package-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepare-package-options.js","sourceRoot":"","sources":["../../../../source/packtory/prepare-package-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ;AAExC,OAAO,EACH,kCAAkC,EAErC,MAAM,6CAA6C;AACpD,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAuB,MAAM,+BAA+B;AAGnH,OAAO,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,sBAAsB"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { redactConfigForPackage } from "../report/config-redactor.js";
|
|
2
|
+
import { createReportAggregator } from "../report/report-aggregator.js";
|
|
3
|
+
export function emitEffectiveConfigPerPackage(progressBroadcaster, packtoryConfig) {
|
|
4
|
+
if (!progressBroadcaster.provider.hasSubscribers('effectiveConfigResolved')) {
|
|
5
|
+
return;
|
|
6
|
+
}
|
|
7
|
+
for (const packageConfig of packtoryConfig.packages) {
|
|
8
|
+
progressBroadcaster.provider.emit('effectiveConfigResolved', {
|
|
9
|
+
packageName: packageConfig.name,
|
|
10
|
+
config: redactConfigForPackage(packtoryConfig, packageConfig.name)
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export function maybeAttachAggregator(progressBroadcaster, collectReport) {
|
|
15
|
+
const aggregator = collectReport === true ? createReportAggregator(progressBroadcaster.consumer) : undefined;
|
|
16
|
+
return {
|
|
17
|
+
getReport() {
|
|
18
|
+
return aggregator?.build();
|
|
19
|
+
},
|
|
20
|
+
dispose() {
|
|
21
|
+
aggregator?.unsubscribe();
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=report-attachment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"report-attachment.js","sourceRoot":"","sources":["../../../../source/packtory/report-attachment.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAoB,MAAM,gCAAgC,CAAC;AAO1F,MAAM,UAAU,6BAA6B,CACzC,mBAAwC,EACxC,cAA8B;IAE9B,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,cAAc,CAAC,yBAAyB,CAAC,EAAE,CAAC;QAC1E,OAAO;IACX,CAAC;IACD,KAAK,MAAM,aAAa,IAAI,cAAc,CAAC,QAAQ,EAAE,CAAC;QAClD,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,yBAAyB,EAAE;YACzD,WAAW,EAAE,aAAa,CAAC,IAAI;YAC/B,MAAM,EAAE,sBAAsB,CAAC,cAAc,EAAE,aAAa,CAAC,IAAI,CAAC;SACrE,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AAED,MAAM,UAAU,qBAAqB,CACjC,mBAAwC,EACxC,aAAkC;IAElC,MAAM,UAAU,GAAG,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7G,OAAO;QACH,SAAS;YACL,OAAO,UAAU,EAAE,KAAK,EAAE,CAAC;QAC/B,CAAC;QACD,OAAO;YACH,UAAU,EAAE,WAAW,EAAE,CAAC;QAC9B,CAAC;KACJ,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Result } from 'true-myth';
|
|
2
|
+
import type { PacktoryConfigWithoutRegistry } from '../config/config.ts';
|
|
3
|
+
import type { ConfigWithGraph } from '../config/validation.ts';
|
|
4
|
+
import type { AnalyzedBundle } from '../dead-code-eliminator/analyzed-bundle.ts';
|
|
5
|
+
import type { ResolveAndLinkOptions } from './map-config.ts';
|
|
6
|
+
export type ResolvedPackage = {
|
|
7
|
+
readonly name: string;
|
|
8
|
+
readonly analyzedBundle: AnalyzedBundle;
|
|
9
|
+
readonly resolveOptions: ResolveAndLinkOptions;
|
|
10
|
+
};
|
|
11
|
+
export type CheckError = {
|
|
12
|
+
readonly type: 'checks';
|
|
13
|
+
readonly issues: readonly string[];
|
|
14
|
+
};
|
|
15
|
+
export declare function createResolvedPackage(name: string, analyzedBundle: AnalyzedBundle, resolveOptions: ResolveAndLinkOptions): ResolvedPackage;
|
|
16
|
+
export declare function buildChecksResult(validated: ConfigWithGraph<PacktoryConfigWithoutRegistry>, resolvedPackages: readonly ResolvedPackage[]): Result<readonly ResolvedPackage[], CheckError>;
|
|
17
|
+
//# sourceMappingURL=resolved-package.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolved-package.d.ts","sourceRoot":"","sources":["../../../../source/packtory/resolved-package.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGnC,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE7D,MAAM,MAAM,eAAe,GAAG;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACrB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC,CAAC;AAEF,wBAAgB,qBAAqB,CACjC,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,qBAAqB,GACtC,eAAe,CAEjB;AAED,wBAAgB,iBAAiB,CAC7B,SAAS,EAAE,eAAe,CAAC,6BAA6B,CAAC,EACzD,gBAAgB,EAAE,SAAS,eAAe,EAAE,GAC7C,MAAM,CAAC,SAAS,eAAe,EAAE,EAAE,UAAU,CAAC,CA+BhD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolved-package.js","sourceRoot":"","sources":["../../../../source/packtory/resolved-package.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../../../source/packtory/scheduler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../../../source/packtory/scheduler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AACrF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,MAAM,YAAY,CAAC,OAAO,IAAI;IAChC,QAAQ,CAAC,SAAS,EAAE,SAAS,OAAO,EAAE,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,SAAS,KAAK,EAAE,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACpB,0BAA0B,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,SAAS;QAAE,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAA;KAAE,EACzG,MAAM,EAAE,gCAAgC,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,KAC1E,OAAO,CAAC,MAAM,CAAC,SAAS,OAAO,EAAE,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;CACnE,CAAC;AAEF,KAAK,qBAAqB,GAAG;IACzB,QAAQ,CAAC,yBAAyB,EAAE,yBAAyB,CAAC;CACjE,CAAC;AAgBF,KAAK,uBAAuB,CAAC,KAAK,EAAE,OAAO,SAAS;IAAE,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAA;CAAE,IAAI;IAC1F,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,SAAS,KAAK,EAAE,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;CAC7C,CAAC;AAQF,KAAK,wBAAwB,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,mBAAmB,GAAG,iBAAiB,GAAG,aAAa,CAAC;CACnE,CAAC;AAOF,KAAK,gCAAgC,CACjC,OAAO,EACP,KAAK,EACL,QAAQ,EACR,OAAO,SAAS;IAAE,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAA;CAAE,IACtD;IACA,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,uBAAuB,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,QAAQ,CAAC;IACvF,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1D,QAAQ,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,QAAQ,CAAA;KAAE,KAAK,KAAK,CAAC;IAC/E,QAAQ,CAAC,mBAAmB,CAAC,EACvB,CAAC,CAAC,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,QAAQ,CAAA;KAAE,KAAK,wBAAwB,CAAC,GACnG,SAAS,CAAC;IAChB,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC1C,CAAC;AAEF,wBAAgB,eAAe,CAAC,YAAY,EAAE,qBAAqB,GAAG,SAAS,CA0G9E"}
|
package/packtory/scheduler.js
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
import { partition } from '
|
|
2
|
-
import { get } from 'effect/Struct';
|
|
1
|
+
import { partition } from 'remeda';
|
|
3
2
|
import { Result } from 'true-myth';
|
|
4
3
|
function isFulfilledResult(result) {
|
|
5
4
|
return result.status === 'fulfilled';
|
|
6
5
|
}
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
function toError(error) {
|
|
7
|
+
if (error instanceof Error) {
|
|
8
|
+
return error;
|
|
9
|
+
}
|
|
10
|
+
return new Error('Unknown error');
|
|
11
|
+
}
|
|
9
12
|
export function createScheduler(dependencies) {
|
|
10
13
|
const { progressBroadcastProvider } = dependencies;
|
|
11
14
|
async function runForGeneration(packageNames, config, existingItems, params) {
|
|
@@ -23,24 +26,23 @@ export function createScheduler(dependencies) {
|
|
|
23
26
|
return await buildPackageSuccess(packageName);
|
|
24
27
|
}
|
|
25
28
|
catch (error) {
|
|
26
|
-
|
|
27
|
-
progressBroadcastProvider.emit('error', { packageName, error });
|
|
28
|
-
}
|
|
29
|
-
else {
|
|
30
|
-
progressBroadcastProvider.emit('error', { packageName, error: new Error('Unknown error') });
|
|
31
|
-
}
|
|
29
|
+
progressBroadcastProvider.emit('error', { packageName, error: toError(error) });
|
|
32
30
|
throw error;
|
|
33
31
|
}
|
|
34
32
|
};
|
|
35
33
|
const results = await Promise.allSettled(packageNames.map(executePackage));
|
|
36
|
-
const [
|
|
37
|
-
const succeeded = fulfilledResults.map(
|
|
34
|
+
const [fulfilledResults, rejectedResults] = partition(results, isFulfilledResult);
|
|
35
|
+
const succeeded = fulfilledResults.map((entry) => {
|
|
36
|
+
return entry.value;
|
|
37
|
+
});
|
|
38
38
|
if (rejectedResults.length > 0) {
|
|
39
39
|
return Result.err({
|
|
40
40
|
succeeded: succeeded.map((entry) => {
|
|
41
41
|
return entry.result;
|
|
42
42
|
}),
|
|
43
|
-
failures: rejectedResults.map(
|
|
43
|
+
failures: rejectedResults.map((entry) => {
|
|
44
|
+
return toError(entry.reason);
|
|
45
|
+
})
|
|
44
46
|
});
|
|
45
47
|
}
|
|
46
48
|
return Result.ok(succeeded);
|
|
@@ -51,8 +53,8 @@ export function createScheduler(dependencies) {
|
|
|
51
53
|
}
|
|
52
54
|
}
|
|
53
55
|
function getExecutionPlan(config) {
|
|
54
|
-
|
|
55
|
-
return
|
|
56
|
+
const reverseGraph = config.packageGraph.reverse.bind(config.packageGraph);
|
|
57
|
+
return reverseGraph().getTopologicalGenerations();
|
|
56
58
|
}
|
|
57
59
|
return {
|
|
58
60
|
async runForEachScheduledPackage(params) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../../../source/packtory/scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../../../source/packtory/scheduler.ts"],"names":[],"mappings":"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"}
|