packtory 0.0.4 → 0.0.6
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 -8
- 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 -6
- 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 +29 -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 +671 -468
- package/config/config.d.ts.map +1 -1
- package/config/config.js +55 -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 +30 -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 +75 -0
- package/linker/substitute-bundles.js.map +1 -0
- package/linker/substituted-resource-graph.js +57 -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 +16 -14
- package/packages/packtory/packtory.entry-point.d.ts +4 -4
- 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/resource-resolver/content.js +35 -0
- package/resource-resolver/content.js.map +1 -0
- package/resource-resolver/resolved-bundle.d.ts +21 -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 +66 -0
- package/resource-resolver/resource-resolver.js.map +1 -0
- package/tar/tarball-builder.d.ts +2 -3
- 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/LICENSE +0 -21
- package/artifacts/file-manager.d.ts +0 -19
- 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 -40
- 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/readme.md +0 -38
- 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
package/directed-graph/graph.js
CHANGED
|
@@ -111,6 +111,20 @@ export function createDirectedGraph() {
|
|
|
111
111
|
}
|
|
112
112
|
return [];
|
|
113
113
|
}
|
|
114
|
+
function visitBreadthFirstSearch(startId, visitor) {
|
|
115
|
+
const startNode = getNode(startId);
|
|
116
|
+
const queue = [startNode];
|
|
117
|
+
const visited = new Set();
|
|
118
|
+
for (let head = queue.shift(); head !== undefined; head = queue.shift()) {
|
|
119
|
+
visited.add(head.id);
|
|
120
|
+
visitor(head);
|
|
121
|
+
const nonVisitedAdjacentIds = getNonVisitedAdjacentIds(head, visited);
|
|
122
|
+
for (const id of nonVisitedAdjacentIds) {
|
|
123
|
+
const adjacentNode = getNode(id);
|
|
124
|
+
queue.push(adjacentNode);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
114
128
|
return {
|
|
115
129
|
addNode(id, data) {
|
|
116
130
|
if (nodes.has(id)) {
|
|
@@ -118,6 +132,10 @@ export function createDirectedGraph() {
|
|
|
118
132
|
}
|
|
119
133
|
nodes.set(id, { id, data, adjacentNodeIds: new Set(), incomingEdges: 0 });
|
|
120
134
|
},
|
|
135
|
+
getAdjacentIds(id) {
|
|
136
|
+
const node = getNode(id);
|
|
137
|
+
return node.adjacentNodeIds;
|
|
138
|
+
},
|
|
121
139
|
hasNode(id) {
|
|
122
140
|
return nodes.has(id);
|
|
123
141
|
},
|
|
@@ -143,17 +161,11 @@ export function createDirectedGraph() {
|
|
|
143
161
|
nodes.set(edge.from, removeAdjacentNodeId(fromNode, toNode.id));
|
|
144
162
|
nodes.set(edge.to, decreaseIncomingEdges(toNode));
|
|
145
163
|
},
|
|
146
|
-
visitBreadthFirstSearch
|
|
147
|
-
|
|
148
|
-
const
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
visited.add(head.id);
|
|
152
|
-
visitor(head);
|
|
153
|
-
const nonVisitedAdjacentIds = getNonVisitedAdjacentIds(head, visited);
|
|
154
|
-
for (const id of nonVisitedAdjacentIds) {
|
|
155
|
-
const adjacentNode = getNode(id);
|
|
156
|
-
queue.push(adjacentNode);
|
|
164
|
+
visitBreadthFirstSearch,
|
|
165
|
+
traverse(visitor) {
|
|
166
|
+
for (const [nodeId, node] of nodes) {
|
|
167
|
+
if (node.incomingEdges === 0) {
|
|
168
|
+
visitBreadthFirstSearch(nodeId, visitor);
|
|
157
169
|
}
|
|
158
170
|
}
|
|
159
171
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../../../source/directed-graph/graph.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../../../source/directed-graph/graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { areFileDescriptionEqual } from
|
|
2
|
-
import { sortByFilePath } from
|
|
1
|
+
import { areFileDescriptionEqual } from "./equal.js";
|
|
2
|
+
import { sortByFilePath } from "./sort.js";
|
|
3
3
|
export function compareFileDescriptions(fileDescriptionsA, fileDescriptionsB) {
|
|
4
4
|
if (fileDescriptionsA.length !== fileDescriptionsB.length) {
|
|
5
5
|
return { status: 'not-equal' };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compare.js","sourceRoot":"","sources":["../../../../source/file-manager/compare.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAM3C,MAAM,UAAU,uBAAuB,CACnC,iBAA6C,EAC7C,iBAA6C;IAE7C,IAAI,iBAAiB,CAAC,MAAM,KAAK,iBAAiB,CAAC,MAAM,EAAE,CAAC;QACxD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IACnC,CAAC;IAED,MAAM,uBAAuB,GAAG,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAClE,MAAM,uBAAuB,GAAG,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAClE,MAAM,2BAA2B,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC,gBAAgB,EAAE,KAAK,EAAE,EAAE;QAC1F,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;QACxD,OAAO,gBAAgB,KAAK,SAAS,IAAI,uBAAuB,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;IACzG,CAAC,CAAC,CAAC;IAEH,IAAI,2BAA2B,EAAE,CAAC;QAC9B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAC/B,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"equal.js","sourceRoot":"","sources":["../../../../source/file-manager/equal.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,uBAAuB,CAAC,KAAsB,EAAE,MAAuB;IACnF,OAAO,CACH,KAAK,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ;QAClC,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO;QAChC,KAAK,CAAC,YAAY,KAAK,MAAM,CAAC,YAAY,CAC7C,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
type BaseDescription = {
|
|
2
|
+
readonly content: string;
|
|
3
|
+
readonly isExecutable: boolean;
|
|
4
|
+
};
|
|
5
|
+
export type FileDescription = BaseDescription & {
|
|
6
|
+
readonly filePath: string;
|
|
7
|
+
};
|
|
8
|
+
export type TransferableFileDescription = BaseDescription & {
|
|
9
|
+
readonly sourceFilePath: string;
|
|
10
|
+
readonly targetFilePath: string;
|
|
11
|
+
};
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=file-description.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-description.d.ts","sourceRoot":"","sources":["../../../../source/file-manager/file-description.ts"],"names":[],"mappings":"AAAA,KAAK,eAAe,GAAG;IACnB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,eAAe,GAAG;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,eAAe,GAAG;IACxD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACnC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import type { TransferableFileDescription } from './file-description.ts';
|
|
3
|
+
export type FileManagerDependencies = {
|
|
4
|
+
readonly hostFileSystem: typeof fs.promises;
|
|
5
|
+
};
|
|
6
|
+
type FileOrFolderReadability = {
|
|
7
|
+
readonly isReadable: boolean;
|
|
8
|
+
};
|
|
9
|
+
export type FileManager = {
|
|
10
|
+
checkReadability: (fileOrFolderPath: string) => Promise<FileOrFolderReadability>;
|
|
11
|
+
readFile: (filePath: string) => Promise<string>;
|
|
12
|
+
writeFile: (filePath: string, content: string) => Promise<void>;
|
|
13
|
+
copyFile: (from: string, to: string) => Promise<void>;
|
|
14
|
+
getFileMode: (filePath: string) => Promise<number>;
|
|
15
|
+
getTransferableFileDescriptionFromPath: (sourceFilePath: string, targetFilePath: string) => Promise<TransferableFileDescription>;
|
|
16
|
+
};
|
|
17
|
+
export declare function createFileManager(dependencies: FileManagerDependencies): FileManager;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=file-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-manager.d.ts","sourceRoot":"","sources":["../../../../source/file-manager/file-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAGzE,MAAM,MAAM,uBAAuB,GAAG;IAClC,QAAQ,CAAC,cAAc,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC;CAC/C,CAAC;AAEF,KAAK,uBAAuB,GAAG;IAC3B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACtB,gBAAgB,EAAE,CAAC,gBAAgB,EAAE,MAAM,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACjF,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAChD,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD,sCAAsC,EAAE,CACpC,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,MAAM,KACrB,OAAO,CAAC,2BAA2B,CAAC,CAAC;CAC7C,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,uBAAuB,GAAG,WAAW,CAyDpF"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import fs from 'node:fs';
|
|
2
2
|
import path from 'node:path';
|
|
3
|
+
import { isExecutableFileMode } from "./permissions.js";
|
|
3
4
|
export function createFileManager(dependencies) {
|
|
4
5
|
const { hostFileSystem } = dependencies;
|
|
5
6
|
async function checkReadability(fileOrFolderPath) {
|
|
@@ -22,17 +23,27 @@ export function createFileManager(dependencies) {
|
|
|
22
23
|
async function readFile(filePath) {
|
|
23
24
|
return hostFileSystem.readFile(filePath, { encoding: 'utf8' });
|
|
24
25
|
}
|
|
26
|
+
async function getFileMode(filePath) {
|
|
27
|
+
const stats = await hostFileSystem.stat(filePath);
|
|
28
|
+
return stats.mode;
|
|
29
|
+
}
|
|
25
30
|
return {
|
|
26
31
|
checkReadability,
|
|
27
32
|
writeFile,
|
|
28
33
|
readFile,
|
|
34
|
+
getFileMode,
|
|
35
|
+
async getTransferableFileDescriptionFromPath(sourceFilePath, targetFilePath) {
|
|
36
|
+
const mode = await getFileMode(sourceFilePath);
|
|
37
|
+
return {
|
|
38
|
+
sourceFilePath,
|
|
39
|
+
targetFilePath,
|
|
40
|
+
content: await readFile(sourceFilePath),
|
|
41
|
+
isExecutable: isExecutableFileMode(mode)
|
|
42
|
+
};
|
|
43
|
+
},
|
|
29
44
|
async copyFile(from, to) {
|
|
30
45
|
const content = await readFile(from);
|
|
31
46
|
await writeFile(to, content);
|
|
32
|
-
},
|
|
33
|
-
async getFileMode(filePath) {
|
|
34
|
-
const stats = await hostFileSystem.stat(filePath);
|
|
35
|
-
return stats.mode;
|
|
36
47
|
}
|
|
37
48
|
};
|
|
38
49
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-manager.js","sourceRoot":"","sources":["../../../../source/file-manager/file-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAsBxD,MAAM,UAAU,iBAAiB,CAAC,YAAqC;IACnE,MAAM,EAAE,cAAc,EAAE,GAAG,YAAY,CAAC;IAExC,KAAK,UAAU,gBAAgB,CAAC,gBAAwB;QACpD,IAAI,CAAC;YACD,MAAM,cAAc,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACjE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QACjC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,SAAS,CAAC,QAAgB,EAAE,OAAe;QACtD,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,iBAAiB,GAAG,MAAM,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;QAEnE,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC;YAChC,MAAM,cAAc,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,cAAc,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,UAAU,QAAQ,CAAC,QAAgB;QACpC,OAAO,cAAc,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,UAAU,WAAW,CAAC,QAAgB;QACvC,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClD,OAAO,KAAK,CAAC,IAAI,CAAC;IACtB,CAAC;IAED,OAAO;QACH,gBAAgB;QAEhB,SAAS;QAET,QAAQ;QAER,WAAW;QAEX,KAAK,CAAC,sCAAsC,CAAC,cAAc,EAAE,cAAc;YACvE,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,cAAc,CAAC,CAAC;YAE/C,OAAO;gBACH,cAAc;gBACd,cAAc;gBACd,OAAO,EAAE,MAAM,QAAQ,CAAC,cAAc,CAAC;gBACvC,YAAY,EAAE,oBAAoB,CAAC,IAAI,CAAC;aAC3C,CAAC;QACN,CAAC;QAED,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE;YACnB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;YACrC,MAAM,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACjC,CAAC;KACJ,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../../source/file-manager/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,gEAAgE;AAChE,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC7C,IAAI,CAAC;QACD,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACzC,OAAO,CACH,WAAW,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI;YAClC,WAAW,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI;YACnC,WAAW,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CACvC,CAAC;IACN,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC"}
|
|
@@ -8,6 +8,6 @@ function compareFilePath(first, second) {
|
|
|
8
8
|
return 0;
|
|
9
9
|
}
|
|
10
10
|
export function sortByFilePath(fileDescriptions) {
|
|
11
|
-
return Array.from(fileDescriptions).
|
|
11
|
+
return Array.from(fileDescriptions).toSorted(compareFilePath);
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=sort.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sort.js","sourceRoot":"","sources":["../../../../source/file-manager/sort.ts"],"names":[],"mappings":"AAOA,SAAS,eAAe,CAAC,KAAsB,EAAE,MAAuB;IACpE,IAAI,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QACnC,OAAO,CAAC,CAAC,CAAC;IACd,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QACnC,OAAO,CAAC,CAAC;IACb,CAAC;IACD,OAAO,CAAC,CAAC;AACb,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,gBAA4C;IACvE,OAAO,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AAClE,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ExternalDependencies } from '../dependency-scanner/external-dependencies.ts';
|
|
2
|
+
import type { BundleResource, ResolvedBundle } from '../resource-resolver/resolved-bundle.ts';
|
|
3
|
+
export type LinkedBundleResource = BundleResource & {
|
|
4
|
+
readonly isSubstituted: boolean;
|
|
5
|
+
};
|
|
6
|
+
export type LinkedBundle = {
|
|
7
|
+
readonly name: string;
|
|
8
|
+
readonly contents: readonly LinkedBundleResource[];
|
|
9
|
+
readonly entryPoints: ResolvedBundle['entryPoints'];
|
|
10
|
+
readonly linkedBundleDependencies: ExternalDependencies;
|
|
11
|
+
readonly externalDependencies: ExternalDependencies;
|
|
12
|
+
};
|
|
13
|
+
export type BundleSubstitutionSource = Pick<LinkedBundle, 'contents' | 'name'>;
|
|
14
|
+
//# sourceMappingURL=linked-bundle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"linked-bundle.d.ts","sourceRoot":"","sources":["../../../../source/linker/linked-bundle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AAC3F,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAE9F,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG;IAChD,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACnD,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC;IACpD,QAAQ,CAAC,wBAAwB,EAAE,oBAAoB,CAAC;IACxD,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;CACvD,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,YAAY,EAAE,UAAU,GAAG,MAAM,CAAC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ResolvedBundle } from '../resource-resolver/resolved-bundle.ts';
|
|
2
|
+
import type { BundleSubstitutionSource, LinkedBundle } from './linked-bundle.ts';
|
|
3
|
+
type LinkBundleOptions = {
|
|
4
|
+
readonly bundle: ResolvedBundle;
|
|
5
|
+
readonly bundleDependencies: readonly BundleSubstitutionSource[];
|
|
6
|
+
};
|
|
7
|
+
export type BundleLinker = {
|
|
8
|
+
linkBundle: (options: LinkBundleOptions) => Promise<LinkedBundle>;
|
|
9
|
+
};
|
|
10
|
+
export declare function createBundleLinker(): BundleLinker;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=linker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"linker.d.ts","sourceRoot":"","sources":["../../../../source/linker/linker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAE9E,OAAO,KAAK,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGjF,KAAK,iBAAiB,GAAG;IACrB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,kBAAkB,EAAE,SAAS,wBAAwB,EAAE,CAAC;CACpE,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACvB,UAAU,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;CACrE,CAAC;AAWF,wBAAgB,kBAAkB,IAAI,YAAY,CAcjD"}
|
package/linker/linker.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { substituteDependencies } from "./substitute-bundles.js";
|
|
2
|
+
import { createGraphFromResolvedBundle } from "./resource-graph.js";
|
|
3
|
+
function flattenEntryPoints(entryPoints) {
|
|
4
|
+
return entryPoints.flatMap((entryPoint) => {
|
|
5
|
+
if (entryPoint.declarationFile !== undefined) {
|
|
6
|
+
return [entryPoint.js.sourceFilePath, entryPoint.declarationFile.sourceFilePath];
|
|
7
|
+
}
|
|
8
|
+
return [entryPoint.js.sourceFilePath];
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
export function createBundleLinker() {
|
|
12
|
+
return {
|
|
13
|
+
async linkBundle(options) {
|
|
14
|
+
const { bundle, bundleDependencies } = options;
|
|
15
|
+
const resourceGraph = createGraphFromResolvedBundle(bundle);
|
|
16
|
+
const substitutedGraph = substituteDependencies(resourceGraph, bundleDependencies);
|
|
17
|
+
return {
|
|
18
|
+
...substitutedGraph.flatten(flattenEntryPoints(bundle.entryPoints)),
|
|
19
|
+
name: bundle.name,
|
|
20
|
+
entryPoints: bundle.entryPoints
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=linker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"linker.js","sourceRoot":"","sources":["../../../../source/linker/linker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AAWpE,SAAS,kBAAkB,CAAC,WAA0C;IAClE,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;QACtC,IAAI,UAAU,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YAC3C,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,cAAc,EAAE,UAAU,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;QACrF,CAAC;QACD,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,kBAAkB;IAC9B,OAAO;QACH,KAAK,CAAC,UAAU,CAAC,OAAO;YACpB,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC;YAC/C,MAAM,aAAa,GAAG,6BAA6B,CAAC,MAAM,CAAC,CAAC;YAC5D,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC;YAEnF,OAAO;gBACH,GAAG,gBAAgB,CAAC,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBACnE,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,WAAW,EAAE,MAAM,CAAC,WAAW;aAClC,CAAC;QACN,CAAC;KACJ,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { createDirectedGraph } from "../directed-graph/graph.js";
|
|
2
|
+
function collectResourceSpecificExternalDependencies(resource, externalDependencies) {
|
|
3
|
+
return Array.from(externalDependencies.values())
|
|
4
|
+
.filter((dependency) => {
|
|
5
|
+
return dependency.referencedFrom.includes(resource.fileDescription.sourceFilePath);
|
|
6
|
+
})
|
|
7
|
+
.map((dependency) => {
|
|
8
|
+
return dependency.name;
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
export function createGraphFromResolvedBundle(bundle) {
|
|
12
|
+
const graph = createDirectedGraph();
|
|
13
|
+
for (const resource of bundle.contents) {
|
|
14
|
+
const externalDependencies = collectResourceSpecificExternalDependencies(resource, bundle.externalDependencies);
|
|
15
|
+
graph.addNode(resource.fileDescription.sourceFilePath, {
|
|
16
|
+
fileDescription: resource.fileDescription,
|
|
17
|
+
externalDependencies,
|
|
18
|
+
project: resource.project
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
for (const resource of bundle.contents) {
|
|
22
|
+
for (const directDependency of resource.directDependencies) {
|
|
23
|
+
if (!graph.hasConnection({ from: resource.fileDescription.sourceFilePath, to: directDependency })) {
|
|
24
|
+
graph.connect({ from: resource.fileDescription.sourceFilePath, to: directDependency });
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return graph;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=resource-graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-graph.js","sourceRoot":"","sources":["../../../../source/linker/resource-graph.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAYrF,SAAS,2CAA2C,CAChD,QAAwB,EACxB,oBAA0C;IAE1C,OAAO,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC;SAC3C,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE;QACnB,OAAO,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;IACvF,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;QAChB,OAAO,UAAU,CAAC,IAAI,CAAC;IAC3B,CAAC,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,MAAsB;IAChE,MAAM,KAAK,GAAG,mBAAmB,EAAiC,CAAC;IAEnE,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrC,MAAM,oBAAoB,GAAG,2CAA2C,CAAC,QAAQ,EAAE,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAEhH,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,cAAc,EAAE;YACnD,eAAe,EAAE,QAAQ,CAAC,eAAe;YACzC,oBAAoB;YACpB,OAAO,EAAE,QAAQ,CAAC,OAAO;SAC5B,CAAC,CAAC;IACP,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrC,KAAK,MAAM,gBAAgB,IAAI,QAAQ,CAAC,kBAAkB,EAAE,CAAC;YACzD,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,eAAe,CAAC,cAAc,EAAE,EAAE,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC;gBAChG,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,eAAe,CAAC,cAAc,EAAE,EAAE,EAAE,gBAAgB,EAAE,CAAC,CAAC;YAC3F,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { resolveSourceFileForLiteral } from "../../dependency-scanner/source-file-references.js";
|
|
3
|
+
import { getSourcePathFromSourceFile } from "../../dependency-scanner/typescript-project-analyzer.js";
|
|
4
|
+
function useBasenameFromSource(sourceFile, targetFile) {
|
|
5
|
+
const basename = path.basename(sourceFile);
|
|
6
|
+
const dirname = path.dirname(targetFile);
|
|
7
|
+
return path.join(dirname, basename);
|
|
8
|
+
}
|
|
9
|
+
function applyImportPathReplacements(sourceFile, replacements) {
|
|
10
|
+
for (const literal of sourceFile.getImportStringLiterals()) {
|
|
11
|
+
const resolvedSourceFile = resolveSourceFileForLiteral(literal, sourceFile);
|
|
12
|
+
if (resolvedSourceFile !== undefined) {
|
|
13
|
+
const replacement = replacements.get(getSourcePathFromSourceFile(resolvedSourceFile));
|
|
14
|
+
if (replacement !== undefined) {
|
|
15
|
+
if (resolvedSourceFile.isDeclarationFile()) {
|
|
16
|
+
literal.setLiteralValue(useBasenameFromSource(literal.getLiteralValue(), replacement));
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
literal.setLiteralValue(replacement);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
export function replaceImportPaths(project, sourceFilePath, sourceContent, replacements) {
|
|
26
|
+
if (project === undefined) {
|
|
27
|
+
return sourceContent;
|
|
28
|
+
}
|
|
29
|
+
const sourceFile = project.getSourceFile(sourceFilePath);
|
|
30
|
+
if (sourceFile === undefined) {
|
|
31
|
+
return sourceContent;
|
|
32
|
+
}
|
|
33
|
+
applyImportPathReplacements(sourceFile, replacements);
|
|
34
|
+
return sourceFile.getFullText();
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=import-paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import-paths.js","sourceRoot":"","sources":["../../../../../source/linker/source-modifier/import-paths.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,2BAA2B,EAAE,MAAM,oDAAoD,CAAC;AACjG,OAAO,EAAE,2BAA2B,EAAE,MAAM,yDAAyD,CAAC;AAEtG,SAAS,qBAAqB,CAAC,UAAkB,EAAE,UAAkB;IACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACzC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACxC,CAAC;AAID,SAAS,2BAA2B,CAAC,UAAsB,EAAE,YAA0B;IACnF,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,uBAAuB,EAAE,EAAE,CAAC;QACzD,MAAM,kBAAkB,GAAG,2BAA2B,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC5E,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,2BAA2B,CAAC,kBAAkB,CAAC,CAAC,CAAC;YACtF,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC5B,IAAI,kBAAkB,CAAC,iBAAiB,EAAE,EAAE,CAAC;oBACzC,OAAO,CAAC,eAAe,CAAC,qBAAqB,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;gBAC3F,CAAC;qBAAM,CAAC;oBACJ,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;gBACzC,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;AACL,CAAC;AAED,MAAM,UAAU,kBAAkB,CAC9B,OAA4B,EAC5B,cAAsB,EACtB,aAAqB,EACrB,YAA0B;IAE1B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,aAAa,CAAC;IACzB,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;IACzD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,aAAa,CAAC;IACzB,CAAC;IACD,2BAA2B,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACtD,OAAO,UAAU,CAAC,WAAW,EAAE,CAAC;AACpC,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { Maybe } from 'true-myth';
|
|
2
|
+
import { createSubstitutedResourceGraph } from "./substituted-resource-graph.js";
|
|
3
|
+
import { replaceImportPaths } from "./source-modifier/import-paths.js";
|
|
4
|
+
function findReplacement(file, bundleDependencies) {
|
|
5
|
+
for (const bundle of bundleDependencies) {
|
|
6
|
+
const matchingContent = bundle.contents.find((content) => {
|
|
7
|
+
return content.fileDescription.sourceFilePath === file;
|
|
8
|
+
});
|
|
9
|
+
if (matchingContent !== undefined) {
|
|
10
|
+
const targetPath = `${bundle.name}/${matchingContent.fileDescription.targetFilePath}`;
|
|
11
|
+
return Maybe.just({
|
|
12
|
+
targetPath,
|
|
13
|
+
packageName: bundle.name
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return Maybe.nothing();
|
|
18
|
+
}
|
|
19
|
+
function findAllPathReplacements(files, bundleDependencies) {
|
|
20
|
+
const allReplacements = new Map();
|
|
21
|
+
const usedBundleDependencies = [];
|
|
22
|
+
for (const file of files) {
|
|
23
|
+
const result = findReplacement(file, bundleDependencies);
|
|
24
|
+
if (result.isJust) {
|
|
25
|
+
const { targetPath, packageName } = result.value;
|
|
26
|
+
allReplacements.set(file, targetPath);
|
|
27
|
+
usedBundleDependencies.push(packageName);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return { importPathReplacements: allReplacements, bundleDependencies: usedBundleDependencies };
|
|
31
|
+
}
|
|
32
|
+
export function substituteDependencies(resourceGraph, bundleDependencies) {
|
|
33
|
+
const substitutedGraph = createSubstitutedResourceGraph();
|
|
34
|
+
const outstandingConnections = [];
|
|
35
|
+
resourceGraph.traverse((node) => {
|
|
36
|
+
if (!substitutedGraph.isKnown(node.id)) {
|
|
37
|
+
const directDependencies = Array.from(node.adjacentNodeIds);
|
|
38
|
+
const replacements = findAllPathReplacements(directDependencies, bundleDependencies);
|
|
39
|
+
for (const file of directDependencies) {
|
|
40
|
+
if (!replacements.importPathReplacements.has(file)) {
|
|
41
|
+
outstandingConnections.push({ from: node.id, to: file });
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (replacements.importPathReplacements.size > 0) {
|
|
45
|
+
const substitutionContent = replaceImportPaths(node.data.project, node.data.fileDescription.sourceFilePath, node.data.fileDescription.content, replacements.importPathReplacements);
|
|
46
|
+
substitutedGraph.add(node.id, {
|
|
47
|
+
fileDescription: {
|
|
48
|
+
sourceFilePath: node.data.fileDescription.sourceFilePath,
|
|
49
|
+
targetFilePath: node.data.fileDescription.targetFilePath,
|
|
50
|
+
isExecutable: node.data.fileDescription.isExecutable,
|
|
51
|
+
content: substitutionContent
|
|
52
|
+
},
|
|
53
|
+
externalDependencies: node.data.externalDependencies,
|
|
54
|
+
bundleDependencies: replacements.bundleDependencies,
|
|
55
|
+
isSubstituted: true
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
substitutedGraph.add(node.id, {
|
|
60
|
+
fileDescription: node.data.fileDescription,
|
|
61
|
+
externalDependencies: node.data.externalDependencies,
|
|
62
|
+
bundleDependencies: [],
|
|
63
|
+
isSubstituted: false
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
for (const connection of outstandingConnections) {
|
|
69
|
+
if (!substitutedGraph.hasConnection(connection.from, connection.to)) {
|
|
70
|
+
substitutedGraph.connect(connection.from, connection.to);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return substitutedGraph;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=substitute-bundles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"substitute-bundles.js","sourceRoot":"","sources":["../../../../source/linker/substitute-bundles.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { createDirectedGraph } from "../directed-graph/graph.js";
|
|
2
|
+
import { uniqueList } from "../list/unique-list.js";
|
|
3
|
+
function addOrCreateReference(externalDependencyName, reference, externalDependency) {
|
|
4
|
+
if (externalDependency === undefined) {
|
|
5
|
+
return {
|
|
6
|
+
name: externalDependencyName,
|
|
7
|
+
referencedFrom: [reference]
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
return {
|
|
11
|
+
name: externalDependencyName,
|
|
12
|
+
referencedFrom: uniqueList([...externalDependency.referencedFrom, reference])
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export function createSubstitutedResourceGraph() {
|
|
16
|
+
const graph = createDirectedGraph();
|
|
17
|
+
return {
|
|
18
|
+
add(filePath, data) {
|
|
19
|
+
graph.addNode(filePath, data);
|
|
20
|
+
},
|
|
21
|
+
isKnown: graph.hasNode,
|
|
22
|
+
connect(fromFilePath, toFilePath) {
|
|
23
|
+
graph.connect({ from: fromFilePath, to: toFilePath });
|
|
24
|
+
},
|
|
25
|
+
hasConnection(fromFilePath, toFilePath) {
|
|
26
|
+
return graph.hasConnection({ from: fromFilePath, to: toFilePath });
|
|
27
|
+
},
|
|
28
|
+
flatten(entryPoints) {
|
|
29
|
+
const contents = [];
|
|
30
|
+
const linkedBundleDependencies = new Map();
|
|
31
|
+
const externalDependencies = new Map();
|
|
32
|
+
for (const entryPoint of entryPoints) {
|
|
33
|
+
graph.visitBreadthFirstSearch(entryPoint, (node) => {
|
|
34
|
+
contents.push({
|
|
35
|
+
fileDescription: node.data.fileDescription,
|
|
36
|
+
directDependencies: node.adjacentNodeIds,
|
|
37
|
+
isSubstituted: node.data.isSubstituted
|
|
38
|
+
});
|
|
39
|
+
for (const bundleDependencyName of node.data.bundleDependencies) {
|
|
40
|
+
const bundleDependency = linkedBundleDependencies.get(bundleDependencyName);
|
|
41
|
+
linkedBundleDependencies.set(bundleDependencyName, addOrCreateReference(bundleDependencyName, node.id, bundleDependency));
|
|
42
|
+
}
|
|
43
|
+
for (const externalDependencyName of node.data.externalDependencies) {
|
|
44
|
+
const externalDependency = externalDependencies.get(externalDependencyName);
|
|
45
|
+
externalDependencies.set(externalDependencyName, addOrCreateReference(externalDependencyName, node.id, externalDependency));
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
contents,
|
|
51
|
+
linkedBundleDependencies,
|
|
52
|
+
externalDependencies
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=substituted-resource-graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"substituted-resource-graph.js","sourceRoot":"","sources":["../../../../source/linker/substituted-resource-graph.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAiBpD,SAAS,oBAAoB,CACzB,sBAA8B,EAC9B,SAAiB,EACjB,kBAAuC;IAEvC,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO;YACH,IAAI,EAAE,sBAAsB;YAC5B,cAAc,EAAE,CAAC,SAAS,CAAC;SAC9B,CAAC;IACN,CAAC;IAED,OAAO;QACH,IAAI,EAAE,sBAAsB;QAC5B,cAAc,EAAE,UAAU,CAAC,CAAC,GAAG,kBAAkB,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;KAChF,CAAC;AACN,CAAC;AAED,MAAM,UAAU,8BAA8B;IAC1C,MAAM,KAAK,GAAG,mBAAmB,EAA4C,CAAC;IAE9E,OAAO;QACH,GAAG,CAAC,QAAQ,EAAE,IAAI;YACd,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,EAAE,KAAK,CAAC,OAAO;QAEtB,OAAO,CAAC,YAAY,EAAE,UAAU;YAC5B,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;QAC1D,CAAC;QAED,aAAa,CAAC,YAAY,EAAE,UAAU;YAClC,OAAO,KAAK,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,OAAO,CAAC,WAAW;YACf,MAAM,QAAQ,GAA2B,EAAE,CAAC;YAC5C,MAAM,wBAAwB,GAAG,IAAI,GAAG,EAA8B,CAAC;YACvE,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAA8B,CAAC;YAEnE,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;gBACnC,KAAK,CAAC,uBAAuB,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE;oBAC/C,QAAQ,CAAC,IAAI,CAAC;wBACV,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe;wBAC1C,kBAAkB,EAAE,IAAI,CAAC,eAAe;wBACxC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa;qBACzC,CAAC,CAAC;oBAEH,KAAK,MAAM,oBAAoB,IAAI,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;wBAC9D,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;wBAC5E,wBAAwB,CAAC,GAAG,CACxB,oBAAoB,EACpB,oBAAoB,CAAC,oBAAoB,EAAE,IAAI,CAAC,EAAE,EAAE,gBAAgB,CAAC,CACxE,CAAC;oBACN,CAAC;oBACD,KAAK,MAAM,sBAAsB,IAAI,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;wBAClE,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;wBAC5E,oBAAoB,CAAC,GAAG,CACpB,sBAAsB,EACtB,oBAAoB,CAAC,sBAAsB,EAAE,IAAI,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAC5E,CAAC;oBACN,CAAC;gBACL,CAAC,CAAC,CAAC;YACP,CAAC;YAED,OAAO;gBACH,QAAQ;gBACR,wBAAwB;gBACxB,oBAAoB;aACvB,CAAC;QACN,CAAC;KACJ,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unique-list.js","sourceRoot":"","sources":["../../../../source/list/unique-list.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAwC,MAAY;IAC1E,0FAA0F;IAC1F,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAoB,CAAC;AAC1D,CAAC"}
|
package/package.json
CHANGED
|
@@ -4,25 +4,27 @@
|
|
|
4
4
|
"Christian Rackerseder <github@echooff.de>"
|
|
5
5
|
],
|
|
6
6
|
"dependencies": {
|
|
7
|
-
"@
|
|
8
|
-
"@ts-morph/common": "0.
|
|
9
|
-
"@types/libnpmpublish": "
|
|
10
|
-
"@types/npm-registry-fetch": "8.0.
|
|
7
|
+
"@schema-hub/zod-error-formatter": "0.0.10",
|
|
8
|
+
"@ts-morph/common": "0.28.0",
|
|
9
|
+
"@types/libnpmpublish": "9.0.1",
|
|
10
|
+
"@types/npm-registry-fetch": "8.0.8",
|
|
11
|
+
"common-tags": "1.8.2",
|
|
11
12
|
"effect": "2.2.5",
|
|
12
|
-
"libnpmpublish": "
|
|
13
|
+
"libnpmpublish": "11.1.1",
|
|
13
14
|
"mitt": "3.0.1",
|
|
14
|
-
"npm-registry-fetch": "
|
|
15
|
-
"semver": "7.
|
|
16
|
-
"ssri": "
|
|
15
|
+
"npm-registry-fetch": "19.0.0",
|
|
16
|
+
"semver": "7.7.2",
|
|
17
|
+
"ssri": "12.0.0",
|
|
17
18
|
"tar-stream": "3.1.7",
|
|
18
|
-
"true-myth": "
|
|
19
|
-
"ts-morph": "
|
|
20
|
-
"type-fest": "
|
|
21
|
-
"unix-permissions": "6.0.
|
|
19
|
+
"true-myth": "8.6.0",
|
|
20
|
+
"ts-morph": "27.0.0",
|
|
21
|
+
"type-fest": "5.0.1",
|
|
22
|
+
"unix-permissions": "6.0.1",
|
|
23
|
+
"zod": "4.1.11"
|
|
22
24
|
},
|
|
23
25
|
"description": "Enable customized npm package bundling and publishing using packtory’s versatile API.",
|
|
24
26
|
"engines": {
|
|
25
|
-
"node": "^
|
|
27
|
+
"node": "^22 || ^24"
|
|
26
28
|
},
|
|
27
29
|
"keywords": [
|
|
28
30
|
"bundler",
|
|
@@ -45,5 +47,5 @@
|
|
|
45
47
|
},
|
|
46
48
|
"type": "module",
|
|
47
49
|
"types": "packages/packtory/packtory.entry-point.d.ts",
|
|
48
|
-
"version": "0.0.
|
|
50
|
+
"version": "0.0.6"
|
|
49
51
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export declare const buildAndPublishAll: (config: unknown, options: {
|
|
1
|
+
export declare const buildAndPublishAll: (config: import("../../config/config.js").PacktoryConfig | unknown, options: {
|
|
2
2
|
readonly dryRun: boolean;
|
|
3
|
-
}) => Promise<import("../../packtory/packtory.js").
|
|
4
|
-
export declare const progressBroadcastConsumer: import("../../progress/progress-broadcaster.
|
|
3
|
+
}) => Promise<import("../../packtory/packtory.ts").PublishAllResult>, resolveAndLinkAll: (config: import("../../config/config.js").PacktoryConfigWithoutRegistry | unknown) => Promise<import("../../packtory/packtory.ts").ResolveAndLinkAllResult>;
|
|
4
|
+
export declare const progressBroadcastConsumer: import("../../progress/progress-broadcaster.ts").ProgressBroadcastConsumer;
|
|
5
5
|
export type { PacktoryConfig } from '../../config/config.js';
|
|
6
|
-
export type { PublishAllResult } from '../../packtory/packtory.js';
|
|
6
|
+
export type { PublishAllResult, ResolveAndLinkAllResult, ResolveAndLinkFailure, ResolvedPackage } from '../../packtory/packtory.js';
|
|
7
7
|
//# sourceMappingURL=packtory.entry-point.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packtory.entry-point.d.ts","sourceRoot":"","sources":["../../../../../source/packages/packtory/packtory.entry-point.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"packtory.entry-point.d.ts","sourceRoot":"","sources":["../../../../../source/packages/packtory/packtory.entry-point.ts"],"names":[],"mappings":"AA2DA,eAAO,MAAQ,kBAAkB;;sEAAE,iBAAiB,6JAAa,CAAC;AAClE,eAAO,MAAM,yBAAyB,4EAA+B,CAAC;AAEtE,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,YAAY,EACR,gBAAgB,EAChB,uBAAuB,EACvB,qBAAqB,EACrB,eAAe,EAClB,MAAM,4BAA4B,CAAC"}
|