@meetploy/emulator 1.10.0 → 1.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundler/bundler.js +43 -23
- package/dist/bundler/bundler.js.map +1 -1
- package/dist/dashboard-dist/assets/{main-B-euJxpr.css → main-5Kt9I_hM.css} +1 -1
- package/dist/dashboard-dist/assets/main-BFhQn9QT.js +354 -0
- package/dist/dashboard-dist/index.html +2 -2
- package/dist/emulator.d.ts +1 -1
- package/dist/emulator.js +11 -11
- package/dist/emulator.js.map +1 -1
- package/dist/runtime/{alarm-runtime.d.ts → timer-runtime.d.ts} +1 -1
- package/dist/runtime/{alarm-runtime.js → timer-runtime.js} +13 -13
- package/dist/runtime/timer-runtime.js.map +1 -0
- package/dist/services/auth-service.d.ts +2 -2
- package/dist/services/auth-service.js.map +1 -1
- package/dist/services/cache-service.d.ts +2 -2
- package/dist/services/cache-service.js.map +1 -1
- package/dist/services/cron-service.d.ts +2 -2
- package/dist/services/cron-service.js.map +1 -1
- package/dist/services/dashboard-routes.js +26 -26
- package/dist/services/db-service.d.ts +2 -2
- package/dist/services/db-service.js +1 -1
- package/dist/services/db-service.js.map +1 -1
- package/dist/services/fs-service.d.ts +2 -2
- package/dist/services/fs-service.js.map +1 -1
- package/dist/services/mock-server.js +6 -6
- package/dist/services/mock-server.js.map +1 -1
- package/dist/services/queue-service.d.ts +3 -3
- package/dist/services/queue-service.js.map +1 -1
- package/dist/services/state-service.d.ts +2 -2
- package/dist/services/state-service.js.map +1 -1
- package/dist/services/{alarm-service.d.ts → timer-service.d.ts} +8 -8
- package/dist/services/{alarm-service.js → timer-service.js} +32 -32
- package/dist/services/{alarm-service.js.map → timer-service.js.map} +1 -1
- package/dist/services/workflow-service.d.ts +3 -3
- package/dist/services/workflow-service.js.map +1 -1
- package/dist/utils/sqlite-db.d.ts +18 -0
- package/dist/utils/sqlite-db.js +66 -0
- package/dist/utils/sqlite-db.js.map +1 -0
- package/dist/utils/sqlite.d.ts +3 -3
- package/dist/utils/sqlite.js +15 -15
- package/dist/utils/sqlite.js.map +1 -1
- package/package.json +2 -4
- package/dist/dashboard-dist/assets/main-ChnbLsIt.js +0 -349
- package/dist/runtime/alarm-runtime.js.map +0 -1
- package/dist/services/workflow-service.spec.d.ts +0 -1
- package/dist/services/workflow-service.spec.js +0 -259
- package/dist/services/workflow-service.spec.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import type { SqliteDatabase } from "../utils/sqlite-db.js";
|
|
2
2
|
import type { Context } from "hono";
|
|
3
3
|
export interface QueueMessage {
|
|
4
4
|
id: string;
|
|
@@ -10,7 +10,7 @@ export interface QueueMessage {
|
|
|
10
10
|
visibleAt: number;
|
|
11
11
|
createdAt: number;
|
|
12
12
|
}
|
|
13
|
-
export declare function createQueueHandlers(db:
|
|
13
|
+
export declare function createQueueHandlers(db: SqliteDatabase): {
|
|
14
14
|
sendHandler: (c: Context) => Promise<(Response & import("hono").TypedResponse<{
|
|
15
15
|
success: true;
|
|
16
16
|
messageId: `${string}-${string}-${string}-${string}-${string}`;
|
|
@@ -61,4 +61,4 @@ export interface QueueProcessor {
|
|
|
61
61
|
start: () => void;
|
|
62
62
|
stop: () => void;
|
|
63
63
|
}
|
|
64
|
-
export declare function createQueueProcessor(db:
|
|
64
|
+
export declare function createQueueProcessor(db: SqliteDatabase, queueBindings: Record<string, string>, workerUrl: string): QueueProcessor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue-service.js","sourceRoot":"","sources":["../../src/services/queue-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAgBzC,MAAM,UAAU,mBAAmB,CAAC,
|
|
1
|
+
{"version":3,"file":"queue-service.js","sourceRoot":"","sources":["../../src/services/queue-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import type { SqliteDatabase } from "../utils/sqlite-db.js";
|
|
2
2
|
import type { Context } from "hono";
|
|
3
|
-
export declare function createStateHandlers(db:
|
|
3
|
+
export declare function createStateHandlers(db: SqliteDatabase): {
|
|
4
4
|
getHandler: (c: Context) => Promise<Response & import("hono").TypedResponse<{
|
|
5
5
|
value: string | null;
|
|
6
6
|
}, import("hono/utils/http-status").ContentfulStatusCode, "json">>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-service.js","sourceRoot":"","sources":["../../src/services/state-service.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,mBAAmB,CAAC,
|
|
1
|
+
{"version":3,"file":"state-service.js","sourceRoot":"","sources":["../../src/services/state-service.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,mBAAmB,CAAC,EAAkB;IACrD,MAAM,UAAU,GAAG,KAAK,EAAE,CAAU,EAAE,EAAE;QACvC,MAAM,IAAI,GAAuC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACpE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAEhC,MAAM,GAAG,GAAG,EAAE;aACZ,OAAO,CACP,kEAAkE,CAClE;aACA,GAAG,CAAC,SAAS,EAAE,GAAG,CAAkC,CAAC;QAEvD,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,KAAK,EAAE,CAAU,EAAE,EAAE;QACvC,MAAM,IAAI,GAIN,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACvB,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAEvC,EAAE,CAAC,OAAO,CACT,gFAAgF,CAChF,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAE7B,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAClC,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,KAAK,EAAE,CAAU,EAAE,EAAE;QAC1C,MAAM,IAAI,GAAuC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACpE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAEhC,EAAE,CAAC,OAAO,CACT,4DAA4D,CAC5D,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAEtB,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAClC,CAAC,CAAC;IAEF,OAAO;QACN,UAAU;QACV,UAAU;QACV,aAAa;KACb,CAAC;AACH,CAAC"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import type { SqliteDatabase } from "../utils/sqlite-db.js";
|
|
2
2
|
import type { Context } from "hono";
|
|
3
|
-
export interface
|
|
3
|
+
export interface TimerEntry {
|
|
4
4
|
id: string;
|
|
5
|
-
|
|
5
|
+
timer_name: string;
|
|
6
6
|
scheduled_time: number;
|
|
7
7
|
payload: string | null;
|
|
8
8
|
interval_ms: number | null;
|
|
9
9
|
status: string;
|
|
10
10
|
created_at: number;
|
|
11
11
|
}
|
|
12
|
-
export declare function
|
|
12
|
+
export declare function createTimerHandlers(db: SqliteDatabase): {
|
|
13
13
|
setHandler: (c: Context) => Promise<(Response & import("hono").TypedResponse<{
|
|
14
14
|
success: true;
|
|
15
15
|
}, import("hono/utils/http-status").ContentfulStatusCode, "json">) | (Response & import("hono").TypedResponse<{
|
|
@@ -17,9 +17,9 @@ export declare function createAlarmHandlers(db: Database.Database): {
|
|
|
17
17
|
error: string;
|
|
18
18
|
}, 500, "json">)>;
|
|
19
19
|
getHandler: (c: Context) => Promise<(Response & import("hono").TypedResponse<{
|
|
20
|
-
|
|
20
|
+
timer: null;
|
|
21
21
|
}, import("hono/utils/http-status").ContentfulStatusCode, "json">) | (Response & import("hono").TypedResponse<{
|
|
22
|
-
|
|
22
|
+
timer: {
|
|
23
23
|
id: string;
|
|
24
24
|
scheduledTime: number;
|
|
25
25
|
payload: any;
|
|
@@ -36,8 +36,8 @@ export declare function createAlarmHandlers(db: Database.Database): {
|
|
|
36
36
|
error: string;
|
|
37
37
|
}, 500, "json">)>;
|
|
38
38
|
};
|
|
39
|
-
export interface
|
|
39
|
+
export interface TimerProcessor {
|
|
40
40
|
start: () => void;
|
|
41
41
|
stop: () => void;
|
|
42
42
|
}
|
|
43
|
-
export declare function
|
|
43
|
+
export declare function createTimerProcessor(db: SqliteDatabase, workerUrl: string): TimerProcessor;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export function
|
|
1
|
+
export function createTimerHandlers(db) {
|
|
2
2
|
const setHandler = async (c) => {
|
|
3
3
|
try {
|
|
4
4
|
const body = await c.req.json();
|
|
5
|
-
const {
|
|
5
|
+
const { timerName, id, scheduledTime, payload, intervalMs } = body;
|
|
6
6
|
const now = Math.floor(Date.now() / 1000);
|
|
7
7
|
const scheduledTimeSec = Math.floor(scheduledTime / 1000);
|
|
8
|
-
db.prepare(`INSERT OR REPLACE INTO
|
|
9
|
-
VALUES (?, ?, ?, ?, ?, 'pending', ?)`).run(id,
|
|
8
|
+
db.prepare(`INSERT OR REPLACE INTO timer_entries (id, timer_name, scheduled_time, payload, interval_ms, status, created_at)
|
|
9
|
+
VALUES (?, ?, ?, ?, ?, 'pending', ?)`).run(id, timerName, scheduledTimeSec, payload !== undefined ? JSON.stringify(payload) : null, intervalMs ?? null, now);
|
|
10
10
|
return c.json({ success: true });
|
|
11
11
|
}
|
|
12
12
|
catch (err) {
|
|
@@ -17,16 +17,16 @@ export function createAlarmHandlers(db) {
|
|
|
17
17
|
const getHandler = async (c) => {
|
|
18
18
|
try {
|
|
19
19
|
const body = await c.req.json();
|
|
20
|
-
const {
|
|
20
|
+
const { timerName, id } = body;
|
|
21
21
|
const row = db
|
|
22
|
-
.prepare(`SELECT id, scheduled_time, payload, interval_ms FROM
|
|
23
|
-
WHERE
|
|
24
|
-
.get(
|
|
22
|
+
.prepare(`SELECT id, scheduled_time, payload, interval_ms FROM timer_entries
|
|
23
|
+
WHERE timer_name = ? AND id = ? AND status = 'pending'`)
|
|
24
|
+
.get(timerName, id);
|
|
25
25
|
if (!row) {
|
|
26
|
-
return c.json({
|
|
26
|
+
return c.json({ timer: null });
|
|
27
27
|
}
|
|
28
28
|
return c.json({
|
|
29
|
-
|
|
29
|
+
timer: {
|
|
30
30
|
id: row.id,
|
|
31
31
|
scheduledTime: row.scheduled_time * 1000,
|
|
32
32
|
payload: row.payload ? JSON.parse(row.payload) : undefined,
|
|
@@ -42,8 +42,8 @@ export function createAlarmHandlers(db) {
|
|
|
42
42
|
const deleteHandler = async (c) => {
|
|
43
43
|
try {
|
|
44
44
|
const body = await c.req.json();
|
|
45
|
-
const {
|
|
46
|
-
db.prepare(`DELETE FROM
|
|
45
|
+
const { timerName, id } = body;
|
|
46
|
+
db.prepare(`DELETE FROM timer_entries WHERE timer_name = ? AND id = ?`).run(timerName, id);
|
|
47
47
|
return c.json({ success: true });
|
|
48
48
|
}
|
|
49
49
|
catch (err) {
|
|
@@ -57,13 +57,13 @@ export function createAlarmHandlers(db) {
|
|
|
57
57
|
deleteHandler,
|
|
58
58
|
};
|
|
59
59
|
}
|
|
60
|
-
export function
|
|
60
|
+
export function createTimerProcessor(db, workerUrl) {
|
|
61
61
|
let interval = null;
|
|
62
|
-
async function
|
|
62
|
+
async function processTimers() {
|
|
63
63
|
const now = Math.floor(Date.now() / 1000);
|
|
64
64
|
const rows = db
|
|
65
|
-
.prepare(`SELECT id,
|
|
66
|
-
FROM
|
|
65
|
+
.prepare(`SELECT id, timer_name, scheduled_time, payload, interval_ms
|
|
66
|
+
FROM timer_entries
|
|
67
67
|
WHERE status = 'pending' AND scheduled_time <= ?
|
|
68
68
|
ORDER BY scheduled_time ASC
|
|
69
69
|
LIMIT 50`)
|
|
@@ -75,10 +75,10 @@ export function createAlarmProcessor(db, workerUrl) {
|
|
|
75
75
|
method: "POST",
|
|
76
76
|
headers: {
|
|
77
77
|
"Content-Type": "application/json",
|
|
78
|
-
"X-Ploy-
|
|
79
|
-
"X-Ploy-
|
|
80
|
-
"X-Ploy-
|
|
81
|
-
"X-Ploy-
|
|
78
|
+
"X-Ploy-Timer-Fire": "true",
|
|
79
|
+
"X-Ploy-Timer-Id": row.id,
|
|
80
|
+
"X-Ploy-Timer-Name": row.timer_name,
|
|
81
|
+
"X-Ploy-Timer-Time": String(row.scheduled_time * 1000),
|
|
82
82
|
},
|
|
83
83
|
body: JSON.stringify({
|
|
84
84
|
scheduledTime: row.scheduled_time * 1000,
|
|
@@ -90,26 +90,26 @@ export function createAlarmProcessor(db, workerUrl) {
|
|
|
90
90
|
if (response.ok) {
|
|
91
91
|
if (row.interval_ms) {
|
|
92
92
|
const nextTimeSec = row.scheduled_time + Math.floor(row.interval_ms / 1000);
|
|
93
|
-
db.prepare(`UPDATE
|
|
93
|
+
db.prepare(`UPDATE timer_entries SET scheduled_time = ? WHERE id = ? AND timer_name = ?`).run(nextTimeSec, row.id, row.timer_name);
|
|
94
94
|
}
|
|
95
95
|
else {
|
|
96
|
-
db.prepare(`UPDATE
|
|
96
|
+
db.prepare(`UPDATE timer_entries SET status = 'fired' WHERE id = ? AND timer_name = ?`).run(row.id, row.timer_name);
|
|
97
97
|
}
|
|
98
|
-
db.prepare(`INSERT INTO
|
|
99
|
-
VALUES (?, ?, ?, 'completed', ?, ?)`).run(row.id, row.
|
|
98
|
+
db.prepare(`INSERT INTO timer_executions (timer_id, timer_name, scheduled_time, status, duration_ms, created_at)
|
|
99
|
+
VALUES (?, ?, ?, 'completed', ?, ?)`).run(row.id, row.timer_name, row.scheduled_time, durationMs, now);
|
|
100
100
|
}
|
|
101
101
|
else {
|
|
102
|
-
db.prepare(`INSERT INTO
|
|
103
|
-
VALUES (?, ?, ?, 'failed', ?, ?, ?)`).run(row.id, row.
|
|
104
|
-
db.prepare(`UPDATE
|
|
102
|
+
db.prepare(`INSERT INTO timer_executions (timer_id, timer_name, scheduled_time, status, error, duration_ms, created_at)
|
|
103
|
+
VALUES (?, ?, ?, 'failed', ?, ?, ?)`).run(row.id, row.timer_name, row.scheduled_time, `HTTP ${String(response.status)}`, durationMs, now);
|
|
104
|
+
db.prepare(`UPDATE timer_entries SET scheduled_time = ? WHERE id = ? AND timer_name = ?`).run(now + 5, row.id, row.timer_name);
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
107
|
catch (err) {
|
|
108
108
|
const durationMs = Date.now() - startTime;
|
|
109
109
|
const errorMessage = err instanceof Error ? err.message : String(err);
|
|
110
|
-
db.prepare(`INSERT INTO
|
|
111
|
-
VALUES (?, ?, ?, 'failed', ?, ?, ?)`).run(row.id, row.
|
|
112
|
-
db.prepare(`UPDATE
|
|
110
|
+
db.prepare(`INSERT INTO timer_executions (timer_id, timer_name, scheduled_time, status, error, duration_ms, created_at)
|
|
111
|
+
VALUES (?, ?, ?, 'failed', ?, ?, ?)`).run(row.id, row.timer_name, row.scheduled_time, errorMessage, durationMs, now);
|
|
112
|
+
db.prepare(`UPDATE timer_entries SET scheduled_time = ? WHERE id = ? AND timer_name = ?`).run(now + 5, row.id, row.timer_name);
|
|
113
113
|
}
|
|
114
114
|
}
|
|
115
115
|
}
|
|
@@ -119,7 +119,7 @@ export function createAlarmProcessor(db, workerUrl) {
|
|
|
119
119
|
return;
|
|
120
120
|
}
|
|
121
121
|
interval = setInterval(() => {
|
|
122
|
-
|
|
122
|
+
processTimers().catch(() => { });
|
|
123
123
|
}, 1000);
|
|
124
124
|
},
|
|
125
125
|
stop() {
|
|
@@ -130,4 +130,4 @@ export function createAlarmProcessor(db, workerUrl) {
|
|
|
130
130
|
},
|
|
131
131
|
};
|
|
132
132
|
}
|
|
133
|
-
//# sourceMappingURL=
|
|
133
|
+
//# sourceMappingURL=timer-service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"timer-service.js","sourceRoot":"","sources":["../../src/services/timer-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import type { SqliteDatabase } from "../utils/sqlite-db.js";
|
|
2
2
|
import type { Context } from "hono";
|
|
3
3
|
export interface WorkflowExecution {
|
|
4
4
|
id: string;
|
|
@@ -22,7 +22,7 @@ export interface WorkflowStep {
|
|
|
22
22
|
durationMs: number | null;
|
|
23
23
|
createdAt: number;
|
|
24
24
|
}
|
|
25
|
-
export declare function createWorkflowHandlers(db:
|
|
25
|
+
export declare function createWorkflowHandlers(db: SqliteDatabase, workerUrl?: string): {
|
|
26
26
|
triggerHandler: (c: Context) => Promise<(Response & import("hono").TypedResponse<{
|
|
27
27
|
success: true;
|
|
28
28
|
executionId: `${string}-${string}-${string}-${string}-${string}`;
|
|
@@ -101,4 +101,4 @@ export declare function createWorkflowHandlers(db: Database.Database, workerUrl?
|
|
|
101
101
|
export interface WorkflowExecutor {
|
|
102
102
|
triggerWorkflow: (workflowName: string, input: unknown, workerUrl: string) => Promise<string>;
|
|
103
103
|
}
|
|
104
|
-
export declare function createWorkflowExecutor(db:
|
|
104
|
+
export declare function createWorkflowExecutor(db: SqliteDatabase): WorkflowExecutor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-service.js","sourceRoot":"","sources":["../../src/services/workflow-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AA6BzC,MAAM,UAAU,sBAAsB,
|
|
1
|
+
{"version":3,"file":"workflow-service.js","sourceRoot":"","sources":["../../src/services/workflow-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface RunResult {
|
|
2
|
+
changes: number;
|
|
3
|
+
lastInsertRowid: number | bigint;
|
|
4
|
+
}
|
|
5
|
+
export interface Statement {
|
|
6
|
+
run: (...params: unknown[]) => RunResult;
|
|
7
|
+
get: (...params: unknown[]) => unknown;
|
|
8
|
+
all: (...params: unknown[]) => unknown[];
|
|
9
|
+
}
|
|
10
|
+
export interface SqliteDatabase {
|
|
11
|
+
prepare: (sql: string) => Statement;
|
|
12
|
+
exec: (sql: string) => void;
|
|
13
|
+
close: () => void;
|
|
14
|
+
pragma: (pragma: string) => void;
|
|
15
|
+
transaction: <T>(fn: () => T) => () => T;
|
|
16
|
+
dumpToBuffer: () => Promise<Buffer>;
|
|
17
|
+
}
|
|
18
|
+
export declare function openDatabase(filepath: string): SqliteDatabase;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { readFileSync, unlinkSync } from "node:fs";
|
|
3
|
+
import { tmpdir } from "node:os";
|
|
4
|
+
import { join } from "node:path";
|
|
5
|
+
import { DatabaseSync, backup } from "node:sqlite";
|
|
6
|
+
export function openDatabase(filepath) {
|
|
7
|
+
const db = new DatabaseSync(filepath);
|
|
8
|
+
return {
|
|
9
|
+
prepare(sql) {
|
|
10
|
+
const stmt = db.prepare(sql);
|
|
11
|
+
return {
|
|
12
|
+
run(...params) {
|
|
13
|
+
const result = stmt.run(...params);
|
|
14
|
+
return {
|
|
15
|
+
changes: Number(result.changes),
|
|
16
|
+
lastInsertRowid: result.lastInsertRowid,
|
|
17
|
+
};
|
|
18
|
+
},
|
|
19
|
+
get(...params) {
|
|
20
|
+
return stmt.get(...params);
|
|
21
|
+
},
|
|
22
|
+
all(...params) {
|
|
23
|
+
return stmt.all(...params);
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
},
|
|
27
|
+
exec(sql) {
|
|
28
|
+
db.exec(sql);
|
|
29
|
+
},
|
|
30
|
+
close() {
|
|
31
|
+
db.close();
|
|
32
|
+
},
|
|
33
|
+
pragma(pragma) {
|
|
34
|
+
db.exec(`PRAGMA ${pragma}`);
|
|
35
|
+
},
|
|
36
|
+
transaction(fn) {
|
|
37
|
+
return () => {
|
|
38
|
+
db.exec("BEGIN");
|
|
39
|
+
try {
|
|
40
|
+
const result = fn();
|
|
41
|
+
db.exec("COMMIT");
|
|
42
|
+
return result;
|
|
43
|
+
}
|
|
44
|
+
catch (e) {
|
|
45
|
+
db.exec("ROLLBACK");
|
|
46
|
+
throw e;
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
},
|
|
50
|
+
async dumpToBuffer() {
|
|
51
|
+
const tempPath = join(tmpdir(), `ploy-dump-${randomUUID()}.db`);
|
|
52
|
+
try {
|
|
53
|
+
await backup(db, tempPath);
|
|
54
|
+
return readFileSync(tempPath);
|
|
55
|
+
}
|
|
56
|
+
finally {
|
|
57
|
+
try {
|
|
58
|
+
unlinkSync(tempPath);
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=sqlite-db.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlite-db.js","sourceRoot":"","sources":["../../src/utils/sqlite-db.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAsB,MAAM,aAAa,CAAC;AAsBvE,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC5C,MAAM,EAAE,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC;IAEtC,OAAO;QACN,OAAO,CAAC,GAAW;YAClB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC7B,OAAO;gBACN,GAAG,CAAC,GAAG,MAAiB;oBACvB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAI,MAA0B,CAAC,CAAC;oBACxD,OAAO;wBACN,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;wBAC/B,eAAe,EAAE,MAAM,CAAC,eAAe;qBACvC,CAAC;gBACH,CAAC;gBACD,GAAG,CAAC,GAAG,MAAiB;oBACvB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAI,MAA0B,CAAC,CAAC;gBACjD,CAAC;gBACD,GAAG,CAAC,GAAG,MAAiB;oBACvB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAI,MAA0B,CAAC,CAAC;gBACjD,CAAC;aACD,CAAC;QACH,CAAC;QAED,IAAI,CAAC,GAAW;YACf,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACd,CAAC;QAED,KAAK;YACJ,EAAE,CAAC,KAAK,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,CAAC,MAAc;YACpB,EAAE,CAAC,IAAI,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC;QAC7B,CAAC;QAED,WAAW,CAAI,EAAW;YACzB,OAAO,GAAG,EAAE;gBACX,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACjB,IAAI,CAAC;oBACJ,MAAM,MAAM,GAAG,EAAE,EAAE,CAAC;oBACpB,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAClB,OAAO,MAAM,CAAC;gBACf,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACZ,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBACpB,MAAM,CAAC,CAAC;gBACT,CAAC;YACF,CAAC,CAAC;QACH,CAAC;QAED,KAAK,CAAC,YAAY;YACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,aAAa,UAAU,EAAE,KAAK,CAAC,CAAC;YAChE,IAAI,CAAC;gBACJ,MAAM,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;gBAC3B,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC/B,CAAC;oBAAS,CAAC;gBACV,IAAI,CAAC;oBACJ,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACtB,CAAC;gBAAC,MAAM,CAAC;gBAET,CAAC;YACF,CAAC;QACF,CAAC;KACD,CAAC;AACH,CAAC"}
|
package/dist/utils/sqlite.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { type SqliteDatabase } from "./sqlite-db.js";
|
|
2
2
|
export interface DatabaseManager {
|
|
3
|
-
emulatorDb:
|
|
4
|
-
getD1Database: (bindingName: string) =>
|
|
3
|
+
emulatorDb: SqliteDatabase;
|
|
4
|
+
getD1Database: (bindingName: string) => SqliteDatabase;
|
|
5
5
|
close: () => void;
|
|
6
6
|
}
|
|
7
7
|
export declare function initializeDatabases(projectDir: string): DatabaseManager;
|
package/dist/utils/sqlite.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { join } from "node:path";
|
|
2
|
-
import Database from "better-sqlite3";
|
|
3
2
|
import { ensureDataDir } from "./paths.js";
|
|
3
|
+
import { openDatabase } from "./sqlite-db.js";
|
|
4
4
|
const EMULATOR_SCHEMA = `
|
|
5
5
|
-- Queue messages table
|
|
6
6
|
CREATE TABLE IF NOT EXISTS queue_messages (
|
|
@@ -137,26 +137,26 @@ CREATE TABLE IF NOT EXISTS cron_executions (
|
|
|
137
137
|
CREATE INDEX IF NOT EXISTS idx_cron_executions_name
|
|
138
138
|
ON cron_executions(cron_name, triggered_at);
|
|
139
139
|
|
|
140
|
-
--
|
|
141
|
-
CREATE TABLE IF NOT EXISTS
|
|
140
|
+
-- Timer entries table (durable timers, optionally recurring)
|
|
141
|
+
CREATE TABLE IF NOT EXISTS timer_entries (
|
|
142
142
|
id TEXT NOT NULL,
|
|
143
|
-
|
|
143
|
+
timer_name TEXT NOT NULL,
|
|
144
144
|
scheduled_time INTEGER NOT NULL,
|
|
145
145
|
payload TEXT,
|
|
146
146
|
interval_ms INTEGER,
|
|
147
147
|
status TEXT DEFAULT 'pending',
|
|
148
148
|
created_at INTEGER DEFAULT (strftime('%s', 'now')),
|
|
149
|
-
PRIMARY KEY (
|
|
149
|
+
PRIMARY KEY (timer_name, id)
|
|
150
150
|
);
|
|
151
151
|
|
|
152
|
-
CREATE INDEX IF NOT EXISTS
|
|
153
|
-
ON
|
|
152
|
+
CREATE INDEX IF NOT EXISTS idx_timer_entries_status_time
|
|
153
|
+
ON timer_entries(status, scheduled_time);
|
|
154
154
|
|
|
155
|
-
--
|
|
156
|
-
CREATE TABLE IF NOT EXISTS
|
|
155
|
+
-- Timer execution log
|
|
156
|
+
CREATE TABLE IF NOT EXISTS timer_executions (
|
|
157
157
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
158
|
-
|
|
159
|
-
|
|
158
|
+
timer_id TEXT NOT NULL,
|
|
159
|
+
timer_name TEXT NOT NULL,
|
|
160
160
|
scheduled_time INTEGER NOT NULL,
|
|
161
161
|
status TEXT DEFAULT 'pending',
|
|
162
162
|
error TEXT,
|
|
@@ -164,19 +164,19 @@ CREATE TABLE IF NOT EXISTS alarm_executions (
|
|
|
164
164
|
created_at INTEGER DEFAULT (strftime('%s', 'now'))
|
|
165
165
|
);
|
|
166
166
|
|
|
167
|
-
CREATE INDEX IF NOT EXISTS
|
|
168
|
-
ON
|
|
167
|
+
CREATE INDEX IF NOT EXISTS idx_timer_executions_name
|
|
168
|
+
ON timer_executions(timer_name, created_at);
|
|
169
169
|
`;
|
|
170
170
|
export function initializeDatabases(projectDir) {
|
|
171
171
|
const dataDir = ensureDataDir(projectDir);
|
|
172
172
|
const d1Databases = new Map();
|
|
173
|
-
const emulatorDb =
|
|
173
|
+
const emulatorDb = openDatabase(join(dataDir, "emulator.db"));
|
|
174
174
|
emulatorDb.pragma("journal_mode = WAL");
|
|
175
175
|
emulatorDb.exec(EMULATOR_SCHEMA);
|
|
176
176
|
function getD1Database(bindingName) {
|
|
177
177
|
let db = d1Databases.get(bindingName);
|
|
178
178
|
if (!db) {
|
|
179
|
-
db =
|
|
179
|
+
db = openDatabase(join(dataDir, "db", `${bindingName}.db`));
|
|
180
180
|
db.pragma("journal_mode = WAL");
|
|
181
181
|
d1Databases.set(bindingName, db);
|
|
182
182
|
}
|
package/dist/utils/sqlite.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/utils/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,
|
|
1
|
+
{"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/utils/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAuB,MAAM,gBAAgB,CAAC;AAEnE,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqKvB,CAAC;AAQF,MAAM,UAAU,mBAAmB,CAAC,UAAkB;IACrD,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,IAAI,GAAG,EAA0B,CAAC;IAEtD,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;IAC9D,UAAU,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACxC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAEjC,SAAS,aAAa,CAAC,WAAmB;QACzC,IAAI,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACtC,IAAI,CAAC,EAAE,EAAE,CAAC;YACT,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC;YAC5D,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;YAChC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,EAAE,CAAC;IACX,CAAC;IAED,SAAS,KAAK;QACb,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,KAAK,MAAM,EAAE,IAAI,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,EAAE,CAAC,KAAK,EAAE,CAAC;QACZ,CAAC;QACD,WAAW,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,OAAO;QACN,UAAU;QACV,aAAa;QACb,KAAK;KACL,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@meetploy/emulator",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.11.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -32,14 +32,12 @@
|
|
|
32
32
|
"@meetploy/shared": "*",
|
|
33
33
|
"@meetploy/tools": "*",
|
|
34
34
|
"@meetploy/types": "*",
|
|
35
|
-
"better-sqlite3": "^11.8.1",
|
|
36
35
|
"chokidar": "^4.0.0",
|
|
37
36
|
"esbuild": "^0.24.0",
|
|
38
37
|
"hono": "^4.7.0",
|
|
39
38
|
"workerd": "1.20260117.0"
|
|
40
39
|
},
|
|
41
40
|
"devDependencies": {
|
|
42
|
-
"@meetploy/dev-dashboard": "*"
|
|
43
|
-
"@types/better-sqlite3": "^7.6.12"
|
|
41
|
+
"@meetploy/dev-dashboard": "*"
|
|
44
42
|
}
|
|
45
43
|
}
|