@meetploy/emulator 1.0.0 → 1.2.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.
@@ -0,0 +1,13 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>Ploy Dev Dashboard</title>
7
+ <script type="module" crossorigin src="/assets/main-VTHM4hGV.js"></script>
8
+ <link rel="stylesheet" crossorigin href="/assets/main-BtZM9Ct7.css">
9
+ </head>
10
+ <body>
11
+ <div id="root"></div>
12
+ </body>
13
+ </html>
@@ -0,0 +1,10 @@
1
+ export interface DevDashboardOptions {
2
+ configPath?: string;
3
+ port?: number;
4
+ verbose?: boolean;
5
+ }
6
+ export interface DevDashboard {
7
+ port: number;
8
+ close: () => Promise<void>;
9
+ }
10
+ export declare function startDevDashboard(options?: DevDashboardOptions): Promise<DevDashboard>;
@@ -0,0 +1,46 @@
1
+ import { readPloyConfig } from "./config/ploy-config.js";
2
+ import { startMockServer } from "./services/mock-server.js";
3
+ import * as logger from "./utils/logger.js";
4
+ import { ensureDataDir } from "./utils/paths.js";
5
+ import { initializeDatabases } from "./utils/sqlite.js";
6
+ export async function startDevDashboard(options = {}) {
7
+ const projectDir = process.cwd();
8
+ const configPath = options.configPath ?? "ploy.yaml";
9
+ const port = options.port ?? 4000;
10
+ const verbose = options.verbose ?? false;
11
+ logger.log("Starting Ploy development dashboard...");
12
+ let config;
13
+ try {
14
+ config = readPloyConfig(projectDir, configPath);
15
+ }
16
+ catch {
17
+ config = {};
18
+ }
19
+ logger.debug(`Loaded config: ${JSON.stringify(config)}`, verbose);
20
+ ensureDataDir(projectDir);
21
+ const dbManager = initializeDatabases(projectDir);
22
+ logger.debug("Initialized databases", verbose);
23
+ const mockServer = await startMockServer(dbManager, config, {
24
+ port,
25
+ dashboardEnabled: true,
26
+ });
27
+ logger.debug(`Mock server started on port ${mockServer.port}`, verbose);
28
+ if (config.db) {
29
+ logger.log(` DB bindings: ${Object.keys(config.db).join(", ")}`);
30
+ }
31
+ if (config.queue) {
32
+ logger.log(` Queue bindings: ${Object.keys(config.queue).join(", ")}`);
33
+ }
34
+ if (config.workflow) {
35
+ logger.log(` Workflow bindings: ${Object.keys(config.workflow).join(", ")}`);
36
+ }
37
+ return {
38
+ port: mockServer.port,
39
+ close: async () => {
40
+ await mockServer.close();
41
+ dbManager.close();
42
+ logger.log("Dashboard stopped");
43
+ },
44
+ };
45
+ }
46
+ //# sourceMappingURL=dev-dashboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev-dashboard.js","sourceRoot":"","sources":["../src/dev-dashboard.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAmB,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAiCxD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACtC,UAA+B,EAAE;IAEjC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACjC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,WAAW,CAAC;IACrD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC;IAClC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC;IAEzC,MAAM,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IAErD,IAAI,MAAkB,CAAC;IACvB,IAAI,CAAC;QACJ,MAAM,GAAG,cAAc,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QAER,MAAM,GAAG,EAAE,CAAC;IACb,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,kBAAkB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAGlE,aAAa,CAAC,UAAU,CAAC,CAAC;IAG1B,MAAM,SAAS,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAClD,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;IAG/C,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE;QAC3D,IAAI;QACJ,gBAAgB,EAAE,IAAI;KACtB,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,CAAC,+BAA+B,UAAU,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;IAGxE,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,CACT,wBAAwB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACjE,CAAC;IACH,CAAC;IAED,OAAO;QACN,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,KAAK,EAAE,KAAK,IAAI,EAAE;YACjB,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;YACzB,SAAS,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACjC,CAAC;KACD,CAAC;AACH,CAAC"}
@@ -4,6 +4,7 @@ export interface EmulatorOptions {
4
4
  configPath?: string;
5
5
  watch?: boolean;
6
6
  verbose?: boolean;
7
+ dashboardPort?: number;
7
8
  }
8
9
  export declare class EmulatorServer {
9
10
  private options;
package/dist/emulator.js CHANGED
@@ -22,12 +22,14 @@ export class EmulatorServer {
22
22
  fileWatcher = null;
23
23
  queueProcessor = null;
24
24
  constructor(options = {}) {
25
+ const port = options.port ?? 8787;
25
26
  this.options = {
26
- port: options.port ?? 8787,
27
+ port,
27
28
  host: options.host ?? "localhost",
28
29
  configPath: options.configPath ?? "ploy.yaml",
29
30
  watch: options.watch ?? true,
30
31
  verbose: options.verbose ?? false,
32
+ dashboardPort: options.dashboardPort ?? port + 1000,
31
33
  };
32
34
  this.projectDir = process.cwd();
33
35
  }
@@ -42,8 +44,11 @@ export class EmulatorServer {
42
44
  this.dbManager = initializeDatabases(this.projectDir);
43
45
  logger.debug("Initialized databases", this.options.verbose);
44
46
  const workerUrl = `http://${this.options.host}:${this.options.port}`;
47
+ const dashboardPort = this.options.dashboardPort;
45
48
  this.mockServer = await startMockServer(this.dbManager, this.config, {
46
49
  workerUrl,
50
+ port: dashboardPort,
51
+ dashboardEnabled: true,
47
52
  });
48
53
  logger.debug(`Mock server started on port ${this.mockServer.port}`, this.options.verbose);
49
54
  const mockServiceUrl = `http://localhost:${this.mockServer.port}`;
@@ -80,6 +85,7 @@ export class EmulatorServer {
80
85
  logger.debug("Queue processor started", this.options.verbose);
81
86
  }
82
87
  logger.success(`Emulator running at http://${this.options.host}:${this.options.port}`);
88
+ logger.log(` Dashboard: http://${this.options.host}:${this.mockServer.port}`);
83
89
  if (this.config.db) {
84
90
  logger.log(` DB bindings: ${Object.keys(this.config.db).join(", ")}`);
85
91
  }
@@ -1 +1 @@
1
- {"version":3,"file":"emulator.js","sourceRoot":"","sources":["../src/emulator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emulator.js","sourceRoot":"","sources":["../src/emulator.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,2 +1,7 @@
1
1
  export { EmulatorServer, startEmulator } from "./emulator.js";
2
2
  export type { EmulatorOptions } from "./emulator.js";
3
+ export { initPloyForDev } from "./nextjs-dev.js";
4
+ export type { PloyDevConfig } from "./nextjs-dev.js";
5
+ export { startDevDashboard } from "./dev-dashboard.js";
6
+ export type { DevDashboardOptions, DevDashboard } from "./dev-dashboard.js";
7
+ export { DB_RUNTIME_CODE, DB_RUNTIME_CODE_PRODUCTION, } from "./runtime/db-runtime.js";
package/dist/index.js CHANGED
@@ -1,2 +1,5 @@
1
1
  export { EmulatorServer, startEmulator } from "./emulator.js";
2
+ export { initPloyForDev } from "./nextjs-dev.js";
3
+ export { startDevDashboard } from "./dev-dashboard.js";
4
+ export { DB_RUNTIME_CODE, DB_RUNTIME_CODE_PRODUCTION, } from "./runtime/db-runtime.js";
2
5
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAG9D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAIvD,OAAO,EACN,eAAe,EACf,0BAA0B,GAC1B,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export interface PloyDevConfig {
2
+ configPath?: string;
3
+ bindings?: {
4
+ db?: Record<string, string>;
5
+ };
6
+ }
7
+ export declare function initPloyForDev(config?: PloyDevConfig): Promise<void>;
@@ -0,0 +1,183 @@
1
+ import { readPloyConfig } from "./config/ploy-config.js";
2
+ import { startMockServer } from "./services/mock-server.js";
3
+ import { ensureDataDir } from "./utils/paths.js";
4
+ import { initializeDatabases } from "./utils/sqlite.js";
5
+ const PLOY_CONTEXT_SYMBOL = Symbol.for("__ploy-context__");
6
+ function createDevD1(databaseId, apiUrl) {
7
+ return {
8
+ async dump() {
9
+ const response = await fetch(`${apiUrl}/db`, {
10
+ method: "POST",
11
+ headers: { "Content-Type": "application/json" },
12
+ body: JSON.stringify({
13
+ databaseId,
14
+ method: "dump",
15
+ }),
16
+ });
17
+ if (!response.ok) {
18
+ throw new Error(`DB dump failed: ${await response.text()}`);
19
+ }
20
+ return await response.arrayBuffer();
21
+ },
22
+ prepare(query) {
23
+ let boundParams = [];
24
+ const stmt = {
25
+ bind(...values) {
26
+ boundParams = values;
27
+ return stmt;
28
+ },
29
+ async run() {
30
+ const response = await fetch(`${apiUrl}/db`, {
31
+ method: "POST",
32
+ headers: { "Content-Type": "application/json" },
33
+ body: JSON.stringify({
34
+ databaseId,
35
+ method: "prepare",
36
+ query,
37
+ params: boundParams,
38
+ }),
39
+ });
40
+ if (!response.ok) {
41
+ throw new Error(`DB query failed: ${await response.text()}`);
42
+ }
43
+ return (await response.json());
44
+ },
45
+ async all() {
46
+ return await stmt.run();
47
+ },
48
+ async first(colName) {
49
+ const result = await stmt.run();
50
+ if (result.results.length === 0) {
51
+ return null;
52
+ }
53
+ const firstRow = result.results[0];
54
+ if (colName) {
55
+ return firstRow[colName] ?? null;
56
+ }
57
+ return firstRow;
58
+ },
59
+ async raw() {
60
+ const result = await stmt.run();
61
+ if (result.results.length === 0) {
62
+ return [];
63
+ }
64
+ const keys = Object.keys(result.results[0]);
65
+ return result.results.map((row) => keys.map((k) => row[k]));
66
+ },
67
+ };
68
+ return stmt;
69
+ },
70
+ async exec(query) {
71
+ const response = await fetch(`${apiUrl}/db`, {
72
+ method: "POST",
73
+ headers: { "Content-Type": "application/json" },
74
+ body: JSON.stringify({
75
+ databaseId,
76
+ method: "exec",
77
+ query,
78
+ }),
79
+ });
80
+ if (!response.ok) {
81
+ throw new Error(`DB exec failed: ${await response.text()}`);
82
+ }
83
+ return (await response.json());
84
+ },
85
+ async batch(statements) {
86
+ const stmts = statements.map((s) => {
87
+ const data = s.__db_data;
88
+ return data || s;
89
+ });
90
+ const response = await fetch(`${apiUrl}/db`, {
91
+ method: "POST",
92
+ headers: { "Content-Type": "application/json" },
93
+ body: JSON.stringify({
94
+ databaseId,
95
+ method: "batch",
96
+ statements: stmts,
97
+ }),
98
+ });
99
+ if (!response.ok) {
100
+ throw new Error(`DB batch failed: ${await response.text()}`);
101
+ }
102
+ return (await response.json());
103
+ },
104
+ };
105
+ }
106
+ let mockServer = null;
107
+ let dbManager = null;
108
+ export async function initPloyForDev(config) {
109
+ if (process.env.NODE_ENV !== "development") {
110
+ return;
111
+ }
112
+ if (globalThis.__PLOY_DEV_INITIALIZED__) {
113
+ return;
114
+ }
115
+ globalThis.__PLOY_DEV_INITIALIZED__ = true;
116
+ const configPath = config?.configPath || "./ploy.yaml";
117
+ const projectDir = process.cwd();
118
+ let ployConfig;
119
+ try {
120
+ ployConfig = readPloyConfig(projectDir, configPath);
121
+ }
122
+ catch {
123
+ if (config?.bindings?.db) {
124
+ ployConfig = { db: config.bindings.db };
125
+ }
126
+ else {
127
+ return;
128
+ }
129
+ }
130
+ if (config?.bindings?.db) {
131
+ ployConfig = { ...ployConfig, db: config.bindings.db };
132
+ }
133
+ if (!ployConfig.db || Object.keys(ployConfig.db).length === 0) {
134
+ return;
135
+ }
136
+ ensureDataDir(projectDir);
137
+ dbManager = initializeDatabases(projectDir);
138
+ mockServer = await startMockServer(dbManager, ployConfig, {});
139
+ const apiUrl = `http://localhost:${mockServer.port}`;
140
+ const env = {};
141
+ for (const [bindingName, databaseId] of Object.entries(ployConfig.db)) {
142
+ env[bindingName] = createDevD1(databaseId, apiUrl);
143
+ }
144
+ const context = {
145
+ env,
146
+ cf: undefined,
147
+ ctx: undefined,
148
+ };
149
+ globalThis.__PLOY_DEV_CONTEXT__ = context;
150
+ Object.defineProperty(globalThis, PLOY_CONTEXT_SYMBOL, {
151
+ get() {
152
+ return context;
153
+ },
154
+ configurable: true,
155
+ });
156
+ const bindingNames = Object.keys(env);
157
+ console.log(`[Ploy] Development context initialized with bindings: ${bindingNames.join(", ")}`);
158
+ console.log(`[Ploy] Mock server running at ${apiUrl}`);
159
+ const cleanup = async () => {
160
+ if (mockServer) {
161
+ await mockServer.close();
162
+ mockServer = null;
163
+ }
164
+ if (dbManager) {
165
+ dbManager.close();
166
+ dbManager = null;
167
+ }
168
+ };
169
+ process.on("exit", () => {
170
+ if (dbManager) {
171
+ dbManager.close();
172
+ }
173
+ });
174
+ process.on("SIGINT", async () => {
175
+ await cleanup();
176
+ process.exit(0);
177
+ });
178
+ process.on("SIGTERM", async () => {
179
+ await cleanup();
180
+ process.exit(0);
181
+ });
182
+ }
183
+ //# sourceMappingURL=nextjs-dev.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nextjs-dev.js","sourceRoot":"","sources":["../src/nextjs-dev.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- export declare const DB_RUNTIME_CODE = "\ninterface DBResult {\n results: unknown[];\n success: boolean;\n meta: {\n duration: number;\n rows_read: number;\n rows_written: number;\n };\n}\n\ninterface DBPreparedStatement {\n bind: (...values: unknown[]) => DBPreparedStatement;\n run: () => Promise<DBResult>;\n all: () => Promise<DBResult>;\n first: (colName?: string) => Promise<unknown | null>;\n raw: (options?: { columnNames?: boolean }) => Promise<unknown[][]>;\n}\n\ninterface DBDatabase {\n prepare: (query: string) => DBPreparedStatement;\n dump: () => Promise<ArrayBuffer>;\n batch: (statements: DBPreparedStatement[]) => Promise<DBResult[]>;\n exec: (query: string) => Promise<DBResult>;\n}\n\nexport function initializeDB(bindingName: string, serviceUrl: string): DBDatabase {\n return {\n prepare(query: string): DBPreparedStatement {\n let boundParams: unknown[] = [];\n\n const stmt: DBPreparedStatement = {\n bind(...values: unknown[]) {\n boundParams = values;\n return this;\n },\n\n async run(): Promise<DBResult> {\n const response = await fetch(serviceUrl, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n bindingName,\n method: \"prepare\",\n query,\n params: boundParams,\n }),\n });\n\n if (!response.ok) {\n const errorText = await response.text();\n throw new Error(\"DB query failed: \" + errorText);\n }\n\n return await response.json();\n },\n\n async all(): Promise<DBResult> {\n return await this.run();\n },\n\n async first(colName?: string): Promise<unknown | null> {\n const result = await this.run();\n if (result.results.length === 0) {\n return null;\n }\n\n const firstRow = result.results[0] as Record<string, unknown>;\n if (colName) {\n return firstRow[colName] ?? null;\n }\n return firstRow;\n },\n\n async raw(options?: { columnNames?: boolean }): Promise<unknown[][]> {\n const result = await this.run();\n const rows = result.results as Record<string, unknown>[];\n\n if (rows.length === 0) {\n return [];\n }\n\n const keys = Object.keys(rows[0]);\n const arrayRows = rows.map((row) => keys.map((key) => row[key]));\n\n if (options?.columnNames) {\n return [keys, ...arrayRows];\n }\n\n return arrayRows;\n },\n };\n\n return stmt;\n },\n\n async dump(): Promise<ArrayBuffer> {\n const response = await fetch(serviceUrl, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n bindingName,\n method: \"dump\",\n }),\n });\n\n if (!response.ok) {\n throw new Error(\"DB dump failed: \" + response.statusText);\n }\n\n return await response.arrayBuffer();\n },\n\n async batch(statements: DBPreparedStatement[]): Promise<DBResult[]> {\n const results: DBResult[] = [];\n for (const stmt of statements) {\n results.push(await stmt.run());\n }\n return results;\n },\n\n async exec(query: string): Promise<DBResult> {\n const response = await fetch(serviceUrl, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n bindingName,\n method: \"exec\",\n query,\n }),\n });\n\n if (!response.ok) {\n throw new Error(\"DB exec failed: \" + response.statusText);\n }\n\n return await response.json();\n },\n };\n}\n";
1
+ export { DB_RUNTIME_CODE, DB_RUNTIME_CODE_PRODUCTION } from "@meetploy/shared";
@@ -1,142 +1,2 @@
1
- export const DB_RUNTIME_CODE = `
2
- interface DBResult {
3
- results: unknown[];
4
- success: boolean;
5
- meta: {
6
- duration: number;
7
- rows_read: number;
8
- rows_written: number;
9
- };
10
- }
11
-
12
- interface DBPreparedStatement {
13
- bind: (...values: unknown[]) => DBPreparedStatement;
14
- run: () => Promise<DBResult>;
15
- all: () => Promise<DBResult>;
16
- first: (colName?: string) => Promise<unknown | null>;
17
- raw: (options?: { columnNames?: boolean }) => Promise<unknown[][]>;
18
- }
19
-
20
- interface DBDatabase {
21
- prepare: (query: string) => DBPreparedStatement;
22
- dump: () => Promise<ArrayBuffer>;
23
- batch: (statements: DBPreparedStatement[]) => Promise<DBResult[]>;
24
- exec: (query: string) => Promise<DBResult>;
25
- }
26
-
27
- export function initializeDB(bindingName: string, serviceUrl: string): DBDatabase {
28
- return {
29
- prepare(query: string): DBPreparedStatement {
30
- let boundParams: unknown[] = [];
31
-
32
- const stmt: DBPreparedStatement = {
33
- bind(...values: unknown[]) {
34
- boundParams = values;
35
- return this;
36
- },
37
-
38
- async run(): Promise<DBResult> {
39
- const response = await fetch(serviceUrl, {
40
- method: "POST",
41
- headers: { "Content-Type": "application/json" },
42
- body: JSON.stringify({
43
- bindingName,
44
- method: "prepare",
45
- query,
46
- params: boundParams,
47
- }),
48
- });
49
-
50
- if (!response.ok) {
51
- const errorText = await response.text();
52
- throw new Error("DB query failed: " + errorText);
53
- }
54
-
55
- return await response.json();
56
- },
57
-
58
- async all(): Promise<DBResult> {
59
- return await this.run();
60
- },
61
-
62
- async first(colName?: string): Promise<unknown | null> {
63
- const result = await this.run();
64
- if (result.results.length === 0) {
65
- return null;
66
- }
67
-
68
- const firstRow = result.results[0] as Record<string, unknown>;
69
- if (colName) {
70
- return firstRow[colName] ?? null;
71
- }
72
- return firstRow;
73
- },
74
-
75
- async raw(options?: { columnNames?: boolean }): Promise<unknown[][]> {
76
- const result = await this.run();
77
- const rows = result.results as Record<string, unknown>[];
78
-
79
- if (rows.length === 0) {
80
- return [];
81
- }
82
-
83
- const keys = Object.keys(rows[0]);
84
- const arrayRows = rows.map((row) => keys.map((key) => row[key]));
85
-
86
- if (options?.columnNames) {
87
- return [keys, ...arrayRows];
88
- }
89
-
90
- return arrayRows;
91
- },
92
- };
93
-
94
- return stmt;
95
- },
96
-
97
- async dump(): Promise<ArrayBuffer> {
98
- const response = await fetch(serviceUrl, {
99
- method: "POST",
100
- headers: { "Content-Type": "application/json" },
101
- body: JSON.stringify({
102
- bindingName,
103
- method: "dump",
104
- }),
105
- });
106
-
107
- if (!response.ok) {
108
- throw new Error("DB dump failed: " + response.statusText);
109
- }
110
-
111
- return await response.arrayBuffer();
112
- },
113
-
114
- async batch(statements: DBPreparedStatement[]): Promise<DBResult[]> {
115
- const results: DBResult[] = [];
116
- for (const stmt of statements) {
117
- results.push(await stmt.run());
118
- }
119
- return results;
120
- },
121
-
122
- async exec(query: string): Promise<DBResult> {
123
- const response = await fetch(serviceUrl, {
124
- method: "POST",
125
- headers: { "Content-Type": "application/json" },
126
- body: JSON.stringify({
127
- bindingName,
128
- method: "exec",
129
- query,
130
- }),
131
- });
132
-
133
- if (!response.ok) {
134
- throw new Error("DB exec failed: " + response.statusText);
135
- }
136
-
137
- return await response.json();
138
- },
139
- };
140
- }
141
- `;
1
+ export { DB_RUNTIME_CODE, DB_RUNTIME_CODE_PRODUCTION } from "@meetploy/shared";
142
2
  //# sourceMappingURL=db-runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"db-runtime.js","sourceRoot":"","sources":["../../src/runtime/db-runtime.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4I9B,CAAC"}
1
+ {"version":3,"file":"db-runtime.js","sourceRoot":"","sources":["../../src/runtime/db-runtime.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { PloyConfig } from "../config/ploy-config.js";
2
+ import type { DatabaseManager } from "../utils/sqlite.js";
3
+ import type { Hono } from "hono";
4
+ export declare function createDashboardRoutes(app: Hono, dbManager: DatabaseManager, config: PloyConfig): void;