@workflow/next 4.0.1-beta.6 → 4.0.1-beta.60
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/LICENSE.md +201 -21
- package/dist/builder-deferred.d.ts +2 -0
- package/dist/builder-deferred.d.ts.map +1 -0
- package/dist/builder-deferred.js +1323 -0
- package/dist/builder-deferred.js.map +1 -0
- package/dist/builder-eager.d.ts +2 -0
- package/dist/builder-eager.d.ts.map +1 -0
- package/dist/builder-eager.js +390 -0
- package/dist/builder-eager.js.map +1 -0
- package/dist/builder.d.ts +5 -0
- package/dist/builder.d.ts.map +1 -0
- package/dist/builder.js +34 -0
- package/dist/builder.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +101 -25
- package/dist/index.js.map +1 -1
- package/dist/loader.d.ts +7 -2
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +431 -30
- package/dist/loader.js.map +1 -1
- package/dist/runtime.d.ts +1 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +1 -1
- package/dist/runtime.js.map +1 -1
- package/dist/socket-server.d.ts +48 -0
- package/dist/socket-server.d.ts.map +1 -0
- package/dist/socket-server.js +154 -0
- package/dist/socket-server.js.map +1 -0
- package/dist/step-copy-utils.d.ts +19 -0
- package/dist/step-copy-utils.d.ts.map +1 -0
- package/dist/step-copy-utils.js +101 -0
- package/dist/step-copy-utils.js.map +1 -0
- package/docs/api-reference/index.mdx +18 -0
- package/docs/api-reference/with-workflow.mdx +56 -0
- package/docs/next.mdx +288 -0
- package/package.json +17 -11
package/dist/loader.js
CHANGED
|
@@ -1,38 +1,439 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.default = workflowLoader;
|
|
4
|
+
const node_fs_1 = require("node:fs");
|
|
5
|
+
const promises_1 = require("node:fs/promises");
|
|
6
|
+
const node_net_1 = require("node:net");
|
|
7
|
+
const node_path_1 = require("node:path");
|
|
4
8
|
const core_1 = require("@swc/core");
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
9
|
+
const socket_server_js_1 = require("./socket-server.js");
|
|
10
|
+
const step_copy_utils_js_1 = require("./step-copy-utils.js");
|
|
11
|
+
// Cache decorator options per working directory to avoid reading tsconfig for every file
|
|
12
|
+
const decoratorOptionsCache = new Map();
|
|
13
|
+
// Cache for shared utilities from @workflow/builders (ESM module loaded dynamically in CommonJS context)
|
|
14
|
+
let cachedBuildersModule = null;
|
|
15
|
+
let cachedLoaderStaticDependencies = null;
|
|
16
|
+
// Cache socket connection to avoid reconnecting on every file.
|
|
17
|
+
let socketClientPromise = null;
|
|
18
|
+
let socketClient = null;
|
|
19
|
+
let socketClientKey = null;
|
|
20
|
+
function registerFileDependency(loaderContext, dependencyPath) {
|
|
21
|
+
loaderContext.addDependency?.(dependencyPath);
|
|
22
|
+
loaderContext.addBuildDependency?.(dependencyPath);
|
|
23
|
+
}
|
|
24
|
+
function addIfExists(files, dependencyPath) {
|
|
25
|
+
if ((0, node_fs_1.existsSync)(dependencyPath)) {
|
|
26
|
+
files.add(dependencyPath);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
function resolveLoaderStaticDependencies() {
|
|
30
|
+
if (cachedLoaderStaticDependencies) {
|
|
31
|
+
return cachedLoaderStaticDependencies;
|
|
32
|
+
}
|
|
33
|
+
const swcPluginPath = require.resolve('@workflow/swc-plugin');
|
|
34
|
+
const swcPluginBuildHashPath = require.resolve('@workflow/swc-plugin/build-hash.json');
|
|
35
|
+
const workflowBuildersPath = require.resolve('@workflow/builders');
|
|
36
|
+
// Derive package.json paths from resolved entrypoints to avoid
|
|
37
|
+
// Turbopack loader-eval failures around ../package.json resolution.
|
|
38
|
+
const swcPluginPackageJsonPath = (0, node_path_1.join)((0, node_path_1.dirname)(swcPluginPath), 'package.json');
|
|
39
|
+
const workflowBuildersPackageJsonPath = (0, node_path_1.join)((0, node_path_1.dirname)(workflowBuildersPath), '../package.json');
|
|
40
|
+
const files = new Set([
|
|
41
|
+
__filename,
|
|
42
|
+
require.resolve('./socket-server'),
|
|
43
|
+
require.resolve('./step-copy-utils'),
|
|
44
|
+
swcPluginPath,
|
|
45
|
+
swcPluginBuildHashPath,
|
|
46
|
+
workflowBuildersPath,
|
|
47
|
+
]);
|
|
48
|
+
addIfExists(files, swcPluginPackageJsonPath);
|
|
49
|
+
addIfExists(files, workflowBuildersPackageJsonPath);
|
|
50
|
+
cachedLoaderStaticDependencies = {
|
|
51
|
+
swcPluginPath,
|
|
52
|
+
files: Array.from(files),
|
|
53
|
+
};
|
|
54
|
+
return cachedLoaderStaticDependencies;
|
|
55
|
+
}
|
|
56
|
+
function registerTransformDependencies(loaderContext) {
|
|
57
|
+
const staticDependencies = resolveLoaderStaticDependencies();
|
|
58
|
+
for (const dependencyPath of staticDependencies.files) {
|
|
59
|
+
registerFileDependency(loaderContext, dependencyPath);
|
|
60
|
+
}
|
|
61
|
+
return staticDependencies.swcPluginPath;
|
|
62
|
+
}
|
|
63
|
+
function resetSocketClient(cachedSocket) {
|
|
64
|
+
if (cachedSocket && socketClient && socketClient !== cachedSocket) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
socketClientPromise = null;
|
|
68
|
+
socketClient = null;
|
|
69
|
+
socketClientKey = null;
|
|
70
|
+
}
|
|
71
|
+
async function writeSocketMessage(socket, message) {
|
|
72
|
+
await new Promise((resolve, reject) => {
|
|
73
|
+
socket.write(message, (error) => {
|
|
74
|
+
if (error) {
|
|
75
|
+
reject(error);
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
resolve();
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
function getSocketInfoFilePath() {
|
|
83
|
+
return (process.env.WORKFLOW_SOCKET_INFO_PATH ??
|
|
84
|
+
(0, node_path_1.join)(process.cwd(), '.next', 'cache', 'workflow-socket.json'));
|
|
85
|
+
}
|
|
86
|
+
function getSocketCredentialsFromEnv() {
|
|
87
|
+
const socketPort = process.env.WORKFLOW_SOCKET_PORT;
|
|
88
|
+
const authToken = process.env.WORKFLOW_SOCKET_AUTH;
|
|
89
|
+
if (!socketPort || !authToken) {
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
const port = Number.parseInt(socketPort, 10);
|
|
93
|
+
if (Number.isNaN(port)) {
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
return { port, authToken };
|
|
97
|
+
}
|
|
98
|
+
async function getSocketCredentialsFromFile() {
|
|
99
|
+
const socketInfoFilePath = getSocketInfoFilePath();
|
|
100
|
+
if (!(0, node_fs_1.existsSync)(socketInfoFilePath)) {
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
try {
|
|
104
|
+
const raw = await (0, promises_1.readFile)(socketInfoFilePath, 'utf8');
|
|
105
|
+
const parsed = JSON.parse(raw);
|
|
106
|
+
const authToken = typeof parsed.authToken === 'string' ? parsed.authToken : null;
|
|
107
|
+
const numericPort = typeof parsed.port === 'number'
|
|
108
|
+
? parsed.port
|
|
109
|
+
: Number.parseInt(String(parsed.port), 10);
|
|
110
|
+
if (!authToken || Number.isNaN(numericPort)) {
|
|
111
|
+
return null;
|
|
112
|
+
}
|
|
113
|
+
return {
|
|
114
|
+
port: numericPort,
|
|
115
|
+
authToken,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
catch {
|
|
119
|
+
return null;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
async function getSocketCredentials() {
|
|
123
|
+
return (getSocketCredentialsFromEnv() ?? (await getSocketCredentialsFromFile()));
|
|
124
|
+
}
|
|
125
|
+
async function getSocketClient() {
|
|
126
|
+
const socketCredentials = await getSocketCredentials();
|
|
127
|
+
if (!socketCredentials) {
|
|
128
|
+
return null;
|
|
129
|
+
}
|
|
130
|
+
if (socketClient?.destroyed) {
|
|
131
|
+
resetSocketClient(socketClient);
|
|
132
|
+
}
|
|
133
|
+
const currentSocketKey = `${socketCredentials.port}:${socketCredentials.authToken}`;
|
|
134
|
+
if (socketClientKey && socketClientKey !== currentSocketKey) {
|
|
135
|
+
if (socketClient) {
|
|
136
|
+
resetSocketClient(socketClient);
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
resetSocketClient();
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
if (!socketClientPromise) {
|
|
143
|
+
socketClientPromise = (async () => {
|
|
144
|
+
try {
|
|
145
|
+
const socket = (0, node_net_1.connect)({
|
|
146
|
+
port: socketCredentials.port,
|
|
147
|
+
host: '127.0.0.1',
|
|
148
|
+
});
|
|
149
|
+
// Wait for connection
|
|
150
|
+
await new Promise((resolve, reject) => {
|
|
151
|
+
const onConnect = () => {
|
|
152
|
+
socket.setNoDelay(true);
|
|
153
|
+
cleanup();
|
|
154
|
+
resolve();
|
|
155
|
+
};
|
|
156
|
+
const onError = (error) => {
|
|
157
|
+
cleanup();
|
|
158
|
+
reject(error);
|
|
159
|
+
};
|
|
160
|
+
const timeout = setTimeout(() => {
|
|
161
|
+
cleanup();
|
|
162
|
+
socket.destroy();
|
|
163
|
+
reject(new Error('Socket connection timeout'));
|
|
164
|
+
}, 1000);
|
|
165
|
+
const cleanup = () => {
|
|
166
|
+
clearTimeout(timeout);
|
|
167
|
+
socket.off('connect', onConnect);
|
|
168
|
+
socket.off('error', onError);
|
|
169
|
+
};
|
|
170
|
+
socket.on('connect', onConnect);
|
|
171
|
+
socket.on('error', onError);
|
|
172
|
+
});
|
|
173
|
+
socket.on('close', () => {
|
|
174
|
+
resetSocketClient(socket);
|
|
175
|
+
});
|
|
176
|
+
socket.on('error', () => {
|
|
177
|
+
resetSocketClient(socket);
|
|
178
|
+
});
|
|
179
|
+
socketClient = socket;
|
|
180
|
+
socketClientKey = currentSocketKey;
|
|
181
|
+
return socket;
|
|
182
|
+
}
|
|
183
|
+
catch (error) {
|
|
184
|
+
resetSocketClient();
|
|
185
|
+
throw error;
|
|
186
|
+
}
|
|
187
|
+
})();
|
|
188
|
+
}
|
|
189
|
+
return socketClientPromise;
|
|
190
|
+
}
|
|
191
|
+
async function notifySocketServer(filename, hasWorkflow, hasStep, hasSerde) {
|
|
192
|
+
const socketCredentials = await getSocketCredentials();
|
|
193
|
+
if (!socketCredentials) {
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
const socket = await getSocketClient();
|
|
197
|
+
if (!socket) {
|
|
198
|
+
throw new Error('Invariant: missing workflow socket connection');
|
|
199
|
+
}
|
|
200
|
+
const message = {
|
|
201
|
+
type: 'file-discovered',
|
|
202
|
+
filePath: filename,
|
|
203
|
+
hasWorkflow,
|
|
204
|
+
hasStep,
|
|
205
|
+
hasSerde,
|
|
206
|
+
};
|
|
207
|
+
const serializedMessage = (0, socket_server_js_1.serializeMessage)(message, socketCredentials.authToken);
|
|
208
|
+
try {
|
|
209
|
+
await writeSocketMessage(socket, serializedMessage);
|
|
210
|
+
}
|
|
211
|
+
catch (error) {
|
|
212
|
+
resetSocketClient(socket);
|
|
213
|
+
const reconnectedSocket = await getSocketClient();
|
|
214
|
+
if (!reconnectedSocket) {
|
|
215
|
+
throw error;
|
|
216
|
+
}
|
|
217
|
+
await writeSocketMessage(reconnectedSocket, serializedMessage);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
async function getBuildersModule() {
|
|
221
|
+
if (cachedBuildersModule) {
|
|
222
|
+
return cachedBuildersModule;
|
|
223
|
+
}
|
|
224
|
+
// Dynamic import to handle ESM module from CommonJS context
|
|
225
|
+
// biome-ignore lint/security/noGlobalEval: Need to use eval here to avoid TypeScript from transpiling the import statement into `require()`
|
|
226
|
+
cachedBuildersModule = (await eval('import("@workflow/builders")'));
|
|
227
|
+
return cachedBuildersModule;
|
|
228
|
+
}
|
|
229
|
+
async function getDecoratorOptions(workingDir) {
|
|
230
|
+
const cached = decoratorOptionsCache.get(workingDir);
|
|
231
|
+
if (cached) {
|
|
232
|
+
return cached;
|
|
233
|
+
}
|
|
234
|
+
const promise = (async () => {
|
|
235
|
+
const { getDecoratorOptionsForDirectoryWithConfigPath } = await getBuildersModule();
|
|
236
|
+
return getDecoratorOptionsForDirectoryWithConfigPath(workingDir);
|
|
237
|
+
})();
|
|
238
|
+
decoratorOptionsCache.set(workingDir, promise);
|
|
239
|
+
return promise;
|
|
240
|
+
}
|
|
241
|
+
async function detectPatterns(source) {
|
|
242
|
+
const { detectWorkflowPatterns } = await getBuildersModule();
|
|
243
|
+
return detectWorkflowPatterns(source);
|
|
244
|
+
}
|
|
245
|
+
async function checkGeneratedFile(filePath) {
|
|
246
|
+
const { isGeneratedWorkflowFile } = await getBuildersModule();
|
|
247
|
+
return isGeneratedWorkflowFile(filePath);
|
|
248
|
+
}
|
|
249
|
+
async function checkSdkFile(filePath) {
|
|
250
|
+
const { isWorkflowSdkFile } = await getBuildersModule();
|
|
251
|
+
return isWorkflowSdkFile(filePath);
|
|
252
|
+
}
|
|
253
|
+
async function checkShouldTransform(filePath, patterns) {
|
|
254
|
+
const { shouldTransformFile } = await getBuildersModule();
|
|
255
|
+
return shouldTransformFile(filePath, patterns);
|
|
256
|
+
}
|
|
257
|
+
async function getModuleSpecifier(filePath, projectRoot) {
|
|
258
|
+
const { resolveModuleSpecifier } = await getBuildersModule();
|
|
259
|
+
return resolveModuleSpecifier(filePath, projectRoot).moduleSpecifier;
|
|
260
|
+
}
|
|
261
|
+
async function resolveWorkflowAliasPath(filePath, workingDir) {
|
|
262
|
+
const { resolveWorkflowAliasRelativePath } = await getBuildersModule();
|
|
263
|
+
return resolveWorkflowAliasRelativePath(filePath, workingDir);
|
|
264
|
+
}
|
|
265
|
+
async function getRelativeFilenameForSwc(filename, workingDir) {
|
|
266
|
+
const normalizedWorkingDir = workingDir
|
|
267
|
+
.replace(/\\/g, '/')
|
|
268
|
+
.replace(/\/$/, '');
|
|
269
|
+
const normalizedFilepath = filename.replace(/\\/g, '/');
|
|
270
|
+
// Windows fix: Use case-insensitive comparison to work around drive letter casing issues
|
|
271
|
+
const lowerWd = normalizedWorkingDir.toLowerCase();
|
|
272
|
+
const lowerPath = normalizedFilepath.toLowerCase();
|
|
273
|
+
let relativeFilename;
|
|
274
|
+
if (lowerPath.startsWith(`${lowerWd}/`)) {
|
|
275
|
+
// File is under working directory - manually calculate relative path
|
|
276
|
+
relativeFilename = normalizedFilepath.substring(normalizedWorkingDir.length + 1);
|
|
277
|
+
}
|
|
278
|
+
else if (lowerPath === lowerWd) {
|
|
279
|
+
// File IS the working directory (shouldn't happen)
|
|
280
|
+
relativeFilename = '.';
|
|
281
|
+
}
|
|
282
|
+
else {
|
|
283
|
+
// Use relative() for files outside working directory
|
|
284
|
+
relativeFilename = (0, node_path_1.relative)(workingDir, filename).replace(/\\/g, '/');
|
|
285
|
+
if (relativeFilename.startsWith('../')) {
|
|
286
|
+
const aliasedRelativePath = await resolveWorkflowAliasPath(filename, workingDir);
|
|
287
|
+
if (aliasedRelativePath) {
|
|
288
|
+
relativeFilename = aliasedRelativePath;
|
|
289
|
+
}
|
|
290
|
+
else {
|
|
291
|
+
relativeFilename = relativeFilename
|
|
292
|
+
.split('/')
|
|
293
|
+
.filter((part) => part !== '..')
|
|
294
|
+
.join('/');
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
// Final safety check - ensure we never pass an absolute path to SWC
|
|
299
|
+
if (relativeFilename.includes(':') || relativeFilename.startsWith('/')) {
|
|
300
|
+
// This should rarely happen, but use filename split as last resort
|
|
301
|
+
relativeFilename = normalizedFilepath.split('/').pop() || 'unknown.ts';
|
|
302
|
+
}
|
|
303
|
+
return relativeFilename;
|
|
304
|
+
}
|
|
305
|
+
function stripDeferredStepSourceMetadataComment(source) {
|
|
306
|
+
const metadataPattern = new RegExp(`^\\s*//\\s*${step_copy_utils_js_1.DEFERRED_STEP_SOURCE_METADATA_PREFIX}[A-Za-z0-9+/=]+\\s*\\r?\\n?`);
|
|
307
|
+
return source.replace(metadataPattern, '');
|
|
308
|
+
}
|
|
309
|
+
function workflowLoader(source, sourceMap) {
|
|
310
|
+
const callback = this.async?.();
|
|
311
|
+
const run = async () => {
|
|
312
|
+
const filename = this.resourcePath;
|
|
313
|
+
const normalizedSource = source.toString();
|
|
314
|
+
const workingDir = process.cwd();
|
|
315
|
+
const swcPluginPath = registerTransformDependencies(this);
|
|
316
|
+
const isDeferredStepCopyFile = (0, step_copy_utils_js_1.isDeferredStepCopyFilePath)(filename);
|
|
317
|
+
const deferredStepSourceMetadata = isDeferredStepCopyFile
|
|
318
|
+
? (0, step_copy_utils_js_1.parseDeferredStepSourceMetadata)(normalizedSource)
|
|
319
|
+
: null;
|
|
320
|
+
const sourceWithoutDeferredMetadata = isDeferredStepCopyFile
|
|
321
|
+
? stripDeferredStepSourceMetadataComment(normalizedSource)
|
|
322
|
+
: normalizedSource;
|
|
323
|
+
const deferredSourceMapResult = isDeferredStepCopyFile
|
|
324
|
+
? (0, step_copy_utils_js_1.parseInlineSourceMapComment)(sourceWithoutDeferredMetadata)
|
|
325
|
+
: {
|
|
326
|
+
sourceWithoutMapComment: sourceWithoutDeferredMetadata,
|
|
327
|
+
sourceMap: null,
|
|
328
|
+
};
|
|
329
|
+
const sourceForTransform = deferredSourceMapResult.sourceWithoutMapComment;
|
|
330
|
+
const discoveryFilePath = deferredStepSourceMetadata?.absolutePath || filename;
|
|
331
|
+
if (deferredStepSourceMetadata?.absolutePath) {
|
|
332
|
+
// Ensure edits to the original source invalidate deferred step copies.
|
|
333
|
+
registerFileDependency(this, deferredStepSourceMetadata.absolutePath);
|
|
334
|
+
}
|
|
335
|
+
// Skip generated workflow route files to avoid re-processing them
|
|
336
|
+
if ((await checkGeneratedFile(filename)) && !isDeferredStepCopyFile) {
|
|
337
|
+
return { code: normalizedSource, map: sourceMap };
|
|
338
|
+
}
|
|
339
|
+
// Detect workflow patterns in the source code.
|
|
340
|
+
const patterns = await detectPatterns(sourceForTransform);
|
|
341
|
+
// Always notify discovery tracking, even for `false/false`, so files that
|
|
342
|
+
// previously had workflow/step usage are removed from the tracked sets.
|
|
343
|
+
// Deferred step copy files must report using their original source path so
|
|
344
|
+
// deferred rebuilds can react to source edits outside generated artifacts.
|
|
345
|
+
if (!isDeferredStepCopyFile || deferredStepSourceMetadata?.absolutePath) {
|
|
346
|
+
// For @workflow SDK packages, do not report serde-only matches for
|
|
347
|
+
// discovery, otherwise deferred mode can incorrectly treat SDK internals
|
|
348
|
+
// as app serde entrypoints.
|
|
349
|
+
const isSdkFile = await checkSdkFile(discoveryFilePath);
|
|
350
|
+
await notifySocketServer(discoveryFilePath, patterns.hasUseWorkflow, patterns.hasUseStep, patterns.hasSerde && !isSdkFile);
|
|
351
|
+
}
|
|
352
|
+
if (!isDeferredStepCopyFile) {
|
|
353
|
+
// For @workflow SDK packages, only transform files with actual directives,
|
|
354
|
+
// not files that just match serde patterns (which are internal SDK implementation files)
|
|
355
|
+
const isSdkFile = await checkSdkFile(filename);
|
|
356
|
+
if (isSdkFile && !patterns.hasDirective) {
|
|
357
|
+
return { code: normalizedSource, map: sourceMap };
|
|
358
|
+
}
|
|
359
|
+
// Check if file needs transformation based on patterns and path
|
|
360
|
+
if (!(await checkShouldTransform(filename, patterns))) {
|
|
361
|
+
return { code: normalizedSource, map: sourceMap };
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
const isTypeScript = filename.endsWith('.ts') ||
|
|
365
|
+
filename.endsWith('.tsx') ||
|
|
366
|
+
filename.endsWith('.mts') ||
|
|
367
|
+
filename.endsWith('.cts');
|
|
368
|
+
// Calculate relative filename for SWC plugin
|
|
369
|
+
// The SWC plugin uses filename to generate workflowId, so it must be relative
|
|
370
|
+
const relativeFilename = deferredStepSourceMetadata?.relativeFilename ||
|
|
371
|
+
(await getRelativeFilenameForSwc(filename, workingDir));
|
|
372
|
+
// Get decorator options from tsconfig (cached per working directory)
|
|
373
|
+
const { options: decoratorOptions, configPath } = await getDecoratorOptions(workingDir);
|
|
374
|
+
if (configPath) {
|
|
375
|
+
registerFileDependency(this, configPath);
|
|
376
|
+
}
|
|
377
|
+
// Resolve module specifier for packages (node_modules or workspace packages)
|
|
378
|
+
const moduleSpecifier = await getModuleSpecifier(deferredStepSourceMetadata?.absolutePath || filename, workingDir);
|
|
379
|
+
const mode = isDeferredStepCopyFile ? 'step' : 'client';
|
|
380
|
+
// Transform with SWC
|
|
381
|
+
const result = await (0, core_1.transform)(sourceForTransform, {
|
|
382
|
+
filename: relativeFilename,
|
|
383
|
+
jsc: {
|
|
384
|
+
parser: {
|
|
385
|
+
...(isTypeScript
|
|
386
|
+
? {
|
|
387
|
+
syntax: 'typescript',
|
|
388
|
+
tsx: filename.endsWith('.tsx'),
|
|
389
|
+
decorators: decoratorOptions.decorators,
|
|
390
|
+
}
|
|
391
|
+
: {
|
|
392
|
+
syntax: 'ecmascript',
|
|
393
|
+
jsx: filename.endsWith('.jsx'),
|
|
394
|
+
decorators: decoratorOptions.decorators,
|
|
395
|
+
}),
|
|
396
|
+
},
|
|
397
|
+
target: 'es2022',
|
|
398
|
+
experimental: {
|
|
399
|
+
plugins: [[swcPluginPath, { mode, moduleSpecifier }]],
|
|
400
|
+
},
|
|
401
|
+
transform: {
|
|
402
|
+
react: {
|
|
403
|
+
runtime: 'preserve',
|
|
404
|
+
},
|
|
405
|
+
legacyDecorator: decoratorOptions.legacyDecorator,
|
|
406
|
+
decoratorMetadata: decoratorOptions.decoratorMetadata,
|
|
407
|
+
},
|
|
29
408
|
},
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
409
|
+
minify: false,
|
|
410
|
+
inputSourceMap: isDeferredStepCopyFile
|
|
411
|
+
? deferredSourceMapResult.sourceMap || sourceMap
|
|
412
|
+
: sourceMap,
|
|
413
|
+
sourceMaps: true,
|
|
414
|
+
inlineSourcesContent: true,
|
|
415
|
+
});
|
|
416
|
+
let transformedMap = sourceMap;
|
|
417
|
+
if (typeof result.map === 'string') {
|
|
418
|
+
try {
|
|
419
|
+
transformedMap = JSON.parse(result.map);
|
|
420
|
+
}
|
|
421
|
+
catch {
|
|
422
|
+
transformedMap = result.map;
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
else if (result.map) {
|
|
426
|
+
transformedMap = result.map;
|
|
427
|
+
}
|
|
428
|
+
return { code: result.code, map: transformedMap };
|
|
429
|
+
};
|
|
430
|
+
if (!callback) {
|
|
431
|
+
return run().then((result) => result.code);
|
|
432
|
+
}
|
|
433
|
+
void run()
|
|
434
|
+
.then((result) => callback(null, result.code, result.map))
|
|
435
|
+
.catch((error) => {
|
|
436
|
+
callback(error instanceof Error ? error : new Error(String(error)));
|
|
35
437
|
});
|
|
36
|
-
return result.code;
|
|
37
438
|
}
|
|
38
439
|
//# sourceMappingURL=loader.js.map
|
package/dist/loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":";;AAIA,iCAwCC;AA5CD,oCAAsC;AAEtC,oDAAoD;AACpD,wBAAwB;AACT,KAAK,UAAU,cAAc,CAI1C,MAAuB,EACvB,SAAc;IAEd,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC;IACnC,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAE3C,4CAA4C;IAC5C,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,yBAAyB,CAAC,EAAE,CAAC;QACvD,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3E,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAExC,qBAAqB;IACrB,MAAM,MAAM,GAAG,MAAM,IAAA,gBAAS,EAAC,gBAAgB,EAAE;QAC/C,QAAQ;QACR,GAAG,EAAE;YACH,MAAM,EAAE;gBACN,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY;gBAClD,GAAG,EAAE,KAAK;aACX;YACD,MAAM,EAAE,QAAQ;YAChB,YAAY,EAAE;gBACZ,OAAO,EAAE;oBACP,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;iBAC9D;aACF;SACF;QACD,MAAM,EAAE,KAAK;QACb,cAAc,EAAE,SAAS;QACzB,UAAU,EAAE,IAAI;QAChB,oBAAoB,EAAE,IAAI;KAC3B,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC"}
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from '@workflow/
|
|
1
|
+
export * from '@workflow/core/dist/runtime';
|
|
2
2
|
//# sourceMappingURL=runtime.d.ts.map
|
package/dist/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAGA,cAAc,
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAGA,cAAc,6BAA6B,CAAC"}
|
package/dist/runtime.js
CHANGED
|
@@ -17,5 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
// re-export runtime as stub for resolving to not
|
|
18
18
|
// require @workflow/core be a dependency as well as
|
|
19
19
|
// @workflow/next
|
|
20
|
-
__exportStar(require("@workflow/
|
|
20
|
+
__exportStar(require("@workflow/core/dist/runtime"), exports);
|
|
21
21
|
//# sourceMappingURL=runtime.js.map
|
package/dist/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAAiD;AACjD,oDAAoD;AACpD,iBAAiB;AACjB,
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAAiD;AACjD,oDAAoD;AACpD,iBAAiB;AACjB,8DAA4C"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Message types that can be sent between loader and builder
|
|
3
|
+
*/
|
|
4
|
+
export type SocketMessage = {
|
|
5
|
+
type: 'file-discovered';
|
|
6
|
+
filePath: string;
|
|
7
|
+
hasWorkflow: boolean;
|
|
8
|
+
hasStep: boolean;
|
|
9
|
+
hasSerde: boolean;
|
|
10
|
+
} | {
|
|
11
|
+
type: 'trigger-build';
|
|
12
|
+
} | {
|
|
13
|
+
type: 'build-complete';
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Configuration for the socket server
|
|
17
|
+
*/
|
|
18
|
+
export interface SocketServerConfig {
|
|
19
|
+
isDevServer: boolean;
|
|
20
|
+
onFileDiscovered: (filePath: string, hasWorkflow: boolean, hasStep: boolean, hasSerde: boolean) => void;
|
|
21
|
+
onTriggerBuild: () => void;
|
|
22
|
+
socketInfoFilePath?: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Interface for the socket IO instance returned by createSocketServer
|
|
26
|
+
*/
|
|
27
|
+
export interface SocketIO {
|
|
28
|
+
emit(event: 'build-complete'): void;
|
|
29
|
+
getAuthToken(): string;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Serialize a message with authentication preamble
|
|
33
|
+
*/
|
|
34
|
+
export declare function serializeMessage(message: SocketMessage, authToken: string): string;
|
|
35
|
+
/**
|
|
36
|
+
* Parse and authenticate a message from the socket
|
|
37
|
+
* Returns the parsed message if valid, null otherwise
|
|
38
|
+
*/
|
|
39
|
+
export declare function parseMessage(line: string, authToken: string): SocketMessage | null;
|
|
40
|
+
/**
|
|
41
|
+
* Create a TCP socket server for loader<->builder communication.
|
|
42
|
+
* Returns a SocketIO interface for broadcasting messages and the auth token.
|
|
43
|
+
*
|
|
44
|
+
* SECURITY: Server listens on 127.0.0.1 (localhost only) and uses
|
|
45
|
+
* message authentication to prevent processing of unauthorized messages.
|
|
46
|
+
*/
|
|
47
|
+
export declare function createSocketServer(config: SocketServerConfig): Promise<SocketIO>;
|
|
48
|
+
//# sourceMappingURL=socket-server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"socket-server.d.ts","sourceRoot":"","sources":["../src/socket-server.ts"],"names":[],"mappings":"AAmBA;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB;IACE,IAAI,EAAE,iBAAiB,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB,GACD;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,GACzB;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAE/B;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,CAChB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,OAAO,EACpB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,OAAO,KACd,IAAI,CAAC;IACV,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACpC,YAAY,IAAI,MAAM,CAAC;CACxB;AAMD;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,MAAM,GAChB,MAAM,CAER;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,aAAa,GAAG,IAAI,CAoCtB;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,QAAQ,CAAC,CAoGnB"}
|