@workflow/next 4.0.1-beta.37 → 4.0.1-beta.38

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.
@@ -1 +1 @@
1
- {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAiBA,wBAAsB,cAAc,iBA6ZnC"}
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAUA,wBAAsB,cAAc,iBAmdnC"}
package/dist/builder.js CHANGED
@@ -6,10 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.getNextBuilder = getNextBuilder;
7
7
  const node_fs_1 = require("node:fs");
8
8
  const promises_1 = require("node:fs/promises");
9
- const node_os_1 = __importDefault(require("node:os"));
10
9
  const node_path_1 = require("node:path");
11
- const builders_1 = require("@workflow/builders");
12
- const socket_server_1 = require("./socket-server");
10
+ const watchpack_1 = __importDefault(require("watchpack"));
13
11
  let CachedNextBuilder;
14
12
  // Create the NextBuilder class dynamically by extending the ESM BaseBuilder
15
13
  // This is exported as getNextBuilder() to allow CommonJS modules to import
@@ -18,102 +16,26 @@ async function getNextBuilder() {
18
16
  if (CachedNextBuilder) {
19
17
  return CachedNextBuilder;
20
18
  }
21
- const { BaseBuilder: BaseBuilderClass, STEP_QUEUE_TRIGGER, WORKFLOW_QUEUE_TRIGGER, } = await import('@workflow/builders');
19
+ const { BaseBuilder: BaseBuilderClass, STEP_QUEUE_TRIGGER, WORKFLOW_QUEUE_TRIGGER,
20
+ // biome-ignore lint/security/noGlobalEval: Need to use eval here to avoid TypeScript from transpiling the import statement into `require()`
21
+ } = (await eval('import("@workflow/builders")'));
22
22
  class NextBuilder extends BaseBuilderClass {
23
- socketIO;
24
- isDevServer;
25
- nextConfig;
26
- getDistDir() {
27
- return this.nextConfig?.distDir || '.next';
28
- }
29
- async writeWorkflowsCache(workflowFiles, stepFiles) {
30
- const cwd = this.config.workingDir;
31
- const distDir = this.getDistDir();
32
- const cacheDir = (0, node_path_1.join)(cwd, distDir, 'cache');
33
- const cacheFile = (0, node_path_1.join)(cacheDir, 'workflows.json');
34
- try {
35
- await (0, promises_1.mkdir)(cacheDir, { recursive: true });
36
- const cacheData = {
37
- workflowFiles: Array.from(workflowFiles),
38
- stepFiles: Array.from(stepFiles),
39
- timestamp: Date.now(),
40
- };
41
- await (0, promises_1.writeFile)(cacheFile, JSON.stringify(cacheData, null, 2));
42
- }
43
- catch (error) {
44
- console.error('Failed to write workflows cache:', error);
45
- }
46
- }
47
- async readWorkflowsCache() {
48
- const cwd = this.config.workingDir;
49
- const distDir = this.getDistDir();
50
- const cacheFile = (0, node_path_1.join)(cwd, distDir, 'cache', 'workflows.json');
51
- try {
52
- const cacheContent = await (0, promises_1.readFile)(cacheFile, 'utf-8');
53
- const cacheData = JSON.parse(cacheContent);
54
- // Filter workflow files: check they exist and contain "use workflow"
55
- const workflowFiles = [];
56
- for (const file of cacheData.workflowFiles || []) {
57
- try {
58
- const content = await (0, promises_1.readFile)(file, 'utf-8');
59
- if (builders_1.useWorkflowPattern.test(content)) {
60
- workflowFiles.push(file);
61
- }
62
- }
63
- catch {
64
- // File doesn't exist or can't be read, skip it
65
- }
66
- }
67
- // Filter step files: check they exist and contain "use step"
68
- const stepFiles = [];
69
- for (const file of cacheData.stepFiles || []) {
70
- try {
71
- const content = await (0, promises_1.readFile)(file, 'utf-8');
72
- if (builders_1.useStepPattern.test(content)) {
73
- stepFiles.push(file);
74
- }
75
- }
76
- catch {
77
- // File doesn't exist or can't be read, skip it
78
- }
79
- }
80
- return {
81
- workflowFiles,
82
- stepFiles,
83
- };
84
- }
85
- catch {
86
- // Cache file doesn't exist or is invalid, return null
87
- return null;
88
- }
89
- }
90
- async init(nextConfig, phase) {
91
- this.nextConfig = nextConfig;
92
- this.isDevServer = phase === 'phase-development-server';
93
- const outputDir = await this.findAppDirectory();
94
- // Write stub files
95
- await this.writeStubFiles(outputDir);
96
- // Create socket server for file path communication
97
- await this.createSocketServer(outputDir);
98
- }
99
- async build(inputFiles) {
23
+ async build() {
100
24
  const outputDir = await this.findAppDirectory();
101
25
  const workflowGeneratedDir = (0, node_path_1.join)(outputDir, '.well-known/workflow/v1');
102
26
  // Ensure output directories exist
103
27
  await (0, promises_1.mkdir)(workflowGeneratedDir, { recursive: true });
104
28
  // ignore the generated assets
105
29
  await (0, promises_1.writeFile)((0, node_path_1.join)(workflowGeneratedDir, '.gitignore'), '*');
106
- // Use provided inputFiles or discover them
107
- const files = inputFiles || (await this.getInputFiles());
108
- const tsConfig = await this.getTsConfigOptions();
30
+ const inputFiles = await this.getInputFiles();
31
+ const tsconfigPath = await this.findTsConfigPath();
109
32
  const options = {
110
- inputFiles: files,
33
+ inputFiles,
111
34
  workflowGeneratedDir,
112
- tsBaseUrl: tsConfig.baseUrl,
113
- tsPaths: tsConfig.paths,
35
+ tsconfigPath,
114
36
  };
115
- const { manifest } = await this.buildStepsFunction(options);
116
- await this.buildWorkflowsFunction(options);
37
+ const { manifest, context: stepsBuildContext } = await this.buildStepsFunction(options);
38
+ const workflowsBundle = await this.buildWorkflowsFunction(options);
117
39
  await this.buildWebhookRoute({ workflowGeneratedDir });
118
40
  // Write unified manifest to workflow generated directory
119
41
  const workflowBundlePath = (0, node_path_1.join)(workflowGeneratedDir, 'flow/route.js');
@@ -123,9 +45,203 @@ async function getNextBuilder() {
123
45
  manifest,
124
46
  });
125
47
  await this.writeFunctionsConfig(outputDir);
126
- // Signal build complete to connected clients
127
- if (this.socketIO) {
128
- this.socketIO.emit('build-complete');
48
+ if (this.config.watch) {
49
+ if (!stepsBuildContext) {
50
+ throw new Error('Invariant: expected steps build context in watch mode');
51
+ }
52
+ if (!workflowsBundle) {
53
+ throw new Error('Invariant: expected workflows bundle in watch mode');
54
+ }
55
+ let stepsCtx = stepsBuildContext;
56
+ let workflowsCtx = workflowsBundle;
57
+ const normalizePath = (pathname) => pathname.replace(/\\/g, '/');
58
+ const knownFiles = new Set();
59
+ let previousTimeInfo = new Map();
60
+ const watchableExtensions = new Set([
61
+ '.js',
62
+ '.jsx',
63
+ '.ts',
64
+ '.tsx',
65
+ '.mts',
66
+ '.cts',
67
+ '.cjs',
68
+ '.mjs',
69
+ ]);
70
+ const ignoredPathFragments = [
71
+ '/.git/',
72
+ '/node_modules/',
73
+ '/.next/',
74
+ '/.turbo/',
75
+ '/.vercel/',
76
+ '/dist/',
77
+ '/build/',
78
+ '/out/',
79
+ '/.cache/',
80
+ '/.yarn/',
81
+ '/.pnpm-store/',
82
+ '/.parcel-cache/',
83
+ '/.well-known/workflow/',
84
+ ];
85
+ const normalizedGeneratedDir = workflowGeneratedDir.replace(/\\/g, '/');
86
+ ignoredPathFragments.push(normalizedGeneratedDir);
87
+ // There is a node.js bug on MacOS which causes closing file watchers to be really slow.
88
+ // This limits the number of watchers to mitigate the issue.
89
+ // https://github.com/nodejs/node/issues/29949
90
+ process.env.WATCHPACK_WATCHER_LIMIT =
91
+ process.platform === 'darwin' ? '20' : undefined;
92
+ const watcher = new watchpack_1.default({
93
+ // Watchpack default is 200ms which adds 200ms of dead time on bootup.
94
+ aggregateTimeout: 5,
95
+ ignored: (pathname) => {
96
+ const normalizedPath = pathname.replace(/\\/g, '/');
97
+ const extension = (0, node_path_1.extname)(normalizedPath);
98
+ if (extension && !watchableExtensions.has(extension)) {
99
+ return true;
100
+ }
101
+ if (normalizedPath.startsWith(normalizedGeneratedDir)) {
102
+ return true;
103
+ }
104
+ for (const fragment of ignoredPathFragments) {
105
+ if (normalizedPath.includes(fragment)) {
106
+ return true;
107
+ }
108
+ }
109
+ return false;
110
+ },
111
+ });
112
+ const readTimeInfoEntries = () => {
113
+ const rawEntries = watcher.getTimeInfoEntries();
114
+ const normalizedEntries = new Map();
115
+ for (const [path, info] of rawEntries) {
116
+ normalizedEntries.set(normalizePath(path), info);
117
+ }
118
+ return normalizedEntries;
119
+ };
120
+ let rebuildQueue = Promise.resolve();
121
+ const enqueue = (task) => {
122
+ rebuildQueue = rebuildQueue.then(task).catch((error) => {
123
+ console.error('Failed to process file change', error);
124
+ });
125
+ return rebuildQueue;
126
+ };
127
+ const fullRebuild = async () => {
128
+ const newInputFiles = await this.getInputFiles();
129
+ options.inputFiles = newInputFiles;
130
+ await stepsCtx.dispose();
131
+ const { context: newStepsCtx } = await this.buildStepsFunction(options);
132
+ if (!newStepsCtx) {
133
+ throw new Error('Invariant: expected steps build context after rebuild');
134
+ }
135
+ stepsCtx = newStepsCtx;
136
+ await workflowsCtx.interimBundleCtx.dispose();
137
+ const newWorkflowsCtx = await this.buildWorkflowsFunction(options);
138
+ if (!newWorkflowsCtx) {
139
+ throw new Error('Invariant: expected workflows bundle context after rebuild');
140
+ }
141
+ workflowsCtx = newWorkflowsCtx;
142
+ };
143
+ const logBuildMessages = (result, label) => {
144
+ const logByType = (messages, method) => {
145
+ if (!messages || messages.length === 0) {
146
+ return;
147
+ }
148
+ const descriptor = method === 'error' ? 'errors' : 'warnings';
149
+ console[method](`${descriptor} while rebuilding ${label}`);
150
+ for (const message of messages) {
151
+ console[method](message);
152
+ }
153
+ };
154
+ logByType(result.errors, 'error');
155
+ logByType(result.warnings, 'warn');
156
+ };
157
+ const rebuildExistingFiles = async () => {
158
+ const rebuiltStepStart = Date.now();
159
+ const stepsResult = await stepsCtx.rebuild();
160
+ logBuildMessages(stepsResult, 'steps bundle');
161
+ console.log('Rebuilt steps bundle', `${Date.now() - rebuiltStepStart}ms`);
162
+ const rebuiltWorkflowStart = Date.now();
163
+ const workflowResult = await workflowsCtx.interimBundleCtx.rebuild();
164
+ logBuildMessages(workflowResult, 'workflows bundle');
165
+ if (!workflowResult.outputFiles ||
166
+ workflowResult.outputFiles.length === 0) {
167
+ console.error('No output generated while rebuilding workflows bundle');
168
+ return;
169
+ }
170
+ await workflowsCtx.bundleFinal(workflowResult.outputFiles[0].text);
171
+ console.log('Rebuilt workflow bundle', `${Date.now() - rebuiltWorkflowStart}ms`);
172
+ };
173
+ const isWatchableFile = (path) => watchableExtensions.has((0, node_path_1.extname)(path));
174
+ const getComparableTimestamp = (entry) => entry.timestamp ?? entry.safeTime;
175
+ const findRemovedFiles = (currentEntries, previousEntries) => {
176
+ const removed = [];
177
+ for (const path of previousEntries.keys()) {
178
+ if (!currentEntries.has(path) && isWatchableFile(path)) {
179
+ removed.push(path);
180
+ }
181
+ }
182
+ return removed;
183
+ };
184
+ const findAddedAndModifiedFiles = (currentEntries, previousEntries) => {
185
+ const added = [];
186
+ const modified = [];
187
+ for (const [path, info] of currentEntries) {
188
+ if (!isWatchableFile(path)) {
189
+ continue;
190
+ }
191
+ const previous = previousEntries.get(path);
192
+ if (!previous) {
193
+ added.push(path);
194
+ continue;
195
+ }
196
+ if (getComparableTimestamp(info) !== getComparableTimestamp(previous)) {
197
+ modified.push(path);
198
+ }
199
+ }
200
+ return { added, modified };
201
+ };
202
+ const determineFileChanges = (currentEntries, previousEntries) => {
203
+ const removedFiles = findRemovedFiles(currentEntries, previousEntries);
204
+ const { added, modified } = findAddedAndModifiedFiles(currentEntries, previousEntries);
205
+ return {
206
+ addedFiles: added,
207
+ modifiedFiles: modified,
208
+ removedFiles,
209
+ };
210
+ };
211
+ let isInitial = true;
212
+ watcher.on('aggregated', () => {
213
+ const currentEntries = readTimeInfoEntries();
214
+ const { addedFiles, modifiedFiles, removedFiles } = determineFileChanges(currentEntries, previousTimeInfo);
215
+ previousTimeInfo = currentEntries;
216
+ if (isInitial) {
217
+ isInitial = false;
218
+ return;
219
+ }
220
+ if (addedFiles.length === 0 &&
221
+ modifiedFiles.length === 0 &&
222
+ removedFiles.length === 0) {
223
+ return;
224
+ }
225
+ for (const removal of removedFiles) {
226
+ knownFiles.delete(removal);
227
+ }
228
+ for (const added of addedFiles) {
229
+ knownFiles.add(added);
230
+ }
231
+ enqueue(async () => {
232
+ if (addedFiles.length > 0 || removedFiles.length > 0) {
233
+ await fullRebuild();
234
+ return;
235
+ }
236
+ if (modifiedFiles.length > 0) {
237
+ await rebuildExistingFiles();
238
+ }
239
+ });
240
+ });
241
+ watcher.watch({
242
+ directories: [this.config.workingDir],
243
+ startTime: 0,
244
+ });
129
245
  }
130
246
  }
131
247
  async getInputFiles() {
@@ -138,7 +254,7 @@ async function getNextBuilder() {
138
254
  }
139
255
  async writeFunctionsConfig(outputDir) {
140
256
  // we don't run this in development mode as it's not needed
141
- if (this.isDevServer) {
257
+ if (process.env.NODE_ENV === 'development') {
142
258
  return;
143
259
  }
144
260
  const generatedConfig = {
@@ -154,7 +270,7 @@ async function getNextBuilder() {
154
270
  // the Next.js builder to consume
155
271
  await (0, promises_1.writeFile)((0, node_path_1.join)(outputDir, '.well-known/workflow/v1/config.json'), JSON.stringify(generatedConfig, null, 2));
156
272
  }
157
- async buildStepsFunction({ inputFiles, workflowGeneratedDir, tsPaths, tsBaseUrl, }) {
273
+ async buildStepsFunction({ inputFiles, workflowGeneratedDir, tsconfigPath, }) {
158
274
  // Create steps bundle
159
275
  const stepsRouteDir = (0, node_path_1.join)(workflowGeneratedDir, 'step');
160
276
  await (0, promises_1.mkdir)(stepsRouteDir, { recursive: true });
@@ -168,11 +284,10 @@ async function getNextBuilder() {
168
284
  inputFiles,
169
285
  outfile: (0, node_path_1.join)(stepsRouteDir, 'route.js'),
170
286
  externalizeNonSteps: true,
171
- tsBaseUrl,
172
- tsPaths,
287
+ tsconfigPath,
173
288
  });
174
289
  }
175
- async buildWorkflowsFunction({ inputFiles, workflowGeneratedDir, tsPaths, tsBaseUrl, }) {
290
+ async buildWorkflowsFunction({ inputFiles, workflowGeneratedDir, tsconfigPath, }) {
176
291
  const workflowsRouteDir = (0, node_path_1.join)(workflowGeneratedDir, 'flow');
177
292
  await (0, promises_1.mkdir)(workflowsRouteDir, { recursive: true });
178
293
  return await this.createWorkflowsBundle({
@@ -180,8 +295,7 @@ async function getNextBuilder() {
180
295
  outfile: (0, node_path_1.join)(workflowsRouteDir, 'route.js'),
181
296
  bundleFinalOutput: false,
182
297
  inputFiles,
183
- tsBaseUrl,
184
- tsPaths,
298
+ tsconfigPath,
185
299
  });
186
300
  }
187
301
  async buildWebhookRoute({ workflowGeneratedDir, }) {
@@ -216,114 +330,6 @@ async function getNextBuilder() {
216
330
  }
217
331
  }
218
332
  }
219
- async createSocketServer(_usersAppDir) {
220
- if (process.env.WORKFLOW_SOCKET_PORT) {
221
- return;
222
- }
223
- const workflowFiles = new Set();
224
- const stepFiles = new Set();
225
- let debounceTimer = null;
226
- let buildTriggered = false;
227
- const BUILD_DEBOUNCE_MS = this.isDevServer ? 250 : 1_000;
228
- // Attempt to load cached workflows/steps from previous build
229
- const cache = await this.readWorkflowsCache();
230
- if (cache) {
231
- for (const file of cache.workflowFiles) {
232
- workflowFiles.add(file);
233
- }
234
- for (const file of cache.stepFiles) {
235
- stepFiles.add(file);
236
- }
237
- }
238
- // Debounced build trigger
239
- const triggerBuild = () => {
240
- if (debounceTimer) {
241
- clearTimeout(debounceTimer);
242
- }
243
- debounceTimer = setTimeout(async () => {
244
- if (buildTriggered && !this.isDevServer) {
245
- // can't run another build after one has already been done
246
- // in production mode as it won't have any affect since after
247
- // the first is done we resolve the loaders for the stub entries
248
- // and they can't be refreshed/rebuilt after that in production
249
- return;
250
- }
251
- // Combine workflow and step files into single array
252
- const allFiles = new Set([...workflowFiles, ...stepFiles]);
253
- const inputFiles = Array.from(allFiles);
254
- try {
255
- buildTriggered = true;
256
- await this.build(inputFiles);
257
- // Write cache after successful build
258
- await this.writeWorkflowsCache(workflowFiles, stepFiles);
259
- }
260
- catch (error) {
261
- if (!this.isDevServer) {
262
- throw error;
263
- }
264
- console.error('Workflows build failed:', error);
265
- }
266
- }, BUILD_DEBOUNCE_MS);
267
- };
268
- // Configure and create socket server
269
- const config = {
270
- isDevServer: this.isDevServer || false,
271
- onFileDiscovered: (filePath, hasWorkflow, hasStep) => {
272
- const knownFile = workflowFiles.has(filePath) || stepFiles.has(filePath);
273
- if (hasWorkflow) {
274
- workflowFiles.add(filePath);
275
- }
276
- else {
277
- workflowFiles.delete(filePath);
278
- }
279
- if (hasStep) {
280
- stepFiles.add(filePath);
281
- }
282
- else {
283
- stepFiles.delete(filePath);
284
- }
285
- // Trigger debounced build if the file was previously seen
286
- // or has workflows/steps currently
287
- if (
288
- // in non-dev we always update debounce on activity
289
- !this.isDevServer ||
290
- hasWorkflow ||
291
- hasStep ||
292
- knownFile) {
293
- triggerBuild();
294
- }
295
- },
296
- onTriggerBuild: triggerBuild,
297
- };
298
- this.socketIO = await (0, socket_server_1.createSocketServer)(config);
299
- }
300
- async writeStubFiles(usersAppDir) {
301
- // NOTE: there is a limitation with turbopack that we can only
302
- // have number of virtual entries with pending promise less than
303
- // CPU count as that's the number of workers it uses so currently
304
- // we're fine with > 3 vCPU but <= 3 vCPUs and we won't be able to
305
- // discover workflows/steps
306
- const parallelismCount = node_os_1.default.availableParallelism();
307
- if (process.env.TURBOPACK && parallelismCount < 4) {
308
- console.warn(`Available parallelism of ${parallelismCount} is less than needed 4. This can cause workflows/steps to fail to discover properly in turbopack`);
309
- }
310
- const routeStubContent = "export * from './inner'";
311
- // this needs to change on each build so can refresh workflows
312
- const innerStubContent = `WORKFLOW_INNER_STUB_FILE_${Date.now()}`;
313
- const workflowDir = (0, node_path_1.join)(usersAppDir, '.well-known/workflow/v1');
314
- // Ensure directories exist
315
- await (0, promises_1.mkdir)((0, node_path_1.join)(workflowDir, 'flow'), { recursive: true });
316
- await (0, promises_1.mkdir)((0, node_path_1.join)(workflowDir, 'step'), { recursive: true });
317
- await (0, promises_1.mkdir)((0, node_path_1.join)(workflowDir, 'webhook/[token]'), { recursive: true });
318
- // Write route.ts stub files (re-export from inner)
319
- await (0, promises_1.writeFile)((0, node_path_1.join)(workflowDir, 'flow/route.js'), routeStubContent);
320
- await (0, promises_1.writeFile)((0, node_path_1.join)(workflowDir, 'step/route.js'), routeStubContent);
321
- await (0, promises_1.writeFile)((0, node_path_1.join)(workflowDir, 'webhook/[token]/route.js'), routeStubContent);
322
- // Write inner.js stub files (actual stub marker)
323
- await (0, promises_1.writeFile)((0, node_path_1.join)(workflowDir, 'flow/inner.js'), innerStubContent);
324
- await (0, promises_1.writeFile)((0, node_path_1.join)(workflowDir, 'step/inner.js'), innerStubContent);
325
- await (0, promises_1.writeFile)((0, node_path_1.join)(workflowDir, 'webhook/[token]/inner.js'), innerStubContent);
326
- }
327
333
  }
328
334
  CachedNextBuilder = NextBuilder;
329
335
  return NextBuilder;
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAGvC,wBAAgB,YAAY,CAC1B,cAAc,EACV,UAAU,GACV,CAAC,CACC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE;IAAE,aAAa,EAAE,UAAU,CAAA;CAAE,KAC/B,OAAO,CAAC,UAAU,CAAC,CAAC,EAC7B,EACE,SAAS,GACV,GAAE;IACD,SAAS,CAAC,EAAE;QACV,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB,CAAC;KACH,CAAC;CACE,IAkBJ,OAAO,MAAM,EACb,KAAK;IAAE,aAAa,EAAE,UAAU,CAAA;CAAE,yBA0FrC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAIvC,wBAAgB,YAAY,CAC1B,cAAc,EACV,UAAU,GACV,CAAC,CACC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE;IAAE,aAAa,EAAE,UAAU,CAAA;CAAE,KAC/B,OAAO,CAAC,UAAU,CAAC,CAAC,EAC7B,EACE,SAAS,GACV,GAAE;IACD,SAAS,CAAC,EAAE;QACV,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB,CAAC;KACH,CAAC;CACE,IAkBJ,OAAO,MAAM,EACb,KAAK;IAAE,aAAa,EAAE,UAAU,CAAA;CAAE,yBAoGrC"}
package/dist/index.js CHANGED
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.withWorkflow = withWorkflow;
7
+ const semver_1 = __importDefault(require("semver"));
4
8
  const builder_js_1 = require("./builder.js");
5
9
  function withWorkflow(nextConfigOrFn, { workflows, } = {}) {
6
10
  if (!process.env.VERCEL_DEPLOYMENT_ID) {
@@ -37,6 +41,8 @@ function withWorkflow(nextConfigOrFn, { workflows, } = {}) {
37
41
  nextConfig.turbopack.rules = {};
38
42
  }
39
43
  const existingRules = nextConfig.turbopack.rules;
44
+ const nextVersion = require('next/package.json').version;
45
+ const supportsTurboCondition = semver_1.default.gte(nextVersion, 'v16.0.0');
40
46
  for (const key of [
41
47
  '*.tsx',
42
48
  '*.ts',
@@ -48,15 +54,22 @@ function withWorkflow(nextConfigOrFn, { workflows, } = {}) {
48
54
  '*.cts',
49
55
  ]) {
50
56
  nextConfig.turbopack.rules[key] = {
57
+ ...(supportsTurboCondition
58
+ ? {
59
+ condition: {
60
+ ...existingRules[key]?.condition,
61
+ any: [
62
+ ...(existingRules[key]?.condition.any || []),
63
+ {
64
+ content: /(use workflow|use step)/,
65
+ },
66
+ ],
67
+ },
68
+ }
69
+ : {}),
51
70
  loaders: [...(existingRules[key]?.loaders || []), loaderPath],
52
71
  };
53
72
  }
54
- if (process.env.TURBOPACK) {
55
- if (!nextConfig.experimental) {
56
- nextConfig.experimental = {};
57
- }
58
- nextConfig.experimental.turbopackScopeHoisting = false;
59
- }
60
73
  // configure the loader for webpack
61
74
  const existingWebpackModify = nextConfig.webpack;
62
75
  nextConfig.webpack = (...args) => {
@@ -81,8 +94,10 @@ function withWorkflow(nextConfigOrFn, { workflows, } = {}) {
81
94
  // as Next.js uses child processes for different builds
82
95
  if (!process.env.WORKFLOW_NEXT_PRIVATE_BUILT &&
83
96
  phase !== 'phase-production-server') {
97
+ const shouldWatch = process.env.NODE_ENV === 'development';
84
98
  const NextBuilder = await (0, builder_js_1.getNextBuilder)();
85
99
  const workflowBuilder = new NextBuilder({
100
+ watch: shouldWatch,
86
101
  // discover workflows from pages/app entries
87
102
  dirs: ['pages', 'app', 'src/pages', 'src/app'],
88
103
  workingDir: process.cwd(),
@@ -92,7 +107,7 @@ function withWorkflow(nextConfigOrFn, { workflows, } = {}) {
92
107
  webhookBundlePath: '', // node used in base
93
108
  externalPackages: [...(nextConfig.serverExternalPackages || [])],
94
109
  });
95
- await workflowBuilder.init(nextConfig, phase);
110
+ await workflowBuilder.build();
96
111
  process.env.WORKFLOW_NEXT_PRIVATE_BUILT = '1';
97
112
  }
98
113
  return nextConfig;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAyMA,wBAA8B,cAAc,CAC1C,IAAI,EAAE;IACJ,YAAY,EAAE,MAAM,CAAC;CACtB,EACD,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,SAAS,EAAE,GAAG,GACb,OAAO,CAAC,MAAM,CAAC,CAwHjB"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAKA,wBAA8B,cAAc,CAC1C,IAAI,EAAE;IACJ,YAAY,EAAE,MAAM,CAAC;CACtB,EACD,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,SAAS,EAAE,GAAG,GACb,OAAO,CAAC,MAAM,CAAC,CAwFjB"}
package/dist/loader.js CHANGED
@@ -1,168 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = workflowLoader;
4
- const promises_1 = require("node:fs/promises");
5
- const node_net_1 = require("node:net");
6
4
  const node_path_1 = require("node:path");
7
5
  const core_1 = require("@swc/core");
8
- const builders_1 = require("@workflow/builders");
9
- const socket_server_1 = require("./socket-server");
10
- // Stub content written by builder to inner.js files
11
- const STUB_CONTENT = 'WORKFLOW_INNER_STUB_FILE';
12
- // Cache for socket connection to avoid reconnecting on every file
13
- let socketClientPromise = null;
14
- async function getSocketClient() {
15
- if (!socketClientPromise) {
16
- socketClientPromise = (async () => {
17
- const socketPort = process.env.WORKFLOW_SOCKET_PORT;
18
- if (!socketPort) {
19
- throw new Error(`Invariant: no socket port provided for workflow loader`);
20
- }
21
- const port = Number.parseInt(socketPort, 10);
22
- if (Number.isNaN(port)) {
23
- throw new Error(`Invariant: invalid socket port provided: ${socketPort}`);
24
- }
25
- const socket = (0, node_net_1.connect)({ port, host: '127.0.0.1' });
26
- // Wait for connection
27
- await new Promise((resolve, reject) => {
28
- const timeout = setTimeout(() => {
29
- socket.destroy();
30
- reject(new Error('Socket connection timeout'));
31
- }, 1000);
32
- socket.on('connect', () => {
33
- socket.setNoDelay(true);
34
- clearTimeout(timeout);
35
- resolve();
36
- });
37
- socket.on('error', (err) => {
38
- clearTimeout(timeout);
39
- reject(err);
40
- });
41
- });
42
- return socket;
43
- })();
44
- }
45
- return socketClientPromise;
46
- }
47
- async function notifySocketServer(filename, hasWorkflow, hasStep) {
48
- const socket = await getSocketClient();
49
- if (!socket) {
50
- throw new Error(`Invariant: missing workflow socket connection`);
51
- }
52
- const authToken = process.env.WORKFLOW_SOCKET_AUTH;
53
- if (!authToken) {
54
- throw new Error(`Invariant: no socket auth token provided for workflow loader`);
55
- }
56
- // Send authenticated message with workflow and step information
57
- const message = {
58
- type: 'file-discovered',
59
- filePath: filename,
60
- hasWorkflow,
61
- hasStep,
62
- };
63
- socket.write((0, socket_server_1.serializeMessage)(message, authToken));
64
- }
65
- async function waitForBuildComplete() {
66
- const socket = await getSocketClient();
67
- return new Promise((resolve, reject) => {
68
- if (!socket) {
69
- reject(new Error('Socket not available'));
70
- return;
71
- }
72
- let buffer = '';
73
- let timeout = null;
74
- let settled = false;
75
- const cleanup = () => {
76
- if (timeout) {
77
- clearTimeout(timeout);
78
- timeout = null;
79
- }
80
- socket.off('data', onData);
81
- socket.off('error', onError);
82
- socket.off('end', onEnd);
83
- socket.off('close', onClose);
84
- };
85
- const settle = (callback) => {
86
- if (!settled) {
87
- settled = true;
88
- cleanup();
89
- callback();
90
- }
91
- };
92
- const onData = (data) => {
93
- buffer += data.toString();
94
- const authToken = process.env.WORKFLOW_SOCKET_AUTH;
95
- if (!authToken) {
96
- settle(() => reject(new Error('No socket auth token available')));
97
- return;
98
- }
99
- let newlineIndex = buffer.indexOf('\n');
100
- while (newlineIndex !== -1) {
101
- const line = buffer.slice(0, newlineIndex);
102
- buffer = buffer.slice(newlineIndex + 1);
103
- newlineIndex = buffer.indexOf('\n');
104
- const message = (0, socket_server_1.parseMessage)(line, authToken);
105
- if (message && message.type === 'build-complete') {
106
- settle(() => resolve());
107
- }
108
- }
109
- };
110
- const onError = (err) => {
111
- settle(() => reject(new Error(`Socket error: ${err.message}`)));
112
- };
113
- const onEnd = () => {
114
- settle(() => reject(new Error('Socket ended unexpectedly before build-complete message received')));
115
- };
116
- const onClose = () => {
117
- settle(() => reject(new Error('Socket closed unexpectedly before build-complete message received')));
118
- };
119
- // Set timeout to prevent indefinite hanging
120
- timeout = setTimeout(() => {
121
- settle(() => reject(new Error('Timeout waiting for build-complete message (60 seconds elapsed)')));
122
- }, 60000); // 60 second timeout
123
- socket.on('data', onData);
124
- socket.on('error', onError);
125
- socket.on('end', onEnd);
126
- socket.on('close', onClose);
127
- const authToken = process.env.WORKFLOW_SOCKET_AUTH;
128
- if (!authToken) {
129
- throw new Error(`Invariant: no socket auth token provided for workflow loader`);
130
- }
131
- // we trigger a build here in case no other events trigger
132
- // the build so that we aren't waiting until 60 second timeout
133
- const message = {
134
- type: 'trigger-build',
135
- };
136
- socket.write((0, socket_server_1.serializeMessage)(message, authToken));
137
- });
138
- }
139
6
  // This loader applies the "use workflow"/"use step"
140
7
  // client transformation
141
8
  async function workflowLoader(source, sourceMap) {
142
9
  const filename = this.resourcePath;
143
10
  const normalizedSource = source.toString();
144
- // Normalize path separators for cross-platform compatibility
145
- const normalizedFilename = filename.replace(/\\/g, '/');
146
- // Check if this is a .well-known workflow inner.js file with stub content
147
- const isWellKnownInnerFile = normalizedFilename.includes('.well-known/workflow/v1/') &&
148
- (normalizedFilename.includes('/flow/inner.js') ||
149
- normalizedFilename.includes('/step/inner.js') ||
150
- normalizedFilename.includes('/webhook/[token]/inner.js'));
151
- if (isWellKnownInnerFile &&
152
- normalizedSource.trim().startsWith(STUB_CONTENT)) {
153
- // Wait for build to complete
154
- await waitForBuildComplete();
155
- // Read the actual generated file content
156
- const actualContent = await (0, promises_1.readFile)(filename.replace(/inner\.js$/, 'route.js'), 'utf-8');
157
- return actualContent;
158
- }
159
- // Check for workflow and step directives
160
- const hasWorkflow = builders_1.useWorkflowPattern.test(normalizedSource);
161
- const hasStep = builders_1.useStepPattern.test(normalizedSource);
162
- // Send message to socket server if workflow or step detected
163
- await notifySocketServer(filename, hasWorkflow, hasStep);
164
11
  // only apply the transform if file needs it
165
- if (!hasWorkflow && !hasStep) {
12
+ if (!normalizedSource.match(/(use step|use workflow)/)) {
166
13
  return normalizedSource;
167
14
  }
168
15
  const isTypeScript = filename.endsWith('.ts') ||
@@ -180,7 +27,7 @@ async function workflowLoader(source, sourceMap) {
180
27
  const lowerWd = normalizedWorkingDir.toLowerCase();
181
28
  const lowerPath = normalizedFilepath.toLowerCase();
182
29
  let relativeFilename;
183
- if (lowerPath.startsWith(`${lowerWd}/`)) {
30
+ if (lowerPath.startsWith(lowerWd + '/')) {
184
31
  // File is under working directory - manually calculate relative path
185
32
  relativeFilename = normalizedFilepath.substring(normalizedWorkingDir.length + 1);
186
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":";;AAKA,iCA8FC;AAnGD,yCAAqC;AACrC,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,GAChB,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;QACxB,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QACzB,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QACzB,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAE5B,6CAA6C;IAC7C,8EAA8E;IAC9E,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACjC,MAAM,oBAAoB,GAAG,UAAU;SACpC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACtB,MAAM,kBAAkB,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAExD,yFAAyF;IACzF,MAAM,OAAO,GAAG,oBAAoB,CAAC,WAAW,EAAE,CAAC;IACnD,MAAM,SAAS,GAAG,kBAAkB,CAAC,WAAW,EAAE,CAAC;IAEnD,IAAI,gBAAwB,CAAC;IAC7B,IAAI,SAAS,CAAC,UAAU,CAAC,OAAO,GAAG,GAAG,CAAC,EAAE,CAAC;QACxC,qEAAqE;QACrE,gBAAgB,GAAG,kBAAkB,CAAC,SAAS,CAC7C,oBAAoB,CAAC,MAAM,GAAG,CAAC,CAChC,CAAC;IACJ,CAAC;SAAM,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QACjC,mDAAmD;QACnD,gBAAgB,GAAG,GAAG,CAAC;IACzB,CAAC;SAAM,CAAC;QACN,qDAAqD;QACrD,gBAAgB,GAAG,IAAA,oBAAQ,EAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAEtE,IAAI,gBAAgB,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,gBAAgB,GAAG,gBAAgB;iBAChC,KAAK,CAAC,GAAG,CAAC;iBACV,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC;iBAC/B,IAAI,CAAC,GAAG,CAAC,CAAC;QACf,CAAC;IACH,CAAC;IAED,oEAAoE;IACpE,IAAI,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACvE,mEAAmE;QACnE,gBAAgB,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,YAAY,CAAC;IACzE,CAAC;IAED,qBAAqB;IACrB,MAAM,MAAM,GAAG,MAAM,IAAA,gBAAS,EAAC,gBAAgB,EAAE;QAC/C,QAAQ,EAAE,gBAAgB;QAC1B,GAAG,EAAE;YACH,MAAM,EAAE;gBACN,GAAG,CAAC,YAAY;oBACd,CAAC,CAAC;wBACE,MAAM,EAAE,YAAY;wBACpB,GAAG,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;qBAC/B;oBACH,CAAC,CAAC;wBACE,MAAM,EAAE,YAAY;wBACpB,GAAG,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;qBAC/B,CAAC;aACP;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;YACD,SAAS,EAAE;gBACT,KAAK,EAAE;oBACL,OAAO,EAAE,UAAU;iBACpB;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"}
@@ -0,0 +1,2 @@
1
+ export * from '@workflow/core/dist/runtime';
2
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAGA,cAAc,6BAA6B,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ // re-export runtime as stub for resolving to not
18
+ // require @workflow/core be a dependency as well as
19
+ // @workflow/next
20
+ __exportStar(require("@workflow/core/dist/runtime"), exports);
21
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAAiD;AACjD,oDAAoD;AACpD,iBAAiB;AACjB,8DAA4C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@workflow/next",
3
- "version": "4.0.1-beta.37",
3
+ "version": "4.0.1-beta.38",
4
4
  "description": "Next.js integration for Workflow DevKit",
5
5
  "type": "commonjs",
6
6
  "main": "dist/index.js",
@@ -18,16 +18,21 @@
18
18
  },
19
19
  "exports": {
20
20
  ".": "./dist/index.js",
21
- "./loader": "./dist/loader.js"
21
+ "./loader": "./dist/loader.js",
22
+ "./runtime": "./dist/runtime.js"
22
23
  },
23
24
  "dependencies": {
24
25
  "@swc/core": "1.15.3",
25
- "@workflow/builders": "4.0.1-beta.32",
26
- "@workflow/core": "4.0.1-beta.33",
26
+ "semver": "7.7.3",
27
+ "watchpack": "2.4.4",
28
+ "@workflow/builders": "4.0.1-beta.33",
29
+ "@workflow/core": "4.0.1-beta.34",
27
30
  "@workflow/swc-plugin": "4.0.1-beta.12"
28
31
  },
29
32
  "devDependencies": {
30
33
  "@types/node": "22.19.0",
34
+ "@types/semver": "7.7.1",
35
+ "@types/watchpack": "2.4.4",
31
36
  "next": "16.0.10",
32
37
  "@workflow/tsconfig": "4.0.1-beta.0"
33
38
  },
@@ -1,46 +0,0 @@
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
- } | {
10
- type: 'trigger-build';
11
- } | {
12
- type: 'build-complete';
13
- };
14
- /**
15
- * Configuration for the socket server
16
- */
17
- export interface SocketServerConfig {
18
- isDevServer: boolean;
19
- onFileDiscovered: (filePath: string, hasWorkflow: boolean, hasStep: boolean) => void;
20
- onTriggerBuild: () => void;
21
- }
22
- /**
23
- * Interface for the socket IO instance returned by createSocketServer
24
- */
25
- export interface SocketIO {
26
- emit(event: 'build-complete'): void;
27
- getAuthToken(): string;
28
- }
29
- /**
30
- * Serialize a message with authentication preamble
31
- */
32
- export declare function serializeMessage(message: SocketMessage, authToken: string): string;
33
- /**
34
- * Parse and authenticate a message from the socket
35
- * Returns the parsed message if valid, null otherwise
36
- */
37
- export declare function parseMessage(line: string, authToken: string): SocketMessage | null;
38
- /**
39
- * Create a TCP socket server for loader<->builder communication.
40
- * Returns a SocketIO interface for broadcasting messages and the auth token.
41
- *
42
- * SECURITY: Server listens on 127.0.0.1 (localhost only) and uses
43
- * message authentication to prevent processing of unauthorized messages.
44
- */
45
- export declare function createSocketServer(config: SocketServerConfig): Promise<SocketIO>;
46
- //# sourceMappingURL=socket-server.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"socket-server.d.ts","sourceRoot":"","sources":["../src/socket-server.ts"],"names":[],"mappings":"AAiBA;;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;CAClB,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,KACb,IAAI,CAAC;IACV,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACpC,YAAY,IAAI,MAAM,CAAC;CACxB;AAED;;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,CA2EnB"}
@@ -1,132 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.serializeMessage = serializeMessage;
4
- exports.parseMessage = parseMessage;
5
- exports.createSocketServer = createSocketServer;
6
- const node_crypto_1 = require("node:crypto");
7
- const node_net_1 = require("node:net");
8
- /**
9
- * Magic preamble that must prefix all messages to authenticate them as workflow messages.
10
- * This prevents accidental processing of messages from port scanners or other local processes.
11
- */
12
- const MESSAGE_PREAMBLE = 'WF:';
13
- /**
14
- * Generate a random authentication token for this server session.
15
- * Clients must include this token in all messages.
16
- */
17
- function generateAuthToken() {
18
- return (0, node_crypto_1.randomBytes)(16).toString('hex');
19
- }
20
- /**
21
- * Serialize a message with authentication preamble
22
- */
23
- function serializeMessage(message, authToken) {
24
- return `${MESSAGE_PREAMBLE}${authToken}:${JSON.stringify(message)}\n`;
25
- }
26
- /**
27
- * Parse and authenticate a message from the socket
28
- * Returns the parsed message if valid, null otherwise
29
- */
30
- function parseMessage(line, authToken) {
31
- const trimmed = line.trim();
32
- if (!trimmed) {
33
- return null;
34
- }
35
- // Check for preamble
36
- if (!trimmed.startsWith(MESSAGE_PREAMBLE)) {
37
- console.warn('Received message without valid preamble, ignoring');
38
- return null;
39
- }
40
- // Extract auth token and payload
41
- const withoutPreamble = trimmed.slice(MESSAGE_PREAMBLE.length);
42
- const colonIndex = withoutPreamble.indexOf(':');
43
- if (colonIndex === -1) {
44
- console.warn('Received message without auth token separator, ignoring');
45
- return null;
46
- }
47
- const messageToken = withoutPreamble.slice(0, colonIndex);
48
- const payload = withoutPreamble.slice(colonIndex + 1);
49
- // Verify auth token
50
- if (messageToken !== authToken) {
51
- console.warn('Received message with invalid auth token, ignoring');
52
- return null;
53
- }
54
- // Parse JSON payload
55
- try {
56
- return JSON.parse(payload);
57
- }
58
- catch (error) {
59
- console.error('Failed to parse socket message JSON:', error);
60
- return null;
61
- }
62
- }
63
- /**
64
- * Create a TCP socket server for loader<->builder communication.
65
- * Returns a SocketIO interface for broadcasting messages and the auth token.
66
- *
67
- * SECURITY: Server listens on 127.0.0.1 (localhost only) and uses
68
- * message authentication to prevent processing of unauthorized messages.
69
- */
70
- async function createSocketServer(config) {
71
- const authToken = generateAuthToken();
72
- const clients = new Set();
73
- let buildTriggered = false;
74
- const server = (0, node_net_1.createServer)((socket) => {
75
- socket.setNoDelay(true);
76
- clients.add(socket);
77
- // Send build-complete if build already finished (production mode)
78
- if (buildTriggered && !config.isDevServer) {
79
- socket.write(serializeMessage({ type: 'build-complete' }, authToken));
80
- }
81
- let buffer = '';
82
- socket.on('data', (data) => {
83
- buffer += data.toString();
84
- // Process complete messages (newline-delimited)
85
- let newlineIndex = buffer.indexOf('\n');
86
- while (newlineIndex !== -1) {
87
- const line = buffer.slice(0, newlineIndex);
88
- buffer = buffer.slice(newlineIndex + 1);
89
- newlineIndex = buffer.indexOf('\n');
90
- const message = parseMessage(line, authToken);
91
- if (!message) {
92
- continue;
93
- }
94
- if (message.type === 'file-discovered') {
95
- config.onFileDiscovered(message.filePath, message.hasWorkflow, message.hasStep);
96
- }
97
- else if (message.type === 'trigger-build') {
98
- config.onTriggerBuild();
99
- }
100
- }
101
- });
102
- socket.on('end', () => {
103
- clients.delete(socket);
104
- });
105
- socket.on('error', (err) => {
106
- console.error('Socket error:', err);
107
- clients.delete(socket);
108
- });
109
- });
110
- // Listen on random available port (localhost only)
111
- await new Promise((resolve) => {
112
- server.listen(0, '127.0.0.1', () => {
113
- const address = server.address();
114
- if (address && typeof address === 'object') {
115
- process.env.WORKFLOW_SOCKET_PORT = String(address.port);
116
- process.env.WORKFLOW_SOCKET_AUTH = authToken;
117
- }
118
- resolve();
119
- });
120
- });
121
- return {
122
- emit: (_event) => {
123
- buildTriggered = true;
124
- const message = serializeMessage({ type: 'build-complete' }, authToken);
125
- for (const client of clients) {
126
- client.write(message);
127
- }
128
- },
129
- getAuthToken: () => authToken,
130
- };
131
- }
132
- //# sourceMappingURL=socket-server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"socket-server.js","sourceRoot":"","sources":["../src/socket-server.ts"],"names":[],"mappings":"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"}