@workflow/builders 4.0.1-beta.9 → 5.0.0-beta.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.
- package/README.md +1 -1
- package/dist/apply-swc-transform.d.ts +19 -4
- package/dist/apply-swc-transform.d.ts.map +1 -1
- package/dist/apply-swc-transform.js +62 -7
- package/dist/apply-swc-transform.js.map +1 -1
- package/dist/base-builder.d.ts +77 -22
- package/dist/base-builder.d.ts.map +1 -1
- package/dist/base-builder.js +667 -202
- package/dist/base-builder.js.map +1 -1
- package/dist/build-queue.d.ts +18 -0
- package/dist/build-queue.d.ts.map +1 -0
- package/dist/build-queue.js +26 -0
- package/dist/build-queue.js.map +1 -0
- package/dist/config-helpers.d.ts +32 -0
- package/dist/config-helpers.d.ts.map +1 -1
- package/dist/config-helpers.js +61 -0
- package/dist/config-helpers.js.map +1 -1
- package/dist/constants.d.ts +2 -4
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +2 -4
- package/dist/constants.js.map +1 -1
- package/dist/discover-entries-esbuild-plugin.d.ts +5 -6
- package/dist/discover-entries-esbuild-plugin.d.ts.map +1 -1
- package/dist/discover-entries-esbuild-plugin.js +98 -30
- package/dist/discover-entries-esbuild-plugin.js.map +1 -1
- package/dist/discover-entries-esbuild-plugin.test.d.ts +2 -0
- package/dist/discover-entries-esbuild-plugin.test.d.ts.map +1 -0
- package/dist/discover-entries-esbuild-plugin.test.js +110 -0
- package/dist/discover-entries-esbuild-plugin.test.js.map +1 -0
- package/dist/esbuild-tsconfig.d.ts +13 -0
- package/dist/esbuild-tsconfig.d.ts.map +1 -0
- package/dist/esbuild-tsconfig.js +25 -0
- package/dist/esbuild-tsconfig.js.map +1 -0
- package/dist/esbuild-tsconfig.test.d.ts +2 -0
- package/dist/esbuild-tsconfig.test.d.ts.map +1 -0
- package/dist/esbuild-tsconfig.test.js +94 -0
- package/dist/esbuild-tsconfig.test.js.map +1 -0
- package/dist/get-input-files.test.d.ts +2 -0
- package/dist/get-input-files.test.d.ts.map +1 -0
- package/dist/get-input-files.test.js +121 -0
- package/dist/get-input-files.test.js.map +1 -0
- package/dist/index.d.ts +10 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -2
- package/dist/index.js.map +1 -1
- package/dist/module-specifier.d.ts +85 -0
- package/dist/module-specifier.d.ts.map +1 -0
- package/dist/module-specifier.js +448 -0
- package/dist/module-specifier.js.map +1 -0
- package/dist/module-specifier.test.d.ts +2 -0
- package/dist/module-specifier.test.d.ts.map +1 -0
- package/dist/module-specifier.test.js +240 -0
- package/dist/module-specifier.test.js.map +1 -0
- package/dist/node-module-esbuild-plugin.d.ts +37 -0
- package/dist/node-module-esbuild-plugin.d.ts.map +1 -1
- package/dist/node-module-esbuild-plugin.js +364 -7
- package/dist/node-module-esbuild-plugin.js.map +1 -1
- package/dist/node-module-esbuild-plugin.test.js +461 -146
- package/dist/node-module-esbuild-plugin.test.js.map +1 -1
- package/dist/pseudo-package-esbuild-plugin.d.ts +20 -0
- package/dist/pseudo-package-esbuild-plugin.d.ts.map +1 -0
- package/dist/pseudo-package-esbuild-plugin.js +47 -0
- package/dist/pseudo-package-esbuild-plugin.js.map +1 -0
- package/dist/pseudo-package-esbuild-plugin.test.d.ts +2 -0
- package/dist/pseudo-package-esbuild-plugin.test.d.ts.map +1 -0
- package/dist/pseudo-package-esbuild-plugin.test.js +315 -0
- package/dist/pseudo-package-esbuild-plugin.test.js.map +1 -0
- package/dist/request-converter.d.ts +3 -0
- package/dist/request-converter.d.ts.map +1 -0
- package/dist/request-converter.js +14 -0
- package/dist/request-converter.js.map +1 -0
- package/dist/serde-checker.d.ts +70 -0
- package/dist/serde-checker.d.ts.map +1 -0
- package/dist/serde-checker.js +118 -0
- package/dist/serde-checker.js.map +1 -0
- package/dist/standalone.d.ts +3 -0
- package/dist/standalone.d.ts.map +1 -1
- package/dist/standalone.js +37 -13
- package/dist/standalone.js.map +1 -1
- package/dist/swc-esbuild-plugin.d.ts +23 -2
- package/dist/swc-esbuild-plugin.d.ts.map +1 -1
- package/dist/swc-esbuild-plugin.js +133 -43
- package/dist/swc-esbuild-plugin.js.map +1 -1
- package/dist/swc-esbuild-plugin.test.d.ts +2 -0
- package/dist/swc-esbuild-plugin.test.d.ts.map +1 -0
- package/dist/swc-esbuild-plugin.test.js +493 -0
- package/dist/swc-esbuild-plugin.test.js.map +1 -0
- package/dist/transform-utils.d.ts +68 -0
- package/dist/transform-utils.d.ts.map +1 -0
- package/dist/transform-utils.js +102 -0
- package/dist/transform-utils.js.map +1 -0
- package/dist/transform-utils.test.d.ts +2 -0
- package/dist/transform-utils.test.d.ts.map +1 -0
- package/dist/transform-utils.test.js +302 -0
- package/dist/transform-utils.test.js.map +1 -0
- package/dist/types.d.ts +31 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -1
- package/dist/vercel-build-output-api.d.ts.map +1 -1
- package/dist/vercel-build-output-api.js +38 -14
- package/dist/vercel-build-output-api.js.map +1 -1
- package/dist/workflow-alias.d.ts +3 -0
- package/dist/workflow-alias.d.ts.map +1 -0
- package/dist/workflow-alias.js +65 -0
- package/dist/workflow-alias.js.map +1 -0
- package/dist/workflow-alias.test.d.ts +2 -0
- package/dist/workflow-alias.test.d.ts.map +1 -0
- package/dist/workflow-alias.test.js +53 -0
- package/dist/workflow-alias.test.js.map +1 -0
- package/dist/workflows-extractor.d.ts +92 -0
- package/dist/workflows-extractor.d.ts.map +1 -0
- package/dist/workflows-extractor.js +1476 -0
- package/dist/workflows-extractor.js.map +1 -0
- package/package.json +14 -13
|
@@ -0,0 +1,493 @@
|
|
|
1
|
+
import { mkdirSync, mkdtempSync, realpathSync, rmSync, writeFileSync, } from 'node:fs';
|
|
2
|
+
import { tmpdir } from 'node:os';
|
|
3
|
+
import { dirname, join } from 'node:path';
|
|
4
|
+
import * as esbuild from 'esbuild';
|
|
5
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
6
|
+
const { applySwcTransformMock } = vi.hoisted(() => ({
|
|
7
|
+
applySwcTransformMock: vi.fn(),
|
|
8
|
+
}));
|
|
9
|
+
vi.mock('./apply-swc-transform.js', () => ({
|
|
10
|
+
applySwcTransform: applySwcTransformMock,
|
|
11
|
+
}));
|
|
12
|
+
import { createSwcPlugin } from './swc-esbuild-plugin.js';
|
|
13
|
+
const realTmpdir = realpathSync(tmpdir());
|
|
14
|
+
function writeFile(path, contents = '') {
|
|
15
|
+
mkdirSync(dirname(path), { recursive: true });
|
|
16
|
+
writeFileSync(path, contents, 'utf-8');
|
|
17
|
+
}
|
|
18
|
+
describe('createSwcPlugin externalizeNonSteps', () => {
|
|
19
|
+
let testRoot;
|
|
20
|
+
beforeEach(() => {
|
|
21
|
+
testRoot = mkdtempSync(join(realTmpdir, 'workflow-swc-plugin-'));
|
|
22
|
+
applySwcTransformMock.mockReset();
|
|
23
|
+
applySwcTransformMock.mockImplementation(async (_filename, source) => ({
|
|
24
|
+
code: source,
|
|
25
|
+
workflowManifest: {},
|
|
26
|
+
}));
|
|
27
|
+
});
|
|
28
|
+
afterEach(() => {
|
|
29
|
+
rmSync(testRoot, { recursive: true, force: true });
|
|
30
|
+
});
|
|
31
|
+
it.each([
|
|
32
|
+
{ inputExt: '.ts', outputExt: '.js' },
|
|
33
|
+
{ inputExt: '.tsx', outputExt: '.js' },
|
|
34
|
+
{ inputExt: '.mts', outputExt: '.mjs' },
|
|
35
|
+
{ inputExt: '.cts', outputExt: '.cjs' },
|
|
36
|
+
])('rewrites externalized $inputExt imports to $outputExt when rewriteTsExtensions is enabled', async ({ inputExt, outputExt, }) => {
|
|
37
|
+
const outdir = join(testRoot, 'out');
|
|
38
|
+
const srcDir = join(testRoot, 'src');
|
|
39
|
+
const stepFile = join(srcDir, 'step.ts');
|
|
40
|
+
writeFile(join(srcDir, `dep${inputExt}`), 'export const dep = {};');
|
|
41
|
+
writeFile(stepFile, `import { dep } from './dep';\nconsole.log(dep);`);
|
|
42
|
+
const result = await esbuild.build({
|
|
43
|
+
entryPoints: [stepFile],
|
|
44
|
+
absWorkingDir: testRoot,
|
|
45
|
+
outdir,
|
|
46
|
+
bundle: true,
|
|
47
|
+
format: 'esm',
|
|
48
|
+
platform: 'node',
|
|
49
|
+
write: false,
|
|
50
|
+
plugins: [
|
|
51
|
+
createSwcPlugin({
|
|
52
|
+
mode: 'step',
|
|
53
|
+
entriesToBundle: [stepFile],
|
|
54
|
+
outdir,
|
|
55
|
+
rewriteTsExtensions: true,
|
|
56
|
+
}),
|
|
57
|
+
],
|
|
58
|
+
});
|
|
59
|
+
expect(result.errors).toHaveLength(0);
|
|
60
|
+
const output = result.outputFiles[0].text;
|
|
61
|
+
expect(output).toContain(`/dep${outputExt}`);
|
|
62
|
+
expect(output).not.toContain(`/dep${inputExt}`);
|
|
63
|
+
});
|
|
64
|
+
it('rewrites path-aliased imports to relative paths', async () => {
|
|
65
|
+
const outdir = join(testRoot, 'out');
|
|
66
|
+
const srcDir = join(testRoot, 'src');
|
|
67
|
+
const libDir = join(srcDir, 'lib');
|
|
68
|
+
const stepFile = join(srcDir, 'step.ts');
|
|
69
|
+
writeFile(join(libDir, 'config.ts'), 'export const config = {};');
|
|
70
|
+
writeFile(stepFile, `import { config } from '@/lib/config';\nconsole.log(config);`);
|
|
71
|
+
const result = await esbuild.build({
|
|
72
|
+
entryPoints: [stepFile],
|
|
73
|
+
absWorkingDir: testRoot,
|
|
74
|
+
outdir,
|
|
75
|
+
bundle: true,
|
|
76
|
+
format: 'esm',
|
|
77
|
+
platform: 'node',
|
|
78
|
+
write: false,
|
|
79
|
+
alias: { '@': srcDir },
|
|
80
|
+
plugins: [
|
|
81
|
+
createSwcPlugin({
|
|
82
|
+
mode: 'step',
|
|
83
|
+
entriesToBundle: [stepFile],
|
|
84
|
+
outdir,
|
|
85
|
+
rewriteTsExtensions: true,
|
|
86
|
+
}),
|
|
87
|
+
],
|
|
88
|
+
});
|
|
89
|
+
expect(result.errors).toHaveLength(0);
|
|
90
|
+
const output = result.outputFiles[0].text;
|
|
91
|
+
expect(output).toContain('/lib/config.js');
|
|
92
|
+
expect(output).not.toContain('@/lib/config');
|
|
93
|
+
});
|
|
94
|
+
it('does not relativize Node.js builtin imports', async () => {
|
|
95
|
+
const outdir = join(testRoot, 'out');
|
|
96
|
+
const srcDir = join(testRoot, 'src');
|
|
97
|
+
const stepFile = join(srcDir, 'step.ts');
|
|
98
|
+
writeFile(stepFile, `import { createHash } from 'crypto';\nimport { join } from 'node:path';\nconsole.log(createHash, join);`);
|
|
99
|
+
const result = await esbuild.build({
|
|
100
|
+
entryPoints: [stepFile],
|
|
101
|
+
absWorkingDir: testRoot,
|
|
102
|
+
outdir,
|
|
103
|
+
bundle: true,
|
|
104
|
+
format: 'esm',
|
|
105
|
+
platform: 'node',
|
|
106
|
+
write: false,
|
|
107
|
+
plugins: [
|
|
108
|
+
createSwcPlugin({
|
|
109
|
+
mode: 'step',
|
|
110
|
+
entriesToBundle: [stepFile],
|
|
111
|
+
outdir,
|
|
112
|
+
}),
|
|
113
|
+
],
|
|
114
|
+
});
|
|
115
|
+
expect(result.errors).toHaveLength(0);
|
|
116
|
+
const output = result.outputFiles[0].text;
|
|
117
|
+
// Builtins should remain as bare specifiers, not relativized paths
|
|
118
|
+
expect(output).toMatch(/from\s+["']crypto["']/);
|
|
119
|
+
expect(output).toMatch(/from\s+["']node:path["']/);
|
|
120
|
+
expect(output).not.toMatch(/from\s+["']\..*crypto["']/);
|
|
121
|
+
expect(output).not.toMatch(/from\s+["']\..*node:path["']/);
|
|
122
|
+
});
|
|
123
|
+
it('does not externalize aliased imports that resolve into node_modules', async () => {
|
|
124
|
+
const outdir = join(testRoot, 'out');
|
|
125
|
+
const srcDir = join(testRoot, 'src');
|
|
126
|
+
const stepFile = join(srcDir, 'step.ts');
|
|
127
|
+
const nodeModulesDir = join(testRoot, 'node_modules', 'some-pkg');
|
|
128
|
+
writeFile(join(nodeModulesDir, 'index.js'), 'export const pkg = "hello";');
|
|
129
|
+
writeFile(stepFile, `import { pkg } from '@pkg';\nconsole.log(pkg);`);
|
|
130
|
+
const result = await esbuild.build({
|
|
131
|
+
entryPoints: [stepFile],
|
|
132
|
+
absWorkingDir: testRoot,
|
|
133
|
+
outdir,
|
|
134
|
+
bundle: true,
|
|
135
|
+
format: 'esm',
|
|
136
|
+
platform: 'node',
|
|
137
|
+
write: false,
|
|
138
|
+
alias: { '@pkg': join(nodeModulesDir, 'index.js') },
|
|
139
|
+
plugins: [
|
|
140
|
+
createSwcPlugin({
|
|
141
|
+
mode: 'step',
|
|
142
|
+
entriesToBundle: [stepFile],
|
|
143
|
+
outdir,
|
|
144
|
+
}),
|
|
145
|
+
],
|
|
146
|
+
});
|
|
147
|
+
expect(result.errors).toHaveLength(0);
|
|
148
|
+
const output = result.outputFiles[0].text;
|
|
149
|
+
// Should be bundled (inlined), not externalized as a relative node_modules path
|
|
150
|
+
expect(output).toContain('hello');
|
|
151
|
+
expect(output).not.toMatch(/from\s+["'].*node_modules/);
|
|
152
|
+
});
|
|
153
|
+
it.each([
|
|
154
|
+
'.ts',
|
|
155
|
+
'.tsx',
|
|
156
|
+
'.mts',
|
|
157
|
+
'.cts',
|
|
158
|
+
])('preserves externalized %s extensions by default', async (inputExt) => {
|
|
159
|
+
const outdir = join(testRoot, 'out');
|
|
160
|
+
const srcDir = join(testRoot, 'src');
|
|
161
|
+
const stepFile = join(srcDir, 'step.ts');
|
|
162
|
+
writeFile(join(srcDir, `dep${inputExt}`), 'export const dep = {};');
|
|
163
|
+
writeFile(stepFile, `import { dep } from './dep';\nconsole.log(dep);`);
|
|
164
|
+
const result = await esbuild.build({
|
|
165
|
+
entryPoints: [stepFile],
|
|
166
|
+
absWorkingDir: testRoot,
|
|
167
|
+
outdir,
|
|
168
|
+
bundle: true,
|
|
169
|
+
format: 'esm',
|
|
170
|
+
platform: 'node',
|
|
171
|
+
write: false,
|
|
172
|
+
plugins: [
|
|
173
|
+
createSwcPlugin({
|
|
174
|
+
mode: 'step',
|
|
175
|
+
entriesToBundle: [stepFile],
|
|
176
|
+
outdir,
|
|
177
|
+
}),
|
|
178
|
+
],
|
|
179
|
+
});
|
|
180
|
+
expect(result.errors).toHaveLength(0);
|
|
181
|
+
const output = result.outputFiles[0].text;
|
|
182
|
+
expect(output).toContain(`/dep${inputExt}`);
|
|
183
|
+
});
|
|
184
|
+
});
|
|
185
|
+
describe('createSwcPlugin sideEffectEntries', () => {
|
|
186
|
+
let testRoot;
|
|
187
|
+
beforeEach(() => {
|
|
188
|
+
testRoot = mkdtempSync(join(realTmpdir, 'workflow-swc-plugin-'));
|
|
189
|
+
applySwcTransformMock.mockReset();
|
|
190
|
+
});
|
|
191
|
+
afterEach(() => {
|
|
192
|
+
rmSync(testRoot, { recursive: true, force: true });
|
|
193
|
+
});
|
|
194
|
+
/**
|
|
195
|
+
* Helper: creates a fake node_modules package with `"sideEffects": false`
|
|
196
|
+
* in its package.json and a single entry file that exports a side-effectful
|
|
197
|
+
* registration call (simulating what the SWC transform produces).
|
|
198
|
+
*/
|
|
199
|
+
function createSideEffectsFalsePackage(packageName, entryCode) {
|
|
200
|
+
const pkgDir = join(testRoot, 'node_modules', packageName);
|
|
201
|
+
writeFile(join(pkgDir, 'package.json'), JSON.stringify({
|
|
202
|
+
name: packageName,
|
|
203
|
+
version: '1.0.0',
|
|
204
|
+
sideEffects: false,
|
|
205
|
+
main: 'index.js',
|
|
206
|
+
}));
|
|
207
|
+
const entryPath = join(pkgDir, 'index.js');
|
|
208
|
+
writeFile(entryPath, entryCode);
|
|
209
|
+
return entryPath;
|
|
210
|
+
}
|
|
211
|
+
it('preserves bare imports of sideEffectEntries packages when bundling without entriesToBundle', async () => {
|
|
212
|
+
const sideEffectCode = 'globalThis.__registered = globalThis.__registered || [];\nglobalThis.__registered.push("my-pkg");';
|
|
213
|
+
const entryPath = createSideEffectsFalsePackage('my-side-effect-pkg', sideEffectCode);
|
|
214
|
+
// SWC mock: return the code unchanged (the side effects are already there)
|
|
215
|
+
applySwcTransformMock.mockImplementation(async (_filename, source) => ({
|
|
216
|
+
code: source,
|
|
217
|
+
workflowManifest: {},
|
|
218
|
+
}));
|
|
219
|
+
const result = await esbuild.build({
|
|
220
|
+
stdin: {
|
|
221
|
+
contents: `import 'my-side-effect-pkg';`,
|
|
222
|
+
resolveDir: testRoot,
|
|
223
|
+
sourcefile: 'virtual-entry.js',
|
|
224
|
+
loader: 'js',
|
|
225
|
+
},
|
|
226
|
+
absWorkingDir: testRoot,
|
|
227
|
+
bundle: true,
|
|
228
|
+
format: 'cjs',
|
|
229
|
+
platform: 'node',
|
|
230
|
+
write: false,
|
|
231
|
+
treeShaking: true,
|
|
232
|
+
logLevel: 'silent',
|
|
233
|
+
plugins: [
|
|
234
|
+
createSwcPlugin({
|
|
235
|
+
mode: 'workflow',
|
|
236
|
+
sideEffectEntries: [entryPath],
|
|
237
|
+
}),
|
|
238
|
+
],
|
|
239
|
+
});
|
|
240
|
+
expect(result.errors).toHaveLength(0);
|
|
241
|
+
const output = result.outputFiles[0].text;
|
|
242
|
+
// The registration code should be present in the bundle
|
|
243
|
+
expect(output).toContain('__registered');
|
|
244
|
+
});
|
|
245
|
+
it('drops bare imports when sideEffectEntries is NOT provided for sideEffects:false packages', async () => {
|
|
246
|
+
const sideEffectCode = 'globalThis.__registered = globalThis.__registered || [];\nglobalThis.__registered.push("my-pkg");';
|
|
247
|
+
createSideEffectsFalsePackage('my-dropped-pkg', sideEffectCode);
|
|
248
|
+
applySwcTransformMock.mockImplementation(async (_filename, source) => ({
|
|
249
|
+
code: source,
|
|
250
|
+
workflowManifest: {},
|
|
251
|
+
}));
|
|
252
|
+
const result = await esbuild.build({
|
|
253
|
+
stdin: {
|
|
254
|
+
contents: `import 'my-dropped-pkg';`,
|
|
255
|
+
resolveDir: testRoot,
|
|
256
|
+
sourcefile: 'virtual-entry.js',
|
|
257
|
+
loader: 'js',
|
|
258
|
+
},
|
|
259
|
+
absWorkingDir: testRoot,
|
|
260
|
+
bundle: true,
|
|
261
|
+
format: 'cjs',
|
|
262
|
+
platform: 'node',
|
|
263
|
+
write: false,
|
|
264
|
+
treeShaking: true,
|
|
265
|
+
logLevel: 'silent',
|
|
266
|
+
plugins: [
|
|
267
|
+
createSwcPlugin({
|
|
268
|
+
mode: 'workflow',
|
|
269
|
+
}),
|
|
270
|
+
],
|
|
271
|
+
});
|
|
272
|
+
expect(result.errors).toHaveLength(0);
|
|
273
|
+
const output = result.outputFiles[0].text;
|
|
274
|
+
// Without sideEffectEntries, esbuild drops the bare import
|
|
275
|
+
expect(output).not.toContain('__registered');
|
|
276
|
+
});
|
|
277
|
+
it('produces no warnings for sideEffectEntries packages', async () => {
|
|
278
|
+
const sideEffectCode = 'globalThis.__registered = globalThis.__registered || [];\nglobalThis.__registered.push("warned-pkg");';
|
|
279
|
+
const entryPath = createSideEffectsFalsePackage('my-warned-pkg', sideEffectCode);
|
|
280
|
+
applySwcTransformMock.mockImplementation(async (_filename, source) => ({
|
|
281
|
+
code: source,
|
|
282
|
+
workflowManifest: {},
|
|
283
|
+
}));
|
|
284
|
+
const result = await esbuild.build({
|
|
285
|
+
stdin: {
|
|
286
|
+
contents: `import 'my-warned-pkg';`,
|
|
287
|
+
resolveDir: testRoot,
|
|
288
|
+
sourcefile: 'virtual-entry.js',
|
|
289
|
+
loader: 'js',
|
|
290
|
+
},
|
|
291
|
+
absWorkingDir: testRoot,
|
|
292
|
+
bundle: true,
|
|
293
|
+
format: 'cjs',
|
|
294
|
+
platform: 'node',
|
|
295
|
+
write: false,
|
|
296
|
+
treeShaking: true,
|
|
297
|
+
plugins: [
|
|
298
|
+
createSwcPlugin({
|
|
299
|
+
mode: 'workflow',
|
|
300
|
+
sideEffectEntries: [entryPath],
|
|
301
|
+
}),
|
|
302
|
+
],
|
|
303
|
+
});
|
|
304
|
+
expect(result.errors).toHaveLength(0);
|
|
305
|
+
// No "ignored-bare-import" warnings should be produced
|
|
306
|
+
const sideEffectWarnings = result.warnings.filter((w) => w.id === 'ignored-bare-import');
|
|
307
|
+
expect(sideEffectWarnings).toHaveLength(0);
|
|
308
|
+
});
|
|
309
|
+
it('preserves bare imports with entriesToBundle and sideEffectEntries together', async () => {
|
|
310
|
+
const sideEffectCode = 'globalThis.__registered = globalThis.__registered || [];\nglobalThis.__registered.push("bundled-pkg");';
|
|
311
|
+
const entryPath = createSideEffectsFalsePackage('my-bundled-pkg', sideEffectCode);
|
|
312
|
+
applySwcTransformMock.mockImplementation(async (_filename, source) => ({
|
|
313
|
+
code: source,
|
|
314
|
+
workflowManifest: {},
|
|
315
|
+
}));
|
|
316
|
+
const outdir = join(testRoot, 'out');
|
|
317
|
+
const stepFile = join(testRoot, 'src', 'step.ts');
|
|
318
|
+
writeFile(stepFile, `import 'my-bundled-pkg';\nexport const POST = () => {};`);
|
|
319
|
+
const result = await esbuild.build({
|
|
320
|
+
entryPoints: [stepFile],
|
|
321
|
+
absWorkingDir: testRoot,
|
|
322
|
+
outdir,
|
|
323
|
+
bundle: true,
|
|
324
|
+
format: 'esm',
|
|
325
|
+
platform: 'node',
|
|
326
|
+
write: false,
|
|
327
|
+
treeShaking: true,
|
|
328
|
+
logLevel: 'silent',
|
|
329
|
+
plugins: [
|
|
330
|
+
createSwcPlugin({
|
|
331
|
+
mode: 'step',
|
|
332
|
+
entriesToBundle: [stepFile, entryPath],
|
|
333
|
+
outdir,
|
|
334
|
+
sideEffectEntries: [entryPath],
|
|
335
|
+
}),
|
|
336
|
+
],
|
|
337
|
+
});
|
|
338
|
+
expect(result.errors).toHaveLength(0);
|
|
339
|
+
const output = result.outputFiles[0].text;
|
|
340
|
+
// The registration code should be bundled in
|
|
341
|
+
expect(output).toContain('__registered');
|
|
342
|
+
});
|
|
343
|
+
it('preserves bare imports for local files with sideEffects:false in their parent package.json', async () => {
|
|
344
|
+
// Simulate a workspace package with sideEffects: false
|
|
345
|
+
const pkgDir = join(testRoot, 'packages', 'shared');
|
|
346
|
+
writeFile(join(pkgDir, 'package.json'), JSON.stringify({
|
|
347
|
+
name: '@myorg/shared',
|
|
348
|
+
version: '1.0.0',
|
|
349
|
+
sideEffects: false,
|
|
350
|
+
main: 'index.js',
|
|
351
|
+
}));
|
|
352
|
+
const sharedEntry = join(pkgDir, 'index.js');
|
|
353
|
+
writeFile(sharedEntry, 'globalThis.__sharedRegistered = true;');
|
|
354
|
+
applySwcTransformMock.mockImplementation(async (_filename, source) => ({
|
|
355
|
+
code: source,
|
|
356
|
+
workflowManifest: {},
|
|
357
|
+
}));
|
|
358
|
+
// Use a relative import to the local file (like the virtual entry does for local files)
|
|
359
|
+
const result = await esbuild.build({
|
|
360
|
+
stdin: {
|
|
361
|
+
contents: `import './packages/shared/index.js';`,
|
|
362
|
+
resolveDir: testRoot,
|
|
363
|
+
sourcefile: 'virtual-entry.js',
|
|
364
|
+
loader: 'js',
|
|
365
|
+
},
|
|
366
|
+
absWorkingDir: testRoot,
|
|
367
|
+
bundle: true,
|
|
368
|
+
format: 'cjs',
|
|
369
|
+
platform: 'node',
|
|
370
|
+
write: false,
|
|
371
|
+
treeShaking: true,
|
|
372
|
+
logLevel: 'silent',
|
|
373
|
+
plugins: [
|
|
374
|
+
createSwcPlugin({
|
|
375
|
+
mode: 'workflow',
|
|
376
|
+
sideEffectEntries: [sharedEntry],
|
|
377
|
+
}),
|
|
378
|
+
],
|
|
379
|
+
});
|
|
380
|
+
expect(result.errors).toHaveLength(0);
|
|
381
|
+
const output = result.outputFiles[0].text;
|
|
382
|
+
expect(output).toContain('__sharedRegistered');
|
|
383
|
+
});
|
|
384
|
+
it('does not override sideEffects for non-entry modules', async () => {
|
|
385
|
+
// Create two packages - one is a side-effect entry, one is not
|
|
386
|
+
const sideEffectCode = 'globalThis.__entryRegistered = true;';
|
|
387
|
+
const entryPath = createSideEffectsFalsePackage('entry-pkg', sideEffectCode);
|
|
388
|
+
const nonEntryCode = 'globalThis.__nonEntryRegistered = true;';
|
|
389
|
+
createSideEffectsFalsePackage('non-entry-pkg', nonEntryCode);
|
|
390
|
+
applySwcTransformMock.mockImplementation(async (_filename, source) => ({
|
|
391
|
+
code: source,
|
|
392
|
+
workflowManifest: {},
|
|
393
|
+
}));
|
|
394
|
+
const result = await esbuild.build({
|
|
395
|
+
stdin: {
|
|
396
|
+
contents: `import 'entry-pkg';\nimport 'non-entry-pkg';`,
|
|
397
|
+
resolveDir: testRoot,
|
|
398
|
+
sourcefile: 'virtual-entry.js',
|
|
399
|
+
loader: 'js',
|
|
400
|
+
},
|
|
401
|
+
absWorkingDir: testRoot,
|
|
402
|
+
bundle: true,
|
|
403
|
+
format: 'cjs',
|
|
404
|
+
platform: 'node',
|
|
405
|
+
write: false,
|
|
406
|
+
treeShaking: true,
|
|
407
|
+
logLevel: 'silent',
|
|
408
|
+
plugins: [
|
|
409
|
+
createSwcPlugin({
|
|
410
|
+
mode: 'workflow',
|
|
411
|
+
// Only entry-pkg is listed, non-entry-pkg is not
|
|
412
|
+
sideEffectEntries: [entryPath],
|
|
413
|
+
}),
|
|
414
|
+
],
|
|
415
|
+
});
|
|
416
|
+
expect(result.errors).toHaveLength(0);
|
|
417
|
+
const output = result.outputFiles[0].text;
|
|
418
|
+
// entry-pkg should be preserved
|
|
419
|
+
expect(output).toContain('__entryRegistered');
|
|
420
|
+
// non-entry-pkg should be dropped (sideEffects: false is respected)
|
|
421
|
+
expect(output).not.toContain('__nonEntryRegistered');
|
|
422
|
+
});
|
|
423
|
+
});
|
|
424
|
+
describe('createSwcPlugin projectRoot', () => {
|
|
425
|
+
let testRoot;
|
|
426
|
+
beforeEach(() => {
|
|
427
|
+
testRoot = mkdtempSync(join(realTmpdir, 'workflow-swc-plugin-'));
|
|
428
|
+
applySwcTransformMock.mockReset();
|
|
429
|
+
applySwcTransformMock.mockImplementation(async (_filename, source) => ({
|
|
430
|
+
code: source,
|
|
431
|
+
workflowManifest: {},
|
|
432
|
+
}));
|
|
433
|
+
});
|
|
434
|
+
afterEach(() => {
|
|
435
|
+
rmSync(testRoot, { recursive: true, force: true });
|
|
436
|
+
});
|
|
437
|
+
function setupFixture() {
|
|
438
|
+
const appRoot = join(testRoot, 'apps', 'chat');
|
|
439
|
+
const packageRoot = join(testRoot, 'packages', 'vade');
|
|
440
|
+
const workflowFile = join(packageRoot, 'src', 'internal', 'message', 'workflow', 'handle-message.ts');
|
|
441
|
+
writeFile(workflowFile, `export async function handleMessageWorkflow(message) {
|
|
442
|
+
"use workflow";
|
|
443
|
+
|
|
444
|
+
return message;
|
|
445
|
+
}
|
|
446
|
+
`);
|
|
447
|
+
return {
|
|
448
|
+
appRoot,
|
|
449
|
+
packageRoot,
|
|
450
|
+
workflowFile,
|
|
451
|
+
};
|
|
452
|
+
}
|
|
453
|
+
it('passes the explicit projectRoot through to applySwcTransform', async () => {
|
|
454
|
+
const fixture = setupFixture();
|
|
455
|
+
const result = await esbuild.build({
|
|
456
|
+
entryPoints: [fixture.workflowFile],
|
|
457
|
+
absWorkingDir: fixture.packageRoot,
|
|
458
|
+
bundle: true,
|
|
459
|
+
format: 'esm',
|
|
460
|
+
platform: 'node',
|
|
461
|
+
write: false,
|
|
462
|
+
plugins: [
|
|
463
|
+
createSwcPlugin({
|
|
464
|
+
mode: 'workflow',
|
|
465
|
+
projectRoot: fixture.appRoot,
|
|
466
|
+
workflowManifest: {},
|
|
467
|
+
}),
|
|
468
|
+
],
|
|
469
|
+
});
|
|
470
|
+
expect(result.errors).toHaveLength(0);
|
|
471
|
+
expect(applySwcTransformMock).toHaveBeenCalledWith('src/internal/message/workflow/handle-message.ts', expect.stringContaining('"use workflow"'), 'workflow', fixture.workflowFile, fixture.appRoot);
|
|
472
|
+
});
|
|
473
|
+
it('defaults the transform projectRoot to absWorkingDir', async () => {
|
|
474
|
+
const fixture = setupFixture();
|
|
475
|
+
const result = await esbuild.build({
|
|
476
|
+
entryPoints: [fixture.workflowFile],
|
|
477
|
+
absWorkingDir: fixture.packageRoot,
|
|
478
|
+
bundle: true,
|
|
479
|
+
format: 'esm',
|
|
480
|
+
platform: 'node',
|
|
481
|
+
write: false,
|
|
482
|
+
plugins: [
|
|
483
|
+
createSwcPlugin({
|
|
484
|
+
mode: 'workflow',
|
|
485
|
+
workflowManifest: {},
|
|
486
|
+
}),
|
|
487
|
+
],
|
|
488
|
+
});
|
|
489
|
+
expect(result.errors).toHaveLength(0);
|
|
490
|
+
expect(applySwcTransformMock).toHaveBeenCalledWith('src/internal/message/workflow/handle-message.ts', expect.stringContaining('"use workflow"'), 'workflow', fixture.workflowFile, fixture.packageRoot);
|
|
491
|
+
});
|
|
492
|
+
});
|
|
493
|
+
//# sourceMappingURL=swc-esbuild-plugin.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swc-esbuild-plugin.test.js","sourceRoot":"","sources":["../src/swc-esbuild-plugin.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared utilities for detecting files that need workflow transformation.
|
|
3
|
+
* Used by builders, rollup plugin, Next.js loader, and vite plugin.
|
|
4
|
+
*/
|
|
5
|
+
export declare const useWorkflowPattern: RegExp;
|
|
6
|
+
export declare const useStepPattern: RegExp;
|
|
7
|
+
export declare const workflowSerdeImportPattern: RegExp;
|
|
8
|
+
export declare const workflowSerdeSymbolPattern: RegExp;
|
|
9
|
+
export declare const workflowSerdeComputedPropertyPattern: RegExp;
|
|
10
|
+
export declare const generatedWorkflowPathPattern: RegExp;
|
|
11
|
+
export declare const workflowSdkPathPattern: RegExp;
|
|
12
|
+
/**
|
|
13
|
+
* Detects workflow-related patterns in source code.
|
|
14
|
+
*/
|
|
15
|
+
export interface WorkflowPatternMatch {
|
|
16
|
+
/** File contains 'use workflow' directive */
|
|
17
|
+
hasUseWorkflow: boolean;
|
|
18
|
+
/** File contains 'use step' directive */
|
|
19
|
+
hasUseStep: boolean;
|
|
20
|
+
/** File contains @workflow/serde import */
|
|
21
|
+
hasSerdeImport: boolean;
|
|
22
|
+
/** File contains Symbol.for('workflow-serialize') or Symbol.for('workflow-deserialize') */
|
|
23
|
+
hasSerdeSymbol: boolean;
|
|
24
|
+
/** File contains any directive ('use workflow' or 'use step') */
|
|
25
|
+
hasDirective: boolean;
|
|
26
|
+
/** File contains any serde pattern (import or Symbol.for) */
|
|
27
|
+
hasSerde: boolean;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Detects workflow-related patterns in source code.
|
|
31
|
+
* @param source - The source code to analyze
|
|
32
|
+
* @returns Object with flags for each detected pattern
|
|
33
|
+
*/
|
|
34
|
+
export declare function detectWorkflowPatterns(source: string): WorkflowPatternMatch;
|
|
35
|
+
/**
|
|
36
|
+
* Determines if a file path is a generated workflow route file.
|
|
37
|
+
* @param filePath - The file path to check
|
|
38
|
+
* @returns true if the file is a generated workflow route
|
|
39
|
+
*/
|
|
40
|
+
export declare function isGeneratedWorkflowFile(filePath: string): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Determines if a file path is part of the @workflow SDK.
|
|
43
|
+
* @param filePath - The file path to check
|
|
44
|
+
* @returns true if the file is part of the @workflow SDK
|
|
45
|
+
*/
|
|
46
|
+
export declare function isWorkflowSdkFile(filePath: string): boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Determines if a file should be transformed based on its path and content patterns.
|
|
49
|
+
*
|
|
50
|
+
* Logic:
|
|
51
|
+
* - Generated workflow route files are never transformed
|
|
52
|
+
* - Files with directives ('use workflow' or 'use step') are always transformed
|
|
53
|
+
* - Files with serde patterns are transformed, unless they're @workflow SDK files
|
|
54
|
+
* (SDK files with serde patterns are internal implementation, not user code)
|
|
55
|
+
*
|
|
56
|
+
* @param filePath - The file path to check
|
|
57
|
+
* @param patterns - The detected patterns from detectWorkflowPatterns()
|
|
58
|
+
* @returns true if the file should be transformed
|
|
59
|
+
*/
|
|
60
|
+
export declare function shouldTransformFile(filePath: string, patterns: WorkflowPatternMatch): boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Combined regex pattern for turbopack content matching.
|
|
63
|
+
* Uses backreferences to ensure matching quote types.
|
|
64
|
+
* Matches: 'use workflow', 'use step', @workflow/serde imports, Symbol.for serialization symbols,
|
|
65
|
+
* and WORKFLOW_SERIALIZE/WORKFLOW_DESERIALIZE computed property usage
|
|
66
|
+
*/
|
|
67
|
+
export declare const turbopackContentPattern: RegExp;
|
|
68
|
+
//# sourceMappingURL=transform-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform-utils.d.ts","sourceRoot":"","sources":["../src/transform-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,eAAO,MAAM,kBAAkB,QAAoC,CAAC;AACpE,eAAO,MAAM,cAAc,QAAgC,CAAC;AAI5D,eAAO,MAAM,0BAA0B,QAAoC,CAAC;AAI5E,eAAO,MAAM,0BAA0B,QAC+B,CAAC;AAKvE,eAAO,MAAM,oCAAoC,QACD,CAAC;AAIjD,eAAO,MAAM,4BAA4B,QACF,CAAC;AAWxC,eAAO,MAAM,sBAAsB,QACkM,CAAC;AAEtO;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,6CAA6C;IAC7C,cAAc,EAAE,OAAO,CAAC;IACxB,yCAAyC;IACzC,UAAU,EAAE,OAAO,CAAC;IACpB,2CAA2C;IAC3C,cAAc,EAAE,OAAO,CAAC;IACxB,2FAA2F;IAC3F,cAAc,EAAE,OAAO,CAAC;IACxB,iEAAiE;IACjE,YAAY,EAAE,OAAO,CAAC;IACtB,6DAA6D;IAC7D,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,CAgB3E;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEjE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,oBAAoB,GAC7B,OAAO,CAiBT;AAED;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,QACuI,CAAC"}
|