orez 0.0.43 → 0.0.45

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAcH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAElD,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAC5D,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAe3D,wBAAsB,aAAa,CAAC,SAAS,GAAE,OAAO,CAAC,cAAc,CAAM;;;;;;;GA+H1E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgBH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAElD,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAC5D,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAe3D,wBAAsB,aAAa,CAAC,SAAS,GAAE,OAAO,CAAC,cAAc,CAAM;;;;;;;GA+H1E"}
package/dist/index.js CHANGED
@@ -8,7 +8,9 @@
8
8
  import { spawn } from 'node:child_process';
9
9
  import { existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from 'node:fs';
10
10
  import { createRequire } from 'node:module';
11
+ import { totalmem } from 'node:os';
11
12
  import { dirname, resolve } from 'node:path';
13
+ import { fileURLToPath } from 'node:url';
12
14
  import { getConfig, getConnectionString } from './config.js';
13
15
  import { log, port, setLogLevel } from './log.js';
14
16
  import { startPgProxy } from './pg-proxy.js';
@@ -190,57 +192,22 @@ async function seedIfNeeded(db, config) {
190
192
  }
191
193
  log.orez('seeded');
192
194
  }
193
- // create a fake @rocicorp/zero-sqlite3 package in tmpdir that redirects to
194
- // bedrock-sqlite (wasm). uses NODE_PATH to make node resolve our shim first —
195
- // no require hooks, no Module._resolveFilename monkey-patching, no .cjs files
196
- // in the package (which all break vite).
195
+ // write esm loader hooks to tmpdir that intercept @rocicorp/zero-sqlite3
196
+ // and redirect to bedrock-sqlite wasm. templates live in src/shim/.
197
+ // returns the path to register.mjs (passed via --import in NODE_OPTIONS).
197
198
  function writeSqliteShim() {
198
199
  const tmp = process.env.TMPDIR || process.env.TEMP || '/tmp';
199
- const dir = resolve(tmp, 'orez-sqlite', 'node_modules', '@rocicorp', 'zero-sqlite3');
200
+ const dir = resolve(tmp, 'orez-sqlite');
200
201
  mkdirSync(dir, { recursive: true });
201
202
  const bedrockEntry = resolvePackage('bedrock-sqlite');
202
- writeFileSync(resolve(dir, 'package.json'), '{"name":"@rocicorp/zero-sqlite3","main":"./index.js"}\n');
203
- writeFileSync(resolve(dir, 'index.js'), `'use strict';
204
- var mod = require('${bedrockEntry}');
205
- var OrigDatabase = mod.Database;
206
- var SqliteError = mod.SqliteError;
207
- function Database() {
208
- var db = new OrigDatabase(...arguments);
209
- try {
210
- db.pragma('busy_timeout = 30000');
211
- db.pragma('synchronous = normal');
212
- } catch(e) {}
213
- return db;
214
- }
215
- Database.prototype = OrigDatabase.prototype;
216
- Database.prototype.constructor = Database;
217
- Object.keys(OrigDatabase).forEach(function(k) { Database[k] = OrigDatabase[k]; });
218
- Database.prototype.unsafeMode = function() { return this; };
219
- if (!Database.prototype.defaultSafeIntegers) Database.prototype.defaultSafeIntegers = function() { return this; };
220
- if (!Database.prototype.serialize) Database.prototype.serialize = function() { throw new Error('not supported in wasm'); };
221
- if (!Database.prototype.backup) Database.prototype.backup = function() { throw new Error('not supported in wasm'); };
222
- var tmpDb = new OrigDatabase(':memory:');
223
- var tmpStmt = tmpDb.prepare('SELECT 1');
224
- var SP = Object.getPrototypeOf(tmpStmt);
225
- if (!SP.safeIntegers) SP.safeIntegers = function() { return this; };
226
- SP.scanStatus = function() { return undefined; };
227
- SP.scanStatusV2 = function() { return []; };
228
- SP.scanStatusReset = function() {};
229
- tmpDb.close();
230
- Database.SQLITE_SCANSTAT_NLOOP = 0;
231
- Database.SQLITE_SCANSTAT_NVISIT = 1;
232
- Database.SQLITE_SCANSTAT_EST = 2;
233
- Database.SQLITE_SCANSTAT_NAME = 3;
234
- Database.SQLITE_SCANSTAT_EXPLAIN = 4;
235
- Database.SQLITE_SCANSTAT_SELECTID = 5;
236
- Database.SQLITE_SCANSTAT_PARENTID = 6;
237
- Database.SQLITE_SCANSTAT_NCYCLE = 7;
238
- Database.SQLITE_SCANSTAT_COMPLEX = 8;
239
- module.exports = Database;
240
- module.exports.SqliteError = SqliteError;
241
- `);
242
- // return the node_modules root so it can be prepended to NODE_PATH
243
- return resolve(tmp, 'orez-sqlite', 'node_modules');
203
+ const shimDir = resolve(dirname(fileURLToPath(import.meta.url)), '..', 'src', 'shim');
204
+ const hooksPath = resolve(dir, 'hooks.mjs');
205
+ const hooksTemplate = readFileSync(resolve(shimDir, 'hooks.mjs'), 'utf-8');
206
+ writeFileSync(hooksPath, hooksTemplate.replace(/__BEDROCK_PATH__/g, bedrockEntry));
207
+ const registerPath = resolve(dir, 'register.mjs');
208
+ const registerTemplate = readFileSync(resolve(shimDir, 'register.mjs'), 'utf-8');
209
+ writeFileSync(registerPath, registerTemplate.replace(/__HOOKS_URL__/g, `file://${hooksPath}`));
210
+ return registerPath;
244
211
  }
245
212
  async function startZeroCache(config) {
246
213
  // resolve @rocicorp/zero entry for finding zero-cache modules
@@ -288,21 +255,22 @@ async function startZeroCache(config) {
288
255
  if (!existsSync(zeroCacheBin)) {
289
256
  throw new Error('zero-cache cli.js not found. install @rocicorp/zero');
290
257
  }
291
- // wasm sqlite: create a fake @rocicorp/zero-sqlite3 in tmpdir and prepend
292
- // to NODE_PATH so node resolves our shim first. no require hooks, no
293
- // Module._resolveFilename monkey-patching (which conflicts with vite).
258
+ // calculate heap size: ~25% of system memory, min 4gb
259
+ const memMB = Math.round(totalmem() / 1024 / 1024);
260
+ const heapMB = Math.max(4096, Math.round(memMB * 0.25));
261
+ const existing = process.env.NODE_OPTIONS || '';
262
+ // wasm sqlite: write shim + ESM loader to tmpdir, pass --import to intercept
263
+ // @rocicorp/zero-sqlite3 resolution with our bedrock-sqlite wasm build
294
264
  if (!config.disableWasmSqlite) {
295
- const shimNodeModules = writeSqliteShim();
296
- const existingNodePath = process.env.NODE_PATH || '';
297
- env.NODE_PATH = existingNodePath
298
- ? `${shimNodeModules}:${existingNodePath}`
299
- : shimNodeModules;
265
+ const registerPath = writeSqliteShim();
266
+ const registerUrl = `file://${registerPath}`;
267
+ env.NODE_OPTIONS =
268
+ `--import ${registerUrl} --max-old-space-size=${heapMB} ${existing}`.trim();
269
+ }
270
+ else {
271
+ env.NODE_OPTIONS =
272
+ `--max-old-space-size=${heapMB} ${existing}`.trim();
300
273
  }
301
- const nodeOptions = !config.disableWasmSqlite
302
- ? `--max-old-space-size=16384 ${process.env.NODE_OPTIONS || ''}`
303
- : process.env.NODE_OPTIONS || '';
304
- if (nodeOptions.trim())
305
- env.NODE_OPTIONS = nodeOptions.trim();
306
274
  const child = spawn(zeroCacheBin, [], {
307
275
  env,
308
276
  stdio: ['ignore', 'pipe', 'pipe'],
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "orez",
3
- "version": "0.0.43",
3
+ "version": "0.0.45",
4
4
  "description": "PGlite-powered zero-sync development backend. No Docker required.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -46,7 +46,7 @@
46
46
  "@electric-sql/pglite": "^0.2.17",
47
47
  "@electric-sql/pglite-tools": "0.2.4",
48
48
  "@rocicorp/zero": ">=0.1.0",
49
- "bedrock-sqlite": "0.0.36",
49
+ "bedrock-sqlite": "0.0.38",
50
50
  "citty": "^0.2.0",
51
51
  "postgres": "^3.4.5",
52
52
  "pgsql-parser": "^17.9.11"
package/src/index.ts CHANGED
@@ -9,7 +9,9 @@
9
9
  import { spawn, type ChildProcess } from 'node:child_process'
10
10
  import { existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from 'node:fs'
11
11
  import { createRequire } from 'node:module'
12
+ import { totalmem } from 'node:os'
12
13
  import { dirname, resolve } from 'node:path'
14
+ import { fileURLToPath } from 'node:url'
13
15
 
14
16
  import { getConfig, getConnectionString } from './config.js'
15
17
  import { log, port, setLogLevel } from './log.js'
@@ -216,67 +218,26 @@ async function seedIfNeeded(db: PGlite, config: ZeroLiteConfig): Promise<void> {
216
218
  log.orez('seeded')
217
219
  }
218
220
 
219
- // create a fake @rocicorp/zero-sqlite3 package in tmpdir that redirects to
220
- // bedrock-sqlite (wasm). uses NODE_PATH to make node resolve our shim first —
221
- // no require hooks, no Module._resolveFilename monkey-patching, no .cjs files
222
- // in the package (which all break vite).
221
+ // write esm loader hooks to tmpdir that intercept @rocicorp/zero-sqlite3
222
+ // and redirect to bedrock-sqlite wasm. templates live in src/shim/.
223
+ // returns the path to register.mjs (passed via --import in NODE_OPTIONS).
223
224
  function writeSqliteShim(): string {
224
225
  const tmp = process.env.TMPDIR || process.env.TEMP || '/tmp'
225
- const dir = resolve(tmp, 'orez-sqlite', 'node_modules', '@rocicorp', 'zero-sqlite3')
226
+ const dir = resolve(tmp, 'orez-sqlite')
226
227
  mkdirSync(dir, { recursive: true })
227
228
 
228
229
  const bedrockEntry = resolvePackage('bedrock-sqlite')
230
+ const shimDir = resolve(dirname(fileURLToPath(import.meta.url)), '..', 'src', 'shim')
229
231
 
230
- writeFileSync(
231
- resolve(dir, 'package.json'),
232
- '{"name":"@rocicorp/zero-sqlite3","main":"./index.js"}\n'
233
- )
234
-
235
- writeFileSync(
236
- resolve(dir, 'index.js'),
237
- `'use strict';
238
- var mod = require('${bedrockEntry}');
239
- var OrigDatabase = mod.Database;
240
- var SqliteError = mod.SqliteError;
241
- function Database() {
242
- var db = new OrigDatabase(...arguments);
243
- try {
244
- db.pragma('busy_timeout = 30000');
245
- db.pragma('synchronous = normal');
246
- } catch(e) {}
247
- return db;
248
- }
249
- Database.prototype = OrigDatabase.prototype;
250
- Database.prototype.constructor = Database;
251
- Object.keys(OrigDatabase).forEach(function(k) { Database[k] = OrigDatabase[k]; });
252
- Database.prototype.unsafeMode = function() { return this; };
253
- if (!Database.prototype.defaultSafeIntegers) Database.prototype.defaultSafeIntegers = function() { return this; };
254
- if (!Database.prototype.serialize) Database.prototype.serialize = function() { throw new Error('not supported in wasm'); };
255
- if (!Database.prototype.backup) Database.prototype.backup = function() { throw new Error('not supported in wasm'); };
256
- var tmpDb = new OrigDatabase(':memory:');
257
- var tmpStmt = tmpDb.prepare('SELECT 1');
258
- var SP = Object.getPrototypeOf(tmpStmt);
259
- if (!SP.safeIntegers) SP.safeIntegers = function() { return this; };
260
- SP.scanStatus = function() { return undefined; };
261
- SP.scanStatusV2 = function() { return []; };
262
- SP.scanStatusReset = function() {};
263
- tmpDb.close();
264
- Database.SQLITE_SCANSTAT_NLOOP = 0;
265
- Database.SQLITE_SCANSTAT_NVISIT = 1;
266
- Database.SQLITE_SCANSTAT_EST = 2;
267
- Database.SQLITE_SCANSTAT_NAME = 3;
268
- Database.SQLITE_SCANSTAT_EXPLAIN = 4;
269
- Database.SQLITE_SCANSTAT_SELECTID = 5;
270
- Database.SQLITE_SCANSTAT_PARENTID = 6;
271
- Database.SQLITE_SCANSTAT_NCYCLE = 7;
272
- Database.SQLITE_SCANSTAT_COMPLEX = 8;
273
- module.exports = Database;
274
- module.exports.SqliteError = SqliteError;
275
- `
276
- )
277
-
278
- // return the node_modules root so it can be prepended to NODE_PATH
279
- return resolve(tmp, 'orez-sqlite', 'node_modules')
232
+ const hooksPath = resolve(dir, 'hooks.mjs')
233
+ const hooksTemplate = readFileSync(resolve(shimDir, 'hooks.mjs'), 'utf-8')
234
+ writeFileSync(hooksPath, hooksTemplate.replace(/__BEDROCK_PATH__/g, bedrockEntry))
235
+
236
+ const registerPath = resolve(dir, 'register.mjs')
237
+ const registerTemplate = readFileSync(resolve(shimDir, 'register.mjs'), 'utf-8')
238
+ writeFileSync(registerPath, registerTemplate.replace(/__HOOKS_URL__/g, `file://${hooksPath}`))
239
+
240
+ return registerPath
280
241
  }
281
242
 
282
243
  async function startZeroCache(config: ZeroLiteConfig): Promise<ChildProcess> {
@@ -332,22 +293,23 @@ async function startZeroCache(config: ZeroLiteConfig): Promise<ChildProcess> {
332
293
  throw new Error('zero-cache cli.js not found. install @rocicorp/zero')
333
294
  }
334
295
 
335
- // wasm sqlite: create a fake @rocicorp/zero-sqlite3 in tmpdir and prepend
336
- // to NODE_PATH so node resolves our shim first. no require hooks, no
337
- // Module._resolveFilename monkey-patching (which conflicts with vite).
296
+ // calculate heap size: ~25% of system memory, min 4gb
297
+ const memMB = Math.round(totalmem() / 1024 / 1024)
298
+ const heapMB = Math.max(4096, Math.round(memMB * 0.25))
299
+ const existing = process.env.NODE_OPTIONS || ''
300
+
301
+ // wasm sqlite: write shim + ESM loader to tmpdir, pass --import to intercept
302
+ // @rocicorp/zero-sqlite3 resolution with our bedrock-sqlite wasm build
338
303
  if (!config.disableWasmSqlite) {
339
- const shimNodeModules = writeSqliteShim()
340
- const existingNodePath = process.env.NODE_PATH || ''
341
- env.NODE_PATH = existingNodePath
342
- ? `${shimNodeModules}:${existingNodePath}`
343
- : shimNodeModules
304
+ const registerPath = writeSqliteShim()
305
+ const registerUrl = `file://${registerPath}`
306
+ env.NODE_OPTIONS =
307
+ `--import ${registerUrl} --max-old-space-size=${heapMB} ${existing}`.trim()
308
+ } else {
309
+ env.NODE_OPTIONS =
310
+ `--max-old-space-size=${heapMB} ${existing}`.trim()
344
311
  }
345
312
 
346
- const nodeOptions = !config.disableWasmSqlite
347
- ? `--max-old-space-size=16384 ${process.env.NODE_OPTIONS || ''}`
348
- : process.env.NODE_OPTIONS || ''
349
- if (nodeOptions.trim()) env.NODE_OPTIONS = nodeOptions.trim()
350
-
351
313
  const child = spawn(zeroCacheBin, [], {
352
314
  env,
353
315
  stdio: ['ignore', 'pipe', 'pipe'],
@@ -0,0 +1,60 @@
1
+ // esm loader hooks — intercept @rocicorp/zero-sqlite3 with bedrock-sqlite wasm.
2
+ // __BEDROCK_PATH__ is replaced at runtime by orez before writing to tmpdir.
3
+
4
+ const SHIM_URL = 'orez-sqlite-shim://shim';
5
+ const BEDROCK_PATH = '__BEDROCK_PATH__';
6
+
7
+ export function resolve(specifier, context, nextResolve) {
8
+ if (specifier === '@rocicorp/zero-sqlite3' || specifier.startsWith('@rocicorp/zero-sqlite3/')) {
9
+ return { url: SHIM_URL, shortCircuit: true };
10
+ }
11
+ return nextResolve(specifier, context);
12
+ }
13
+
14
+ export function load(url, context, nextLoad) {
15
+ if (url === SHIM_URL) {
16
+ return {
17
+ format: 'module',
18
+ shortCircuit: true,
19
+ source: `
20
+ import { createRequire } from 'node:module';
21
+ const require = createRequire('${BEDROCK_PATH}');
22
+ const mod = require('${BEDROCK_PATH}');
23
+ const OrigDatabase = mod.Database;
24
+ const SqliteError = mod.SqliteError;
25
+ function Database(...args) {
26
+ const db = new OrigDatabase(...args);
27
+ try { db.pragma('busy_timeout = 30000'); db.pragma('synchronous = normal'); } catch(e) {}
28
+ return db;
29
+ }
30
+ Database.prototype = OrigDatabase.prototype;
31
+ Database.prototype.constructor = Database;
32
+ Object.keys(OrigDatabase).forEach(k => { Database[k] = OrigDatabase[k]; });
33
+ Database.prototype.unsafeMode = function() { return this; };
34
+ if (!Database.prototype.defaultSafeIntegers) Database.prototype.defaultSafeIntegers = function() { return this; };
35
+ if (!Database.prototype.serialize) Database.prototype.serialize = function() { throw new Error('not supported in wasm'); };
36
+ if (!Database.prototype.backup) Database.prototype.backup = function() { throw new Error('not supported in wasm'); };
37
+ const tmpDb = new OrigDatabase(':memory:');
38
+ const tmpStmt = tmpDb.prepare('SELECT 1');
39
+ const SP = Object.getPrototypeOf(tmpStmt);
40
+ if (!SP.safeIntegers) SP.safeIntegers = function() { return this; };
41
+ SP.scanStatus = function() { return undefined; };
42
+ SP.scanStatusV2 = function() { return []; };
43
+ SP.scanStatusReset = function() {};
44
+ tmpDb.close();
45
+ Database.SQLITE_SCANSTAT_NLOOP = 0;
46
+ Database.SQLITE_SCANSTAT_NVISIT = 1;
47
+ Database.SQLITE_SCANSTAT_EST = 2;
48
+ Database.SQLITE_SCANSTAT_NAME = 3;
49
+ Database.SQLITE_SCANSTAT_EXPLAIN = 4;
50
+ Database.SQLITE_SCANSTAT_SELECTID = 5;
51
+ Database.SQLITE_SCANSTAT_PARENTID = 6;
52
+ Database.SQLITE_SCANSTAT_NCYCLE = 7;
53
+ Database.SQLITE_SCANSTAT_COMPLEX = 8;
54
+ export default Database;
55
+ export { SqliteError };
56
+ `
57
+ };
58
+ }
59
+ return nextLoad(url, context);
60
+ }
@@ -0,0 +1,4 @@
1
+ // --import entrypoint that registers the esm loader hooks.
2
+ // __HOOKS_URL__ is replaced at runtime by orez before writing to tmpdir.
3
+ import { register } from 'node:module';
4
+ register('__HOOKS_URL__', import.meta.url);
@@ -19,7 +19,8 @@ import { resolve } from 'node:path'
19
19
 
20
20
  // import bedrock-sqlite directly (our wasm build)
21
21
  // @ts-expect-error - CJS module
22
- import { Database } from 'bedrock-sqlite'
22
+ import bedrockSqlite from 'bedrock-sqlite'
23
+ const { Database } = bedrockSqlite
23
24
  import { describe, test, expect, beforeEach, afterEach } from 'vitest'
24
25
 
25
26
  // helper: temp db file