packtory 0.0.5 → 0.0.7
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 -7
- package/artifacts/artifacts-builder.d.ts.map +1 -1
- package/artifacts/artifacts-builder.js +22 -25
- package/artifacts/artifacts-builder.js.map +1 -1
- package/bundle-emitter/emitter.d.ts +30 -0
- package/bundle-emitter/emitter.d.ts.map +1 -0
- package/bundle-emitter/emitter.js +35 -0
- package/bundle-emitter/emitter.js.map +1 -0
- package/{publisher → bundle-emitter}/extract-package-tarball.js +2 -2
- package/bundle-emitter/extract-package-tarball.js.map +1 -0
- package/{publisher → bundle-emitter}/registry-client.d.ts +5 -5
- package/bundle-emitter/registry-client.d.ts.map +1 -0
- package/{publisher → bundle-emitter}/registry-client.js +13 -10
- package/bundle-emitter/registry-client.js.map +1 -0
- package/checks/check-runner.js +13 -0
- package/checks/check-runner.js.map +1 -0
- package/checks/rules/no-duplicated-files.js +41 -0
- package/checks/rules/no-duplicated-files.js.map +1 -0
- package/config/additional-files.d.ts +6 -12
- package/config/additional-files.d.ts.map +1 -1
- package/config/additional-files.js +4 -5
- package/config/additional-files.js.map +1 -1
- package/config/base-validations.js +2 -2
- package/config/base-validations.js.map +1 -1
- package/config/config.d.ts +703 -468
- package/config/config.d.ts.map +1 -1
- package/config/config.js +59 -52
- package/config/config.js.map +1 -1
- package/config/entry-point.d.ts +6 -12
- package/config/entry-point.d.ts.map +1 -1
- package/config/entry-point.js +5 -6
- package/config/entry-point.js.map +1 -1
- package/config/package-json.d.ts +10 -38
- package/config/package-json.d.ts.map +1 -1
- package/config/package-json.js +9 -20
- package/config/package-json.js.map +1 -1
- package/config/registry-settings.d.ts +6 -12
- package/config/registry-settings.d.ts.map +1 -1
- package/config/registry-settings.js +5 -6
- package/config/registry-settings.js.map +1 -1
- package/config/validation.d.ts +15 -5
- package/config/validation.d.ts.map +1 -1
- package/config/validation.js +32 -9
- package/config/validation.js.map +1 -1
- package/config/versioning-settings.d.ts +9 -22
- package/config/versioning-settings.d.ts.map +1 -1
- package/config/versioning-settings.js +10 -13
- package/config/versioning-settings.js.map +1 -1
- package/dependency-scanner/dependency-graph.d.ts +15 -13
- package/dependency-scanner/dependency-graph.d.ts.map +1 -1
- package/dependency-scanner/dependency-graph.js +31 -12
- package/dependency-scanner/dependency-graph.js.map +1 -1
- package/dependency-scanner/external-dependencies.d.ts +7 -0
- package/dependency-scanner/external-dependencies.d.ts.map +1 -0
- package/dependency-scanner/external-dependencies.js +18 -0
- package/dependency-scanner/external-dependencies.js.map +1 -0
- package/dependency-scanner/scanner.d.ts +4 -19
- package/dependency-scanner/scanner.d.ts.map +1 -1
- package/dependency-scanner/scanner.js +8 -67
- package/dependency-scanner/scanner.js.map +1 -1
- package/dependency-scanner/source-file-references.js +2 -1
- package/dependency-scanner/source-file-references.js.map +1 -1
- package/dependency-scanner/source-map-file-locator.d.ts +2 -2
- package/dependency-scanner/source-map-file-locator.d.ts.map +1 -1
- package/dependency-scanner/typescript-file-host.d.ts.map +1 -1
- package/dependency-scanner/typescript-file-host.js +1 -2
- package/dependency-scanner/typescript-file-host.js.map +1 -1
- package/dependency-scanner/typescript-project-analyzer.d.ts +6 -5
- package/dependency-scanner/typescript-project-analyzer.d.ts.map +1 -1
- package/dependency-scanner/typescript-project-analyzer.js +3 -0
- package/dependency-scanner/typescript-project-analyzer.js.map +1 -1
- package/directed-graph/graph.d.ts +12 -10
- package/directed-graph/graph.d.ts.map +1 -1
- package/directed-graph/graph.js +23 -11
- package/directed-graph/graph.js.map +1 -1
- package/{file-description → file-manager}/compare.js +2 -2
- package/file-manager/compare.js.map +1 -0
- package/file-manager/equal.js.map +1 -0
- package/file-manager/file-description.d.ts +13 -0
- package/file-manager/file-description.d.ts.map +1 -0
- package/file-manager/file-manager.d.ts +19 -0
- package/file-manager/file-manager.d.ts.map +1 -0
- package/{artifacts → file-manager}/file-manager.js +15 -4
- package/file-manager/file-manager.js.map +1 -0
- package/{file-description → file-manager}/permissions.js +1 -0
- package/file-manager/permissions.js.map +1 -0
- package/{file-description → file-manager}/sort.js +1 -1
- package/file-manager/sort.js.map +1 -0
- package/linker/linked-bundle.d.ts +14 -0
- package/linker/linked-bundle.d.ts.map +1 -0
- package/linker/linker.d.ts +12 -0
- package/linker/linker.d.ts.map +1 -0
- package/linker/linker.js +25 -0
- package/linker/linker.js.map +1 -0
- package/linker/resource-graph.js +31 -0
- package/linker/resource-graph.js.map +1 -0
- package/linker/source-modifier/import-paths.js +36 -0
- package/linker/source-modifier/import-paths.js.map +1 -0
- package/linker/substitute-bundles.js +77 -0
- package/linker/substitute-bundles.js.map +1 -0
- package/linker/substituted-resource-graph.js +78 -0
- package/linker/substituted-resource-graph.js.map +1 -0
- package/list/unique-list.js +5 -0
- package/list/unique-list.js.map +1 -0
- package/package.json +15 -13
- package/packages/packtory/packtory.entry-point.d.ts +3 -3
- package/packages/packtory/packtory.entry-point.d.ts.map +1 -1
- package/packages/packtory/packtory.entry-point.js +41 -18
- package/packages/packtory/packtory.entry-point.js.map +1 -1
- package/packtory/map-config.d.ts +25 -0
- package/packtory/map-config.d.ts.map +1 -0
- package/packtory/map-config.js +29 -13
- package/packtory/map-config.js.map +1 -1
- package/packtory/package-processor.d.ts +32 -0
- package/packtory/package-processor.d.ts.map +1 -0
- package/packtory/package-processor.js +86 -0
- package/packtory/package-processor.js.map +1 -0
- package/packtory/packtory.d.ts +25 -7
- package/packtory/packtory.d.ts.map +1 -1
- package/packtory/packtory.js +119 -17
- package/packtory/packtory.js.map +1 -1
- package/packtory/scheduler.d.ts +36 -7
- package/packtory/scheduler.d.ts.map +1 -1
- package/packtory/scheduler.js +39 -25
- package/packtory/scheduler.js.map +1 -1
- package/progress/progress-broadcaster.d.ts +8 -0
- package/progress/progress-broadcaster.d.ts.map +1 -1
- package/progress/progress-broadcaster.js +1 -0
- package/progress/progress-broadcaster.js.map +1 -1
- package/readme.md +15 -8
- package/resource-resolver/content.js +42 -0
- package/resource-resolver/content.js.map +1 -0
- package/resource-resolver/resolved-bundle.d.ts +22 -0
- package/resource-resolver/resolved-bundle.d.ts.map +1 -0
- package/resource-resolver/resource-resolve-options.d.ts +13 -0
- package/resource-resolver/resource-resolve-options.d.ts.map +1 -0
- package/resource-resolver/resource-resolver.d.ts +13 -0
- package/resource-resolver/resource-resolver.d.ts.map +1 -0
- package/resource-resolver/resource-resolver.js +67 -0
- package/resource-resolver/resource-resolver.js.map +1 -0
- package/tar/tarball-builder.d.ts +2 -2
- package/tar/tarball-builder.d.ts.map +1 -1
- package/tar/tarball-builder.js +1 -0
- package/tar/tarball-builder.js.map +1 -1
- package/version-manager/manager.d.ts +7 -0
- package/version-manager/manager.d.ts.map +1 -0
- package/version-manager/manager.js +44 -0
- package/version-manager/manager.js.map +1 -0
- package/version-manager/manifest/builder.d.ts +5 -0
- package/version-manager/manifest/builder.d.ts.map +1 -0
- package/version-manager/manifest/builder.js +13 -0
- package/version-manager/manifest/builder.js.map +1 -0
- package/{package-json.js → version-manager/manifest/serialize.js} +3 -2
- package/version-manager/manifest/serialize.js.map +1 -0
- package/version-manager/versioned-bundle.d.ts +28 -0
- package/version-manager/versioned-bundle.d.ts.map +1 -0
- package/version-manager/versioned-bundle.js +79 -0
- package/version-manager/versioned-bundle.js.map +1 -0
- package/artifacts/file-manager.d.ts +0 -17
- package/artifacts/file-manager.d.ts.map +0 -1
- package/artifacts/file-manager.js.map +0 -1
- package/bundler/bundle-build-options.d.ts +0 -19
- package/bundler/bundle-build-options.d.ts.map +0 -1
- package/bundler/bundle-build-options.js +0 -25
- package/bundler/bundle-build-options.js.map +0 -1
- package/bundler/bundle-description.d.ts +0 -27
- package/bundler/bundle-description.d.ts.map +0 -1
- package/bundler/bundler.d.ts +0 -11
- package/bundler/bundler.d.ts.map +0 -1
- package/bundler/bundler.js +0 -101
- package/bundler/bundler.js.map +0 -1
- package/bundler/content.js +0 -53
- package/bundler/content.js.map +0 -1
- package/bundler/substitute-bundles.js +0 -73
- package/bundler/substitute-bundles.js.map +0 -1
- package/config/base-validations.d.ts +0 -5
- package/config/base-validations.d.ts.map +0 -1
- package/file-description/compare.js.map +0 -1
- package/file-description/equal.js.map +0 -1
- package/file-description/file-description.d.ts +0 -6
- package/file-description/file-description.d.ts.map +0 -1
- package/file-description/permissions.js.map +0 -1
- package/file-description/sort.js.map +0 -1
- package/package-json.js.map +0 -1
- package/packages/bundler/bundler.entry-point.js +0 -21
- package/packages/bundler/bundler.entry-point.js.map +0 -1
- package/publisher/extract-package-tarball.js.map +0 -1
- package/publisher/publisher.d.ts +0 -39
- package/publisher/publisher.d.ts.map +0 -1
- package/publisher/publisher.js +0 -73
- package/publisher/publisher.js.map +0 -1
- package/publisher/registry-client.d.ts.map +0 -1
- package/publisher/registry-client.js.map +0 -1
- package/publisher/version.js +0 -35
- package/publisher/version.js.map +0 -1
- package/source-modifier/import-paths.js +0 -17
- package/source-modifier/import-paths.js.map +0 -1
- package/validation/capitalize.js +0 -7
- package/validation/capitalize.js.map +0 -1
- package/validation/formatting/ast.js +0 -113
- package/validation/formatting/ast.js.map +0 -1
- package/validation/formatting.js +0 -98
- package/validation/formatting.js.map +0 -1
- package/validation/validate.js +0 -17
- package/validation/validate.js.map +0 -1
- /package/{file-description → file-manager}/equal.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../../../source/packtory/scheduler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../../../source/packtory/scheduler.ts"],"names":[],"mappings":"AAEA,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;AAWF,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,27 +1,26 @@
|
|
|
1
1
|
import { partition } from 'effect/ReadonlyArray';
|
|
2
2
|
import { get } from 'effect/Struct';
|
|
3
3
|
import { Result } from 'true-myth';
|
|
4
|
-
import { configToBuildAndPublishOptions } from './map-config.js';
|
|
5
4
|
function isFulfilledResult(result) {
|
|
6
5
|
return result.status === 'fulfilled';
|
|
7
6
|
}
|
|
8
7
|
const getValue = get('value');
|
|
9
|
-
const getBundle = get('bundle');
|
|
10
8
|
const getReason = get('reason');
|
|
11
9
|
export function createScheduler(dependencies) {
|
|
12
10
|
const { progressBroadcastProvider } = dependencies;
|
|
13
|
-
async function runForGeneration(packageNames, config,
|
|
14
|
-
const
|
|
15
|
-
|
|
11
|
+
async function runForGeneration(packageNames, config, existingItems, params) {
|
|
12
|
+
const buildPackageSuccess = async (packageName) => {
|
|
13
|
+
const options = params.createOptions({ packageName, existing: existingItems, config });
|
|
14
|
+
const result = await params.execute(options);
|
|
15
|
+
const progressEvent = params.createProgressEvent?.({ packageName, result, options });
|
|
16
|
+
if (progressEvent !== undefined) {
|
|
17
|
+
progressBroadcastProvider.emit('done', { packageName, ...progressEvent });
|
|
18
|
+
}
|
|
19
|
+
return { packageName, result, options };
|
|
20
|
+
};
|
|
21
|
+
const executePackage = async (packageName) => {
|
|
16
22
|
try {
|
|
17
|
-
|
|
18
|
-
const result = await callback(options);
|
|
19
|
-
progressBroadcastProvider.emit('done', {
|
|
20
|
-
packageName,
|
|
21
|
-
version: result.bundle.packageJson.version,
|
|
22
|
-
status: result.status
|
|
23
|
-
});
|
|
24
|
-
return result;
|
|
23
|
+
return await buildPackageSuccess(packageName);
|
|
25
24
|
}
|
|
26
25
|
catch (error) {
|
|
27
26
|
if (error instanceof Error) {
|
|
@@ -32,12 +31,15 @@ export function createScheduler(dependencies) {
|
|
|
32
31
|
}
|
|
33
32
|
throw error;
|
|
34
33
|
}
|
|
35
|
-
}
|
|
34
|
+
};
|
|
35
|
+
const results = await Promise.allSettled(packageNames.map(executePackage));
|
|
36
36
|
const [rejectedResults, fulfilledResults] = partition(results, isFulfilledResult);
|
|
37
37
|
const succeeded = fulfilledResults.map(getValue);
|
|
38
38
|
if (rejectedResults.length > 0) {
|
|
39
39
|
return Result.err({
|
|
40
|
-
succeeded
|
|
40
|
+
succeeded: succeeded.map((entry) => {
|
|
41
|
+
return entry.result;
|
|
42
|
+
}),
|
|
41
43
|
failures: rejectedResults.map(getReason)
|
|
42
44
|
});
|
|
43
45
|
}
|
|
@@ -49,25 +51,37 @@ export function createScheduler(dependencies) {
|
|
|
49
51
|
}
|
|
50
52
|
}
|
|
51
53
|
function getExecutionPlan(config) {
|
|
54
|
+
// eslint-disable-next-line unicorn/no-array-reverse -- false positive
|
|
52
55
|
return config.packageGraph.reverse().getTopologicalGenerations();
|
|
53
56
|
}
|
|
54
57
|
return {
|
|
55
|
-
async runForEachScheduledPackage(
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
async runForEachScheduledPackage(params) {
|
|
59
|
+
const { config } = params;
|
|
60
|
+
if (params.emitScheduledEvents ?? true) {
|
|
61
|
+
emitScheduledEventForAllPackages(config);
|
|
62
|
+
}
|
|
63
|
+
const state = { nextItems: [], succeeded: [] };
|
|
64
|
+
const processGeneration = async (generation) => {
|
|
65
|
+
const generationResult = await runForGeneration(generation, config, state.nextItems, params);
|
|
61
66
|
if (generationResult.isErr) {
|
|
62
67
|
return Result.err({
|
|
63
|
-
succeeded: [...succeeded, ...generationResult.error.succeeded],
|
|
68
|
+
succeeded: [...state.succeeded, ...generationResult.error.succeeded],
|
|
64
69
|
failures: generationResult.error.failures
|
|
65
70
|
});
|
|
66
71
|
}
|
|
67
|
-
|
|
68
|
-
|
|
72
|
+
generationResult.value.forEach((entry) => {
|
|
73
|
+
state.nextItems.push(params.selectNext({ result: entry.result, options: entry.options }));
|
|
74
|
+
state.succeeded.push(entry.result);
|
|
75
|
+
});
|
|
76
|
+
return Result.ok(undefined);
|
|
77
|
+
};
|
|
78
|
+
for (const generation of getExecutionPlan(config)) {
|
|
79
|
+
const iterationResult = await processGeneration(generation);
|
|
80
|
+
if (iterationResult.isErr) {
|
|
81
|
+
return Result.err(iterationResult.error);
|
|
82
|
+
}
|
|
69
83
|
}
|
|
70
|
-
return Result.ok(succeeded);
|
|
84
|
+
return Result.ok(state.succeeded);
|
|
71
85
|
}
|
|
72
86
|
};
|
|
73
87
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../../../source/packtory/scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../../../source/packtory/scheduler.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,12 @@ type ProgressEventPayload = {
|
|
|
6
6
|
type ScheduledEventPayload = {
|
|
7
7
|
readonly packageName: string;
|
|
8
8
|
};
|
|
9
|
+
type ResolvingEventPayload = {
|
|
10
|
+
readonly packageName: string;
|
|
11
|
+
};
|
|
12
|
+
type LinkingEventPayload = {
|
|
13
|
+
readonly packageName: string;
|
|
14
|
+
};
|
|
9
15
|
type ErrorPayload = {
|
|
10
16
|
readonly packageName: string;
|
|
11
17
|
readonly error: Error;
|
|
@@ -17,6 +23,8 @@ type DonePayload = {
|
|
|
17
23
|
};
|
|
18
24
|
type Events = {
|
|
19
25
|
readonly scheduled: ScheduledEventPayload;
|
|
26
|
+
readonly resolving: ResolvingEventPayload;
|
|
27
|
+
readonly linking: LinkingEventPayload;
|
|
20
28
|
readonly building: ProgressEventPayload;
|
|
21
29
|
readonly rebuilding: ProgressEventPayload;
|
|
22
30
|
readonly publishing: ProgressEventPayload;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress-broadcaster.d.ts","sourceRoot":"","sources":["../../../../source/progress/progress-broadcaster.ts"],"names":[],"mappings":"AAAA,OAA4B,EAAE,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"progress-broadcaster.d.ts","sourceRoot":"","sources":["../../../../source/progress/progress-broadcaster.ts"],"names":[],"mappings":"AAAA,OAA4B,EAAE,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AAMzD,KAAK,oBAAoB,GAAG;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,KAAK,qBAAqB,GAAG;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF,KAAK,qBAAqB,GAAG;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF,KAAK,mBAAmB,GAAG;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF,KAAK,YAAY,GAAG;IAChB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;CACzB,CAAC;AAEF,KAAK,WAAW,GAAG;IACf,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,mBAAmB,GAAG,iBAAiB,GAAG,aAAa,CAAC;CAC5E,CAAC;AAEF,KAAK,MAAM,GAAG;IACV,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;IAC1C,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;CAChC,CAAC;AAEF,KAAK,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAEhD,MAAM,MAAM,yBAAyB,GAAG;IACpC,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC,MAAM,CAAC,CAAC;CACnD,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACpC,QAAQ,CAAC,EAAE,EAAE,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAC5C,QAAQ,CAAC,GAAG,EAAE,wBAAwB,CAAC,KAAK,CAAC,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAC9B,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;IAC7C,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;CAChD,CAAC;AAEF,wBAAgB,yBAAyB,IAAI,mBAAmB,CAY/D"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import _createEventEmitter, {} from 'mitt';
|
|
2
2
|
// workaround for https://github.com/developit/mitt/issues/191
|
|
3
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- workaround
|
|
3
4
|
const createEventEmitter = _createEventEmitter;
|
|
4
5
|
export function createProgressBroadcaster() {
|
|
5
6
|
const emitter = createEventEmitter();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress-broadcaster.js","sourceRoot":"","sources":["../../../../source/progress/progress-broadcaster.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,EAAE,EAAgB,MAAM,MAAM,CAAC;AAEzD,8DAA8D;AAC9D,MAAM,kBAAkB,GAAG,mBAAoE,CAAC;
|
|
1
|
+
{"version":3,"file":"progress-broadcaster.js","sourceRoot":"","sources":["../../../../source/progress/progress-broadcaster.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,EAAE,EAAgB,MAAM,MAAM,CAAC;AAEzD,8DAA8D;AAC9D,qFAAqF;AACrF,MAAM,kBAAkB,GAAG,mBAAoE,CAAC;AAyDhG,MAAM,UAAU,yBAAyB;IACrC,MAAM,OAAO,GAAG,kBAAkB,EAAU,CAAC;IAE7C,OAAO;QACH,QAAQ,EAAE;YACN,IAAI,EAAE,OAAO,CAAC,IAAI;SACrB;QACD,QAAQ,EAAE;YACN,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,GAAG,EAAE,OAAO,CAAC,GAAG;SACnB;KACJ,CAAC;AACN,CAAC"}
|
package/readme.md
CHANGED
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
**API Package for packtory**
|
|
4
4
|
|
|
5
|
-
This package provides an API for the `packtory` tool, enabling programmatic usage. It exposes
|
|
5
|
+
This package provides an API for the `packtory` tool, enabling programmatic usage. It exposes two functions:
|
|
6
|
+
|
|
7
|
+
- `buildAndPublishAll(config, options)` – validates the configuration, builds every package, runs the enabled checks, and (optionally) publishes the results.
|
|
8
|
+
- `resolveAndLinkAll(config)` – performs the validation, resolve, link, and checks phases without publishing. This is useful for custom workflows and integration tests that only need the prepared bundles.
|
|
6
9
|
|
|
7
10
|
**Installation:**
|
|
8
11
|
|
|
@@ -13,7 +16,7 @@ npm install packtory
|
|
|
13
16
|
**Usage:**
|
|
14
17
|
|
|
15
18
|
```javascript
|
|
16
|
-
import { buildAndPublishAll } from 'packtory';
|
|
19
|
+
import { buildAndPublishAll, resolveAndLinkAll } from 'packtory';
|
|
17
20
|
|
|
18
21
|
const config = {
|
|
19
22
|
/* your packtory configuration */
|
|
@@ -21,18 +24,22 @@ const config = {
|
|
|
21
24
|
const options = { dryRun: true }; // Example options
|
|
22
25
|
|
|
23
26
|
(async () => {
|
|
24
|
-
const
|
|
25
|
-
console.log(
|
|
27
|
+
const publishResult = await buildAndPublishAll(config, options);
|
|
28
|
+
console.log(publishResult);
|
|
29
|
+
|
|
30
|
+
const resolvedResult = await resolveAndLinkAll(config);
|
|
31
|
+
console.log(resolvedResult);
|
|
26
32
|
})();
|
|
27
33
|
```
|
|
28
34
|
|
|
29
35
|
**Parameters:**
|
|
30
36
|
|
|
31
|
-
-
|
|
32
|
-
-
|
|
37
|
+
- **config:** The packtory configuration object.
|
|
38
|
+
- **options:** An options object, currently supporting a `dryRun` boolean (only required for `buildAndPublishAll`).
|
|
33
39
|
|
|
34
|
-
**Return
|
|
40
|
+
**Return Values:**
|
|
35
41
|
|
|
36
|
-
-
|
|
42
|
+
- `buildAndPublishAll` returns a `PublishAllResult` containing either a list of successful publish results or a partial error if some packages failed.
|
|
43
|
+
- `resolveAndLinkAll` returns a `ResolveAndLinkAllResult` with either the resolved package information or details about the failure (validation errors, check failures, or partial execution issues).
|
|
37
44
|
|
|
38
45
|
**Note:** Refer to the [full documentation](https://github.com/enormora/packtory/blob/main/readme.md) for additional details.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
function prependSourcesFolderIfNecessary(sourcesFolder, filePath) {
|
|
3
|
+
if (!path.isAbsolute(filePath)) {
|
|
4
|
+
return path.join(sourcesFolder, filePath);
|
|
5
|
+
}
|
|
6
|
+
return filePath;
|
|
7
|
+
}
|
|
8
|
+
export function combineAllBundleFiles(sourcesFolder, localDependencies, additionalFiles) {
|
|
9
|
+
const resolvedLocalFiles = localDependencies.map((localFile) => {
|
|
10
|
+
const targetFilePath = path.relative(sourcesFolder, localFile.filePath);
|
|
11
|
+
return {
|
|
12
|
+
sourceFilePath: localFile.filePath,
|
|
13
|
+
targetFilePath,
|
|
14
|
+
directDependencies: localFile.directDependencies,
|
|
15
|
+
project: localFile.project,
|
|
16
|
+
isExplicitlyIncluded: false
|
|
17
|
+
};
|
|
18
|
+
});
|
|
19
|
+
const additionalContents = additionalFiles.map((additionalFile) => {
|
|
20
|
+
if (typeof additionalFile === 'string') {
|
|
21
|
+
const sourceFilePath = path.join(sourcesFolder, additionalFile);
|
|
22
|
+
const targetFilePath = additionalFile;
|
|
23
|
+
return {
|
|
24
|
+
sourceFilePath,
|
|
25
|
+
targetFilePath,
|
|
26
|
+
directDependencies: new Set(),
|
|
27
|
+
isExplicitlyIncluded: true
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
if (path.isAbsolute(additionalFile.targetFilePath)) {
|
|
31
|
+
throw new Error('The targetFilePath must be relative');
|
|
32
|
+
}
|
|
33
|
+
return {
|
|
34
|
+
sourceFilePath: prependSourcesFolderIfNecessary(sourcesFolder, additionalFile.sourceFilePath),
|
|
35
|
+
targetFilePath: additionalFile.targetFilePath,
|
|
36
|
+
directDependencies: new Set(),
|
|
37
|
+
isExplicitlyIncluded: true
|
|
38
|
+
};
|
|
39
|
+
});
|
|
40
|
+
return [...resolvedLocalFiles, ...additionalContents];
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content.js","sourceRoot":"","sources":["../../../../source/resource-resolver/content.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAK7B,SAAS,+BAA+B,CAAC,aAAqB,EAAE,QAAgB;IAC5E,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC;AAUD,MAAM,UAAU,qBAAqB,CACjC,aAAqB,EACrB,iBAAuC,EACvC,eAAgE;IAEhE,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;QAC3D,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;QACxE,OAAO;YACH,cAAc,EAAE,SAAS,CAAC,QAAQ;YAClC,cAAc;YACd,kBAAkB,EAAE,SAAS,CAAC,kBAAkB;YAChD,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,oBAAoB,EAAE,KAAK;SAC9B,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,MAAM,kBAAkB,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,cAAc,EAAsB,EAAE;QAClF,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;YAChE,MAAM,cAAc,GAAG,cAAc,CAAC;YACtC,OAAO;gBACH,cAAc;gBACd,cAAc;gBACd,kBAAkB,EAAE,IAAI,GAAG,EAAE;gBAC7B,oBAAoB,EAAE,IAAI;aAC7B,CAAC;QACN,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO;YACH,cAAc,EAAE,+BAA+B,CAAC,aAAa,EAAE,cAAc,CAAC,cAAc,CAAC;YAC7F,cAAc,EAAE,cAAc,CAAC,cAAc;YAC7C,kBAAkB,EAAE,IAAI,GAAG,EAAE;YAC7B,oBAAoB,EAAE,IAAI;SAC7B,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,kBAAkB,EAAE,GAAG,kBAAkB,CAAC,CAAC;AAC1D,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Project } from 'ts-morph';
|
|
2
|
+
import type { ExternalDependencies } from '../dependency-scanner/external-dependencies.ts';
|
|
3
|
+
import type { TransferableFileDescription } from '../file-manager/file-description.ts';
|
|
4
|
+
export type BundleResource = {
|
|
5
|
+
readonly fileDescription: TransferableFileDescription;
|
|
6
|
+
readonly directDependencies: ReadonlySet<string>;
|
|
7
|
+
readonly isExplicitlyIncluded: boolean;
|
|
8
|
+
};
|
|
9
|
+
export type ResolvedContent = BundleResource & {
|
|
10
|
+
readonly project?: Project | undefined;
|
|
11
|
+
};
|
|
12
|
+
export type EntryPointFileDescription = {
|
|
13
|
+
js: TransferableFileDescription;
|
|
14
|
+
declarationFile?: TransferableFileDescription | undefined;
|
|
15
|
+
};
|
|
16
|
+
export type ResolvedBundle = {
|
|
17
|
+
readonly contents: readonly ResolvedContent[];
|
|
18
|
+
readonly entryPoints: readonly [EntryPointFileDescription, ...EntryPointFileDescription[]];
|
|
19
|
+
readonly name: string;
|
|
20
|
+
readonly externalDependencies: ExternalDependencies;
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=resolved-bundle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolved-bundle.d.ts","sourceRoot":"","sources":["../../../../source/resource-resolver/resolved-bundle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AAC3F,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAEvF,MAAM,MAAM,cAAc,GAAG;IACzB,QAAQ,CAAC,eAAe,EAAE,2BAA2B,CAAC;IACtD,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjD,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG;IAC3C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACpC,EAAE,EAAE,2BAA2B,CAAC;IAChC,eAAe,CAAC,EAAE,2BAA2B,GAAG,SAAS,CAAC;CAC7D,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IACzB,QAAQ,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAC;IAC9C,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,yBAAyB,EAAE,GAAG,yBAAyB,EAAE,CAAC,CAAC;IAC3F,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;CACvD,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { EntryPoint } from '../config/entry-point.ts';
|
|
2
|
+
import type { AdditionalFileDescription } from '../config/additional-files.ts';
|
|
3
|
+
import type { ModuleResolution } from '../dependency-scanner/typescript-project-analyzer.ts';
|
|
4
|
+
export type EntryPoints = readonly [EntryPoint, ...(readonly EntryPoint[])];
|
|
5
|
+
export type ResourceResolveOptions = {
|
|
6
|
+
readonly sourcesFolder: string;
|
|
7
|
+
readonly entryPoints: EntryPoints;
|
|
8
|
+
readonly name: string;
|
|
9
|
+
readonly includeSourceMapFiles: boolean;
|
|
10
|
+
readonly additionalFiles: readonly (AdditionalFileDescription | string)[];
|
|
11
|
+
readonly moduleResolution: ModuleResolution;
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=resource-resolve-options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-resolve-options.d.ts","sourceRoot":"","sources":["../../../../source/resource-resolver/resource-resolve-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sDAAsD,CAAC;AAE7F,MAAM,MAAM,WAAW,GAAG,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,SAAS,UAAU,EAAE,CAAC,CAAC,CAAC;AAE5E,MAAM,MAAM,sBAAsB,GAAG;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC;IACxC,QAAQ,CAAC,eAAe,EAAE,SAAS,CAAC,yBAAyB,GAAG,MAAM,CAAC,EAAE,CAAC;IAC1E,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;CAC/C,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { DependencyScanner } from '../dependency-scanner/scanner.ts';
|
|
2
|
+
import type { FileManager } from '../file-manager/file-manager.ts';
|
|
3
|
+
import type { ResolvedBundle } from './resolved-bundle.ts';
|
|
4
|
+
import type { ResourceResolveOptions } from './resource-resolve-options.ts';
|
|
5
|
+
export type ResourceResolverDependencies = {
|
|
6
|
+
readonly dependencyScanner: DependencyScanner;
|
|
7
|
+
readonly fileManager: FileManager;
|
|
8
|
+
};
|
|
9
|
+
export type ResourceResolver = {
|
|
10
|
+
resolve: (options: ResourceResolveOptions) => Promise<ResolvedBundle>;
|
|
11
|
+
};
|
|
12
|
+
export declare function createResourceResolver(dependencies: ResourceResolverDependencies): ResourceResolver;
|
|
13
|
+
//# sourceMappingURL=resource-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-resolver.d.ts","sourceRoot":"","sources":["../../../../source/resource-resolver/resource-resolver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAE1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,KAAK,EAAkB,cAAc,EAAmB,MAAM,sBAAsB,CAAC;AAC5F,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAG5E,MAAM,MAAM,4BAA4B,GAAG;IACvC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAC9C,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC3B,OAAO,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;CACzE,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,4BAA4B,GAAG,gBAAgB,CAgGnG"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { map } from 'effect/ReadonlyArray';
|
|
2
|
+
import { mergeDependencyFiles } from "../dependency-scanner/dependency-graph.js";
|
|
3
|
+
import { combineAllBundleFiles } from "./content.js";
|
|
4
|
+
export function createResourceResolver(dependencies) {
|
|
5
|
+
const { dependencyScanner, fileManager } = dependencies;
|
|
6
|
+
async function resolveDependenciesForAllEntrypoints(options) {
|
|
7
|
+
const { entryPoints, sourcesFolder, includeSourceMapFiles, moduleResolution } = options;
|
|
8
|
+
let dependencyFiles = { externalDependencies: new Map(), localFiles: [] };
|
|
9
|
+
for (const entryPoint of entryPoints) {
|
|
10
|
+
const jsDependencyGraph = await dependencyScanner.scan(entryPoint.js, sourcesFolder, {
|
|
11
|
+
includeSourceMapFiles,
|
|
12
|
+
resolveDeclarationFiles: false,
|
|
13
|
+
moduleResolution
|
|
14
|
+
});
|
|
15
|
+
dependencyFiles = mergeDependencyFiles(dependencyFiles, jsDependencyGraph.flatten(entryPoint.js));
|
|
16
|
+
if (entryPoint.declarationFile !== undefined) {
|
|
17
|
+
const declarationDependencyGraph = await dependencyScanner.scan(entryPoint.declarationFile, sourcesFolder, {
|
|
18
|
+
includeSourceMapFiles,
|
|
19
|
+
resolveDeclarationFiles: true,
|
|
20
|
+
moduleResolution
|
|
21
|
+
});
|
|
22
|
+
dependencyFiles = mergeDependencyFiles(dependencyFiles, declarationDependencyGraph.flatten(entryPoint.declarationFile));
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return dependencyFiles;
|
|
26
|
+
}
|
|
27
|
+
function findFileDescriptionBySourcePath(filePath, resources) {
|
|
28
|
+
const matchingResource = resources.find((resource) => {
|
|
29
|
+
return resource.fileDescription.sourceFilePath === filePath;
|
|
30
|
+
});
|
|
31
|
+
if (matchingResource === undefined) {
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
return matchingResource.fileDescription;
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
async resolve(options) {
|
|
38
|
+
const resolvedDependencies = await resolveDependenciesForAllEntrypoints(options);
|
|
39
|
+
const bundleFiles = combineAllBundleFiles(options.sourcesFolder, resolvedDependencies.localFiles, options.additionalFiles);
|
|
40
|
+
const contents = await Promise.all(bundleFiles.map(async (bundleFile) => {
|
|
41
|
+
const fileDescription = await fileManager.getTransferableFileDescriptionFromPath(bundleFile.sourceFilePath, bundleFile.targetFilePath);
|
|
42
|
+
return {
|
|
43
|
+
fileDescription,
|
|
44
|
+
directDependencies: bundleFile.directDependencies,
|
|
45
|
+
project: bundleFile.project,
|
|
46
|
+
isExplicitlyIncluded: bundleFile.isExplicitlyIncluded
|
|
47
|
+
};
|
|
48
|
+
}));
|
|
49
|
+
return {
|
|
50
|
+
contents,
|
|
51
|
+
name: options.name,
|
|
52
|
+
externalDependencies: resolvedDependencies.externalDependencies,
|
|
53
|
+
entryPoints: map(options.entryPoints, (entryPoint) => {
|
|
54
|
+
const jsResource = findFileDescriptionBySourcePath(entryPoint.js, contents);
|
|
55
|
+
if (jsResource === undefined) {
|
|
56
|
+
throw new Error(`Failed to resolve resource for entry point ${entryPoint.js}`);
|
|
57
|
+
}
|
|
58
|
+
const declarationFileResource = entryPoint.declarationFile === undefined
|
|
59
|
+
? undefined
|
|
60
|
+
: findFileDescriptionBySourcePath(entryPoint.declarationFile, contents);
|
|
61
|
+
return { js: jsResource, declarationFile: declarationFileResource };
|
|
62
|
+
})
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=resource-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-resolver.js","sourceRoot":"","sources":["../../../../source/resource-resolver/resource-resolver.ts"],"names":[],"mappings":"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"}
|
package/tar/tarball-builder.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { FileDescription } from '../file-
|
|
1
|
+
import type { FileDescription } from '../file-manager/file-description.ts';
|
|
2
2
|
export type TarballBuilder = {
|
|
3
|
-
build(fileDescriptions: readonly FileDescription[])
|
|
3
|
+
build: (fileDescriptions: readonly FileDescription[]) => Promise<Buffer>;
|
|
4
4
|
};
|
|
5
5
|
export declare function createTarballBuilder(): TarballBuilder;
|
|
6
6
|
//# sourceMappingURL=tarball-builder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tarball-builder.d.ts","sourceRoot":"","sources":["../../../../source/tar/tarball-builder.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"tarball-builder.d.ts","sourceRoot":"","sources":["../../../../source/tar/tarball-builder.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAE3E,MAAM,MAAM,cAAc,GAAG;IACzB,KAAK,EAAE,CAAC,gBAAgB,EAAE,SAAS,eAAe,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC5E,CAAC;AAcF,wBAAgB,oBAAoB,IAAI,cAAc,CAuCrD"}
|
package/tar/tarball-builder.js
CHANGED
|
@@ -30,6 +30,7 @@ export function createTarballBuilder() {
|
|
|
30
30
|
const tarballStream = pack.pipe(gzipStream);
|
|
31
31
|
const chunks = [];
|
|
32
32
|
for await (const chunk of tarballStream) {
|
|
33
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- ok in this case
|
|
33
34
|
chunks.push(chunk);
|
|
34
35
|
}
|
|
35
36
|
const tarData = Buffer.concat(chunks);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tarball-builder.js","sourceRoot":"","sources":["../../../../source/tar/tarball-builder.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,GAAG,EAAE,EAAa,MAAM,YAAY,CAAC;AAO5C,MAAM,uCAAuC,GAAG,CAAC,CAAC;AAClD,MAAM,oCAAoC,GAAG,GAAG,CAAC;AAEjD,SAAS,mCAAmC,CAAC,IAAY;IACrD,qGAAqG;IACrG,IAAI,CAAC,uCAAuC,CAAC,GAAG,oCAAoC,CAAC;AACzF,CAAC;AAED,MAAM,0BAA0B,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/C,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAC/B,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAElC,MAAM,UAAU,oBAAoB;IAChC,SAAS,UAAU,CAAC,gBAA4C;QAC5D,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAExB,KAAK,MAAM,eAAe,IAAI,gBAAgB,EAAE,CAAC;YAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CACpB;gBACI,IAAI,EAAE,eAAe,CAAC,QAAQ;gBAC9B,KAAK,EAAE,0BAA0B;gBACjC,IAAI,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,qBAAqB;aAClF,EACD,eAAe,CAAC,OAAO,CAC1B,CAAC;YACF,KAAK,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEhB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO;QACH,KAAK,CAAC,KAAK,CAAC,gBAAgB;YACxB,MAAM,IAAI,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;YAE1C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YACjD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAa,EAAE,CAAC;YAE5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;gBACtC,MAAM,CAAC,IAAI,CAAC,KAAe,CAAC,CAAC;YACjC,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACtC,mCAAmC,CAAC,OAAO,CAAC,CAAC;YAC7C,OAAO,OAAO,CAAC;QACnB,CAAC;KACJ,CAAC;AACN,CAAC"}
|
|
1
|
+
{"version":3,"file":"tarball-builder.js","sourceRoot":"","sources":["../../../../source/tar/tarball-builder.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,GAAG,EAAE,EAAa,MAAM,YAAY,CAAC;AAO5C,MAAM,uCAAuC,GAAG,CAAC,CAAC;AAClD,MAAM,oCAAoC,GAAG,GAAG,CAAC;AAEjD,SAAS,mCAAmC,CAAC,IAAY;IACrD,qGAAqG;IACrG,IAAI,CAAC,uCAAuC,CAAC,GAAG,oCAAoC,CAAC;AACzF,CAAC;AAED,MAAM,0BAA0B,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/C,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAC/B,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAElC,MAAM,UAAU,oBAAoB;IAChC,SAAS,UAAU,CAAC,gBAA4C;QAC5D,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAExB,KAAK,MAAM,eAAe,IAAI,gBAAgB,EAAE,CAAC;YAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CACpB;gBACI,IAAI,EAAE,eAAe,CAAC,QAAQ;gBAC9B,KAAK,EAAE,0BAA0B;gBACjC,IAAI,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,qBAAqB;aAClF,EACD,eAAe,CAAC,OAAO,CAC1B,CAAC;YACF,KAAK,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEhB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO;QACH,KAAK,CAAC,KAAK,CAAC,gBAAgB;YACxB,MAAM,IAAI,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;YAE1C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YACjD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAa,EAAE,CAAC;YAE5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;gBACtC,0FAA0F;gBAC1F,MAAM,CAAC,IAAI,CAAC,KAAe,CAAC,CAAC;YACjC,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACtC,mCAAmC,CAAC,OAAO,CAAC,CAAC;YAC7C,OAAO,OAAO,CAAC;QACnB,CAAC;KACJ,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type BuildVersionedBundleOptions, type VersionedBundle, type VersionedBundleWithManifest } from './versioned-bundle.ts';
|
|
2
|
+
export type VersionManager = {
|
|
3
|
+
addVersion: (options: BuildVersionedBundleOptions) => VersionedBundleWithManifest;
|
|
4
|
+
increaseVersion: (bundle: VersionedBundle) => VersionedBundleWithManifest;
|
|
5
|
+
};
|
|
6
|
+
export declare function createVersionManager(): VersionManager;
|
|
7
|
+
//# sourceMappingURL=manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../source/version-manager/manager.ts"],"names":[],"mappings":"AAGA,OAAO,EAEH,KAAK,2BAA2B,EAChC,KAAK,eAAe,EACpB,KAAK,2BAA2B,EACnC,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,cAAc,GAAG;IACzB,UAAU,EAAE,CAAC,OAAO,EAAE,2BAA2B,KAAK,2BAA2B,CAAC;IAClF,eAAe,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,2BAA2B,CAAC;CAC7E,CAAC;AAEF,wBAAgB,oBAAoB,IAAI,cAAc,CA0CrD"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import semver from 'semver';
|
|
2
|
+
import { buildPackageManifest } from "./manifest/builder.js";
|
|
3
|
+
import { serializePackageJson } from "./manifest/serialize.js";
|
|
4
|
+
import { buildVersionedBundle } from "./versioned-bundle.js";
|
|
5
|
+
export function createVersionManager() {
|
|
6
|
+
return {
|
|
7
|
+
addVersion(options) {
|
|
8
|
+
const versionedBundle = buildVersionedBundle(options);
|
|
9
|
+
const manifest = buildPackageManifest(versionedBundle);
|
|
10
|
+
const packageJsonContent = serializePackageJson(manifest);
|
|
11
|
+
return {
|
|
12
|
+
...versionedBundle,
|
|
13
|
+
packageJson: manifest,
|
|
14
|
+
manifestFile: {
|
|
15
|
+
content: packageJsonContent,
|
|
16
|
+
isExecutable: false,
|
|
17
|
+
filePath: 'package.json'
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
},
|
|
21
|
+
increaseVersion(versionedBundle) {
|
|
22
|
+
const newVersion = semver.inc(versionedBundle.version, 'patch');
|
|
23
|
+
if (newVersion === null) {
|
|
24
|
+
throw new Error('Failed to increase version');
|
|
25
|
+
}
|
|
26
|
+
const newVersionedBundle = {
|
|
27
|
+
...versionedBundle,
|
|
28
|
+
version: newVersion
|
|
29
|
+
};
|
|
30
|
+
const manifest = buildPackageManifest(newVersionedBundle);
|
|
31
|
+
const packageJsonContent = serializePackageJson(manifest);
|
|
32
|
+
return {
|
|
33
|
+
...newVersionedBundle,
|
|
34
|
+
packageJson: manifest,
|
|
35
|
+
manifestFile: {
|
|
36
|
+
content: packageJsonContent,
|
|
37
|
+
isExecutable: false,
|
|
38
|
+
filePath: 'package.json'
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../../source/version-manager/manager.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EACH,oBAAoB,EAIvB,MAAM,uBAAuB,CAAC;AAO/B,MAAM,UAAU,oBAAoB;IAChC,OAAO;QACH,UAAU,CAAC,OAAO;YACd,MAAM,eAAe,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,eAAe,CAAC,CAAC;YACvD,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YAE1D,OAAO;gBACH,GAAG,eAAe;gBAClB,WAAW,EAAE,QAAQ;gBACrB,YAAY,EAAE;oBACV,OAAO,EAAE,kBAAkB;oBAC3B,YAAY,EAAE,KAAK;oBACnB,QAAQ,EAAE,cAAc;iBAC3B;aACJ,CAAC;QACN,CAAC;QAED,eAAe,CAAC,eAAe;YAC3B,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAChE,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAClD,CAAC;YAED,MAAM,kBAAkB,GAAoB;gBACxC,GAAG,eAAe;gBAClB,OAAO,EAAE,UAAU;aACtB,CAAC;YACF,MAAM,QAAQ,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;YAC1D,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YAE1D,OAAO;gBACH,GAAG,kBAAkB;gBACrB,WAAW,EAAE,QAAQ;gBACrB,YAAY,EAAE;oBACV,OAAO,EAAE,kBAAkB;oBAC3B,YAAY,EAAE,KAAK;oBACnB,QAAQ,EAAE,cAAc;iBAC3B;aACJ,CAAC;QACN,CAAC;KACJ,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { SetRequired, PackageJson } from 'type-fest';
|
|
2
|
+
import type { VersionedBundle } from '../versioned-bundle.ts';
|
|
3
|
+
export type BundlePackageJson = Readonly<SetRequired<PackageJson, 'name' | 'version'>>;
|
|
4
|
+
export declare function buildPackageManifest(bundle: VersionedBundle): BundlePackageJson;
|
|
5
|
+
//# sourceMappingURL=builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../../../source/version-manager/manifest/builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;AAEvF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,GAAG,iBAAiB,CAY/E"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export function buildPackageManifest(bundle) {
|
|
2
|
+
const packageJson = {
|
|
3
|
+
name: bundle.name,
|
|
4
|
+
version: bundle.version,
|
|
5
|
+
main: bundle.mainFile.targetFilePath,
|
|
6
|
+
...(Object.keys(bundle.dependencies).length > 0 ? { dependencies: bundle.dependencies } : {}),
|
|
7
|
+
...(Object.keys(bundle.peerDependencies).length > 0 ? { peerDependencies: bundle.peerDependencies } : {}),
|
|
8
|
+
...(bundle.packageType === undefined ? {} : { type: bundle.packageType }),
|
|
9
|
+
...(bundle.typesMainFile === undefined ? {} : { types: bundle.typesMainFile.targetFilePath })
|
|
10
|
+
};
|
|
11
|
+
return { ...bundle.additionalAttributes, ...packageJson };
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../../../source/version-manager/manifest/builder.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,oBAAoB,CAAC,MAAuB;IACxD,MAAM,WAAW,GAAsB;QACnC,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,cAAc;QACpC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzG,GAAG,CAAC,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;QACzE,GAAG,CAAC,MAAM,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;KAChG,CAAC;IAEF,OAAO,EAAE,GAAG,MAAM,CAAC,oBAAoB,EAAE,GAAG,WAAW,EAAE,CAAC;AAC9D,CAAC"}
|
|
@@ -31,6 +31,7 @@ function deepSort(value, visitedObjects) {
|
|
|
31
31
|
if (isRecord(value)) {
|
|
32
32
|
const entries = Object.entries(value);
|
|
33
33
|
entries.sort(compareEntryKeys);
|
|
34
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- ok in this case
|
|
34
35
|
return Object.fromEntries(entries.map(([propertyName, propertyValue]) => {
|
|
35
36
|
let currentValue = propertyValue;
|
|
36
37
|
if (isArray(propertyValue)) {
|
|
@@ -41,7 +42,7 @@ function deepSort(value, visitedObjects) {
|
|
|
41
42
|
}
|
|
42
43
|
return item;
|
|
43
44
|
})
|
|
44
|
-
.
|
|
45
|
+
.toSorted(compareValues);
|
|
45
46
|
}
|
|
46
47
|
return [propertyName, deepSort(currentValue, [...visitedObjects, value])];
|
|
47
48
|
}));
|
|
@@ -52,4 +53,4 @@ export function serializePackageJson(data) {
|
|
|
52
53
|
const sortedData = deepSort(data, []);
|
|
53
54
|
return JSON.stringify(sortedData, null, indentationSize);
|
|
54
55
|
}
|
|
55
|
-
//# sourceMappingURL=
|
|
56
|
+
//# sourceMappingURL=serialize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../../../../source/version-manager/manifest/serialize.ts"],"names":[],"mappings":"AAEA,MAAM,eAAe,GAAG,CAAC,CAAC;AAO1B,SAAS,WAAW,CAAC,KAAc;IAC/B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,CAAC;AAChG,CAAC;AAED,SAAS,OAAO,CAAC,KAAc;IAC3B,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,aAAa,CAAC,MAAe,EAAE,MAAe;IACnD,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7C,IAAI,MAAM,GAAG,MAAM,EAAE,CAAC;YAClB,OAAO,CAAC,CAAC,CAAC;QACd,CAAC;QACD,IAAI,MAAM,GAAG,MAAM,EAAE,CAAC;YAClB,OAAO,CAAC,CAAC;QACb,CAAC;IACL,CAAC;IAED,OAAO,CAAC,CAAC;AACb,CAAC;AAED,SAAS,gBAAgB,CAAC,MAA0B,EAAE,MAA0B;IAC5E,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;IACtB,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;IAEtB,OAAO,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC5B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,QAAQ,CAAI,KAAQ,EAAE,cAAkC;IAC7D,IAAI,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAClB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAE/B,0FAA0F;QAC1F,OAAO,MAAM,CAAC,WAAW,CACrB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,EAAE,aAAa,CAAC,EAAE,EAAE;YAC1C,IAAI,YAAY,GAAG,aAAa,CAAC;YAEjC,IAAI,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;gBACzB,YAAY,GAAG,aAAa;qBACvB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oBACV,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;wBACjB,OAAO,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAC9B,CAAC;oBACD,OAAO,IAAI,CAAC;gBAChB,CAAC,CAAC;qBACD,QAAQ,CAAC,aAAa,CAAC,CAAC;YACjC,CAAC;YAED,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,CAAC,GAAG,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9E,CAAC,CAAC,CACA,CAAC;IACX,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAA2B;IAC5D,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACtC,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { PackageJson } from 'type-fest';
|
|
2
|
+
import type { LinkedBundle } from '../linker/linked-bundle.ts';
|
|
3
|
+
import type { AdditionalPackageJsonAttributes, MainPackageJson } from '../config/package-json.ts';
|
|
4
|
+
import type { FileDescription, TransferableFileDescription } from '../file-manager/file-description.ts';
|
|
5
|
+
import type { BundlePackageJson } from './manifest/builder.ts';
|
|
6
|
+
export type VersionedBundle = Pick<LinkedBundle, 'contents' | 'name'> & {
|
|
7
|
+
readonly version: string;
|
|
8
|
+
readonly dependencies: Record<string, string>;
|
|
9
|
+
readonly peerDependencies: Record<string, string>;
|
|
10
|
+
readonly additionalAttributes: AdditionalPackageJsonAttributes;
|
|
11
|
+
readonly mainFile: TransferableFileDescription;
|
|
12
|
+
readonly typesMainFile?: TransferableFileDescription | undefined;
|
|
13
|
+
readonly packageType: PackageJson['type'];
|
|
14
|
+
};
|
|
15
|
+
export type VersionedBundleWithManifest = VersionedBundle & {
|
|
16
|
+
readonly manifestFile: FileDescription;
|
|
17
|
+
readonly packageJson: BundlePackageJson;
|
|
18
|
+
};
|
|
19
|
+
export type BuildVersionedBundleOptions = {
|
|
20
|
+
readonly bundle: LinkedBundle;
|
|
21
|
+
readonly version: string;
|
|
22
|
+
readonly mainPackageJson: MainPackageJson;
|
|
23
|
+
readonly bundleDependencies: readonly VersionedBundle[];
|
|
24
|
+
readonly bundlePeerDependencies: readonly VersionedBundle[];
|
|
25
|
+
readonly additionalPackageJsonAttributes: AdditionalPackageJsonAttributes;
|
|
26
|
+
};
|
|
27
|
+
export declare function buildVersionedBundle(options: BuildVersionedBundleOptions): VersionedBundle;
|
|
28
|
+
//# sourceMappingURL=versioned-bundle.d.ts.map
|