@git.zone/tsbundle 2.11.4 → 2.12.0

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.
Files changed (37) hide show
  1. package/dist_ts/00_commitinfo_data.js +1 -1
  2. package/dist_ts/interfaces/index.d.ts +1 -0
  3. package/dist_ts/mod_custom/index.d.ts +10 -3
  4. package/dist_ts/mod_custom/index.js +277 -86
  5. package/dist_ts/mod_esbuild/index.child.d.ts +4 -8
  6. package/dist_ts/mod_esbuild/index.child.js +51 -44
  7. package/dist_ts/mod_esbuild/plugins.d.ts +5 -2
  8. package/dist_ts/mod_esbuild/plugins.js +5 -3
  9. package/dist_ts/mod_esbuild/workerplugin.d.ts +12 -0
  10. package/dist_ts/mod_esbuild/workerplugin.js +254 -0
  11. package/dist_ts/mod_output/artifactpublisher.d.ts +43 -0
  12. package/dist_ts/mod_output/artifactpublisher.js +925 -0
  13. package/dist_ts/mod_output/index.d.ts +1 -0
  14. package/dist_ts/mod_output/index.js +11 -3
  15. package/dist_ts/mod_rolldown/index.child.d.ts +4 -2
  16. package/dist_ts/mod_rolldown/index.child.js +47 -36
  17. package/dist_ts/mod_rspack/index.child.d.ts +4 -2
  18. package/dist_ts/mod_rspack/index.child.js +73 -115
  19. package/dist_ts/plugins.d.ts +3 -1
  20. package/dist_ts/plugins.js +4 -2
  21. package/dist_ts/tsbundle.class.tsbundle.js +98 -16
  22. package/package.json +7 -5
  23. package/readme.hints.md +20 -4
  24. package/readme.md +23 -6
  25. package/third-party-notices.md +29 -0
  26. package/ts/00_commitinfo_data.ts +1 -1
  27. package/ts/interfaces/index.ts +1 -0
  28. package/ts/mod_custom/index.ts +347 -96
  29. package/ts/mod_esbuild/index.child.ts +78 -47
  30. package/ts/mod_esbuild/plugins.ts +9 -2
  31. package/ts/mod_esbuild/workerplugin.ts +328 -0
  32. package/ts/mod_output/artifactpublisher.ts +1185 -0
  33. package/ts/mod_output/index.ts +10 -2
  34. package/ts/mod_rolldown/index.child.ts +65 -42
  35. package/ts/mod_rspack/index.child.ts +95 -127
  36. package/ts/plugins.ts +3 -1
  37. package/ts/tsbundle.class.tsbundle.ts +102 -14
@@ -1,12 +1,8 @@
1
+ import * as interfaces from '../interfaces/index.js';
1
2
  export declare class TsBundleProcess {
2
3
  constructor();
3
4
  getAliases(): Promise<Record<string, string>>;
4
- /**
5
- * creates a bundle for the test enviroment
6
- */
7
- buildTest(fromArg: string, toArg: string, argvArg: any): Promise<void>;
8
- /**
9
- * creates a bundle for the production environment
10
- */
11
- buildProduction(fromArg: string, toArg: string, argvArg: any): Promise<void>;
5
+ private build;
6
+ buildTest(fromArg: string, toArg: string, argvArg: interfaces.ICliOptions): Promise<void>;
7
+ buildProduction(fromArg: string, toArg: string, argvArg: interfaces.ICliOptions): Promise<void>;
12
8
  }
@@ -2,6 +2,8 @@ import * as plugins from './plugins.js';
2
2
  import * as paths from '../paths.js';
3
3
  import * as interfaces from '../interfaces/index.js';
4
4
  import { logger } from '../tsbundle.logging.js';
5
+ import { workerPlugin } from './workerplugin.js';
6
+ import { cleanupBuildStage, createBuildStage, getChunkNamespace, publishGeneratedArtifacts, } from '../mod_output/artifactpublisher.js';
5
7
  export class TsBundleProcess {
6
8
  constructor() {
7
9
  // Nothing here
@@ -24,54 +26,56 @@ export class TsBundleProcess {
24
26
  }
25
27
  return aliasObject;
26
28
  }
27
- catch (error) {
29
+ catch {
28
30
  return {};
29
31
  }
30
32
  }
31
- /**
32
- * creates a bundle for the test enviroment
33
- */
33
+ async build(fromArg, toArg, argvArg, productionArg) {
34
+ const logicalOutputName = plugins.path.basename(argvArg.chunkOwner || toArg);
35
+ const chunkNamespace = getChunkNamespace(logicalOutputName);
36
+ const outputDirectory = plugins.path.dirname(toArg);
37
+ const stage = createBuildStage(outputDirectory);
38
+ const stageMainPath = plugins.path.join(stage.stageDirectory, plugins.path.basename(toArg));
39
+ try {
40
+ await plugins.esbuild.build({
41
+ absWorkingDir: process.cwd(),
42
+ entryPoints: [fromArg],
43
+ bundle: true,
44
+ sourcemap: argvArg.sourcemap !== false,
45
+ format: 'esm',
46
+ target: 'es2022',
47
+ minify: productionArg,
48
+ keepNames: true,
49
+ entryNames: plugins.path.parse(toArg).name,
50
+ outdir: stage.stageDirectory,
51
+ tsconfig: paths.tsconfigPath,
52
+ splitting: false,
53
+ treeShaking: false,
54
+ chunkNames: `chunks/${chunkNamespace}/[name]-[hash]`,
55
+ alias: await this.getAliases(),
56
+ plugins: [workerPlugin()],
57
+ });
58
+ await publishGeneratedArtifacts({
59
+ sourceDirectory: stage.stageDirectory,
60
+ sourceMainPath: stageMainPath,
61
+ targetPath: toArg,
62
+ logicalOutputName,
63
+ chunkNamespace,
64
+ sourceMapsEnabled: argvArg.sourcemap !== false,
65
+ });
66
+ }
67
+ finally {
68
+ cleanupBuildStage(stage.stageDirectory, outputDirectory, stage.marker);
69
+ }
70
+ }
34
71
  async buildTest(fromArg, toArg, argvArg) {
35
- // create a bundle
36
- const esbuild = await plugins.esbuild.build({
37
- entryPoints: [fromArg],
38
- bundle: true,
39
- sourcemap: argvArg.sourcemap !== false,
40
- format: 'esm',
41
- target: 'es2022',
42
- keepNames: true,
43
- entryNames: plugins.path.parse(toArg).name,
44
- outdir: plugins.path.parse(toArg).dir,
45
- splitting: false,
46
- treeShaking: false,
47
- tsconfig: paths.tsconfigPath,
48
- alias: await this.getAliases(),
49
- });
72
+ await this.build(fromArg, toArg, argvArg, false);
50
73
  }
51
- /**
52
- * creates a bundle for the production environment
53
- */
54
74
  async buildProduction(fromArg, toArg, argvArg) {
55
- // create a bundle
56
75
  console.log('esbuild specific:');
57
76
  console.log(`from: ${fromArg}`);
58
77
  console.log(`to: ${toArg}`);
59
- const esbuild = await plugins.esbuild.build({
60
- entryPoints: [fromArg],
61
- bundle: true,
62
- sourcemap: argvArg.sourcemap !== false,
63
- format: 'esm',
64
- target: 'es2022',
65
- minify: true,
66
- keepNames: true,
67
- entryNames: plugins.path.parse(toArg).name,
68
- outdir: plugins.path.parse(toArg).dir,
69
- tsconfig: paths.tsconfigPath,
70
- splitting: false,
71
- treeShaking: false,
72
- chunkNames: 'chunks/[name]-[hash]',
73
- alias: await this.getAliases(),
74
- });
78
+ await this.build(fromArg, toArg, argvArg, true);
75
79
  }
76
80
  }
77
81
  const run = async () => {
@@ -101,10 +105,13 @@ const run = async () => {
101
105
  console.error('\n\x1b[31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m');
102
106
  console.error('\x1b[31m❌ BUILD FAILED\x1b[0m');
103
107
  console.error('\x1b[31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m\n');
104
- if (error.errors && Array.isArray(error.errors)) {
108
+ const errorData = typeof error === 'object' && error !== null
109
+ ? error
110
+ : undefined;
111
+ if (Array.isArray(errorData?.errors)) {
105
112
  // esbuild errors - format them nicely
106
- console.error(`Found ${error.errors.length} error(s):\n`);
107
- for (const err of error.errors) {
113
+ console.error(`Found ${errorData.errors.length} error(s):\n`);
114
+ for (const err of errorData.errors) {
108
115
  const file = err.location?.file || 'unknown';
109
116
  const line = err.location?.line || '?';
110
117
  const column = err.location?.column || '?';
@@ -113,11 +120,11 @@ const run = async () => {
113
120
  }
114
121
  }
115
122
  else {
116
- console.error(error.message || error);
123
+ console.error(errorData?.message || error);
117
124
  }
118
125
  console.error('\x1b[31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m\n');
119
126
  process.exit(1);
120
127
  }
121
128
  };
122
129
  run();
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY2hpbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2RfZXNidWlsZC9pbmRleC5jaGlsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEtBQUssS0FBSyxNQUFNLGFBQWEsQ0FBQztBQUNyQyxPQUFPLEtBQUssVUFBVSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVoRCxNQUFNLE9BQU8sZUFBZTtJQUMxQjtRQUNFLGVBQWU7SUFDakIsQ0FBQztJQUVNLEtBQUssQ0FBQyxVQUFVO1FBQ3JCLElBQUksQ0FBQztZQUNILE1BQU0sV0FBVyxHQUEyQixFQUFFLENBQUM7WUFDL0MsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxlQUFlLENBQUMsQ0FBQztZQUNuRSxNQUFNLGVBQWUsR0FBRyxNQUFNLE9BQU8sQ0FBQyxFQUFFO2lCQUNyQyxJQUFJLENBQUMsWUFBWSxDQUFDO2lCQUNsQixRQUFRLENBQUMsTUFBTSxDQUFDO2lCQUNoQixJQUFJLEVBQUUsQ0FBQztZQUNWLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBeUIsQ0FBQyxDQUFDO1lBQzVELElBQ0UsYUFBYSxDQUFDLGVBQWU7Z0JBQzdCLGFBQWEsQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUNuQyxDQUFDO2dCQUNELEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQ3JFLE1BQU0sU0FBUyxHQUFHLGFBQWEsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNoRSxXQUFX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
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY2hpbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2RfZXNidWlsZC9pbmRleC5jaGlsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEtBQUssS0FBSyxNQUFNLGFBQWEsQ0FBQztBQUNyQyxPQUFPLEtBQUssVUFBVSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLHlCQUF5QixHQUMxQixNQUFNLG9DQUFvQyxDQUFDO0FBRTVDLE1BQU0sT0FBTyxlQUFlO0lBQzFCO1FBQ0UsZUFBZTtJQUNqQixDQUFDO0lBRU0sS0FBSyxDQUFDLFVBQVU7UUFDckIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxXQUFXLEdBQTJCLEVBQUUsQ0FBQztZQUMvQyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1lBQ25FLE1BQU0sZUFBZSxHQUFHLE1BQU0sT0FBTyxDQUFDLEVBQUU7aUJBQ3JDLElBQUksQ0FBQyxZQUFZLENBQUM7aUJBQ2xCLFFBQVEsQ0FBQyxNQUFNLENBQUM7aUJBQ2hCLElBQUksRUFBRSxDQUFDO1lBQ1YsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUF5QixDQUFDLENBQUM7WUFDNUQsSUFDRSxhQUFhLENBQUMsZUFBZTtnQkFDN0IsYUFBYSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQ25DLENBQUM7Z0JBQ0QsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEs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
@@ -1,3 +1,6 @@
1
1
  export * from '../plugins.js';
2
- import esbuild from 'esbuild';
3
- export { esbuild };
2
+ import esbuild, { type BuildOptions, type Loader, type Plugin } from 'esbuild';
3
+ import MagicString from 'magic-string';
4
+ import ts from 'typescript';
5
+ export { esbuild, MagicString, ts };
6
+ export type { BuildOptions, Loader, Plugin };
@@ -1,4 +1,6 @@
1
1
  export * from '../plugins.js';
2
- import esbuild from 'esbuild';
3
- export { esbuild };
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL21vZF9lc2J1aWxkL3BsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFFOUIsT0FBTyxPQUFPLE1BQU0sU0FBUyxDQUFDO0FBRTlCLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyJ9
2
+ import esbuild, {} from 'esbuild';
3
+ import MagicString from 'magic-string';
4
+ import ts from 'typescript';
5
+ export { esbuild, MagicString, ts };
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL21vZF9lc2J1aWxkL3BsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFFOUIsT0FBTyxPQUFPLEVBQUUsRUFJZixNQUFNLFNBQVMsQ0FBQztBQUNqQixPQUFPLFdBQVcsTUFBTSxjQUFjLENBQUM7QUFDdkMsT0FBTyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTVCLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxDQUFDIn0=
@@ -0,0 +1,12 @@
1
+ import * as plugins from './plugins.js';
2
+ interface IWorkerPluginOptions {
3
+ constructors?: string[];
4
+ }
5
+ interface IWorkerBuildState {
6
+ dependencyGraph: Map<string, Set<string>>;
7
+ emittedWorkers: Map<string, Promise<string>>;
8
+ parentKey: string;
9
+ parentOutputDirectory: string;
10
+ }
11
+ export declare const workerPlugin: ({ constructors, }?: IWorkerPluginOptions, stateArg?: IWorkerBuildState) => plugins.Plugin;
12
+ export {};
@@ -0,0 +1,254 @@
1
+ /*
2
+ * Derived from @chialab/esbuild-plugin-worker 0.19.2.
3
+ * Copyright (c) 2021 Chialab. Licensed under the MIT License.
4
+ * See third-party-notices.md in the published package.
5
+ */
6
+ import * as plugins from './plugins.js';
7
+ const rootWorkerKey = 'tsbundle:main';
8
+ const hasDependencyPath = (graphArg, fromKeyArg, targetKeyArg, visitedArg = new Set()) => {
9
+ if (fromKeyArg === targetKeyArg) {
10
+ return true;
11
+ }
12
+ if (visitedArg.has(fromKeyArg)) {
13
+ return false;
14
+ }
15
+ visitedArg.add(fromKeyArg);
16
+ for (const dependencyKey of graphArg.get(fromKeyArg) || []) {
17
+ if (hasDependencyPath(graphArg, dependencyKey, targetKeyArg, visitedArg)) {
18
+ return true;
19
+ }
20
+ }
21
+ return false;
22
+ };
23
+ const addWorkerDependency = (graphArg, parentKeyArg, childKeyArg) => {
24
+ if (hasDependencyPath(graphArg, childKeyArg, parentKeyArg)) {
25
+ throw new Error(`Cyclic module-worker dependency detected: ${parentKeyArg} -> ${childKeyArg}`);
26
+ }
27
+ const dependencies = graphArg.get(parentKeyArg) || new Set();
28
+ dependencies.add(childKeyArg);
29
+ graphArg.set(parentKeyArg, dependencies);
30
+ };
31
+ const getLoader = (filePathArg) => {
32
+ switch (plugins.path.extname(filePathArg)) {
33
+ case '.tsx':
34
+ return 'tsx';
35
+ case '.jsx':
36
+ return 'jsx';
37
+ case '.ts':
38
+ case '.mts':
39
+ case '.cts':
40
+ return 'ts';
41
+ default:
42
+ return 'js';
43
+ }
44
+ };
45
+ const getScriptKind = (filePathArg) => {
46
+ switch (plugins.path.extname(filePathArg)) {
47
+ case '.tsx':
48
+ return plugins.ts.ScriptKind.TSX;
49
+ case '.jsx':
50
+ return plugins.ts.ScriptKind.JSX;
51
+ case '.ts':
52
+ case '.mts':
53
+ case '.cts':
54
+ return plugins.ts.ScriptKind.TS;
55
+ default:
56
+ return plugins.ts.ScriptKind.JS;
57
+ }
58
+ };
59
+ const isImportMetaUrl = (nodeArg) => {
60
+ return plugins.ts.isPropertyAccessExpression(nodeArg)
61
+ && nodeArg.name.text === 'url'
62
+ && plugins.ts.isMetaProperty(nodeArg.expression)
63
+ && nodeArg.expression.keywordToken === plugins.ts.SyntaxKind.ImportKeyword
64
+ && nodeArg.expression.name.text === 'meta';
65
+ };
66
+ const getWorkerConstructorName = (nodeArg) => {
67
+ if (plugins.ts.isIdentifier(nodeArg)) {
68
+ return nodeArg.text;
69
+ }
70
+ if (plugins.ts.isPropertyAccessExpression(nodeArg)
71
+ && plugins.ts.isIdentifier(nodeArg.expression)
72
+ && ['window', 'globalThis', 'self', 'global'].includes(nodeArg.expression.text)) {
73
+ return nodeArg.name.text;
74
+ }
75
+ return undefined;
76
+ };
77
+ const isModuleWorker = (optionsArg) => {
78
+ if (!optionsArg || !plugins.ts.isObjectLiteralExpression(optionsArg)) {
79
+ return false;
80
+ }
81
+ return optionsArg.properties.some((property) => (plugins.ts.isPropertyAssignment(property)
82
+ && property.name.getText() === 'type'
83
+ && plugins.ts.isStringLiteral(property.initializer)
84
+ && property.initializer.text === 'module'));
85
+ };
86
+ export const workerPlugin = ({ constructors = ['Worker', 'SharedWorker'], } = {}, stateArg) => {
87
+ const state = stateArg || {
88
+ dependencyGraph: new Map(),
89
+ emittedWorkers: new Map(),
90
+ parentKey: rootWorkerKey,
91
+ parentOutputDirectory: '',
92
+ };
93
+ const plugin = {
94
+ name: 'tsbundle-worker',
95
+ setup(pluginBuild) {
96
+ pluginBuild.onLoad({
97
+ filter: /\.[cm]?[jt]sx?$/,
98
+ namespace: 'file',
99
+ }, async (args) => {
100
+ const code = await plugins.fsPromises.readFile(args.path, 'utf8');
101
+ if (!constructors.some((constructorName) => code.includes(`new ${constructorName}`))) {
102
+ return undefined;
103
+ }
104
+ const sourceFile = plugins.ts.createSourceFile(args.path, code, plugins.ts.ScriptTarget.Latest, true, getScriptKind(args.path));
105
+ const localClasses = new Set();
106
+ const symbols = new Map();
107
+ const references = [];
108
+ const collectDeclarations = (node) => {
109
+ if (plugins.ts.isClassDeclaration(node) && node.name) {
110
+ localClasses.add(node.name.text);
111
+ }
112
+ else if (plugins.ts.isVariableDeclaration(node)
113
+ && plugins.ts.isIdentifier(node.name)
114
+ && node.initializer
115
+ && plugins.ts.isStringLiteral(node.initializer)) {
116
+ symbols.set(node.name.text, node.initializer.text);
117
+ }
118
+ plugins.ts.forEachChild(node, collectDeclarations);
119
+ };
120
+ collectDeclarations(sourceFile);
121
+ const collectReferences = (node) => {
122
+ if (plugins.ts.isNewExpression(node)) {
123
+ const constructorName = getWorkerConstructorName(node.expression);
124
+ const argument = node.arguments?.[0];
125
+ if (constructorName
126
+ && constructors.includes(constructorName)
127
+ && !localClasses.has(constructorName)
128
+ && argument
129
+ && plugins.ts.isNewExpression(argument)
130
+ && plugins.ts.isIdentifier(argument.expression)
131
+ && argument.expression.text === 'URL'
132
+ && argument.arguments?.length === 2
133
+ && isImportMetaUrl(argument.arguments[1])) {
134
+ const reference = argument.arguments[0];
135
+ const value = plugins.ts.isStringLiteral(reference)
136
+ ? reference.text
137
+ : plugins.ts.isIdentifier(reference)
138
+ ? symbols.get(reference.text)
139
+ : undefined;
140
+ if (value) {
141
+ references.push({
142
+ argument,
143
+ module: isModuleWorker(node.arguments?.[1]),
144
+ value,
145
+ });
146
+ }
147
+ }
148
+ }
149
+ plugins.ts.forEachChild(node, collectReferences);
150
+ };
151
+ collectReferences(sourceFile);
152
+ if (references.length === 0) {
153
+ return undefined;
154
+ }
155
+ const outdir = pluginBuild.initialOptions.outdir;
156
+ const chunkNames = pluginBuild.initialOptions.chunkNames;
157
+ if (!outdir || !chunkNames) {
158
+ throw new Error('Module workers require esbuild outdir and chunkNames options.');
159
+ }
160
+ const workerEntryPattern = chunkNames.replace('[name]', 'worker');
161
+ const workerOutputDirectoryRaw = plugins.path.dirname(workerEntryPattern);
162
+ const workerOutputDirectory = workerOutputDirectoryRaw === '.'
163
+ ? ''
164
+ : workerOutputDirectoryRaw;
165
+ if (plugins.path.isAbsolute(workerOutputDirectory)
166
+ || workerOutputDirectory === '..'
167
+ || workerOutputDirectory.startsWith(`..${plugins.path.sep}`)
168
+ || /\[[^\]]+\]/.test(workerOutputDirectory)) {
169
+ throw new Error(`Module-worker output directory must stay fixed within esbuild outdir: ${chunkNames}`);
170
+ }
171
+ const magicString = new plugins.MagicString(code);
172
+ const watchFiles = new Set([args.path]);
173
+ for (const reference of references) {
174
+ const resolved = await pluginBuild.resolve(reference.value, {
175
+ kind: 'dynamic-import',
176
+ importer: args.path,
177
+ namespace: 'file',
178
+ resolveDir: plugins.path.dirname(args.path),
179
+ });
180
+ if (resolved.external) {
181
+ continue;
182
+ }
183
+ if (!resolved.path) {
184
+ throw new Error(`Unable to resolve worker entry '${reference.value}' from ${args.path}.`);
185
+ }
186
+ watchFiles.add(resolved.path);
187
+ const canonicalWorkerPath = await plugins.fsPromises.realpath(resolved.path);
188
+ const cacheKey = `${reference.module ? 'module' : 'classic'}:${canonicalWorkerPath}`;
189
+ addWorkerDependency(state.dependencyGraph, state.parentKey, cacheKey);
190
+ let emittedWorkerPromise = state.emittedWorkers.get(cacheKey);
191
+ if (!emittedWorkerPromise) {
192
+ emittedWorkerPromise = (async () => {
193
+ const initialOptions = pluginBuild.initialOptions;
194
+ const workerResult = await plugins.esbuild.build({
195
+ ...initialOptions,
196
+ entryPoints: [resolved.path],
197
+ stdin: undefined,
198
+ outfile: undefined,
199
+ outdir,
200
+ entryNames: workerEntryPattern,
201
+ bundle: true,
202
+ format: reference.module ? 'esm' : 'iife',
203
+ platform: initialOptions.platform || 'browser',
204
+ splitting: false,
205
+ metafile: true,
206
+ write: true,
207
+ plugins: [workerPlugin({ constructors }, {
208
+ dependencyGraph: state.dependencyGraph,
209
+ emittedWorkers: state.emittedWorkers,
210
+ parentKey: cacheKey,
211
+ parentOutputDirectory: workerOutputDirectory,
212
+ })],
213
+ });
214
+ const outputEntry = Object.entries(workerResult.metafile.outputs).find(([, output]) => (!!output.entryPoint && !output.cssBundle));
215
+ if (!outputEntry) {
216
+ throw new Error(`Worker build produced no JavaScript output for ${resolved.path}.`);
217
+ }
218
+ const outputPath = plugins.path.isAbsolute(outputEntry[0])
219
+ ? outputEntry[0]
220
+ : plugins.path.resolve(initialOptions.absWorkingDir || process.cwd(), outputEntry[0]);
221
+ const relativeOutputPath = plugins.path.relative(outdir, outputPath);
222
+ if (relativeOutputPath === '..'
223
+ || relativeOutputPath.startsWith(`..${plugins.path.sep}`)
224
+ || plugins.path.isAbsolute(relativeOutputPath)) {
225
+ throw new Error(`Worker output escaped esbuild outdir: ${outputPath}`);
226
+ }
227
+ return relativeOutputPath;
228
+ })();
229
+ state.emittedWorkers.set(cacheKey, emittedWorkerPromise);
230
+ }
231
+ const emittedWorker = await emittedWorkerPromise;
232
+ const relativeWorkerPath = plugins.path.relative(state.parentOutputDirectory || '.', emittedWorker).split(plugins.path.sep).join('/');
233
+ const workerUrl = relativeWorkerPath.startsWith('.')
234
+ ? relativeWorkerPath
235
+ : `./${relativeWorkerPath}`;
236
+ magicString.overwrite(reference.argument.getStart(sourceFile), reference.argument.end, `new URL('${workerUrl}', import.meta.url).href`);
237
+ }
238
+ const sourceMap = magicString.generateMap({
239
+ source: plugins.path.basename(args.path),
240
+ includeContent: true,
241
+ hires: true,
242
+ });
243
+ return {
244
+ contents: `${magicString.toString()}\n//# sourceMappingURL=${sourceMap.toUrl()}`,
245
+ loader: getLoader(args.path),
246
+ resolveDir: plugins.path.dirname(args.path),
247
+ watchFiles: [...watchFiles],
248
+ };
249
+ });
250
+ },
251
+ };
252
+ return plugin;
253
+ };
254
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VycGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvbW9kX2VzYnVpbGQvd29ya2VycGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQW1CeEMsTUFBTSxhQUFhLEdBQUcsZUFBZSxDQUFDO0FBRXRDLE1BQU0saUJBQWlCLEdBQUcsQ0FDeEIsUUFBa0MsRUFDbEMsVUFBa0IsRUFDbEIsWUFBb0IsRUFDcEIsYUFBYSxJQUFJLEdBQUcsRUFBVSxFQUNyQixFQUFFO0lBQ1gsSUFBSSxVQUFVLEtBQUssWUFBWSxFQUFFLENBQUM7UUFDaEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFDL0IsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsVUFBVSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMzQixLQUFLLE1BQU0sYUFBYSxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7UUFDM0QsSUFBSSxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3pFLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQztBQUVGLE1BQU0sbUJBQW1CLEdBQUcsQ0FDMUIsUUFBa0MsRUFDbEMsWUFBb0IsRUFDcEIsV0FBbUIsRUFDYixFQUFFO0lBQ1IsSUFBSSxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUM7UUFDM0QsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsWUFBWSxPQUFPLFdBQVcsRUFBRSxD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
@@ -0,0 +1,43 @@
1
+ export declare const chunkManifestFile = ".tsbundle-artifacts.json";
2
+ export interface IProcessOwnership {
3
+ leaseManaged?: boolean;
4
+ processId: number;
5
+ processIdentity?: string;
6
+ }
7
+ interface IBuildStageMarker extends IProcessOwnership {
8
+ owner: string;
9
+ kind: string;
10
+ createdAt: string;
11
+ invocationId: string;
12
+ schemaVersion: 1;
13
+ }
14
+ export interface IAdditionalArtifact {
15
+ sourcePath: string;
16
+ targetPath: string;
17
+ }
18
+ interface IPublishGeneratedArtifactsOptions {
19
+ additionalArtifacts?: IAdditionalArtifact[];
20
+ chunkNamespace: string;
21
+ lockTargetPath?: string;
22
+ logicalOutputName: string;
23
+ sourceDirectory: string;
24
+ sourceMainPath: string;
25
+ sourceMapsEnabled: boolean;
26
+ targetPath: string;
27
+ }
28
+ export declare const getProcessIdentity: (processIdArg: number) => string | undefined;
29
+ export declare const createProcessOwnership: () => Required<IProcessOwnership>;
30
+ export declare const isProcessOwnershipActive: (ownershipArg: IProcessOwnership, markerPathArg: string, leaseTimeoutMsArg: number) => boolean;
31
+ export declare const startOwnershipHeartbeat: (markerPathArg: string) => (() => void);
32
+ export declare const withArtifactPublicationLock: <T>(targetPathArg: string, callbackArg: () => Promise<T>) => Promise<T>;
33
+ export declare const withArtifactPublicationLocks: <T>(targetPathArg: string, callbackArg: () => Promise<T>, additionalTargetPathsArg?: string[]) => Promise<T>;
34
+ export declare const writeFileAtomically: (targetPathArg: string, contentArg: string | Buffer, modeArg?: number) => void;
35
+ export declare const getChunkNamespace: (logicalOutputNameArg: string) => string;
36
+ export declare const publishGeneratedArtifacts: (optionsArg: IPublishGeneratedArtifactsOptions) => Promise<void>;
37
+ export declare const cleanupStaleBuildStages: (outputDirectoryArg: string) => void;
38
+ export declare const createBuildStage: (outputDirectoryArg: string) => {
39
+ marker: IBuildStageMarker;
40
+ stageDirectory: string;
41
+ };
42
+ export declare const cleanupBuildStage: (stageDirectoryArg: string, outputDirectoryArg: string, expectedMarkerArg: IBuildStageMarker) => void;
43
+ export {};