@workflow/next 4.0.1-beta.34 → 4.0.1-beta.35
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/dist/builder.d.ts.map +1 -1
- package/dist/builder.js +171 -207
- package/dist/builder.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -22
- package/dist/index.js.map +1 -1
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +145 -2
- package/dist/loader.js.map +1 -1
- package/dist/socket-server.d.ts +46 -0
- package/dist/socket-server.d.ts.map +1 -0
- package/dist/socket-server.js +132 -0
- package/dist/socket-server.js.map +1 -0
- package/package.json +4 -9
- package/dist/runtime.d.ts +0 -2
- package/dist/runtime.d.ts.map +0 -1
- package/dist/runtime.js +0 -21
- package/dist/runtime.js.map +0 -1
package/dist/builder.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAgBA,wBAAsB,cAAc,iBAyXnC"}
|
package/dist/builder.js
CHANGED
|
@@ -6,8 +6,9 @@ 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"));
|
|
9
10
|
const node_path_1 = require("node:path");
|
|
10
|
-
const
|
|
11
|
+
const socket_server_1 = require("./socket-server");
|
|
11
12
|
let CachedNextBuilder;
|
|
12
13
|
// Create the NextBuilder class dynamically by extending the ESM BaseBuilder
|
|
13
14
|
// This is exported as getNextBuilder() to allow CommonJS modules to import
|
|
@@ -16,226 +17,81 @@ async function getNextBuilder() {
|
|
|
16
17
|
if (CachedNextBuilder) {
|
|
17
18
|
return CachedNextBuilder;
|
|
18
19
|
}
|
|
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")'));
|
|
20
|
+
const { BaseBuilder: BaseBuilderClass, STEP_QUEUE_TRIGGER, WORKFLOW_QUEUE_TRIGGER, } = await import('@workflow/builders');
|
|
22
21
|
class NextBuilder extends BaseBuilderClass {
|
|
23
|
-
|
|
22
|
+
socketIO;
|
|
23
|
+
isDevServer;
|
|
24
|
+
nextConfig;
|
|
25
|
+
getDistDir() {
|
|
26
|
+
return this.nextConfig?.distDir || '.next';
|
|
27
|
+
}
|
|
28
|
+
async writeWorkflowsCache(workflowFiles, stepFiles) {
|
|
29
|
+
const cwd = this.config.workingDir;
|
|
30
|
+
const distDir = this.getDistDir();
|
|
31
|
+
const cacheDir = (0, node_path_1.join)(cwd, distDir, 'cache');
|
|
32
|
+
const cacheFile = (0, node_path_1.join)(cacheDir, 'workflows.json');
|
|
33
|
+
try {
|
|
34
|
+
await (0, promises_1.mkdir)(cacheDir, { recursive: true });
|
|
35
|
+
const cacheData = {
|
|
36
|
+
workflowFiles: Array.from(workflowFiles),
|
|
37
|
+
stepFiles: Array.from(stepFiles),
|
|
38
|
+
timestamp: Date.now(),
|
|
39
|
+
};
|
|
40
|
+
await (0, promises_1.writeFile)(cacheFile, JSON.stringify(cacheData, null, 2));
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
console.error('Failed to write workflows cache:', error);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
async readWorkflowsCache() {
|
|
47
|
+
const cwd = this.config.workingDir;
|
|
48
|
+
const distDir = this.getDistDir();
|
|
49
|
+
const cacheFile = (0, node_path_1.join)(cwd, distDir, 'cache', 'workflows.json');
|
|
50
|
+
try {
|
|
51
|
+
const cacheContent = await (0, promises_1.readFile)(cacheFile, 'utf-8');
|
|
52
|
+
const cacheData = JSON.parse(cacheContent);
|
|
53
|
+
return {
|
|
54
|
+
workflowFiles: cacheData.workflowFiles || [],
|
|
55
|
+
stepFiles: cacheData.stepFiles || [],
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
// Cache file doesn't exist or is invalid, return null
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
async init(nextConfig, phase) {
|
|
64
|
+
this.nextConfig = nextConfig;
|
|
65
|
+
this.isDevServer = phase === 'phase-development-server';
|
|
66
|
+
const outputDir = await this.findAppDirectory();
|
|
67
|
+
// Write stub files
|
|
68
|
+
await this.writeStubFiles(outputDir);
|
|
69
|
+
// Create socket server for file path communication
|
|
70
|
+
await this.createSocketServer(outputDir);
|
|
71
|
+
}
|
|
72
|
+
async build(inputFiles) {
|
|
24
73
|
const outputDir = await this.findAppDirectory();
|
|
25
74
|
const workflowGeneratedDir = (0, node_path_1.join)(outputDir, '.well-known/workflow/v1');
|
|
26
75
|
// Ensure output directories exist
|
|
27
76
|
await (0, promises_1.mkdir)(workflowGeneratedDir, { recursive: true });
|
|
28
77
|
// ignore the generated assets
|
|
29
78
|
await (0, promises_1.writeFile)((0, node_path_1.join)(workflowGeneratedDir, '.gitignore'), '*');
|
|
30
|
-
|
|
79
|
+
// Use provided inputFiles or discover them
|
|
80
|
+
const files = inputFiles || (await this.getInputFiles());
|
|
31
81
|
const tsConfig = await this.getTsConfigOptions();
|
|
32
82
|
const options = {
|
|
33
|
-
inputFiles,
|
|
83
|
+
inputFiles: files,
|
|
34
84
|
workflowGeneratedDir,
|
|
35
85
|
tsBaseUrl: tsConfig.baseUrl,
|
|
36
86
|
tsPaths: tsConfig.paths,
|
|
37
87
|
};
|
|
38
|
-
|
|
39
|
-
|
|
88
|
+
await this.buildStepsFunction(options);
|
|
89
|
+
await this.buildWorkflowsFunction(options);
|
|
40
90
|
await this.buildWebhookRoute({ workflowGeneratedDir });
|
|
41
91
|
await this.writeFunctionsConfig(outputDir);
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
}
|
|
46
|
-
if (!workflowsBundle) {
|
|
47
|
-
throw new Error('Invariant: expected workflows bundle in watch mode');
|
|
48
|
-
}
|
|
49
|
-
let stepsCtx = stepsBuildContext;
|
|
50
|
-
let workflowsCtx = workflowsBundle;
|
|
51
|
-
const normalizePath = (pathname) => pathname.replace(/\\/g, '/');
|
|
52
|
-
const knownFiles = new Set();
|
|
53
|
-
let previousTimeInfo = new Map();
|
|
54
|
-
const watchableExtensions = new Set([
|
|
55
|
-
'.js',
|
|
56
|
-
'.jsx',
|
|
57
|
-
'.ts',
|
|
58
|
-
'.tsx',
|
|
59
|
-
'.mts',
|
|
60
|
-
'.cts',
|
|
61
|
-
'.cjs',
|
|
62
|
-
'.mjs',
|
|
63
|
-
]);
|
|
64
|
-
const ignoredPathFragments = [
|
|
65
|
-
'/.git/',
|
|
66
|
-
'/node_modules/',
|
|
67
|
-
'/.next/',
|
|
68
|
-
'/.turbo/',
|
|
69
|
-
'/.vercel/',
|
|
70
|
-
'/dist/',
|
|
71
|
-
'/build/',
|
|
72
|
-
'/out/',
|
|
73
|
-
'/.cache/',
|
|
74
|
-
'/.yarn/',
|
|
75
|
-
'/.pnpm-store/',
|
|
76
|
-
'/.parcel-cache/',
|
|
77
|
-
'/.well-known/workflow/',
|
|
78
|
-
];
|
|
79
|
-
const normalizedGeneratedDir = workflowGeneratedDir.replace(/\\/g, '/');
|
|
80
|
-
ignoredPathFragments.push(normalizedGeneratedDir);
|
|
81
|
-
// There is a node.js bug on MacOS which causes closing file watchers to be really slow.
|
|
82
|
-
// This limits the number of watchers to mitigate the issue.
|
|
83
|
-
// https://github.com/nodejs/node/issues/29949
|
|
84
|
-
process.env.WATCHPACK_WATCHER_LIMIT =
|
|
85
|
-
process.platform === 'darwin' ? '20' : undefined;
|
|
86
|
-
const watcher = new watchpack_1.default({
|
|
87
|
-
// Watchpack default is 200ms which adds 200ms of dead time on bootup.
|
|
88
|
-
aggregateTimeout: 5,
|
|
89
|
-
ignored: (pathname) => {
|
|
90
|
-
const normalizedPath = pathname.replace(/\\/g, '/');
|
|
91
|
-
const extension = (0, node_path_1.extname)(normalizedPath);
|
|
92
|
-
if (extension && !watchableExtensions.has(extension)) {
|
|
93
|
-
return true;
|
|
94
|
-
}
|
|
95
|
-
if (normalizedPath.startsWith(normalizedGeneratedDir)) {
|
|
96
|
-
return true;
|
|
97
|
-
}
|
|
98
|
-
for (const fragment of ignoredPathFragments) {
|
|
99
|
-
if (normalizedPath.includes(fragment)) {
|
|
100
|
-
return true;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
return false;
|
|
104
|
-
},
|
|
105
|
-
});
|
|
106
|
-
const readTimeInfoEntries = () => {
|
|
107
|
-
const rawEntries = watcher.getTimeInfoEntries();
|
|
108
|
-
const normalizedEntries = new Map();
|
|
109
|
-
for (const [path, info] of rawEntries) {
|
|
110
|
-
normalizedEntries.set(normalizePath(path), info);
|
|
111
|
-
}
|
|
112
|
-
return normalizedEntries;
|
|
113
|
-
};
|
|
114
|
-
let rebuildQueue = Promise.resolve();
|
|
115
|
-
const enqueue = (task) => {
|
|
116
|
-
rebuildQueue = rebuildQueue.then(task).catch((error) => {
|
|
117
|
-
console.error('Failed to process file change', error);
|
|
118
|
-
});
|
|
119
|
-
return rebuildQueue;
|
|
120
|
-
};
|
|
121
|
-
const fullRebuild = async () => {
|
|
122
|
-
const newInputFiles = await this.getInputFiles();
|
|
123
|
-
options.inputFiles = newInputFiles;
|
|
124
|
-
await stepsCtx.dispose();
|
|
125
|
-
const newStepsCtx = await this.buildStepsFunction(options);
|
|
126
|
-
if (!newStepsCtx) {
|
|
127
|
-
throw new Error('Invariant: expected steps build context after rebuild');
|
|
128
|
-
}
|
|
129
|
-
stepsCtx = newStepsCtx;
|
|
130
|
-
await workflowsCtx.interimBundleCtx.dispose();
|
|
131
|
-
const newWorkflowsCtx = await this.buildWorkflowsFunction(options);
|
|
132
|
-
if (!newWorkflowsCtx) {
|
|
133
|
-
throw new Error('Invariant: expected workflows bundle context after rebuild');
|
|
134
|
-
}
|
|
135
|
-
workflowsCtx = newWorkflowsCtx;
|
|
136
|
-
};
|
|
137
|
-
const logBuildMessages = (result, label) => {
|
|
138
|
-
const logByType = (messages, method) => {
|
|
139
|
-
if (!messages || messages.length === 0) {
|
|
140
|
-
return;
|
|
141
|
-
}
|
|
142
|
-
const descriptor = method === 'error' ? 'errors' : 'warnings';
|
|
143
|
-
console[method](`${descriptor} while rebuilding ${label}`);
|
|
144
|
-
for (const message of messages) {
|
|
145
|
-
console[method](message);
|
|
146
|
-
}
|
|
147
|
-
};
|
|
148
|
-
logByType(result.errors, 'error');
|
|
149
|
-
logByType(result.warnings, 'warn');
|
|
150
|
-
};
|
|
151
|
-
const rebuildExistingFiles = async () => {
|
|
152
|
-
const rebuiltStepStart = Date.now();
|
|
153
|
-
const stepsResult = await stepsCtx.rebuild();
|
|
154
|
-
logBuildMessages(stepsResult, 'steps bundle');
|
|
155
|
-
console.log('Rebuilt steps bundle', `${Date.now() - rebuiltStepStart}ms`);
|
|
156
|
-
const rebuiltWorkflowStart = Date.now();
|
|
157
|
-
const workflowResult = await workflowsCtx.interimBundleCtx.rebuild();
|
|
158
|
-
logBuildMessages(workflowResult, 'workflows bundle');
|
|
159
|
-
if (!workflowResult.outputFiles ||
|
|
160
|
-
workflowResult.outputFiles.length === 0) {
|
|
161
|
-
console.error('No output generated while rebuilding workflows bundle');
|
|
162
|
-
return;
|
|
163
|
-
}
|
|
164
|
-
await workflowsCtx.bundleFinal(workflowResult.outputFiles[0].text);
|
|
165
|
-
console.log('Rebuilt workflow bundle', `${Date.now() - rebuiltWorkflowStart}ms`);
|
|
166
|
-
};
|
|
167
|
-
const isWatchableFile = (path) => watchableExtensions.has((0, node_path_1.extname)(path));
|
|
168
|
-
const getComparableTimestamp = (entry) => entry.timestamp ?? entry.safeTime;
|
|
169
|
-
const findRemovedFiles = (currentEntries, previousEntries) => {
|
|
170
|
-
const removed = [];
|
|
171
|
-
for (const path of previousEntries.keys()) {
|
|
172
|
-
if (!currentEntries.has(path) && isWatchableFile(path)) {
|
|
173
|
-
removed.push(path);
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
return removed;
|
|
177
|
-
};
|
|
178
|
-
const findAddedAndModifiedFiles = (currentEntries, previousEntries) => {
|
|
179
|
-
const added = [];
|
|
180
|
-
const modified = [];
|
|
181
|
-
for (const [path, info] of currentEntries) {
|
|
182
|
-
if (!isWatchableFile(path)) {
|
|
183
|
-
continue;
|
|
184
|
-
}
|
|
185
|
-
const previous = previousEntries.get(path);
|
|
186
|
-
if (!previous) {
|
|
187
|
-
added.push(path);
|
|
188
|
-
continue;
|
|
189
|
-
}
|
|
190
|
-
if (getComparableTimestamp(info) !== getComparableTimestamp(previous)) {
|
|
191
|
-
modified.push(path);
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
return { added, modified };
|
|
195
|
-
};
|
|
196
|
-
const determineFileChanges = (currentEntries, previousEntries) => {
|
|
197
|
-
const removedFiles = findRemovedFiles(currentEntries, previousEntries);
|
|
198
|
-
const { added, modified } = findAddedAndModifiedFiles(currentEntries, previousEntries);
|
|
199
|
-
return {
|
|
200
|
-
addedFiles: added,
|
|
201
|
-
modifiedFiles: modified,
|
|
202
|
-
removedFiles,
|
|
203
|
-
};
|
|
204
|
-
};
|
|
205
|
-
let isInitial = true;
|
|
206
|
-
watcher.on('aggregated', () => {
|
|
207
|
-
const currentEntries = readTimeInfoEntries();
|
|
208
|
-
const { addedFiles, modifiedFiles, removedFiles } = determineFileChanges(currentEntries, previousTimeInfo);
|
|
209
|
-
previousTimeInfo = currentEntries;
|
|
210
|
-
if (isInitial) {
|
|
211
|
-
isInitial = false;
|
|
212
|
-
return;
|
|
213
|
-
}
|
|
214
|
-
if (addedFiles.length === 0 &&
|
|
215
|
-
modifiedFiles.length === 0 &&
|
|
216
|
-
removedFiles.length === 0) {
|
|
217
|
-
return;
|
|
218
|
-
}
|
|
219
|
-
for (const removal of removedFiles) {
|
|
220
|
-
knownFiles.delete(removal);
|
|
221
|
-
}
|
|
222
|
-
for (const added of addedFiles) {
|
|
223
|
-
knownFiles.add(added);
|
|
224
|
-
}
|
|
225
|
-
enqueue(async () => {
|
|
226
|
-
if (addedFiles.length > 0 || removedFiles.length > 0) {
|
|
227
|
-
await fullRebuild();
|
|
228
|
-
return;
|
|
229
|
-
}
|
|
230
|
-
if (modifiedFiles.length > 0) {
|
|
231
|
-
await rebuildExistingFiles();
|
|
232
|
-
}
|
|
233
|
-
});
|
|
234
|
-
});
|
|
235
|
-
watcher.watch({
|
|
236
|
-
directories: [this.config.workingDir],
|
|
237
|
-
startTime: 0,
|
|
238
|
-
});
|
|
92
|
+
// Signal build complete to connected clients
|
|
93
|
+
if (this.socketIO) {
|
|
94
|
+
this.socketIO.emit('build-complete');
|
|
239
95
|
}
|
|
240
96
|
}
|
|
241
97
|
async getInputFiles() {
|
|
@@ -248,7 +104,7 @@ async function getNextBuilder() {
|
|
|
248
104
|
}
|
|
249
105
|
async writeFunctionsConfig(outputDir) {
|
|
250
106
|
// we don't run this in development mode as it's not needed
|
|
251
|
-
if (
|
|
107
|
+
if (this.isDevServer) {
|
|
252
108
|
return;
|
|
253
109
|
}
|
|
254
110
|
const generatedConfig = {
|
|
@@ -326,6 +182,114 @@ async function getNextBuilder() {
|
|
|
326
182
|
}
|
|
327
183
|
}
|
|
328
184
|
}
|
|
185
|
+
async createSocketServer(_usersAppDir) {
|
|
186
|
+
if (process.env.WORKFLOW_SOCKET_PORT) {
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
const workflowFiles = new Set();
|
|
190
|
+
const stepFiles = new Set();
|
|
191
|
+
let debounceTimer = null;
|
|
192
|
+
let buildTriggered = false;
|
|
193
|
+
const BUILD_DEBOUNCE_MS = this.isDevServer ? 500 : 2_000;
|
|
194
|
+
// Attempt to load cached workflows/steps from previous build
|
|
195
|
+
const cache = await this.readWorkflowsCache();
|
|
196
|
+
if (cache) {
|
|
197
|
+
for (const file of cache.workflowFiles) {
|
|
198
|
+
workflowFiles.add(file);
|
|
199
|
+
}
|
|
200
|
+
for (const file of cache.stepFiles) {
|
|
201
|
+
stepFiles.add(file);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
// Debounced build trigger
|
|
205
|
+
const triggerBuild = () => {
|
|
206
|
+
if (debounceTimer) {
|
|
207
|
+
clearTimeout(debounceTimer);
|
|
208
|
+
}
|
|
209
|
+
debounceTimer = setTimeout(async () => {
|
|
210
|
+
if (buildTriggered && !this.isDevServer) {
|
|
211
|
+
// can't run another build after one has already been done
|
|
212
|
+
// in production mode as it won't have any affect since after
|
|
213
|
+
// the first is done we resolve the loaders for the stub entries
|
|
214
|
+
// and they can't be refreshed/rebuilt after that in production
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
// Combine workflow and step files into single array
|
|
218
|
+
const allFiles = new Set([...workflowFiles, ...stepFiles]);
|
|
219
|
+
const inputFiles = Array.from(allFiles);
|
|
220
|
+
try {
|
|
221
|
+
buildTriggered = true;
|
|
222
|
+
await this.build(inputFiles);
|
|
223
|
+
// Write cache after successful build
|
|
224
|
+
await this.writeWorkflowsCache(workflowFiles, stepFiles);
|
|
225
|
+
}
|
|
226
|
+
catch (error) {
|
|
227
|
+
if (!this.isDevServer) {
|
|
228
|
+
throw error;
|
|
229
|
+
}
|
|
230
|
+
console.error('Workflows build failed:', error);
|
|
231
|
+
}
|
|
232
|
+
}, BUILD_DEBOUNCE_MS);
|
|
233
|
+
};
|
|
234
|
+
// Configure and create socket server
|
|
235
|
+
const config = {
|
|
236
|
+
isDevServer: this.isDevServer || false,
|
|
237
|
+
onFileDiscovered: (filePath, hasWorkflow, hasStep) => {
|
|
238
|
+
const knownFile = workflowFiles.has(filePath) || stepFiles.has(filePath);
|
|
239
|
+
if (hasWorkflow) {
|
|
240
|
+
workflowFiles.add(filePath);
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
workflowFiles.delete(filePath);
|
|
244
|
+
}
|
|
245
|
+
if (hasStep) {
|
|
246
|
+
stepFiles.add(filePath);
|
|
247
|
+
}
|
|
248
|
+
else {
|
|
249
|
+
stepFiles.delete(filePath);
|
|
250
|
+
}
|
|
251
|
+
// Trigger debounced build if the file was previously seen
|
|
252
|
+
// or has workflows/steps currently
|
|
253
|
+
if (
|
|
254
|
+
// in non-dev we always update debounce on activity
|
|
255
|
+
!this.isDevServer ||
|
|
256
|
+
hasWorkflow ||
|
|
257
|
+
hasStep ||
|
|
258
|
+
knownFile) {
|
|
259
|
+
triggerBuild();
|
|
260
|
+
}
|
|
261
|
+
},
|
|
262
|
+
onTriggerBuild: triggerBuild,
|
|
263
|
+
};
|
|
264
|
+
this.socketIO = await (0, socket_server_1.createSocketServer)(config);
|
|
265
|
+
}
|
|
266
|
+
async writeStubFiles(usersAppDir) {
|
|
267
|
+
// NOTE: there is a limitation with turbopack that we can only
|
|
268
|
+
// have number of virtual entries with pending promise less than
|
|
269
|
+
// CPU count as that's the number of workers it uses so currently
|
|
270
|
+
// we're fine with > 3 vCPU but <= 3 vCPUs and we won't be able to
|
|
271
|
+
// discover workflows/steps
|
|
272
|
+
const parallelismCount = node_os_1.default.availableParallelism();
|
|
273
|
+
if (process.env.TURBOPACK && parallelismCount < 4) {
|
|
274
|
+
console.warn(`Available parallelism of ${parallelismCount} is less than needed 4. This can cause workflows/steps to fail to discover properly in turbopack`);
|
|
275
|
+
}
|
|
276
|
+
const routeStubContent = "export * from './inner'";
|
|
277
|
+
// this needs to change on each build so can refresh workflows
|
|
278
|
+
const innerStubContent = `WORKFLOW_INNER_STUB_FILE_${Date.now()}`;
|
|
279
|
+
const workflowDir = (0, node_path_1.join)(usersAppDir, '.well-known/workflow/v1');
|
|
280
|
+
// Ensure directories exist
|
|
281
|
+
await (0, promises_1.mkdir)((0, node_path_1.join)(workflowDir, 'flow'), { recursive: true });
|
|
282
|
+
await (0, promises_1.mkdir)((0, node_path_1.join)(workflowDir, 'step'), { recursive: true });
|
|
283
|
+
await (0, promises_1.mkdir)((0, node_path_1.join)(workflowDir, 'webhook/[token]'), { recursive: true });
|
|
284
|
+
// Write route.ts stub files (re-export from inner)
|
|
285
|
+
await (0, promises_1.writeFile)((0, node_path_1.join)(workflowDir, 'flow/route.js'), routeStubContent);
|
|
286
|
+
await (0, promises_1.writeFile)((0, node_path_1.join)(workflowDir, 'step/route.js'), routeStubContent);
|
|
287
|
+
await (0, promises_1.writeFile)((0, node_path_1.join)(workflowDir, 'webhook/[token]/route.js'), routeStubContent);
|
|
288
|
+
// Write inner.js stub files (actual stub marker)
|
|
289
|
+
await (0, promises_1.writeFile)((0, node_path_1.join)(workflowDir, 'flow/inner.js'), innerStubContent);
|
|
290
|
+
await (0, promises_1.writeFile)((0, node_path_1.join)(workflowDir, 'step/inner.js'), innerStubContent);
|
|
291
|
+
await (0, promises_1.writeFile)((0, node_path_1.join)(workflowDir, 'webhook/[token]/inner.js'), innerStubContent);
|
|
292
|
+
}
|
|
329
293
|
}
|
|
330
294
|
CachedNextBuilder = NextBuilder;
|
|
331
295
|
return NextBuilder;
|
package/dist/builder.js.map
CHANGED
|
@@ -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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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.withWorkflow = withWorkflow;
|
|
7
|
-
const semver_1 = __importDefault(require("semver"));
|
|
8
4
|
const builder_js_1 = require("./builder.js");
|
|
9
5
|
function withWorkflow(nextConfigOrFn, { workflows, } = {}) {
|
|
10
6
|
if (!process.env.VERCEL_DEPLOYMENT_ID) {
|
|
@@ -41,8 +37,6 @@ function withWorkflow(nextConfigOrFn, { workflows, } = {}) {
|
|
|
41
37
|
nextConfig.turbopack.rules = {};
|
|
42
38
|
}
|
|
43
39
|
const existingRules = nextConfig.turbopack.rules;
|
|
44
|
-
const nextVersion = require('next/package.json').version;
|
|
45
|
-
const supportsTurboCondition = semver_1.default.gte(nextVersion, 'v16.0.0');
|
|
46
40
|
for (const key of [
|
|
47
41
|
'*.tsx',
|
|
48
42
|
'*.ts',
|
|
@@ -54,22 +48,15 @@ function withWorkflow(nextConfigOrFn, { workflows, } = {}) {
|
|
|
54
48
|
'*.cts',
|
|
55
49
|
]) {
|
|
56
50
|
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
|
-
: {}),
|
|
70
51
|
loaders: [...(existingRules[key]?.loaders || []), loaderPath],
|
|
71
52
|
};
|
|
72
53
|
}
|
|
54
|
+
if (process.env.TURBOPACK) {
|
|
55
|
+
if (!nextConfig.experimental) {
|
|
56
|
+
nextConfig.experimental = {};
|
|
57
|
+
}
|
|
58
|
+
nextConfig.experimental.turbopackScopeHoisting = false;
|
|
59
|
+
}
|
|
73
60
|
// configure the loader for webpack
|
|
74
61
|
const existingWebpackModify = nextConfig.webpack;
|
|
75
62
|
nextConfig.webpack = (...args) => {
|
|
@@ -94,10 +81,8 @@ function withWorkflow(nextConfigOrFn, { workflows, } = {}) {
|
|
|
94
81
|
// as Next.js uses child processes for different builds
|
|
95
82
|
if (!process.env.WORKFLOW_NEXT_PRIVATE_BUILT &&
|
|
96
83
|
phase !== 'phase-production-server') {
|
|
97
|
-
const shouldWatch = process.env.NODE_ENV === 'development';
|
|
98
84
|
const NextBuilder = await (0, builder_js_1.getNextBuilder)();
|
|
99
85
|
const workflowBuilder = new NextBuilder({
|
|
100
|
-
watch: shouldWatch,
|
|
101
86
|
// discover workflows from pages/app entries
|
|
102
87
|
dirs: ['pages', 'app', 'src/pages', 'src/app'],
|
|
103
88
|
workingDir: process.cwd(),
|
|
@@ -107,7 +92,7 @@ function withWorkflow(nextConfigOrFn, { workflows, } = {}) {
|
|
|
107
92
|
webhookBundlePath: '', // node used in base
|
|
108
93
|
externalPackages: [...(nextConfig.serverExternalPackages || [])],
|
|
109
94
|
});
|
|
110
|
-
await workflowBuilder.
|
|
95
|
+
await workflowBuilder.init(nextConfig, phase);
|
|
111
96
|
process.env.WORKFLOW_NEXT_PRIVATE_BUILT = '1';
|
|
112
97
|
}
|
|
113
98
|
return nextConfig;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/loader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AA2LA,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"}
|
package/dist/loader.js
CHANGED
|
@@ -1,15 +1,158 @@
|
|
|
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");
|
|
4
6
|
const node_path_1 = require("node:path");
|
|
5
7
|
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
|
+
});
|
|
128
|
+
}
|
|
6
129
|
// This loader applies the "use workflow"/"use step"
|
|
7
130
|
// client transformation
|
|
8
131
|
async function workflowLoader(source, sourceMap) {
|
|
9
132
|
const filename = this.resourcePath;
|
|
10
133
|
const normalizedSource = source.toString();
|
|
134
|
+
// Normalize path separators for cross-platform compatibility
|
|
135
|
+
const normalizedFilename = filename.replace(/\\/g, '/');
|
|
136
|
+
// Check if this is a .well-known workflow inner.js file with stub content
|
|
137
|
+
const isWellKnownInnerFile = normalizedFilename.includes('.well-known/workflow/v1/') &&
|
|
138
|
+
(normalizedFilename.includes('/flow/inner.js') ||
|
|
139
|
+
normalizedFilename.includes('/step/inner.js') ||
|
|
140
|
+
normalizedFilename.includes('/webhook/[token]/inner.js'));
|
|
141
|
+
if (isWellKnownInnerFile &&
|
|
142
|
+
normalizedSource.trim().startsWith(STUB_CONTENT)) {
|
|
143
|
+
// Wait for build to complete
|
|
144
|
+
await waitForBuildComplete();
|
|
145
|
+
// Read the actual generated file content
|
|
146
|
+
const actualContent = await (0, promises_1.readFile)(filename.replace(/inner\.js$/, 'route.js'), 'utf-8');
|
|
147
|
+
return actualContent;
|
|
148
|
+
}
|
|
149
|
+
// Check for workflow and step directives
|
|
150
|
+
const hasWorkflow = builders_1.useWorkflowPattern.test(normalizedSource);
|
|
151
|
+
const hasStep = builders_1.useStepPattern.test(normalizedSource);
|
|
152
|
+
// Send message to socket server if workflow or step detected
|
|
153
|
+
await notifySocketServer(filename, hasWorkflow, hasStep);
|
|
11
154
|
// only apply the transform if file needs it
|
|
12
|
-
if (!
|
|
155
|
+
if (!hasWorkflow && !hasStep) {
|
|
13
156
|
return normalizedSource;
|
|
14
157
|
}
|
|
15
158
|
const isTypeScript = filename.endsWith('.ts') ||
|
|
@@ -27,7 +170,7 @@ async function workflowLoader(source, sourceMap) {
|
|
|
27
170
|
const lowerWd = normalizedWorkingDir.toLowerCase();
|
|
28
171
|
const lowerPath = normalizedFilepath.toLowerCase();
|
|
29
172
|
let relativeFilename;
|
|
30
|
-
if (lowerPath.startsWith(lowerWd
|
|
173
|
+
if (lowerPath.startsWith(`${lowerWd}/`)) {
|
|
31
174
|
// File is under working directory - manually calculate relative path
|
|
32
175
|
relativeFilename = normalizedFilepath.substring(normalizedWorkingDir.length + 1);
|
|
33
176
|
}
|
package/dist/loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,132 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"socket-server.js","sourceRoot":"","sources":["../src/socket-server.ts"],"names":[],"mappings":";;AAsDA,4CAKC;AAMD,oCAuCC;AASD,gDA6EC;AA9LD,6CAA0C;AAC1C,uCAAkE;AAElE;;;GAGG;AACH,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAE/B;;;GAGG;AACH,SAAS,iBAAiB;IACxB,OAAO,IAAA,yBAAW,EAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AAoCD;;GAEG;AACH,SAAgB,gBAAgB,CAC9B,OAAsB,EACtB,SAAiB;IAEjB,OAAO,GAAG,gBAAgB,GAAG,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;AACxE,CAAC;AAED;;;GAGG;AACH,SAAgB,YAAY,CAC1B,IAAY,EACZ,SAAiB;IAEjB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qBAAqB;IACrB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iCAAiC;IACjC,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC/D,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChD,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;IAEtD,oBAAoB;IACpB,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qBAAqB;IACrB,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAkB,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,kBAAkB,CACtC,MAA0B;IAE1B,MAAM,SAAS,GAAG,iBAAiB,EAAE,CAAC;IACtC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,IAAI,cAAc,GAAG,KAAK,CAAC;IAE3B,MAAM,MAAM,GAAW,IAAA,uBAAY,EAAC,CAAC,MAAc,EAAE,EAAE;QACrD,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEpB,kEAAkE;QAClE,IAAI,cAAc,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;QACxE,CAAC;QAED,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YACjC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAE1B,gDAAgD;YAChD,IAAI,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACxC,OAAO,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;gBAC3C,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBACxC,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAEpC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,SAAS;gBACX,CAAC;gBAED,IAAI,OAAO,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;oBACvC,MAAM,CAAC,gBAAgB,CACrB,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,OAAO,CAChB,CAAC;gBACJ,CAAC;qBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;oBAC5C,MAAM,CAAC,cAAc,EAAE,CAAC;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACpB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;YAChC,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;YACpC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,mDAAmD;IACnD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAClC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE;YACjC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;YACjC,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAC3C,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACxD,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,SAAS,CAAC;YAC/C,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,IAAI,EAAE,CAAC,MAAwB,EAAE,EAAE;YACjC,cAAc,GAAG,IAAI,CAAC;YACtB,MAAM,OAAO,GAAG,gBAAgB,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,SAAS,CAAC,CAAC;YACxE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QACD,YAAY,EAAE,GAAG,EAAE,CAAC,SAAS;KAC9B,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@workflow/next",
|
|
3
|
-
"version": "4.0.1-beta.
|
|
3
|
+
"version": "4.0.1-beta.35",
|
|
4
4
|
"description": "Next.js integration for Workflow DevKit",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -18,21 +18,16 @@
|
|
|
18
18
|
},
|
|
19
19
|
"exports": {
|
|
20
20
|
".": "./dist/index.js",
|
|
21
|
-
"./loader": "./dist/loader.js"
|
|
22
|
-
"./runtime": "./dist/runtime.js"
|
|
21
|
+
"./loader": "./dist/loader.js"
|
|
23
22
|
},
|
|
24
23
|
"dependencies": {
|
|
25
24
|
"@swc/core": "1.15.3",
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"@workflow/builders": "4.0.1-beta.29",
|
|
29
|
-
"@workflow/core": "4.0.1-beta.30",
|
|
25
|
+
"@workflow/builders": "4.0.1-beta.30",
|
|
26
|
+
"@workflow/core": "4.0.1-beta.31",
|
|
30
27
|
"@workflow/swc-plugin": "4.0.1-beta.12"
|
|
31
28
|
},
|
|
32
29
|
"devDependencies": {
|
|
33
30
|
"@types/node": "22.19.0",
|
|
34
|
-
"@types/semver": "7.7.1",
|
|
35
|
-
"@types/watchpack": "2.4.4",
|
|
36
31
|
"next": "16.0.10",
|
|
37
32
|
"@workflow/tsconfig": "4.0.1-beta.0"
|
|
38
33
|
},
|
package/dist/runtime.d.ts
DELETED
package/dist/runtime.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAGA,cAAc,6BAA6B,CAAC"}
|
package/dist/runtime.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
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
|
package/dist/runtime.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAAiD;AACjD,oDAAoD;AACpD,iBAAiB;AACjB,8DAA4C"}
|