@meetploy/nextjs 1.2.0 → 1.3.1
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/context.js.map +1 -1
- package/dist/dev.js +317 -22
- package/dist/dev.js.map +1 -1
- package/dist/handler.d.ts +14 -0
- package/dist/handler.js +260 -0
- package/dist/handler.js.map +1 -0
- package/dist/types.d.ts +12 -1
- package/package.json +6 -1
package/dist/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAcA,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AA2C3D,MAAM,UAAU,cAAc,CAC7B,OAA+B;IAG/B,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAcA,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AA2C3D,MAAM,UAAU,cAAc,CAC7B,OAA+B;IAG/B,MAAM,UAAU,GACf,UACA,CAAC,mBAAmB,CAAC,CAAC;IACvB,IAAI,UAAU,EAAE,CAAC;QAChB,OAAO,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IAClE,CAAC;IAGD,MAAM,UAAU,GACf,UACA,CAAC,oBAAoB,CAAC;IACvB,IAAI,UAAU,EAAE,CAAC;QAChB,OAAO,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IAClE,CAAC;IAGD,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;QACpB,OAAO,OAAO,CAAC,OAAO,CAAC;YACtB,GAAG,EAAE,EAAE;YACP,EAAE,EAAE,SAAS;YACb,GAAG,EAAE,SAAS;SACd,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,KAAK,CACd,yDAAyD;QACxD,oEAAoE;QACpE,sDAAsD;QACtD,0DAA0D;QAC1D,mDAAmD;QACnD,+BAA+B;QAC/B,SAAS;QACT,wCAAwC;QACxC,0DAA0D,CAC3D,CAAC;AACH,CAAC"}
|
package/dist/dev.js
CHANGED
|
@@ -1,4 +1,130 @@
|
|
|
1
|
+
import { registerHandlers } from "./handler.js";
|
|
1
2
|
const PLOY_CONTEXT_SYMBOL = Symbol.for("__ploy-context__");
|
|
3
|
+
let queueProcessorInterval = null;
|
|
4
|
+
let workflowHandlerUrlGlobal;
|
|
5
|
+
const PLOY_HANDLERS_PATHS = [
|
|
6
|
+
"ploy.ts",
|
|
7
|
+
"ploy.js",
|
|
8
|
+
"src/ploy.ts",
|
|
9
|
+
"src/ploy.js",
|
|
10
|
+
"app/ploy.ts",
|
|
11
|
+
"app/ploy.js",
|
|
12
|
+
];
|
|
13
|
+
async function findAndImportHandlers() {
|
|
14
|
+
try {
|
|
15
|
+
const fs = await import("node:fs/promises");
|
|
16
|
+
const path = await import("node:path");
|
|
17
|
+
const cwd = process.cwd();
|
|
18
|
+
for (const handlerPath of PLOY_HANDLERS_PATHS) {
|
|
19
|
+
const fullPath = path.resolve(cwd, handlerPath);
|
|
20
|
+
try {
|
|
21
|
+
await fs.access(fullPath);
|
|
22
|
+
const fileUrl = `file://${fullPath}`;
|
|
23
|
+
const module = (await import(fileUrl));
|
|
24
|
+
const handlers = (module.default ?? module);
|
|
25
|
+
if (handlers.message ?? handlers.workflows) {
|
|
26
|
+
console.log(`[Ploy] Loaded handlers from ${handlerPath}`);
|
|
27
|
+
return handlers;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function startQueueProcessor(queueBindings, apiUrl, handlerUrl) {
|
|
40
|
+
if (queueProcessorInterval) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
async function processQueues() {
|
|
44
|
+
for (const [bindingName, queueName] of Object.entries(queueBindings)) {
|
|
45
|
+
await processQueue(bindingName, queueName);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
async function processQueue(bindingName, queueName) {
|
|
49
|
+
try {
|
|
50
|
+
const receiveResponse = await fetch(`${apiUrl}/queue/receive`, {
|
|
51
|
+
method: "POST",
|
|
52
|
+
headers: { "Content-Type": "application/json" },
|
|
53
|
+
body: JSON.stringify({
|
|
54
|
+
queueName,
|
|
55
|
+
maxMessages: 10,
|
|
56
|
+
visibilityTimeoutSeconds: 30,
|
|
57
|
+
}),
|
|
58
|
+
});
|
|
59
|
+
if (!receiveResponse.ok) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
const receiveResult = (await receiveResponse.json());
|
|
63
|
+
if (!receiveResult.success || !receiveResult.messages?.length) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
for (const message of receiveResult.messages) {
|
|
67
|
+
try {
|
|
68
|
+
const handlerResponse = await fetch(handlerUrl, {
|
|
69
|
+
method: "POST",
|
|
70
|
+
headers: {
|
|
71
|
+
"Content-Type": "application/json",
|
|
72
|
+
"X-Ploy-Queue-Delivery": "true",
|
|
73
|
+
"X-Ploy-Queue-Name": queueName,
|
|
74
|
+
"X-Ploy-Queue-Binding": bindingName,
|
|
75
|
+
"X-Ploy-Message-Id": message.id,
|
|
76
|
+
"X-Ploy-Delivery-Id": message.deliveryId,
|
|
77
|
+
"X-Ploy-Message-Attempt": String(message.attempt),
|
|
78
|
+
},
|
|
79
|
+
body: JSON.stringify(message.payload),
|
|
80
|
+
});
|
|
81
|
+
if (handlerResponse.ok) {
|
|
82
|
+
await fetch(`${apiUrl}/queue/ack`, {
|
|
83
|
+
method: "POST",
|
|
84
|
+
headers: { "Content-Type": "application/json" },
|
|
85
|
+
body: JSON.stringify({
|
|
86
|
+
messageId: message.id,
|
|
87
|
+
deliveryId: message.deliveryId,
|
|
88
|
+
}),
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
await fetch(`${apiUrl}/queue/retry`, {
|
|
93
|
+
method: "POST",
|
|
94
|
+
headers: { "Content-Type": "application/json" },
|
|
95
|
+
body: JSON.stringify({
|
|
96
|
+
messageId: message.id,
|
|
97
|
+
deliveryId: message.deliveryId,
|
|
98
|
+
}),
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
await fetch(`${apiUrl}/queue/retry`, {
|
|
104
|
+
method: "POST",
|
|
105
|
+
headers: { "Content-Type": "application/json" },
|
|
106
|
+
body: JSON.stringify({
|
|
107
|
+
messageId: message.id,
|
|
108
|
+
deliveryId: message.deliveryId,
|
|
109
|
+
}),
|
|
110
|
+
}).catch(() => { });
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
queueProcessorInterval = setInterval(() => {
|
|
118
|
+
processQueues().catch(() => { });
|
|
119
|
+
}, 1000);
|
|
120
|
+
console.log(`[Ploy] Queue processor started, polling ${apiUrl}/queue/receive, delivering to ${handlerUrl}`);
|
|
121
|
+
}
|
|
122
|
+
function stopQueueProcessor() {
|
|
123
|
+
if (queueProcessorInterval) {
|
|
124
|
+
clearInterval(queueProcessorInterval);
|
|
125
|
+
queueProcessorInterval = null;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
2
128
|
function createDevD1(databaseId, apiUrl) {
|
|
3
129
|
return {
|
|
4
130
|
async dump() {
|
|
@@ -81,7 +207,7 @@ function createDevD1(databaseId, apiUrl) {
|
|
|
81
207
|
async batch(statements) {
|
|
82
208
|
const stmts = statements.map((s) => {
|
|
83
209
|
const data = s.__db_data;
|
|
84
|
-
return data
|
|
210
|
+
return data ?? s;
|
|
85
211
|
});
|
|
86
212
|
const response = await fetch(`${apiUrl}/db`, {
|
|
87
213
|
method: "POST",
|
|
@@ -133,6 +259,134 @@ function createDevPloyAuth(apiUrl) {
|
|
|
133
259
|
},
|
|
134
260
|
};
|
|
135
261
|
}
|
|
262
|
+
function createDevQueue(queueName, apiUrl) {
|
|
263
|
+
return {
|
|
264
|
+
async send(payload, opts) {
|
|
265
|
+
const response = await fetch(`${apiUrl}/queue/send`, {
|
|
266
|
+
method: "POST",
|
|
267
|
+
headers: { "Content-Type": "application/json" },
|
|
268
|
+
body: JSON.stringify({
|
|
269
|
+
queueName,
|
|
270
|
+
payload,
|
|
271
|
+
delaySeconds: opts?.delaySeconds,
|
|
272
|
+
}),
|
|
273
|
+
});
|
|
274
|
+
if (!response.ok) {
|
|
275
|
+
throw new Error(`Queue send failed: ${await response.text()}`);
|
|
276
|
+
}
|
|
277
|
+
const result = (await response.json());
|
|
278
|
+
if (!result.success) {
|
|
279
|
+
throw new Error(result.error ?? "Queue send failed");
|
|
280
|
+
}
|
|
281
|
+
return { messageId: result.messageId ?? "" };
|
|
282
|
+
},
|
|
283
|
+
async sendBatch(messages) {
|
|
284
|
+
const response = await fetch(`${apiUrl}/queue/batch-send`, {
|
|
285
|
+
method: "POST",
|
|
286
|
+
headers: { "Content-Type": "application/json" },
|
|
287
|
+
body: JSON.stringify({
|
|
288
|
+
queueName,
|
|
289
|
+
messages,
|
|
290
|
+
}),
|
|
291
|
+
});
|
|
292
|
+
if (!response.ok) {
|
|
293
|
+
throw new Error(`Queue batch send failed: ${await response.text()}`);
|
|
294
|
+
}
|
|
295
|
+
const result = (await response.json());
|
|
296
|
+
if (!result.success) {
|
|
297
|
+
throw new Error(result.error ?? "Queue batch send failed");
|
|
298
|
+
}
|
|
299
|
+
return { messageIds: result.messageIds ?? [] };
|
|
300
|
+
},
|
|
301
|
+
};
|
|
302
|
+
}
|
|
303
|
+
function createDevWorkflow(workflowName, apiUrl) {
|
|
304
|
+
return {
|
|
305
|
+
async trigger(input) {
|
|
306
|
+
const response = await fetch(`${apiUrl}/workflow/trigger`, {
|
|
307
|
+
method: "POST",
|
|
308
|
+
headers: { "Content-Type": "application/json" },
|
|
309
|
+
body: JSON.stringify({ workflowName, input }),
|
|
310
|
+
});
|
|
311
|
+
if (!response.ok) {
|
|
312
|
+
throw new Error(`Workflow trigger failed: ${await response.text()}`);
|
|
313
|
+
}
|
|
314
|
+
const result = (await response.json());
|
|
315
|
+
if (!result.success) {
|
|
316
|
+
throw new Error(result.error ?? "Workflow trigger failed");
|
|
317
|
+
}
|
|
318
|
+
if (workflowHandlerUrlGlobal) {
|
|
319
|
+
fetch(workflowHandlerUrlGlobal, {
|
|
320
|
+
method: "POST",
|
|
321
|
+
headers: {
|
|
322
|
+
"Content-Type": "application/json",
|
|
323
|
+
"X-Ploy-Workflow-Execution": "true",
|
|
324
|
+
"X-Ploy-Workflow-Name": workflowName,
|
|
325
|
+
"X-Ploy-Execution-Id": result.executionId ?? "",
|
|
326
|
+
},
|
|
327
|
+
body: JSON.stringify(input),
|
|
328
|
+
}).catch(() => {
|
|
329
|
+
});
|
|
330
|
+
}
|
|
331
|
+
return { executionId: result.executionId ?? "" };
|
|
332
|
+
},
|
|
333
|
+
async getExecution(id) {
|
|
334
|
+
const response = await fetch(`${apiUrl}/workflow/status`, {
|
|
335
|
+
method: "POST",
|
|
336
|
+
headers: { "Content-Type": "application/json" },
|
|
337
|
+
body: JSON.stringify({ executionId: id }),
|
|
338
|
+
});
|
|
339
|
+
if (!response.ok) {
|
|
340
|
+
throw new Error(`Workflow status failed: ${await response.text()}`);
|
|
341
|
+
}
|
|
342
|
+
const result = (await response.json());
|
|
343
|
+
if (!result.success) {
|
|
344
|
+
throw new Error(result.error ?? "Workflow status failed");
|
|
345
|
+
}
|
|
346
|
+
const exec = result.execution ?? {
|
|
347
|
+
id: "",
|
|
348
|
+
status: "unknown",
|
|
349
|
+
output: undefined,
|
|
350
|
+
error: undefined,
|
|
351
|
+
};
|
|
352
|
+
return {
|
|
353
|
+
id: exec.id,
|
|
354
|
+
status: exec.status,
|
|
355
|
+
output: exec.output,
|
|
356
|
+
errorMessage: exec.error,
|
|
357
|
+
};
|
|
358
|
+
},
|
|
359
|
+
async cancel(id) {
|
|
360
|
+
const response = await fetch(`${apiUrl}/workflow/cancel`, {
|
|
361
|
+
method: "POST",
|
|
362
|
+
headers: { "Content-Type": "application/json" },
|
|
363
|
+
body: JSON.stringify({ executionId: id }),
|
|
364
|
+
});
|
|
365
|
+
if (!response.ok) {
|
|
366
|
+
throw new Error(`Workflow cancel failed: ${await response.text()}`);
|
|
367
|
+
}
|
|
368
|
+
const result = (await response.json());
|
|
369
|
+
if (!result.success) {
|
|
370
|
+
throw new Error(result.error ?? "Workflow cancel failed");
|
|
371
|
+
}
|
|
372
|
+
},
|
|
373
|
+
};
|
|
374
|
+
}
|
|
375
|
+
function parseYamlSection(content, sectionName) {
|
|
376
|
+
const regex = new RegExp(`^${sectionName}:\\s*\\n((?:\\s+\\w+:\\s*.+\\n?)+)`, "m");
|
|
377
|
+
const match = content.match(regex);
|
|
378
|
+
if (!match) {
|
|
379
|
+
return {};
|
|
380
|
+
}
|
|
381
|
+
const bindings = {};
|
|
382
|
+
const bindingLines = match[1].matchAll(/^\s+(\w+):\s*(.+)$/gm);
|
|
383
|
+
for (const line of bindingLines) {
|
|
384
|
+
const bindingName = line[1].trim();
|
|
385
|
+
const value = line[2].trim();
|
|
386
|
+
bindings[bindingName] = value;
|
|
387
|
+
}
|
|
388
|
+
return bindings;
|
|
389
|
+
}
|
|
136
390
|
async function parseBindingsFromConfig(configPath) {
|
|
137
391
|
try {
|
|
138
392
|
const fs = await import("node:fs/promises");
|
|
@@ -140,25 +394,24 @@ async function parseBindingsFromConfig(configPath) {
|
|
|
140
394
|
const resolvedPath = path.resolve(process.cwd(), configPath);
|
|
141
395
|
const content = await fs.readFile(resolvedPath, "utf-8");
|
|
142
396
|
const hasAuth = /^auth:\s*\n/m.test(content);
|
|
143
|
-
const
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
dbBindings[bindingName] = databaseId;
|
|
153
|
-
}
|
|
154
|
-
return { db: dbBindings, auth: hasAuth };
|
|
397
|
+
const dbBindings = parseYamlSection(content, "db");
|
|
398
|
+
const queueBindings = parseYamlSection(content, "queue");
|
|
399
|
+
const workflowBindings = parseYamlSection(content, "workflow");
|
|
400
|
+
return {
|
|
401
|
+
db: dbBindings,
|
|
402
|
+
queue: queueBindings,
|
|
403
|
+
workflow: workflowBindings,
|
|
404
|
+
auth: hasAuth,
|
|
405
|
+
};
|
|
155
406
|
}
|
|
156
407
|
catch (error) {
|
|
157
|
-
if (error instanceof Error &&
|
|
158
|
-
|
|
408
|
+
if (error instanceof Error &&
|
|
409
|
+
"code" in error &&
|
|
410
|
+
error.code === "ENOENT") {
|
|
411
|
+
return { db: {}, queue: {}, workflow: {} };
|
|
159
412
|
}
|
|
160
413
|
console.warn("[Ploy] Failed to parse ploy.yaml:", error);
|
|
161
|
-
return { db: {} };
|
|
414
|
+
return { db: {}, queue: {}, workflow: {} };
|
|
162
415
|
}
|
|
163
416
|
}
|
|
164
417
|
export async function initPloyForDev(config) {
|
|
@@ -169,10 +422,10 @@ export async function initPloyForDev(config) {
|
|
|
169
422
|
return;
|
|
170
423
|
}
|
|
171
424
|
globalThis.__PLOY_DEV_INITIALIZED__ = true;
|
|
172
|
-
const apiUrl = config?.apiUrl
|
|
173
|
-
process.env.PLOY_MOCK_SERVER_URL
|
|
425
|
+
const apiUrl = config?.apiUrl ??
|
|
426
|
+
process.env.PLOY_MOCK_SERVER_URL ??
|
|
174
427
|
"http://localhost:4003";
|
|
175
|
-
const configPath = config?.configPath
|
|
428
|
+
const configPath = config?.configPath ?? "./ploy.yaml";
|
|
176
429
|
let bindings = config?.bindings ?? {};
|
|
177
430
|
const parsedConfig = await parseBindingsFromConfig(configPath);
|
|
178
431
|
if (!config?.bindings) {
|
|
@@ -182,12 +435,22 @@ export async function initPloyForDev(config) {
|
|
|
182
435
|
bindings.auth = parsedConfig.auth;
|
|
183
436
|
}
|
|
184
437
|
const env = {};
|
|
185
|
-
if (bindings
|
|
438
|
+
if (bindings.db) {
|
|
186
439
|
for (const [bindingName, databaseId] of Object.entries(bindings.db)) {
|
|
187
440
|
env[bindingName] = createDevD1(databaseId, apiUrl);
|
|
188
441
|
}
|
|
189
442
|
}
|
|
190
|
-
if (bindings
|
|
443
|
+
if (bindings.queue) {
|
|
444
|
+
for (const [bindingName, queueName] of Object.entries(bindings.queue)) {
|
|
445
|
+
env[bindingName] = createDevQueue(queueName, apiUrl);
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
if (bindings.workflow) {
|
|
449
|
+
for (const [bindingName, workflowName] of Object.entries(bindings.workflow)) {
|
|
450
|
+
env[bindingName] = createDevWorkflow(workflowName, apiUrl);
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
if (bindings.auth) {
|
|
191
454
|
env.PLOY_AUTH = createDevPloyAuth(apiUrl);
|
|
192
455
|
}
|
|
193
456
|
const context = {
|
|
@@ -207,11 +470,43 @@ export async function initPloyForDev(config) {
|
|
|
207
470
|
if (bindingNames.length > 0) {
|
|
208
471
|
features.push(`bindings: ${bindingNames.join(", ")}`);
|
|
209
472
|
}
|
|
210
|
-
if (bindings
|
|
473
|
+
if (bindings.auth) {
|
|
211
474
|
features.push("auth");
|
|
212
475
|
}
|
|
213
476
|
if (features.length > 0) {
|
|
214
477
|
console.log(`[Ploy] Development context initialized (${features.join(", ")})`);
|
|
215
478
|
}
|
|
479
|
+
const port = process.env.PORT ?? "3000";
|
|
480
|
+
const handlerUrl = config?.queueHandlerUrl ?? `http://localhost:${port}/ploy-handler`;
|
|
481
|
+
const hasQueueBindings = bindings.queue && Object.keys(bindings.queue).length > 0;
|
|
482
|
+
const hasWorkflowBindings = bindings.workflow && Object.keys(bindings.workflow).length > 0;
|
|
483
|
+
if (hasQueueBindings || hasWorkflowBindings) {
|
|
484
|
+
const handlers = await findAndImportHandlers();
|
|
485
|
+
if (handlers) {
|
|
486
|
+
registerHandlers(handlers);
|
|
487
|
+
if (hasQueueBindings && handlers.message) {
|
|
488
|
+
startQueueProcessor(bindings.queue ?? {}, apiUrl, handlerUrl);
|
|
489
|
+
const cleanup = () => {
|
|
490
|
+
stopQueueProcessor();
|
|
491
|
+
};
|
|
492
|
+
process.on("exit", cleanup);
|
|
493
|
+
process.on("SIGINT", () => {
|
|
494
|
+
cleanup();
|
|
495
|
+
process.exit(0);
|
|
496
|
+
});
|
|
497
|
+
process.on("SIGTERM", () => {
|
|
498
|
+
cleanup();
|
|
499
|
+
process.exit(0);
|
|
500
|
+
});
|
|
501
|
+
}
|
|
502
|
+
if (hasWorkflowBindings && handlers.workflows) {
|
|
503
|
+
workflowHandlerUrlGlobal = handlerUrl;
|
|
504
|
+
console.log(`[Ploy] Workflow executions will be dispatched to ${handlerUrl}`);
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
else {
|
|
508
|
+
console.log("[Ploy] Queue/workflow bindings configured but no ploy.ts handlers found.");
|
|
509
|
+
}
|
|
510
|
+
}
|
|
216
511
|
}
|
|
217
512
|
//# sourceMappingURL=dev.js.map
|
package/dist/dev.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../src/dev.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../src/dev.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { PloyEnv } from "./types.js";
|
|
2
|
+
import type { ExecutionContext, QueueMessageEvent, WorkflowStep } from "@meetploy/types";
|
|
3
|
+
interface PloyHandlers {
|
|
4
|
+
message?: (event: QueueMessageEvent, env: PloyEnv, ctx: ExecutionContext) => Promise<void>;
|
|
5
|
+
workflows?: Record<string, (context: {
|
|
6
|
+
input: unknown;
|
|
7
|
+
step: WorkflowStep;
|
|
8
|
+
env: PloyEnv;
|
|
9
|
+
}) => Promise<unknown>>;
|
|
10
|
+
}
|
|
11
|
+
export declare function registerHandlers(handlers: PloyHandlers): void;
|
|
12
|
+
export declare function GET(): Promise<Response>;
|
|
13
|
+
export declare function POST(request: Request): Promise<Response>;
|
|
14
|
+
export {};
|
package/dist/handler.js
ADDED
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
import { getPloyContext } from "./context.js";
|
|
2
|
+
const PLOY_HANDLERS_SYMBOL = Symbol.for("__ploy-handlers__");
|
|
3
|
+
export function registerHandlers(handlers) {
|
|
4
|
+
globalThis[PLOY_HANDLERS_SYMBOL] = handlers;
|
|
5
|
+
}
|
|
6
|
+
const PLOY_HANDLERS_PATHS = [
|
|
7
|
+
"ploy.ts",
|
|
8
|
+
"ploy.js",
|
|
9
|
+
"src/ploy.ts",
|
|
10
|
+
"src/ploy.js",
|
|
11
|
+
"app/ploy.ts",
|
|
12
|
+
"app/ploy.js",
|
|
13
|
+
];
|
|
14
|
+
async function getHandlers() {
|
|
15
|
+
let handlers = globalThis[PLOY_HANDLERS_SYMBOL];
|
|
16
|
+
if (!handlers) {
|
|
17
|
+
try {
|
|
18
|
+
const fs = await import("node:fs/promises");
|
|
19
|
+
const path = await import("node:path");
|
|
20
|
+
const cwd = process.cwd();
|
|
21
|
+
for (const handlerPath of PLOY_HANDLERS_PATHS) {
|
|
22
|
+
const fullPath = path.resolve(cwd, handlerPath);
|
|
23
|
+
try {
|
|
24
|
+
await fs.access(fullPath);
|
|
25
|
+
const fileUrl = `file://${fullPath}`;
|
|
26
|
+
const module = (await import(fileUrl));
|
|
27
|
+
handlers = (module.default ?? module);
|
|
28
|
+
if (handlers.message ?? handlers.workflows) {
|
|
29
|
+
globalThis[PLOY_HANDLERS_SYMBOL] =
|
|
30
|
+
handlers;
|
|
31
|
+
break;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return handlers;
|
|
42
|
+
}
|
|
43
|
+
function createResponse(body, init) {
|
|
44
|
+
return new Response(JSON.stringify(body), {
|
|
45
|
+
...init,
|
|
46
|
+
headers: {
|
|
47
|
+
"Content-Type": "application/json",
|
|
48
|
+
...init?.headers,
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
async function handleQueueMessage(request) {
|
|
53
|
+
const handlers = await getHandlers();
|
|
54
|
+
if (!handlers?.message) {
|
|
55
|
+
return createResponse({ success: false, error: "No queue handler registered" }, { status: 404 });
|
|
56
|
+
}
|
|
57
|
+
try {
|
|
58
|
+
const queueName = request.headers.get("X-Ploy-Queue-Name");
|
|
59
|
+
const messageId = request.headers.get("X-Ploy-Message-Id");
|
|
60
|
+
const attempt = request.headers.get("X-Ploy-Message-Attempt");
|
|
61
|
+
if (!queueName || !messageId) {
|
|
62
|
+
return createResponse({ success: false, error: "Missing queue headers" }, { status: 400 });
|
|
63
|
+
}
|
|
64
|
+
const payload = await request.json();
|
|
65
|
+
const { env } = getPloyContext();
|
|
66
|
+
const event = {
|
|
67
|
+
id: messageId,
|
|
68
|
+
queueName,
|
|
69
|
+
payload,
|
|
70
|
+
attempt: parseInt(attempt ?? "1", 10),
|
|
71
|
+
timestamp: new Date(),
|
|
72
|
+
};
|
|
73
|
+
const ctx = {
|
|
74
|
+
waitUntil: () => { },
|
|
75
|
+
passThroughOnException: () => { },
|
|
76
|
+
};
|
|
77
|
+
await handlers.message(event, env, ctx);
|
|
78
|
+
return createResponse({
|
|
79
|
+
success: true,
|
|
80
|
+
processed: true,
|
|
81
|
+
messageId,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
console.error("[Ploy Handler] Queue error:", error);
|
|
86
|
+
return createResponse({
|
|
87
|
+
success: false,
|
|
88
|
+
error: error instanceof Error ? error.message : String(error),
|
|
89
|
+
}, { status: 500 });
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
async function handleWorkflowExecution(request) {
|
|
93
|
+
const apiUrl = process.env.PLOY_MOCK_SERVER_URL ?? "http://localhost:4003";
|
|
94
|
+
let executionId = null;
|
|
95
|
+
const handlers = await getHandlers();
|
|
96
|
+
if (!handlers?.workflows) {
|
|
97
|
+
return createResponse({ success: false, error: "No workflow handlers registered" }, { status: 404 });
|
|
98
|
+
}
|
|
99
|
+
try {
|
|
100
|
+
const workflowName = request.headers.get("X-Ploy-Workflow-Name");
|
|
101
|
+
executionId = request.headers.get("X-Ploy-Execution-Id");
|
|
102
|
+
if (!workflowName || !executionId) {
|
|
103
|
+
return createResponse({ success: false, error: "Missing workflow headers" }, { status: 400 });
|
|
104
|
+
}
|
|
105
|
+
const input = await request.json();
|
|
106
|
+
console.log("[Ploy Handler] Starting workflow:", {
|
|
107
|
+
workflowName,
|
|
108
|
+
executionId,
|
|
109
|
+
});
|
|
110
|
+
const { env } = getPloyContext();
|
|
111
|
+
if (!(workflowName in handlers.workflows)) {
|
|
112
|
+
const errorMessage = `Unknown workflow: ${workflowName}`;
|
|
113
|
+
await fetch(`${apiUrl}/workflow/fail`, {
|
|
114
|
+
method: "POST",
|
|
115
|
+
headers: { "Content-Type": "application/json" },
|
|
116
|
+
body: JSON.stringify({ executionId, error: errorMessage }),
|
|
117
|
+
});
|
|
118
|
+
return createResponse({ success: false, error: errorMessage }, { status: 400 });
|
|
119
|
+
}
|
|
120
|
+
const execId = executionId;
|
|
121
|
+
let stepIndex = 0;
|
|
122
|
+
const step = {
|
|
123
|
+
async run(stepName, fn, options) {
|
|
124
|
+
const currentStepIndex = stepIndex++;
|
|
125
|
+
const maxRetries = options?.retries ?? 0;
|
|
126
|
+
const startResponse = await fetch(`${apiUrl}/workflow/step/start`, {
|
|
127
|
+
method: "POST",
|
|
128
|
+
headers: { "Content-Type": "application/json" },
|
|
129
|
+
body: JSON.stringify({
|
|
130
|
+
executionId: execId,
|
|
131
|
+
stepName,
|
|
132
|
+
stepIndex: currentStepIndex,
|
|
133
|
+
}),
|
|
134
|
+
});
|
|
135
|
+
if (!startResponse.ok) {
|
|
136
|
+
throw new Error(`Failed to start step: ${await startResponse.text()}`);
|
|
137
|
+
}
|
|
138
|
+
const startResult = (await startResponse.json());
|
|
139
|
+
if (startResult.alreadyCompleted) {
|
|
140
|
+
return startResult.output;
|
|
141
|
+
}
|
|
142
|
+
const startTime = Date.now();
|
|
143
|
+
let lastError = null;
|
|
144
|
+
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
145
|
+
try {
|
|
146
|
+
const result = await fn();
|
|
147
|
+
const durationMs = Date.now() - startTime;
|
|
148
|
+
await fetch(`${apiUrl}/workflow/step/complete`, {
|
|
149
|
+
method: "POST",
|
|
150
|
+
headers: { "Content-Type": "application/json" },
|
|
151
|
+
body: JSON.stringify({
|
|
152
|
+
executionId: execId,
|
|
153
|
+
stepName,
|
|
154
|
+
output: result,
|
|
155
|
+
durationMs,
|
|
156
|
+
}),
|
|
157
|
+
});
|
|
158
|
+
return result;
|
|
159
|
+
}
|
|
160
|
+
catch (error) {
|
|
161
|
+
lastError =
|
|
162
|
+
error instanceof Error ? error : new Error(String(error));
|
|
163
|
+
if (attempt < maxRetries) {
|
|
164
|
+
await new Promise((resolve) => {
|
|
165
|
+
setTimeout(resolve, Math.min(1000 * Math.pow(2, attempt), 30000));
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
const durationMs = Date.now() - startTime;
|
|
171
|
+
await fetch(`${apiUrl}/workflow/step/fail`, {
|
|
172
|
+
method: "POST",
|
|
173
|
+
headers: { "Content-Type": "application/json" },
|
|
174
|
+
body: JSON.stringify({
|
|
175
|
+
executionId: execId,
|
|
176
|
+
stepName,
|
|
177
|
+
error: lastError?.message ?? "Step execution failed",
|
|
178
|
+
durationMs,
|
|
179
|
+
}),
|
|
180
|
+
});
|
|
181
|
+
throw lastError ?? new Error("Step execution failed");
|
|
182
|
+
},
|
|
183
|
+
async sleep(durationMs) {
|
|
184
|
+
const sleepStepName = `__sleep_${String(stepIndex++)}`;
|
|
185
|
+
await fetch(`${apiUrl}/workflow/step/start`, {
|
|
186
|
+
method: "POST",
|
|
187
|
+
headers: { "Content-Type": "application/json" },
|
|
188
|
+
body: JSON.stringify({
|
|
189
|
+
executionId: execId,
|
|
190
|
+
stepName: sleepStepName,
|
|
191
|
+
stepIndex: stepIndex - 1,
|
|
192
|
+
}),
|
|
193
|
+
});
|
|
194
|
+
await new Promise((resolve) => {
|
|
195
|
+
setTimeout(resolve, durationMs);
|
|
196
|
+
});
|
|
197
|
+
await fetch(`${apiUrl}/workflow/step/complete`, {
|
|
198
|
+
method: "POST",
|
|
199
|
+
headers: { "Content-Type": "application/json" },
|
|
200
|
+
body: JSON.stringify({
|
|
201
|
+
executionId: execId,
|
|
202
|
+
stepName: sleepStepName,
|
|
203
|
+
output: { sleptMs: durationMs },
|
|
204
|
+
durationMs,
|
|
205
|
+
}),
|
|
206
|
+
});
|
|
207
|
+
},
|
|
208
|
+
};
|
|
209
|
+
const workflowFn = handlers.workflows[workflowName];
|
|
210
|
+
const output = await workflowFn({
|
|
211
|
+
input,
|
|
212
|
+
step,
|
|
213
|
+
env: env,
|
|
214
|
+
});
|
|
215
|
+
await fetch(`${apiUrl}/workflow/complete`, {
|
|
216
|
+
method: "POST",
|
|
217
|
+
headers: { "Content-Type": "application/json" },
|
|
218
|
+
body: JSON.stringify({ executionId, output }),
|
|
219
|
+
});
|
|
220
|
+
console.log("[Ploy Handler] Workflow completed:", output);
|
|
221
|
+
return createResponse({ success: true, output });
|
|
222
|
+
}
|
|
223
|
+
catch (error) {
|
|
224
|
+
console.error("[Ploy Handler] Workflow error:", error);
|
|
225
|
+
if (executionId) {
|
|
226
|
+
await fetch(`${apiUrl}/workflow/fail`, {
|
|
227
|
+
method: "POST",
|
|
228
|
+
headers: { "Content-Type": "application/json" },
|
|
229
|
+
body: JSON.stringify({
|
|
230
|
+
executionId,
|
|
231
|
+
error: error instanceof Error ? error.message : String(error),
|
|
232
|
+
}),
|
|
233
|
+
}).catch(() => { });
|
|
234
|
+
}
|
|
235
|
+
return createResponse({
|
|
236
|
+
success: false,
|
|
237
|
+
error: error instanceof Error ? error.message : String(error),
|
|
238
|
+
}, { status: 500 });
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
export async function GET() {
|
|
242
|
+
const handlers = await getHandlers();
|
|
243
|
+
return createResponse({
|
|
244
|
+
ploy: true,
|
|
245
|
+
development: true,
|
|
246
|
+
hasQueueHandler: !!handlers?.message,
|
|
247
|
+
hasWorkflowHandlers: !!handlers?.workflows,
|
|
248
|
+
workflowNames: handlers?.workflows ? Object.keys(handlers.workflows) : [],
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
export async function POST(request) {
|
|
252
|
+
if (request.headers.get("X-Ploy-Queue-Delivery") === "true") {
|
|
253
|
+
return await handleQueueMessage(request);
|
|
254
|
+
}
|
|
255
|
+
if (request.headers.get("X-Ploy-Workflow-Execution") === "true") {
|
|
256
|
+
return await handleWorkflowExecution(request);
|
|
257
|
+
}
|
|
258
|
+
return createResponse({ success: false, error: "Unknown request type" }, { status: 400 });
|
|
259
|
+
}
|
|
260
|
+
//# sourceMappingURL=handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../src/handler.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
|
-
import type { D1Database as D1DatabaseType, D1PreparedStatement as D1PreparedStatementType, D1Result as D1ResultType, D1ResultMeta as D1ResultMetaType } from "@meetploy/types";
|
|
1
|
+
import type { D1Database as D1DatabaseType, D1PreparedStatement as D1PreparedStatementType, D1Result as D1ResultType, D1ResultMeta as D1ResultMetaType, QueueBinding as QueueBindingType, QueueSendOptions as QueueSendOptionsType, QueueSendResult as QueueSendResultType, QueueBatchMessage as QueueBatchMessageType, QueueSendBatchResult as QueueSendBatchResultType, WorkflowBinding as WorkflowBindingType, WorkflowExecution as WorkflowExecutionType, WorkflowTriggerResult as WorkflowTriggerResultType } from "@meetploy/types";
|
|
2
2
|
export type D1Database = D1DatabaseType;
|
|
3
3
|
export type D1PreparedStatement = D1PreparedStatementType;
|
|
4
4
|
export type D1Result<T = unknown> = D1ResultType<T>;
|
|
5
5
|
export type D1ResultMeta = D1ResultMetaType;
|
|
6
|
+
export type QueueBinding = QueueBindingType;
|
|
7
|
+
export type QueueSendOptions = QueueSendOptionsType;
|
|
8
|
+
export type QueueSendResult = QueueSendResultType;
|
|
9
|
+
export type QueueBatchMessage = QueueBatchMessageType;
|
|
10
|
+
export type QueueSendBatchResult = QueueSendBatchResultType;
|
|
11
|
+
export type WorkflowBinding = WorkflowBindingType;
|
|
12
|
+
export type WorkflowExecution = WorkflowExecutionType;
|
|
13
|
+
export type WorkflowTriggerResult = WorkflowTriggerResultType;
|
|
6
14
|
export interface CfProperties {
|
|
7
15
|
colo?: string;
|
|
8
16
|
country?: string;
|
|
@@ -34,6 +42,9 @@ export interface PloyDevConfig {
|
|
|
34
42
|
configPath?: string;
|
|
35
43
|
bindings?: {
|
|
36
44
|
db?: Record<string, string>;
|
|
45
|
+
queue?: Record<string, string>;
|
|
46
|
+
workflow?: Record<string, string>;
|
|
37
47
|
};
|
|
38
48
|
apiUrl?: string;
|
|
49
|
+
queueHandlerUrl?: string;
|
|
39
50
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@meetploy/nextjs",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -14,6 +14,11 @@
|
|
|
14
14
|
"types": "./dist/index.d.ts",
|
|
15
15
|
"import": "./dist/index.js",
|
|
16
16
|
"require": "./dist/index.js"
|
|
17
|
+
},
|
|
18
|
+
"./handler": {
|
|
19
|
+
"types": "./dist/handler.d.ts",
|
|
20
|
+
"import": "./dist/handler.js",
|
|
21
|
+
"require": "./dist/handler.js"
|
|
17
22
|
}
|
|
18
23
|
},
|
|
19
24
|
"module": "./dist/index.js",
|