@dotdo/postgres 0.1.1 → 0.1.3

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.
Files changed (111) hide show
  1. package/README.md +73 -1
  2. package/dist/client/index.d.ts +47 -0
  3. package/dist/client/index.d.ts.map +1 -0
  4. package/dist/client/index.js +47 -0
  5. package/dist/client/index.js.map +1 -0
  6. package/dist/client/postgres-client.d.ts +273 -0
  7. package/dist/client/postgres-client.d.ts.map +1 -0
  8. package/dist/client/postgres-client.js +389 -0
  9. package/dist/client/postgres-client.js.map +1 -0
  10. package/dist/client/types.d.ts +167 -0
  11. package/dist/client/types.d.ts.map +1 -0
  12. package/dist/client/types.js +7 -0
  13. package/dist/client/types.js.map +1 -0
  14. package/dist/do/index.d.ts +18 -0
  15. package/dist/do/index.d.ts.map +1 -0
  16. package/dist/do/index.js +18 -0
  17. package/dist/do/index.js.map +1 -0
  18. package/dist/do/postgres.d.ts +110 -0
  19. package/dist/do/postgres.d.ts.map +1 -0
  20. package/dist/do/postgres.js +266 -0
  21. package/dist/do/postgres.js.map +1 -0
  22. package/dist/do/sql.d.ts +92 -0
  23. package/dist/do/sql.d.ts.map +1 -0
  24. package/dist/do/sql.js +204 -0
  25. package/dist/do/sql.js.map +1 -0
  26. package/dist/index.d.ts +25 -30
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +29 -30
  29. package/dist/index.js.map +1 -1
  30. package/dist/mcp/binding.d.ts +47 -0
  31. package/dist/mcp/binding.d.ts.map +1 -0
  32. package/dist/mcp/binding.js +183 -0
  33. package/dist/mcp/binding.js.map +1 -0
  34. package/dist/mcp/index.d.ts +92 -0
  35. package/dist/mcp/index.d.ts.map +1 -0
  36. package/dist/mcp/index.js +91 -0
  37. package/dist/mcp/index.js.map +1 -0
  38. package/dist/mcp/server.d.ts +62 -0
  39. package/dist/mcp/server.d.ts.map +1 -0
  40. package/dist/mcp/server.js +278 -0
  41. package/dist/mcp/server.js.map +1 -0
  42. package/dist/mcp/tools.d.ts +58 -0
  43. package/dist/mcp/tools.d.ts.map +1 -0
  44. package/dist/mcp/tools.js +356 -0
  45. package/dist/mcp/tools.js.map +1 -0
  46. package/dist/mcp/types.d.ts +139 -0
  47. package/dist/mcp/types.d.ts.map +1 -0
  48. package/dist/mcp/types.js +7 -0
  49. package/dist/mcp/types.js.map +1 -0
  50. package/dist/pglite/workers-pglite.d.ts +13 -4
  51. package/dist/pglite/workers-pglite.d.ts.map +1 -1
  52. package/dist/pglite/workers-pglite.js +110 -5
  53. package/dist/pglite/workers-pglite.js.map +1 -1
  54. package/dist/pglite-assets/pglite.data +0 -0
  55. package/dist/pglite-assets/pglite.wasm +0 -0
  56. package/dist/worker/auth.d.ts.map +1 -1
  57. package/dist/worker/auth.js +16 -6
  58. package/dist/worker/auth.js.map +1 -1
  59. package/dist/worker/background-pglite-manager.d.ts +243 -0
  60. package/dist/worker/background-pglite-manager.d.ts.map +1 -0
  61. package/dist/worker/background-pglite-manager.js +528 -0
  62. package/dist/worker/background-pglite-manager.js.map +1 -0
  63. package/dist/worker/do-pglite-manager.d.ts +77 -0
  64. package/dist/worker/do-pglite-manager.d.ts.map +1 -1
  65. package/dist/worker/do-pglite-manager.js +189 -12
  66. package/dist/worker/do-pglite-manager.js.map +1 -1
  67. package/dist/worker/entry.d.ts.map +1 -1
  68. package/dist/worker/entry.js +108 -26
  69. package/dist/worker/entry.js.map +1 -1
  70. package/dist/worker/index.d.ts +7 -1
  71. package/dist/worker/index.d.ts.map +1 -1
  72. package/dist/worker/index.js +19 -1
  73. package/dist/worker/index.js.map +1 -1
  74. package/dist/worker/lazy-pglite-manager.d.ts +242 -0
  75. package/dist/worker/lazy-pglite-manager.d.ts.map +1 -0
  76. package/dist/worker/lazy-pglite-manager.js +463 -0
  77. package/dist/worker/lazy-pglite-manager.js.map +1 -0
  78. package/package.json +20 -6
  79. package/src/client/index.ts +61 -0
  80. package/src/client/postgres-client.ts +442 -0
  81. package/src/client/types.ts +211 -0
  82. package/src/do/index.ts +18 -0
  83. package/src/do/postgres.ts +367 -0
  84. package/src/do/sql.ts +280 -0
  85. package/src/index.ts +50 -30
  86. package/src/mcp/binding.ts +236 -0
  87. package/src/mcp/index.ts +122 -0
  88. package/src/mcp/server.ts +361 -0
  89. package/src/mcp/tools.ts +464 -0
  90. package/src/mcp/types.ts +148 -0
  91. package/src/pglite/workers-pglite.ts +141 -12
  92. package/src/pglite-assets/pglite.data +0 -0
  93. package/src/pglite-assets/pglite.wasm +0 -0
  94. package/src/worker/auth.ts +17 -6
  95. package/src/worker/background-pglite-manager.ts +680 -0
  96. package/src/worker/do-pglite-manager.ts +235 -19
  97. package/src/worker/entry.ts +112 -30
  98. package/src/worker/index.ts +71 -1
  99. package/src/worker/lazy-pglite-manager.ts +595 -0
  100. package/dist/iceberg/duckdb-wasm.d.ts +0 -447
  101. package/dist/iceberg/duckdb-wasm.d.ts.map +0 -1
  102. package/dist/iceberg/duckdb-wasm.js +0 -600
  103. package/dist/iceberg/duckdb-wasm.js.map +0 -1
  104. package/dist/iceberg/test-fixtures.d.ts +0 -151
  105. package/dist/iceberg/test-fixtures.d.ts.map +0 -1
  106. package/dist/iceberg/test-fixtures.js +0 -446
  107. package/dist/iceberg/test-fixtures.js.map +0 -1
  108. package/dist/worker/__mocks__/cloudflare-workers.d.ts +0 -31
  109. package/dist/worker/__mocks__/cloudflare-workers.d.ts.map +0 -1
  110. package/dist/worker/__mocks__/cloudflare-workers.js +0 -33
  111. package/dist/worker/__mocks__/cloudflare-workers.js.map +0 -1
@@ -0,0 +1,356 @@
1
+ /**
2
+ * MCP Tools for PostgresDO
3
+ *
4
+ * Implements the three core MCP tools: search, fetch, and do.
5
+ */
6
+ import { createPGBinding, PG_BINDING_TYPES } from './binding.js';
7
+ /**
8
+ * Search tool definition
9
+ */
10
+ export const searchTool = {
11
+ name: 'search',
12
+ description: 'Search the PostgreSQL database. Supports SQL queries, table listing, and schema introspection.',
13
+ inputSchema: {
14
+ type: 'object',
15
+ properties: {
16
+ query: {
17
+ type: 'string',
18
+ description: 'Search query. Can be: SQL query (SELECT ...), "tables" to list tables, or "schema:<table>" to get table schema',
19
+ },
20
+ limit: {
21
+ type: 'number',
22
+ description: 'Maximum number of results to return',
23
+ },
24
+ },
25
+ required: ['query'],
26
+ },
27
+ };
28
+ /**
29
+ * Fetch tool definition
30
+ */
31
+ export const fetchTool = {
32
+ name: 'fetch',
33
+ description: 'Fetch a specific resource from the database. Format: "table/id" or "schema/table/column"',
34
+ inputSchema: {
35
+ type: 'object',
36
+ properties: {
37
+ resource: {
38
+ type: 'string',
39
+ description: 'Resource identifier. Format: "table/id" to get a row, or "schema/table" for table schema',
40
+ },
41
+ },
42
+ required: ['resource'],
43
+ },
44
+ };
45
+ /**
46
+ * Do tool definition
47
+ */
48
+ export const doTool = {
49
+ name: 'do',
50
+ description: `Execute TypeScript/JavaScript code with access to the PostgreSQL database via the 'pg' binding.
51
+
52
+ Available APIs:
53
+ ${PG_BINDING_TYPES}`,
54
+ inputSchema: {
55
+ type: 'object',
56
+ properties: {
57
+ code: {
58
+ type: 'string',
59
+ description: 'TypeScript/JavaScript code to execute',
60
+ },
61
+ },
62
+ required: ['code'],
63
+ },
64
+ };
65
+ /**
66
+ * Create the search tool handler
67
+ */
68
+ export function createSearchHandler(executor) {
69
+ return async (input) => {
70
+ try {
71
+ const { query, limit = 100 } = input;
72
+ // Handle special commands
73
+ if (query.toLowerCase() === 'tables') {
74
+ const result = await executor.rpcQuery(`
75
+ SELECT
76
+ table_name as name,
77
+ table_schema as schema,
78
+ table_type as type
79
+ FROM information_schema.tables
80
+ WHERE table_schema NOT IN ('pg_catalog', 'information_schema')
81
+ ORDER BY table_schema, table_name
82
+ LIMIT $1
83
+ `, [limit]);
84
+ const results = result.rows.map((row) => ({
85
+ id: `${row.schema}.${row.name}`,
86
+ title: row.name,
87
+ snippet: `${row.type} in schema ${row.schema}`,
88
+ metadata: { schema: row.schema, type: row.type },
89
+ }));
90
+ return {
91
+ content: [{ type: 'text', text: JSON.stringify(results, null, 2) }],
92
+ };
93
+ }
94
+ // Handle schema introspection: "schema:tablename"
95
+ if (query.toLowerCase().startsWith('schema:')) {
96
+ const tableName = query.slice(7).trim();
97
+ // Validate table name
98
+ if (!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(tableName)) {
99
+ return {
100
+ content: [{ type: 'text', text: JSON.stringify({ error: 'Invalid table name' }) }],
101
+ isError: true,
102
+ };
103
+ }
104
+ const result = await executor.rpcQuery(`
105
+ SELECT
106
+ column_name as name,
107
+ data_type as type,
108
+ is_nullable,
109
+ column_default
110
+ FROM information_schema.columns
111
+ WHERE table_name = $1
112
+ AND table_schema NOT IN ('pg_catalog', 'information_schema')
113
+ ORDER BY ordinal_position
114
+ `, [tableName]);
115
+ const results = result.rows.map((row) => ({
116
+ id: `${tableName}.${row.name}`,
117
+ title: row.name,
118
+ snippet: `${row.type}${row.is_nullable === 'NO' ? ' NOT NULL' : ''}${row.column_default ? ` DEFAULT ${row.column_default}` : ''}`,
119
+ metadata: {
120
+ table: tableName,
121
+ type: row.type,
122
+ nullable: row.is_nullable === 'YES',
123
+ default: row.column_default,
124
+ },
125
+ }));
126
+ return {
127
+ content: [{ type: 'text', text: JSON.stringify(results, null, 2) }],
128
+ };
129
+ }
130
+ // Execute SQL query
131
+ // Add LIMIT if not present and query is a SELECT
132
+ let sql = query.trim();
133
+ const isSelect = sql.toLowerCase().startsWith('select');
134
+ if (isSelect && !sql.toLowerCase().includes('limit')) {
135
+ sql = `${sql} LIMIT ${limit}`;
136
+ }
137
+ const result = await executor.rpcQuery(sql);
138
+ const results = result.rows.map((row, index) => {
139
+ // Try to find an id-like field
140
+ const idField = Object.keys(row).find((k) => k === 'id' || k.endsWith('_id') || k === 'uuid');
141
+ const id = idField ? String(row[idField]) : String(index);
142
+ // Create a title from the first non-id field
143
+ const titleField = Object.keys(row).find((k) => k !== idField && typeof row[k] === 'string');
144
+ const title = titleField ? String(row[titleField]) : `Row ${index + 1}`;
145
+ return {
146
+ id,
147
+ title,
148
+ snippet: JSON.stringify(row),
149
+ metadata: row,
150
+ };
151
+ });
152
+ return {
153
+ content: [{ type: 'text', text: JSON.stringify(results, null, 2) }],
154
+ };
155
+ }
156
+ catch (error) {
157
+ const message = error instanceof Error ? error.message : 'Unknown error';
158
+ return {
159
+ content: [{ type: 'text', text: JSON.stringify({ error: message }) }],
160
+ isError: true,
161
+ };
162
+ }
163
+ };
164
+ }
165
+ /**
166
+ * Create the fetch tool handler
167
+ */
168
+ export function createFetchHandler(executor) {
169
+ return async (input) => {
170
+ try {
171
+ const { resource } = input;
172
+ const parts = resource.split('/');
173
+ // Handle schema fetch: "schema/tablename"
174
+ if (parts[0].toLowerCase() === 'schema' && parts.length === 2) {
175
+ const tableName = parts[1];
176
+ // Validate table name
177
+ if (!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(tableName)) {
178
+ return {
179
+ content: [{ type: 'text', text: JSON.stringify({ error: 'Invalid table name' }) }],
180
+ isError: true,
181
+ };
182
+ }
183
+ const result = await executor.rpcQuery(`
184
+ SELECT
185
+ column_name as name,
186
+ data_type as type,
187
+ is_nullable = 'YES' as nullable,
188
+ column_default as "default"
189
+ FROM information_schema.columns
190
+ WHERE table_name = $1
191
+ AND table_schema NOT IN ('pg_catalog', 'information_schema')
192
+ ORDER BY ordinal_position
193
+ `, [tableName]);
194
+ const fetchResult = {
195
+ content: JSON.stringify(result.rows, null, 2),
196
+ contentType: 'application/json',
197
+ metadata: {
198
+ table: tableName,
199
+ columnCount: result.rows.length,
200
+ },
201
+ };
202
+ return {
203
+ content: [{ type: 'text', text: JSON.stringify(fetchResult, null, 2) }],
204
+ };
205
+ }
206
+ // Handle row fetch: "tablename/id"
207
+ if (parts.length === 2) {
208
+ const [tableName, id] = parts;
209
+ // Validate table name
210
+ if (!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(tableName)) {
211
+ return {
212
+ content: [{ type: 'text', text: JSON.stringify({ error: 'Invalid table name' }) }],
213
+ isError: true,
214
+ };
215
+ }
216
+ // Try to find the primary key column
217
+ const pkResult = await executor.rpcQuery(`
218
+ SELECT kcu.column_name
219
+ FROM information_schema.key_column_usage kcu
220
+ JOIN information_schema.table_constraints tc
221
+ ON kcu.constraint_name = tc.constraint_name
222
+ WHERE tc.constraint_type = 'PRIMARY KEY'
223
+ AND kcu.table_name = $1
224
+ LIMIT 1
225
+ `, [tableName]);
226
+ const pkColumn = pkResult.rows.length > 0 ? pkResult.rows[0].column_name : 'id';
227
+ // Fetch the row
228
+ const result = await executor.rpcQuery(`SELECT * FROM "${tableName}" WHERE "${pkColumn}" = $1 LIMIT 1`, [id]);
229
+ if (result.rows.length === 0) {
230
+ return {
231
+ content: [
232
+ {
233
+ type: 'text',
234
+ text: JSON.stringify({ error: `Row not found: ${resource}` }),
235
+ },
236
+ ],
237
+ isError: true,
238
+ };
239
+ }
240
+ const fetchResult = {
241
+ content: JSON.stringify(result.rows[0], null, 2),
242
+ contentType: 'application/json',
243
+ metadata: {
244
+ table: tableName,
245
+ primaryKey: pkColumn,
246
+ id,
247
+ },
248
+ };
249
+ return {
250
+ content: [{ type: 'text', text: JSON.stringify(fetchResult, null, 2) }],
251
+ };
252
+ }
253
+ return {
254
+ content: [
255
+ {
256
+ type: 'text',
257
+ text: JSON.stringify({
258
+ error: 'Invalid resource format. Use "table/id" for rows or "schema/table" for schema',
259
+ }),
260
+ },
261
+ ],
262
+ isError: true,
263
+ };
264
+ }
265
+ catch (error) {
266
+ const message = error instanceof Error ? error.message : 'Unknown error';
267
+ return {
268
+ content: [{ type: 'text', text: JSON.stringify({ error: message }) }],
269
+ isError: true,
270
+ };
271
+ }
272
+ };
273
+ }
274
+ /**
275
+ * Create the do tool handler
276
+ */
277
+ export function createDoHandler(executor, options = {}) {
278
+ const { timeout = 5000 } = options;
279
+ return async (input) => {
280
+ const startTime = Date.now();
281
+ const logs = [];
282
+ try {
283
+ const { code } = input;
284
+ // Create the pg binding
285
+ const pg = createPGBinding(executor);
286
+ // Create sandbox console that captures logs
287
+ const sandboxConsole = {
288
+ log: (...args) => logs.push(['log', args.map(String).join(' ')]),
289
+ error: (...args) => logs.push(['error', args.map(String).join(' ')]),
290
+ warn: (...args) => logs.push(['warn', args.map(String).join(' ')]),
291
+ info: (...args) => logs.push(['info', args.map(String).join(' ')]),
292
+ };
293
+ // Create and execute function with sandbox
294
+ // Note: In production, use ai-evaluate for proper V8 isolation
295
+ const fn = new Function('pg', 'console', `
296
+ return (async () => {
297
+ ${code}
298
+ })()
299
+ `);
300
+ // Execute with timeout
301
+ const result = await Promise.race([
302
+ fn(pg, sandboxConsole),
303
+ new Promise((_, reject) => setTimeout(() => reject(new Error('Execution timeout')), timeout)),
304
+ ]);
305
+ const duration = Date.now() - startTime;
306
+ return {
307
+ content: [
308
+ {
309
+ type: 'text',
310
+ text: JSON.stringify({
311
+ success: true,
312
+ value: result,
313
+ logs: logs.map(([level, msg]) => ({ level, message: msg })),
314
+ duration,
315
+ }, null, 2),
316
+ },
317
+ ],
318
+ };
319
+ }
320
+ catch (error) {
321
+ const duration = Date.now() - startTime;
322
+ const message = error instanceof Error ? error.message : 'Unknown error';
323
+ return {
324
+ content: [
325
+ {
326
+ type: 'text',
327
+ text: JSON.stringify({
328
+ success: false,
329
+ error: message,
330
+ logs: logs.map(([level, msg]) => ({ level, message: msg })),
331
+ duration,
332
+ }, null, 2),
333
+ },
334
+ ],
335
+ isError: true,
336
+ };
337
+ }
338
+ };
339
+ }
340
+ /**
341
+ * Get all tool definitions
342
+ */
343
+ export function getToolDefinitions() {
344
+ return [searchTool, fetchTool, doTool];
345
+ }
346
+ /**
347
+ * Create all tool handlers
348
+ */
349
+ export function createToolHandlers(executor, options = {}) {
350
+ return {
351
+ search: createSearchHandler(executor),
352
+ fetch: createFetchHandler(executor),
353
+ do: createDoHandler(executor, options),
354
+ };
355
+ }
356
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * MCP Server Types for PostgresDO
3
+ *
4
+ * Type definitions for the MCP (Model Context Protocol) server implementation.
5
+ */
6
+ /**
7
+ * Query result from pg.query()
8
+ */
9
+ export interface QueryResult<T = Record<string, unknown>> {
10
+ rows: T[];
11
+ rowCount: number;
12
+ fields: Array<{
13
+ name: string;
14
+ dataTypeID: number;
15
+ }>;
16
+ }
17
+ /**
18
+ * Table information from pg.tables()
19
+ */
20
+ export interface TableInfo {
21
+ name: string;
22
+ schema: string;
23
+ type: 'table' | 'view' | 'materialized_view';
24
+ rowCount?: number;
25
+ }
26
+ /**
27
+ * Column schema from pg.schema()
28
+ */
29
+ export interface ColumnInfo {
30
+ name: string;
31
+ type: string;
32
+ nullable: boolean;
33
+ default?: string;
34
+ primaryKey: boolean;
35
+ }
36
+ /**
37
+ * Search result for MCP search tool
38
+ */
39
+ export interface MCPSearchResult {
40
+ id: string;
41
+ title: string;
42
+ snippet?: string;
43
+ score?: number;
44
+ metadata?: Record<string, unknown>;
45
+ }
46
+ /**
47
+ * Fetch result for MCP fetch tool
48
+ */
49
+ export interface MCPFetchResult {
50
+ content: string;
51
+ contentType?: string;
52
+ metadata?: Record<string, unknown>;
53
+ }
54
+ /**
55
+ * The pg binding exposed to the do tool
56
+ */
57
+ export interface PGBinding {
58
+ /**
59
+ * Execute a SQL query with optional parameters
60
+ */
61
+ query<T = Record<string, unknown>>(sql: string, params?: unknown[]): Promise<QueryResult<T>>;
62
+ /**
63
+ * Execute a SQL statement (INSERT, UPDATE, DELETE)
64
+ */
65
+ execute(sql: string, params?: unknown[]): Promise<{
66
+ rowCount: number;
67
+ }>;
68
+ /**
69
+ * Execute multiple statements in a transaction
70
+ */
71
+ transaction<T>(fn: (tx: PGTransaction) => Promise<T>): Promise<T>;
72
+ /**
73
+ * List all tables in the database
74
+ */
75
+ tables(): Promise<TableInfo[]>;
76
+ /**
77
+ * Get schema information for a table
78
+ */
79
+ schema(tableName: string): Promise<ColumnInfo[]>;
80
+ }
81
+ /**
82
+ * Transaction context for pg.transaction()
83
+ */
84
+ export interface PGTransaction {
85
+ query<T = Record<string, unknown>>(sql: string, params?: unknown[]): Promise<QueryResult<T>>;
86
+ execute(sql: string, params?: unknown[]): Promise<{
87
+ rowCount: number;
88
+ }>;
89
+ }
90
+ /**
91
+ * MCP tool response format
92
+ */
93
+ export interface ToolResponse {
94
+ content: Array<{
95
+ type: string;
96
+ text: string;
97
+ }>;
98
+ isError?: boolean;
99
+ }
100
+ /**
101
+ * Search tool input
102
+ */
103
+ export interface SearchInput {
104
+ query: string;
105
+ limit?: number;
106
+ }
107
+ /**
108
+ * Fetch tool input
109
+ */
110
+ export interface FetchInput {
111
+ resource: string;
112
+ }
113
+ /**
114
+ * Do tool input
115
+ */
116
+ export interface DoInput {
117
+ code: string;
118
+ }
119
+ /**
120
+ * Auth context from oauth.do JWT
121
+ */
122
+ export interface MCPAuthContext {
123
+ userId: string;
124
+ email?: string;
125
+ scopes?: string[];
126
+ metadata?: Record<string, unknown>;
127
+ }
128
+ /**
129
+ * MCP Server configuration
130
+ */
131
+ export interface MCPServerConfig {
132
+ /** Database ID for the PostgresDO instance */
133
+ databaseId: string;
134
+ /** Optional auth context from JWT */
135
+ authContext?: MCPAuthContext;
136
+ /** Timeout for code execution in ms (default: 5000) */
137
+ timeout?: number;
138
+ }
139
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/mcp/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * MCP Server Types for PostgresDO
3
+ *
4
+ * Type definitions for the MCP (Model Context Protocol) server implementation.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/mcp/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -11,6 +11,11 @@
11
11
  * - Properly handles fsBundle as ArrayBuffer or Blob
12
12
  * - Provides query/exec/transaction interface compatible with PostgresDO
13
13
  *
14
+ * IMPORTANT: This module uses dynamic imports to ensure environment patches
15
+ * are applied BEFORE pglite.js is evaluated. The Emscripten-generated code
16
+ * checks `typeof WorkerGlobalScope` at module load time, which must happen
17
+ * AFTER we've patched the global environment.
18
+ *
14
19
  * @example
15
20
  * ```typescript
16
21
  * import { createWorkersPGLite } from './workers-pglite'
@@ -27,8 +32,7 @@
27
32
  * console.log(result.rows[0].sum) // 2
28
33
  * ```
29
34
  */
30
- import { type PGliteOptions, type DebugLevel } from '@dotdo/pglite';
31
- type PGliteWorkersOptions = PGliteOptions;
35
+ import type { DebugLevel } from '@dotdo/pglite';
32
36
  type QueryResult<T = unknown> = {
33
37
  rows: T[];
34
38
  fields: {
@@ -85,7 +89,7 @@ export interface WorkersPGLiteLike {
85
89
  ready?: boolean;
86
90
  }
87
91
  /**
88
- * Wrapper around PGliteWorkers that provides a compatible interface
92
+ * Wrapper around PGlite that provides a compatible interface
89
93
  * for PostgresDO and handles fsBundle conversion
90
94
  */
91
95
  export declare class WorkersPGLite implements WorkersPGLiteLike {
@@ -94,6 +98,10 @@ export declare class WorkersPGLite implements WorkersPGLiteLike {
94
98
  private constructor();
95
99
  /**
96
100
  * Create a new WorkersPGLite instance
101
+ *
102
+ * IMPORTANT: This method uses dynamic import to load @dotdo/pglite
103
+ * AFTER applying environment patches. This is necessary because
104
+ * pglite.js evaluates environment detection code at module load time.
97
105
  */
98
106
  static create(options: WorkersPGLiteOptions): Promise<WorkersPGLite>;
99
107
  /**
@@ -134,5 +142,6 @@ export declare function createWorkersPGLite(options: WorkersPGLiteOptions): Prom
134
142
  * Type guard to check if a value is a WorkersPGLite instance
135
143
  */
136
144
  export declare function isWorkersPGLite(value: unknown): value is WorkersPGLite;
137
- export type { PGliteWorkersOptions, QueryResult };
145
+ export type { QueryResult };
146
+ export type PGliteWorkersOptions = WorkersPGLiteOptions;
138
147
  //# sourceMappingURL=workers-pglite.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workers-pglite.d.ts","sourceRoot":"","sources":["../../src/pglite/workers-pglite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workers-pglite.d.ts","sourceRoot":"","sources":["../../src/pglite/workers-pglite.ts"],"names":[],"mappings":"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"}