orez 0.0.47 → 0.0.49
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/admin/http-proxy.d.ts.map +1 -1
- package/dist/admin/http-proxy.js.map +1 -1
- package/dist/admin/log-store.d.ts.map +1 -1
- package/dist/admin/log-store.js.map +1 -1
- package/dist/admin/server.d.ts +2 -2
- package/dist/admin/server.d.ts.map +1 -1
- package/dist/admin/server.js.map +1 -1
- package/dist/admin/ui.d.ts.map +1 -1
- package/dist/admin/ui.js +2 -2
- package/dist/admin/ui.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +6 -112
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +0 -5
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +0 -5
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +0 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +91 -249
- package/dist/index.js.map +1 -1
- package/dist/log.d.ts +0 -9
- package/dist/log.d.ts.map +1 -1
- package/dist/log.js +1 -24
- package/dist/log.js.map +1 -1
- package/dist/mutex.d.ts.map +1 -1
- package/dist/mutex.js +2 -13
- package/dist/mutex.js.map +1 -1
- package/dist/pg-proxy.d.ts +2 -3
- package/dist/pg-proxy.d.ts.map +1 -1
- package/dist/pg-proxy.js +167 -377
- package/dist/pg-proxy.js.map +1 -1
- package/dist/pglite-manager.d.ts +0 -1
- package/dist/pglite-manager.d.ts.map +1 -1
- package/dist/pglite-manager.js +1 -1
- package/dist/pglite-manager.js.map +1 -1
- package/dist/replication/change-tracker.d.ts +0 -6
- package/dist/replication/change-tracker.d.ts.map +1 -1
- package/dist/replication/change-tracker.js +0 -74
- package/dist/replication/change-tracker.js.map +1 -1
- package/dist/replication/handler.d.ts.map +1 -1
- package/dist/replication/handler.js +5 -47
- package/dist/replication/handler.js.map +1 -1
- package/dist/vite-plugin.d.ts +0 -3
- package/dist/vite-plugin.d.ts.map +1 -1
- package/dist/vite-plugin.js +0 -24
- package/dist/vite-plugin.js.map +1 -1
- package/package.json +5 -4
- package/src/admin/http-proxy.ts +5 -1
- package/src/admin/log-store.ts +4 -1
- package/src/admin/server.ts +7 -3
- package/src/admin/ui.ts +682 -680
- package/src/cli.ts +6 -111
- package/src/config.ts +0 -10
- package/src/index.ts +92 -262
- package/src/integration/integration.test.ts +264 -133
- package/src/log.ts +1 -25
- package/src/mutex.ts +2 -12
- package/src/pg-proxy.ts +187 -449
- package/src/pglite-manager.ts +1 -1
- package/src/replication/change-tracker.ts +0 -92
- package/src/replication/handler.ts +4 -50
- package/src/shim/hooks.mjs +34 -1
- package/src/vite-plugin.ts +0 -28
- package/src/wasm-sqlite.test.ts +1 -2
package/dist/index.js
CHANGED
|
@@ -6,15 +6,13 @@
|
|
|
6
6
|
* `bun run` command.
|
|
7
7
|
*/
|
|
8
8
|
import { spawn } from 'node:child_process';
|
|
9
|
-
import { existsSync, mkdirSync, readFileSync,
|
|
9
|
+
import { existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from 'node:fs';
|
|
10
10
|
import { createRequire } from 'node:module';
|
|
11
|
-
import { totalmem } from 'node:os';
|
|
12
11
|
import { dirname, resolve } from 'node:path';
|
|
13
|
-
import { fileURLToPath } from 'node:url';
|
|
14
12
|
import { getConfig, getConnectionString } from './config.js';
|
|
15
|
-
import { log, port, setLogLevel
|
|
13
|
+
import { log, port, setLogLevel } from './log.js';
|
|
16
14
|
import { startPgProxy } from './pg-proxy.js';
|
|
17
|
-
import {
|
|
15
|
+
import { createPGliteInstances, runMigrations } from './pglite-manager.js';
|
|
18
16
|
import { findPort } from './port.js';
|
|
19
17
|
import { installChangeTracking } from './replication/change-tracker.js';
|
|
20
18
|
export { getConfig, getConnectionString } from './config.js';
|
|
@@ -36,20 +34,6 @@ function resolvePackage(pkg) {
|
|
|
36
34
|
export async function startZeroLite(overrides = {}) {
|
|
37
35
|
const config = getConfig(overrides);
|
|
38
36
|
setLogLevel(config.logLevel);
|
|
39
|
-
// when admin ui enabled, create log store and capture all log output
|
|
40
|
-
const SOURCE_MAP = {
|
|
41
|
-
'orez': 'orez', 'pglite': 'pglite', 'pg-proxy': 'proxy',
|
|
42
|
-
'zero': 'zero', 'zero-cache': 'zero', 'orez/s3': 's3',
|
|
43
|
-
};
|
|
44
|
-
let logStore = null;
|
|
45
|
-
let removeLogListener = null;
|
|
46
|
-
if (config.admin) {
|
|
47
|
-
const { createLogStore } = await import('./admin/log-store.js');
|
|
48
|
-
logStore = createLogStore(config.dataDir, config.adminLogs);
|
|
49
|
-
removeLogListener = addLogListener((source, level, msg) => {
|
|
50
|
-
logStore.push(SOURCE_MAP[source] || source, level, msg);
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
37
|
// find available ports
|
|
54
38
|
const pgPort = await findPort(config.pgPort);
|
|
55
39
|
const zeroPort = config.skipZeroCache
|
|
@@ -73,7 +57,7 @@ export async function startZeroLite(overrides = {}) {
|
|
|
73
57
|
await installChangeTracking(db);
|
|
74
58
|
// start tcp proxy (routes connections to correct instance by database name)
|
|
75
59
|
const pgServer = await startPgProxy(instances, config);
|
|
76
|
-
log.
|
|
60
|
+
log.orez(`db up ${port(pgPort, 'green')}`);
|
|
77
61
|
if (migrationsApplied > 0)
|
|
78
62
|
log.orez(`${migrationsApplied} migration${migrationsApplied === 1 ? '' : 's'} applied`);
|
|
79
63
|
// seed data if needed
|
|
@@ -112,127 +96,20 @@ export async function startZeroLite(overrides = {}) {
|
|
|
112
96
|
log.debug.orez('re-installing change tracking after on-db-ready');
|
|
113
97
|
await installChangeTracking(db);
|
|
114
98
|
}
|
|
115
|
-
//
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
await config.beforeZero(db);
|
|
119
|
-
// re-install change tracking on tables created by the callback
|
|
120
|
-
await installChangeTracking(db);
|
|
121
|
-
}
|
|
122
|
-
// clean up stale lock files from previous crash (keep replica for fast restart)
|
|
123
|
-
cleanupStaleLockFiles(config);
|
|
124
|
-
// http proxy for admin traffic logging
|
|
125
|
-
let httpLogStore = null;
|
|
126
|
-
let httpProxyServer = null;
|
|
127
|
-
let zeroInternalPort = zeroPort;
|
|
128
|
-
if (config.admin && !config.skipZeroCache) {
|
|
129
|
-
const { createHttpLogStore } = await import('./admin/http-proxy.js');
|
|
130
|
-
httpLogStore = createHttpLogStore();
|
|
131
|
-
zeroInternalPort = await findPort(zeroPort + 100);
|
|
132
|
-
}
|
|
133
|
-
// start zero-cache with auto-recovery for stale change db
|
|
99
|
+
// clean up stale sqlite replica from previous runs
|
|
100
|
+
cleanupStaleReplica(config);
|
|
101
|
+
// start zero-cache
|
|
134
102
|
let zeroCacheProcess = null;
|
|
135
|
-
let zeroEnv = {};
|
|
136
|
-
const cdbResets = { count: 0, lastReset: 0 };
|
|
137
|
-
const MAX_CDB_RESETS = 10;
|
|
138
|
-
const MIN_RESET_INTERVAL_MS = 60_000;
|
|
139
103
|
if (!config.skipZeroCache) {
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
zeroEnv = currentResult.env;
|
|
143
|
-
// watch for stale changeLog crashes and auto-recover
|
|
144
|
-
const attachCdbRecovery = (result) => {
|
|
145
|
-
result.child.on('exit', async (code) => {
|
|
146
|
-
if (code === 0 || code === null)
|
|
147
|
-
return;
|
|
148
|
-
if (!result.stderrBuf.includes('changeLog_pkey'))
|
|
149
|
-
return;
|
|
150
|
-
const now = Date.now();
|
|
151
|
-
if (cdbResets.count >= MAX_CDB_RESETS) {
|
|
152
|
-
log.zero('change db reset limit reached, not retrying');
|
|
153
|
-
return;
|
|
154
|
-
}
|
|
155
|
-
const elapsed = now - cdbResets.lastReset;
|
|
156
|
-
if (elapsed < MIN_RESET_INTERVAL_MS) {
|
|
157
|
-
log.zero(`change db reset too soon (${Math.round(elapsed / 1000)}s ago), not retrying`);
|
|
158
|
-
return;
|
|
159
|
-
}
|
|
160
|
-
cdbResets.count++;
|
|
161
|
-
cdbResets.lastReset = now;
|
|
162
|
-
log.zero(`stale change db detected, resetting (${cdbResets.count}/${MAX_CDB_RESETS})`);
|
|
163
|
-
try {
|
|
164
|
-
await instances.cdb.close();
|
|
165
|
-
const cdbPath = resolve(config.dataDir, 'pgdata-cdb');
|
|
166
|
-
rmSync(cdbPath, { recursive: true, force: true });
|
|
167
|
-
instances.cdb = await createInstance(config, 'cdb', false);
|
|
168
|
-
currentResult = await startZeroCache(config, zeroInternalPort);
|
|
169
|
-
zeroCacheProcess = currentResult.child;
|
|
170
|
-
attachCdbRecovery(currentResult);
|
|
171
|
-
await waitForZeroCache(config, undefined, zeroInternalPort);
|
|
172
|
-
log.zero(`recovered, ready ${port(config.zeroPort, 'magenta')}`);
|
|
173
|
-
}
|
|
174
|
-
catch (err) {
|
|
175
|
-
log.zero(`recovery failed: ${err}`);
|
|
176
|
-
}
|
|
177
|
-
});
|
|
178
|
-
};
|
|
179
|
-
attachCdbRecovery(currentResult);
|
|
180
|
-
await waitForZeroCache(config, undefined, zeroInternalPort);
|
|
104
|
+
zeroCacheProcess = await startZeroCache(config);
|
|
105
|
+
await waitForZeroCache(config);
|
|
181
106
|
log.zero(`ready ${port(config.zeroPort, 'magenta')}`);
|
|
182
|
-
// start http proxy for admin traffic logging
|
|
183
|
-
if (httpLogStore) {
|
|
184
|
-
const { startHttpProxy } = await import('./admin/http-proxy.js');
|
|
185
|
-
httpProxyServer = await startHttpProxy({
|
|
186
|
-
listenPort: zeroPort,
|
|
187
|
-
targetPort: zeroInternalPort,
|
|
188
|
-
httpLog: httpLogStore,
|
|
189
|
-
});
|
|
190
|
-
}
|
|
191
107
|
}
|
|
192
108
|
else {
|
|
193
109
|
log.orez('skip zero-cache');
|
|
194
110
|
}
|
|
195
|
-
// admin action handlers
|
|
196
|
-
const actions = {
|
|
197
|
-
restartZero: config.skipZeroCache ? undefined : async () => {
|
|
198
|
-
if (zeroCacheProcess && !zeroCacheProcess.killed) {
|
|
199
|
-
zeroCacheProcess.kill('SIGTERM');
|
|
200
|
-
await new Promise((r) => {
|
|
201
|
-
const t = setTimeout(() => { zeroCacheProcess?.kill('SIGKILL'); r(); }, 3000);
|
|
202
|
-
zeroCacheProcess.on('exit', () => { clearTimeout(t); r(); });
|
|
203
|
-
});
|
|
204
|
-
}
|
|
205
|
-
const zc = await startZeroCache(config, zeroInternalPort);
|
|
206
|
-
zeroCacheProcess = zc.child;
|
|
207
|
-
await waitForZeroCache(config, undefined, zeroInternalPort);
|
|
208
|
-
log.zero(`restarted ${port(config.zeroPort, 'magenta')}`);
|
|
209
|
-
},
|
|
210
|
-
resetZero: config.skipZeroCache ? undefined : async () => {
|
|
211
|
-
if (zeroCacheProcess && !zeroCacheProcess.killed) {
|
|
212
|
-
zeroCacheProcess.kill('SIGTERM');
|
|
213
|
-
await new Promise((r) => {
|
|
214
|
-
const t = setTimeout(() => { zeroCacheProcess?.kill('SIGKILL'); r(); }, 3000);
|
|
215
|
-
zeroCacheProcess.on('exit', () => { clearTimeout(t); r(); });
|
|
216
|
-
});
|
|
217
|
-
}
|
|
218
|
-
const replicaPath = resolve(config.dataDir, 'zero-replica.db');
|
|
219
|
-
for (const suffix of ['', '-wal', '-shm', '-wal2']) {
|
|
220
|
-
try {
|
|
221
|
-
if (existsSync(replicaPath + suffix))
|
|
222
|
-
unlinkSync(replicaPath + suffix);
|
|
223
|
-
}
|
|
224
|
-
catch { }
|
|
225
|
-
}
|
|
226
|
-
const zc = await startZeroCache(config, zeroInternalPort);
|
|
227
|
-
zeroCacheProcess = zc.child;
|
|
228
|
-
await waitForZeroCache(config, undefined, zeroInternalPort);
|
|
229
|
-
log.zero(`reset and restarted ${port(config.zeroPort, 'magenta')}`);
|
|
230
|
-
},
|
|
231
|
-
};
|
|
232
111
|
const stop = async () => {
|
|
233
112
|
log.debug.orez('shutting down');
|
|
234
|
-
removeLogListener?.();
|
|
235
|
-
httpProxyServer?.close();
|
|
236
113
|
if (zeroCacheProcess && !zeroCacheProcess.killed) {
|
|
237
114
|
zeroCacheProcess.kill('SIGTERM');
|
|
238
115
|
// wait up to 3s for graceful exit, then force kill
|
|
@@ -257,20 +134,21 @@ export async function startZeroLite(overrides = {}) {
|
|
|
257
134
|
]);
|
|
258
135
|
log.debug.orez('stopped');
|
|
259
136
|
};
|
|
260
|
-
return { config, stop, db, instances, pgPort: config.pgPort, zeroPort: config.zeroPort
|
|
137
|
+
return { config, stop, db, instances, pgPort: config.pgPort, zeroPort: config.zeroPort };
|
|
261
138
|
}
|
|
262
|
-
function
|
|
139
|
+
function cleanupStaleReplica(config) {
|
|
263
140
|
const replicaPath = resolve(config.dataDir, 'zero-replica.db');
|
|
264
|
-
//
|
|
265
|
-
//
|
|
266
|
-
|
|
267
|
-
// too stale, ZERO_AUTO_RESET=true makes zero-cache wipe and resync automatically.
|
|
268
|
-
for (const suffix of ['-wal', '-shm', '-wal2']) {
|
|
141
|
+
// delete replica + all lock/wal files so zero-cache does a fresh sync
|
|
142
|
+
// the replica is just a cache of pglite data, safe to recreate
|
|
143
|
+
for (const suffix of ['', '-wal', '-shm', '-wal2']) {
|
|
269
144
|
const file = replicaPath + suffix;
|
|
270
145
|
try {
|
|
271
146
|
if (existsSync(file)) {
|
|
272
147
|
unlinkSync(file);
|
|
273
|
-
|
|
148
|
+
if (suffix)
|
|
149
|
+
log.debug.orez(`cleaned up stale ${suffix} file`);
|
|
150
|
+
else
|
|
151
|
+
log.debug.orez('cleaned up stale replica (will re-sync)');
|
|
274
152
|
}
|
|
275
153
|
}
|
|
276
154
|
catch {
|
|
@@ -305,24 +183,60 @@ async function seedIfNeeded(db, config) {
|
|
|
305
183
|
}
|
|
306
184
|
log.orez('seeded');
|
|
307
185
|
}
|
|
308
|
-
//
|
|
309
|
-
//
|
|
310
|
-
//
|
|
186
|
+
// create a fake @rocicorp/zero-sqlite3 package in tmpdir that redirects to
|
|
187
|
+
// bedrock-sqlite (wasm). uses NODE_PATH to make node resolve our shim first —
|
|
188
|
+
// no require hooks, no Module._resolveFilename monkey-patching, no .cjs files
|
|
189
|
+
// in the package (which all break vite).
|
|
311
190
|
function writeSqliteShim() {
|
|
312
191
|
const tmp = process.env.TMPDIR || process.env.TEMP || '/tmp';
|
|
313
|
-
const dir = resolve(tmp, 'orez-sqlite');
|
|
192
|
+
const dir = resolve(tmp, 'orez-sqlite', 'node_modules', '@rocicorp', 'zero-sqlite3');
|
|
314
193
|
mkdirSync(dir, { recursive: true });
|
|
315
194
|
const bedrockEntry = resolvePackage('bedrock-sqlite');
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
195
|
+
writeFileSync(resolve(dir, 'package.json'), '{"name":"@rocicorp/zero-sqlite3","main":"./index.js"}\n');
|
|
196
|
+
writeFileSync(resolve(dir, 'index.js'), `'use strict';
|
|
197
|
+
var mod = require('${bedrockEntry}');
|
|
198
|
+
var OrigDatabase = mod.Database;
|
|
199
|
+
var SqliteError = mod.SqliteError;
|
|
200
|
+
function Database() {
|
|
201
|
+
var db = new OrigDatabase(...arguments);
|
|
202
|
+
try {
|
|
203
|
+
db.pragma('journal_mode = delete');
|
|
204
|
+
db.pragma('busy_timeout = 30000');
|
|
205
|
+
db.pragma('synchronous = normal');
|
|
206
|
+
} catch(e) {}
|
|
207
|
+
return db;
|
|
324
208
|
}
|
|
325
|
-
|
|
209
|
+
Database.prototype = OrigDatabase.prototype;
|
|
210
|
+
Database.prototype.constructor = Database;
|
|
211
|
+
Object.keys(OrigDatabase).forEach(function(k) { Database[k] = OrigDatabase[k]; });
|
|
212
|
+
Database.prototype.unsafeMode = function() { return this; };
|
|
213
|
+
if (!Database.prototype.defaultSafeIntegers) Database.prototype.defaultSafeIntegers = function() { return this; };
|
|
214
|
+
if (!Database.prototype.serialize) Database.prototype.serialize = function() { throw new Error('not supported in wasm'); };
|
|
215
|
+
if (!Database.prototype.backup) Database.prototype.backup = function() { throw new Error('not supported in wasm'); };
|
|
216
|
+
var tmpDb = new OrigDatabase(':memory:');
|
|
217
|
+
var tmpStmt = tmpDb.prepare('SELECT 1');
|
|
218
|
+
var SP = Object.getPrototypeOf(tmpStmt);
|
|
219
|
+
if (!SP.safeIntegers) SP.safeIntegers = function() { return this; };
|
|
220
|
+
SP.scanStatus = function() { return undefined; };
|
|
221
|
+
SP.scanStatusV2 = function() { return []; };
|
|
222
|
+
SP.scanStatusReset = function() {};
|
|
223
|
+
tmpDb.close();
|
|
224
|
+
Database.SQLITE_SCANSTAT_NLOOP = 0;
|
|
225
|
+
Database.SQLITE_SCANSTAT_NVISIT = 1;
|
|
226
|
+
Database.SQLITE_SCANSTAT_EST = 2;
|
|
227
|
+
Database.SQLITE_SCANSTAT_NAME = 3;
|
|
228
|
+
Database.SQLITE_SCANSTAT_EXPLAIN = 4;
|
|
229
|
+
Database.SQLITE_SCANSTAT_SELECTID = 5;
|
|
230
|
+
Database.SQLITE_SCANSTAT_PARENTID = 6;
|
|
231
|
+
Database.SQLITE_SCANSTAT_NCYCLE = 7;
|
|
232
|
+
Database.SQLITE_SCANSTAT_COMPLEX = 8;
|
|
233
|
+
module.exports = Database;
|
|
234
|
+
module.exports.SqliteError = SqliteError;
|
|
235
|
+
`);
|
|
236
|
+
// return the node_modules root so it can be prepended to NODE_PATH
|
|
237
|
+
return resolve(tmp, 'orez-sqlite', 'node_modules');
|
|
238
|
+
}
|
|
239
|
+
async function startZeroCache(config) {
|
|
326
240
|
// resolve @rocicorp/zero entry for finding zero-cache modules
|
|
327
241
|
const zeroEntry = resolvePackage('@rocicorp/zero');
|
|
328
242
|
if (!zeroEntry) {
|
|
@@ -337,20 +251,12 @@ async function startZeroCache(config, portOverride) {
|
|
|
337
251
|
// defaults that can be overridden by user env
|
|
338
252
|
const defaults = {
|
|
339
253
|
NODE_ENV: 'development',
|
|
340
|
-
ZERO_LOG_LEVEL:
|
|
254
|
+
ZERO_LOG_LEVEL: config.logLevel,
|
|
341
255
|
ZERO_NUM_SYNC_WORKERS: '1',
|
|
342
256
|
// disable query planner — it relies on scanStatus which causes infinite
|
|
343
257
|
// loops with wasm sqlite and has caused freezes with native too.
|
|
344
258
|
// planner is an optimization, not required for correctness.
|
|
345
259
|
ZERO_ENABLE_QUERY_PLANNER: 'false',
|
|
346
|
-
// work around postgres.js bug: concurrent COPY TO STDOUT on a reused
|
|
347
|
-
// connection causes .readable() to hang indefinitely. setting workers
|
|
348
|
-
// high ensures each table gets its own connection (1 COPY per conn).
|
|
349
|
-
// zero-cache already applies this workaround on windows (initial-sync.js).
|
|
350
|
-
ZERO_INITIAL_SYNC_TABLE_COPY_WORKERS: '999',
|
|
351
|
-
// auto-reset on replication errors (e.g. after pg_restore) instead of
|
|
352
|
-
// crashing — zero-cache wipes its replica and resyncs from scratch.
|
|
353
|
-
ZERO_AUTO_RESET: 'true',
|
|
354
260
|
};
|
|
355
261
|
const env = {
|
|
356
262
|
...defaults,
|
|
@@ -362,127 +268,63 @@ async function startZeroCache(config, portOverride) {
|
|
|
362
268
|
ZERO_CVR_DB: cvrUrl,
|
|
363
269
|
ZERO_CHANGE_DB: cdbUrl,
|
|
364
270
|
ZERO_REPLICA_FILE: resolve(config.dataDir, 'zero-replica.db'),
|
|
365
|
-
ZERO_PORT: String(
|
|
271
|
+
ZERO_PORT: String(config.zeroPort),
|
|
366
272
|
};
|
|
367
273
|
const zeroCacheBin = resolve(zeroEntry, '..', 'cli.js');
|
|
368
274
|
if (!existsSync(zeroCacheBin)) {
|
|
369
275
|
throw new Error('zero-cache cli.js not found. install @rocicorp/zero');
|
|
370
276
|
}
|
|
371
|
-
//
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
const existing = process.env.NODE_OPTIONS || '';
|
|
375
|
-
// wasm sqlite: write shim + ESM loader to tmpdir, pass --import to intercept
|
|
376
|
-
// @rocicorp/zero-sqlite3 resolution with our bedrock-sqlite wasm build
|
|
277
|
+
// wasm sqlite: create a fake @rocicorp/zero-sqlite3 in tmpdir and prepend
|
|
278
|
+
// to NODE_PATH so node resolves our shim first. no require hooks, no
|
|
279
|
+
// Module._resolveFilename monkey-patching (which conflicts with vite).
|
|
377
280
|
if (!config.disableWasmSqlite) {
|
|
378
|
-
const
|
|
379
|
-
const
|
|
380
|
-
env.
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
else {
|
|
384
|
-
env.NODE_OPTIONS = `--max-old-space-size=${heapMB} ${existing}`.trim();
|
|
385
|
-
}
|
|
386
|
-
// log env vars if --log-env was passed
|
|
387
|
-
if (config.logEnv) {
|
|
388
|
-
const zeroVars = Object.entries(env)
|
|
389
|
-
.filter(([key]) => key.startsWith('ZERO_') || key === 'NODE_ENV')
|
|
390
|
-
.sort(([a], [b]) => a.localeCompare(b));
|
|
391
|
-
log.orez('zero-cache env:');
|
|
392
|
-
for (const [key, value] of zeroVars) {
|
|
393
|
-
log.orez(` ${key}=${value}`);
|
|
394
|
-
}
|
|
281
|
+
const shimNodeModules = writeSqliteShim();
|
|
282
|
+
const existingNodePath = process.env.NODE_PATH || '';
|
|
283
|
+
env.NODE_PATH = existingNodePath
|
|
284
|
+
? `${shimNodeModules}:${existingNodePath}`
|
|
285
|
+
: shimNodeModules;
|
|
395
286
|
}
|
|
287
|
+
const nodeOptions = !config.disableWasmSqlite
|
|
288
|
+
? `--max-old-space-size=16384 ${process.env.NODE_OPTIONS || ''}`
|
|
289
|
+
: process.env.NODE_OPTIONS || '';
|
|
290
|
+
if (nodeOptions.trim())
|
|
291
|
+
env.NODE_OPTIONS = nodeOptions.trim();
|
|
396
292
|
const child = spawn(zeroCacheBin, [], {
|
|
397
293
|
env,
|
|
398
294
|
stdio: ['ignore', 'pipe', 'pipe'],
|
|
399
295
|
});
|
|
400
|
-
// zero-cache uses structured logging when piped (not a tty).
|
|
401
|
-
// multiline format: timestamp + "[" on one line, context lines, "] message" on another.
|
|
402
|
-
// single-line format: timestamp + [ context ] message, or timestamp + key=val,... message
|
|
403
|
-
// we buffer multiline blocks and extract just the message.
|
|
404
|
-
const timestampRe = /^\d{4}-\d{2}-\d{2}T[\d:.+\-Z]+\s*/;
|
|
405
|
-
let inBlock = false;
|
|
406
|
-
const zeroLog = (line) => {
|
|
407
|
-
let stripped = line.replace(timestampRe, '');
|
|
408
|
-
// start of multiline context block: line ends with "[" (possibly after timestamp)
|
|
409
|
-
if (!inBlock && /^\[?\s*$/.test(stripped)) {
|
|
410
|
-
inBlock = true;
|
|
411
|
-
return;
|
|
412
|
-
}
|
|
413
|
-
// inside multiline block: skip context lines, look for "] message"
|
|
414
|
-
if (inBlock) {
|
|
415
|
-
const closeMatch = stripped.match(/^\]\s*(.*)$/);
|
|
416
|
-
if (closeMatch) {
|
|
417
|
-
inBlock = false;
|
|
418
|
-
const msg = closeMatch[1].trim();
|
|
419
|
-
if (msg)
|
|
420
|
-
log.zero(msg);
|
|
421
|
-
}
|
|
422
|
-
// context continuation lines like "'pid=8278'," — skip
|
|
423
|
-
return;
|
|
424
|
-
}
|
|
425
|
-
// single-line: strip inline [ context ] and key=val prefixes
|
|
426
|
-
stripped = stripped.replace(/\[.*?\]\s*/g, '');
|
|
427
|
-
stripped = stripped.replace(/^(?:\w+=\S+,)*\w+=\S+\s+/, '');
|
|
428
|
-
stripped = stripped.trim();
|
|
429
|
-
if (!stripped || /^[\[\]',\s]*$/.test(stripped))
|
|
430
|
-
return;
|
|
431
|
-
log.zero(stripped);
|
|
432
|
-
};
|
|
433
296
|
child.stdout?.on('data', (data) => {
|
|
434
297
|
const lines = data.toString().trim().split('\n');
|
|
435
298
|
for (const line of lines) {
|
|
436
|
-
|
|
299
|
+
log.debug.zero(line);
|
|
437
300
|
}
|
|
438
301
|
});
|
|
439
|
-
const result = { child, env, stderrBuf: '' };
|
|
440
302
|
child.stderr?.on('data', (data) => {
|
|
441
|
-
const
|
|
442
|
-
result.stderrBuf += chunk;
|
|
443
|
-
const lines = chunk.trim().split('\n');
|
|
303
|
+
const lines = data.toString().trim().split('\n');
|
|
444
304
|
for (const line of lines) {
|
|
445
|
-
|
|
305
|
+
log.debug.zero(line);
|
|
446
306
|
}
|
|
447
307
|
});
|
|
448
308
|
child.on('exit', (code) => {
|
|
449
309
|
if (code !== 0 && code !== null) {
|
|
450
|
-
|
|
451
|
-
if (result.stderrBuf.includes('changeLog_pkey'))
|
|
452
|
-
return;
|
|
453
|
-
if (result.stderrBuf.includes('Could not locate the bindings file')) {
|
|
454
|
-
log.zero('native @rocicorp/zero-sqlite3 not found — native deps were not compiled.\n' +
|
|
455
|
-
'either:\n' +
|
|
456
|
-
' • remove --disable-wasm-sqlite to use the built-in wasm sqlite\n' +
|
|
457
|
-
' • install with native deps: bun install --trust @rocicorp/zero-sqlite3\n' +
|
|
458
|
-
' or add "trustedDependencies": ["@rocicorp/zero-sqlite3"] to package.json');
|
|
459
|
-
}
|
|
460
|
-
else {
|
|
461
|
-
const lastLines = result.stderrBuf.trim().split('\n').slice(-5).join('\n');
|
|
462
|
-
if (lastLines) {
|
|
463
|
-
log.zero(`exited with code ${code}:\n${lastLines}`);
|
|
464
|
-
}
|
|
465
|
-
else {
|
|
466
|
-
log.zero(`exited with code ${code}`);
|
|
467
|
-
}
|
|
468
|
-
}
|
|
310
|
+
log.zero(`exited with code ${code}`);
|
|
469
311
|
}
|
|
470
312
|
});
|
|
471
|
-
return
|
|
313
|
+
return child;
|
|
472
314
|
}
|
|
473
|
-
async function waitForZeroCache(config, timeoutMs =
|
|
315
|
+
async function waitForZeroCache(config, timeoutMs = 60000) {
|
|
474
316
|
const start = Date.now();
|
|
475
|
-
const url = `http://127.0.0.1:${
|
|
317
|
+
const url = `http://127.0.0.1:${config.zeroPort}/`;
|
|
476
318
|
while (Date.now() - start < timeoutMs) {
|
|
477
319
|
try {
|
|
478
320
|
const res = await fetch(url);
|
|
479
|
-
if (res.ok
|
|
321
|
+
if (res.ok)
|
|
480
322
|
return;
|
|
481
323
|
}
|
|
482
324
|
catch {
|
|
483
325
|
// not ready yet
|
|
484
326
|
}
|
|
485
|
-
await new Promise((r) => setTimeout(r,
|
|
327
|
+
await new Promise((r) => setTimeout(r, 500));
|
|
486
328
|
}
|
|
487
329
|
log.zero('health check timed out, continuing anyway');
|
|
488
330
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAChG,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAC5D,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAC1F,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAOvE,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAG5D,uEAAuE;AACvE,SAAS,cAAc,CAAC,GAAW;IACjC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QACzC,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;IACtD,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC9C,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAC7B,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,OAAO,EAAE,CAAA;AACX,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,YAAqC,EAAE;IACzE,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAA;IACnC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAE5B,qEAAqE;IACrE,MAAM,UAAU,GAA2B;QACzC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO;QACvD,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI;KACtD,CAAA;IACD,IAAI,QAAQ,GAAoB,IAAI,CAAA;IACpC,IAAI,iBAAiB,GAAwB,IAAI,CAAA;IACjD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAA;QAC/D,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;QAC3D,iBAAiB,GAAG,cAAc,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACxD,QAAS,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;QAC1D,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,uBAAuB;IACvB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC5C,MAAM,QAAQ,GAAG,MAAM,CAAC,aAAa;QACnC,CAAC,CAAC,MAAM,CAAC,QAAQ;QACjB,CAAC,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IACnC,IAAI,MAAM,KAAK,MAAM,CAAC,MAAM;QAC1B,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,MAAM,CAAC,MAAM,kBAAkB,MAAM,EAAE,CAAC,CAAA;IACjE,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,QAAQ,KAAK,MAAM,CAAC,QAAQ;QACvD,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,MAAM,CAAC,QAAQ,kBAAkB,QAAQ,EAAE,CAAC,CAAA;IACrE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAE1B,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAEtD,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAE9C,qEAAqE;IACrE,MAAM,SAAS,GAAG,MAAM,qBAAqB,CAAC,MAAM,CAAC,CAAA;IACrD,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAA;IAE7B,6CAA6C;IAC7C,MAAM,iBAAiB,GAAG,MAAM,aAAa,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;IAEzD,sDAAsD;IACtD,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA;IAC5C,MAAM,qBAAqB,CAAC,EAAE,CAAC,CAAA;IAE/B,4EAA4E;IAC5E,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IAEtD,GAAG,CAAC,MAAM,CAAC,eAAe,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;IAClD,IAAI,iBAAiB,GAAG,CAAC;QACvB,GAAG,CAAC,IAAI,CACN,GAAG,iBAAiB,aAAa,iBAAiB,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,UAAU,CAC9E,CAAA;IAEH,sBAAsB;IACtB,MAAM,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;IAE9B,qEAAqE;IACrE,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAA;QAC1D,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;QAC3D,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;QACtD,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;QACtD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE;gBACpC,KAAK,EAAE,IAAI;gBACX,KAAK,EAAE,SAAS;gBAChB,GAAG,EAAE;oBACH,GAAG,OAAO,CAAC,GAAG;oBACd,gBAAgB,EAAE,WAAW;oBAC7B,WAAW,EAAE,MAAM;oBACnB,cAAc,EAAE,MAAM;oBACtB,YAAY,EAAE,WAAW;oBACzB,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;iBACpC;aACF,CAAC,CAAA;YACF,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBACxB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;oBACf,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;oBAC5B,OAAO,EAAE,CAAA;gBACX,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,KAAK,CAAC,gCAAgC,IAAI,EAAE,CAAC,CAAC,CAAA;gBAC3D,CAAC;YACH,CAAC,CAAC,CAAA;YACF,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QAC3B,CAAC,CAAC,CAAA;QAEF,8DAA8D;QAC9D,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAA;QACjE,MAAM,qBAAqB,CAAC,EAAE,CAAC,CAAA;IACjC,CAAC;IAED,wEAAwE;IACxE,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAA;QAC7C,MAAM,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;QAC3B,+DAA+D;QAC/D,MAAM,qBAAqB,CAAC,EAAE,CAAC,CAAA;IACjC,CAAC;IAED,gFAAgF;IAChF,qBAAqB,CAAC,MAAM,CAAC,CAAA;IAE7B,uCAAuC;IACvC,IAAI,YAAY,GAAwB,IAAI,CAAA;IAC5C,IAAI,eAAe,GAAsC,IAAI,CAAA;IAC7D,IAAI,gBAAgB,GAAG,QAAQ,CAAA;IAC/B,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAC1C,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAA;QACpE,YAAY,GAAG,kBAAkB,EAAE,CAAA;QACnC,gBAAgB,GAAG,MAAM,QAAQ,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAA;IACnD,CAAC;IAED,0DAA0D;IAC1D,IAAI,gBAAgB,GAAwB,IAAI,CAAA;IAChD,IAAI,OAAO,GAA2B,EAAE,CAAA;IACxC,MAAM,SAAS,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAA;IAC5C,MAAM,cAAc,GAAG,EAAE,CAAA;IACzB,MAAM,qBAAqB,GAAG,MAAM,CAAA;IAEpC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAC1B,IAAI,aAAa,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;QAClE,gBAAgB,GAAG,aAAa,CAAC,KAAK,CAAA;QACtC,OAAO,GAAG,aAAa,CAAC,GAAG,CAAA;QAE3B,qDAAqD;QACrD,MAAM,iBAAiB,GAAG,CAAC,MAA4B,EAAE,EAAE;YACzD,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBACrC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI;oBAAE,OAAM;gBACvC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC;oBAAE,OAAM;gBAExD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;gBACtB,IAAI,SAAS,CAAC,KAAK,IAAI,cAAc,EAAE,CAAC;oBACtC,GAAG,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAA;oBACvD,OAAM;gBACR,CAAC;gBACD,MAAM,OAAO,GAAG,GAAG,GAAG,SAAS,CAAC,SAAS,CAAA;gBACzC,IAAI,OAAO,GAAG,qBAAqB,EAAE,CAAC;oBACpC,GAAG,CAAC,IAAI,CAAC,6BAA6B,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAA;oBACvF,OAAM;gBACR,CAAC;gBAED,SAAS,CAAC,KAAK,EAAE,CAAA;gBACjB,SAAS,CAAC,SAAS,GAAG,GAAG,CAAA;gBACzB,GAAG,CAAC,IAAI,CAAC,wCAAwC,SAAS,CAAC,KAAK,IAAI,cAAc,GAAG,CAAC,CAAA;gBAEtF,IAAI,CAAC;oBACH,MAAM,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,CAAA;oBAC3B,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;oBACrD,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;oBACjD,SAAS,CAAC,GAAG,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;oBAE1D,aAAa,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;oBAC9D,gBAAgB,GAAG,aAAa,CAAC,KAAK,CAAA;oBACtC,iBAAiB,CAAC,aAAa,CAAC,CAAA;oBAChC,MAAM,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAA;oBAC3D,GAAG,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC,CAAA;gBAClE,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,GAAG,CAAC,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC,CAAA;gBACrC,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAA;QAED,iBAAiB,CAAC,aAAa,CAAC,CAAA;QAChC,MAAM,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAA;QAC3D,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC,CAAA;QAErD,6CAA6C;QAC7C,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAA;YAChE,eAAe,GAAG,MAAM,cAAc,CAAC;gBACrC,UAAU,EAAE,QAAQ;gBACpB,UAAU,EAAE,gBAAgB;gBAC5B,OAAO,EAAE,YAAY;aACtB,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IAC7B,CAAC;IAED,wBAAwB;IACxB,MAAM,OAAO,GAAG;QACd,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;YACzD,IAAI,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;gBACjD,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;gBAChC,MAAM,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE;oBAC5B,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;oBAC5E,gBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA,CAAC,CAAC,CAAC,CAAA;gBAC9D,CAAC,CAAC,CAAA;YACJ,CAAC;YACD,MAAM,EAAE,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;YACzD,gBAAgB,GAAG,EAAE,CAAC,KAAK,CAAA;YAC3B,MAAM,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAA;YAC3D,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC,CAAA;QAC3D,CAAC;QACD,SAAS,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;YACvD,IAAI,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;gBACjD,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;gBAChC,MAAM,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE;oBAC5B,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;oBAC5E,gBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA,CAAC,CAAC,CAAC,CAAA;gBAC9D,CAAC,CAAC,CAAA;YACJ,CAAC;YACD,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAA;YAC9D,KAAK,MAAM,MAAM,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;gBACnD,IAAI,CAAC;oBAAC,IAAI,UAAU,CAAC,WAAW,GAAG,MAAM,CAAC;wBAAE,UAAU,CAAC,WAAW,GAAG,MAAM,CAAC,CAAA;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;YACzF,CAAC;YACD,MAAM,EAAE,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;YACzD,gBAAgB,GAAG,EAAE,CAAC,KAAK,CAAA;YAC3B,MAAM,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAA;YAC3D,GAAG,CAAC,IAAI,CAAC,uBAAuB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC,CAAA;QACrE,CAAC;KACF,CAAA;IAED,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;QACtB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QAC/B,iBAAiB,EAAE,EAAE,CAAA;QACrB,eAAe,EAAE,KAAK,EAAE,CAAA;QACxB,IAAI,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;YACjD,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAChC,mDAAmD;YACnD,MAAM,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE;gBAC5B,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC9B,IAAI,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;wBACjD,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;oBAClC,CAAC;oBACD,CAAC,EAAE,CAAA;gBACL,CAAC,EAAE,IAAI,CAAC,CAAA;gBACR,gBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;oBAChC,YAAY,CAAC,OAAO,CAAC,CAAA;oBACrB,CAAC,EAAE,CAAA;gBACL,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;QACJ,CAAC;QACD,QAAQ,CAAC,KAAK,EAAE,CAAA;QAChB,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE;YAC1B,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE;YACrB,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE;SACtB,CAAC,CAAA;QACF,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC3B,CAAC,CAAA;IAED,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAA;AACpI,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAsB;IACnD,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAA;IAC9D,kFAAkF;IAClF,+EAA+E;IAC/E,gFAAgF;IAChF,kFAAkF;IAClF,KAAK,MAAM,MAAM,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,GAAG,WAAW,GAAG,MAAM,CAAA;QACjC,IAAI,CAAC;YACH,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,UAAU,CAAC,IAAI,CAAC,CAAA;gBAChB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,MAAM,OAAO,CAAC,CAAA;YACnD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,EAAU,EAAE,MAAsB;IAC5D,gCAAgC;IAChC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,KAAK,CAC3B,6CAA6C,CAC9C,CAAA;QACD,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,OAAM;QACR,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,4BAA4B;IAC9B,CAAC;IAED,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;IACnC,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IACzC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAA;QAC9C,OAAM;IACR,CAAC;IAED,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IAC3C,MAAM,UAAU,GAAG,GAAG;SACnB,KAAK,CAAC,0BAA0B,CAAC;SACjC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC,CAAA;IAElB,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACrB,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;AACpB,CAAC;AAED,yEAAyE;AACzE,oEAAoE;AACpE,0EAA0E;AAC1E,SAAS,eAAe;IACtB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM,CAAA;IAC5D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,aAAa,CAAC,CAAA;IACvC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAEnC,MAAM,YAAY,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAA;IACrD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IAErF,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA;IAC3C,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,CAAC,CAAA;IAC1E,aAAa,CAAC,SAAS,EAAE,aAAa,CAAC,OAAO,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC,CAAA;IAElF,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,CAAA;IACjD,MAAM,gBAAgB,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAA;IAChF,aAAa,CACX,YAAY,EACZ,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,EAAE,UAAU,SAAS,EAAE,CAAC,CAClE,CAAA;IAED,OAAO,YAAY,CAAA;AACrB,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,MAAsB,EAAE,YAAqB;IACzE,8DAA8D;IAC9D,MAAM,SAAS,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAA;IAElD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;IACjE,CAAC;IAED,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC7B,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAA;IAC7E,CAAC;IAED,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IAC3D,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IACtD,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IAEtD,8CAA8C;IAC9C,MAAM,QAAQ,GAA2B;QACvC,QAAQ,EAAE,aAAa;QACvB,cAAc,EAAE,MAAM;QACtB,qBAAqB,EAAE,GAAG;QAC1B,wEAAwE;QACxE,iEAAiE;QACjE,4DAA4D;QAC5D,yBAAyB,EAAE,OAAO;QAClC,qEAAqE;QACrE,sEAAsE;QACtE,qEAAqE;QACrE,2EAA2E;QAC3E,oCAAoC,EAAE,KAAK;QAC3C,sEAAsE;QACtE,oEAAoE;QACpE,eAAe,EAAE,MAAM;KACxB,CAAA;IAED,MAAM,GAAG,GAA2B;QAClC,GAAG,QAAQ;QACX,GAAI,OAAO,CAAC,GAA8B;QAC1C,yEAAyE;QACzE,yDAAyD;QACzD,QAAQ,EAAE,aAAa;QACvB,gBAAgB,EAAE,WAAW;QAC7B,WAAW,EAAE,MAAM;QACnB,cAAc,EAAE,MAAM;QACtB,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,iBAAiB,CAAC;QAC7D,SAAS,EAAE,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,QAAQ,CAAC;KACnD,CAAA;IAED,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;IACvD,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;IACxE,CAAC;IAED,sDAAsD;IACtD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAA;IAClD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAA;IACvD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAA;IAE/C,6EAA6E;IAC7E,uEAAuE;IACvE,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC9B,MAAM,YAAY,GAAG,eAAe,EAAE,CAAA;QACtC,MAAM,WAAW,GAAG,UAAU,YAAY,EAAE,CAAA;QAC5C,GAAG,CAAC,YAAY;YACd,YAAY,WAAW,yBAAyB,MAAM,IAAI,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAA;IAC/E,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,YAAY,GAAG,wBAAwB,MAAM,IAAI,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAA;IACxE,CAAC;IAED,uCAAuC;IACvC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;aACjC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,KAAK,UAAU,CAAC;aAChE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;QACzC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;QAC3B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,QAAQ,EAAE,CAAC;YACpC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,EAAE,EAAE,EAAE;QACpC,GAAG;QACH,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;KAClC,CAAC,CAAA;IAEF,6DAA6D;IAC7D,wFAAwF;IACxF,0FAA0F;IAC1F,2DAA2D;IAC3D,MAAM,WAAW,GAAG,mCAAmC,CAAA;IACvD,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE;QAC/B,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;QAE5C,kFAAkF;QAClF,IAAI,CAAC,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1C,OAAO,GAAG,IAAI,CAAA;YACd,OAAM;QACR,CAAC;QAED,mEAAmE;QACnE,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;YAChD,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,GAAG,KAAK,CAAA;gBACf,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;gBAChC,IAAI,GAAG;oBAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACxB,CAAC;YACD,uDAAuD;YACvD,OAAM;QACR,CAAC;QAED,6DAA6D;QAC7D,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAA;QAC9C,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAA;QAC3D,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAA;QAE1B,IAAI,CAAC,QAAQ,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,OAAM;QAEvD,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACpB,CAAC,CAAA;IAED,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAChD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,CAAA;QACf,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;IAE5C,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;QAC7B,MAAM,CAAC,SAAS,IAAI,KAAK,CAAA;QACzB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACtC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,CAAA;QACf,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QACxB,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAChC,2EAA2E;YAC3E,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC;gBAAE,OAAM;YACvD,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,oCAAoC,CAAC,EAAE,CAAC;gBACpE,GAAG,CAAC,IAAI,CACN,4EAA4E;oBAC1E,WAAW;oBACX,oEAAoE;oBACpE,4EAA4E;oBAC5E,8EAA8E,CACjF,CAAA;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAC1E,IAAI,SAAS,EAAE,CAAC;oBACd,GAAG,CAAC,IAAI,CAAC,oBAAoB,IAAI,MAAM,SAAS,EAAE,CAAC,CAAA;gBACrD,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,IAAI,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAA;gBACtC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,MAAsB,EACtB,SAAS,GAAG,MAAM,EAClB,YAAqB;IAErB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IACxB,MAAM,GAAG,GAAG,oBAAoB,YAAY,IAAI,MAAM,CAAC,QAAQ,GAAG,CAAA;IAElE,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,SAAS,EAAE,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;YAC5B,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;gBAAE,OAAM;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,gBAAgB;QAClB,CAAC;QACD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;IAC7C,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAA;AACvD,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/log.d.ts
CHANGED
|
@@ -7,8 +7,6 @@ declare const COLORS: {
|
|
|
7
7
|
readonly blue: "\u001B[34m";
|
|
8
8
|
};
|
|
9
9
|
export declare function setLogLevel(level: LogLevel): void;
|
|
10
|
-
type LogListener = (source: string, level: LogLevel, msg: string) => void;
|
|
11
|
-
export declare function addLogListener(fn: LogListener): () => void;
|
|
12
10
|
/** format a port number with matching dim color */
|
|
13
11
|
export declare function port(n: number, color: keyof typeof COLORS): string;
|
|
14
12
|
export declare const log: {
|
|
@@ -17,13 +15,6 @@ export declare const log: {
|
|
|
17
15
|
proxy: (...args: unknown[]) => void;
|
|
18
16
|
zero: (...args: unknown[]) => void;
|
|
19
17
|
s3: (...args: unknown[]) => void;
|
|
20
|
-
info: {
|
|
21
|
-
orez: (...args: unknown[]) => void;
|
|
22
|
-
pglite: (...args: unknown[]) => void;
|
|
23
|
-
proxy: (...args: unknown[]) => void;
|
|
24
|
-
zero: (...args: unknown[]) => void;
|
|
25
|
-
s3: (...args: unknown[]) => void;
|
|
26
|
-
};
|
|
27
18
|
debug: {
|
|
28
19
|
orez: (...args: unknown[]) => void;
|
|
29
20
|
pglite: (...args: unknown[]) => void;
|
package/dist/log.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAM3C,QAAA,MAAM,MAAM;;;;;;CAMF,CAAA;AAWV,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,QAE1C;
|
|
1
|
+
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAM3C,QAAA,MAAM,MAAM;;;;;;CAMF,CAAA;AAWV,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,QAE1C;AAMD,mDAAmD;AACnD,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,OAAO,MAAM,GAAG,MAAM,CAElE;AAWD,eAAO,MAAM,GAAG;oBAPG,OAAO,EAAE;sBAAT,OAAO,EAAE;qBAAT,OAAO,EAAE;oBAAT,OAAO,EAAE;kBAAT,OAAO,EAAE;;wBAAT,OAAO,EAAE;0BAAT,OAAO,EAAE;yBAAT,OAAO,EAAE;wBAAT,OAAO,EAAE;sBAAT,OAAO,EAAE;;CAoB3B,CAAA"}
|
package/dist/log.js
CHANGED
|
@@ -18,15 +18,6 @@ let currentLevel = 'warn';
|
|
|
18
18
|
export function setLogLevel(level) {
|
|
19
19
|
currentLevel = level;
|
|
20
20
|
}
|
|
21
|
-
const listeners = [];
|
|
22
|
-
export function addLogListener(fn) {
|
|
23
|
-
listeners.push(fn);
|
|
24
|
-
return () => {
|
|
25
|
-
const idx = listeners.indexOf(fn);
|
|
26
|
-
if (idx !== -1)
|
|
27
|
-
listeners.splice(idx, 1);
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
21
|
function prefix(label, color) {
|
|
31
22
|
return `${BOLD}${color}[${label}]${RESET}`;
|
|
32
23
|
}
|
|
@@ -37,13 +28,6 @@ export function port(n, color) {
|
|
|
37
28
|
function makeLogger(label, color, level = 'info') {
|
|
38
29
|
const p = prefix(label, color);
|
|
39
30
|
return (...args) => {
|
|
40
|
-
// always notify listeners (they capture everything for admin ui)
|
|
41
|
-
if (listeners.length > 0) {
|
|
42
|
-
const msg = args.map((a) => (typeof a === 'string' ? a : String(a))).join(' ');
|
|
43
|
-
for (const fn of listeners)
|
|
44
|
-
fn(label, level, msg);
|
|
45
|
-
}
|
|
46
|
-
// only print to terminal if level passes filter
|
|
47
31
|
if (LEVEL_PRIORITY[level] <= LEVEL_PRIORITY[currentLevel]) {
|
|
48
32
|
console.info(p, ...args);
|
|
49
33
|
}
|
|
@@ -53,15 +37,8 @@ export const log = {
|
|
|
53
37
|
orez: makeLogger('orez', COLORS.cyan, 'warn'),
|
|
54
38
|
pglite: makeLogger('pglite', COLORS.green, 'warn'),
|
|
55
39
|
proxy: makeLogger('pg-proxy', COLORS.yellow, 'warn'),
|
|
56
|
-
zero: makeLogger('zero', COLORS.magenta, 'warn'),
|
|
40
|
+
zero: makeLogger('zero-cache', COLORS.magenta, 'warn'),
|
|
57
41
|
s3: makeLogger('orez/s3', COLORS.blue, 'warn'),
|
|
58
|
-
info: {
|
|
59
|
-
orez: makeLogger('orez', COLORS.cyan, 'info'),
|
|
60
|
-
pglite: makeLogger('pglite', COLORS.green, 'info'),
|
|
61
|
-
proxy: makeLogger('pg-proxy', COLORS.yellow, 'info'),
|
|
62
|
-
zero: makeLogger('zero', COLORS.magenta, 'info'),
|
|
63
|
-
s3: makeLogger('orez/s3', COLORS.blue, 'info'),
|
|
64
|
-
},
|
|
65
42
|
debug: {
|
|
66
43
|
orez: makeLogger('orez', COLORS.cyan, 'debug'),
|
|
67
44
|
pglite: makeLogger('pglite', COLORS.green, 'debug'),
|
package/dist/log.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log.js","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"AAEA,MAAM,KAAK,GAAG,SAAS,CAAA;AACvB,MAAM,IAAI,GAAG,SAAS,CAAA;AACtB,MAAM,GAAG,GAAG,SAAS,CAAA;AAErB,MAAM,MAAM,GAAG;IACb,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,UAAU;IACnB,IAAI,EAAE,UAAU;CACR,CAAA;AAEV,MAAM,cAAc,GAA6B;IAC/C,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACT,CAAA;AAED,IAAI,YAAY,GAAa,MAAM,CAAA;AAEnC,MAAM,UAAU,WAAW,CAAC,KAAe;IACzC,YAAY,GAAG,KAAK,CAAA;AACtB,CAAC;
|
|
1
|
+
{"version":3,"file":"log.js","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"AAEA,MAAM,KAAK,GAAG,SAAS,CAAA;AACvB,MAAM,IAAI,GAAG,SAAS,CAAA;AACtB,MAAM,GAAG,GAAG,SAAS,CAAA;AAErB,MAAM,MAAM,GAAG;IACb,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,UAAU;IACnB,IAAI,EAAE,UAAU;CACR,CAAA;AAEV,MAAM,cAAc,GAA6B;IAC/C,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACT,CAAA;AAED,IAAI,YAAY,GAAa,MAAM,CAAA;AAEnC,MAAM,UAAU,WAAW,CAAC,KAAe;IACzC,YAAY,GAAG,KAAK,CAAA;AACtB,CAAC;AAED,SAAS,MAAM,CAAC,KAAa,EAAE,KAAa;IAC1C,OAAO,GAAG,IAAI,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,EAAE,CAAA;AAC5C,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,IAAI,CAAC,CAAS,EAAE,KAA0B;IACxD,OAAO,GAAG,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,EAAE,CAAA;AAC9C,CAAC;AAED,SAAS,UAAU,CAAC,KAAa,EAAE,KAAa,EAAE,QAAkB,MAAM;IACxE,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IAC9B,OAAO,CAAC,GAAG,IAAe,EAAE,EAAE;QAC5B,IAAI,cAAc,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC;YAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAA;QAC1B,CAAC;IACH,CAAC,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,IAAI,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;IAC7C,MAAM,EAAE,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;IAClD,KAAK,EAAE,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IACpD,IAAI,EAAE,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC;IACtD,EAAE,EAAE,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;IAC9C,KAAK,EAAE;QACL,IAAI,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC;QAC9C,MAAM,EAAE,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC;QACnD,KAAK,EAAE,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;QACrD,IAAI,EAAE,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC;QACvD,EAAE,EAAE,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC;KAChD;CACF,CAAA"}
|
package/dist/mutex.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutex.d.ts","sourceRoot":"","sources":["../src/mutex.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mutex.d.ts","sourceRoot":"","sources":["../src/mutex.ts"],"names":[],"mappings":"AACA,qBAAa,KAAK;IAChB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,KAAK,CAAwB;IAE/B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAU9B,OAAO,IAAI,IAAI;CAQhB"}
|
package/dist/mutex.js
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
// simple mutex for serializing pglite access
|
|
2
|
-
// uses setImmediate/setTimeout between releases to prevent event loop
|
|
3
|
-
// starvation when multiple connections queue up — without this, releasing
|
|
4
|
-
// the mutex resolves the next waiter as a microtask, which causes a chain
|
|
5
|
-
// of synchronous pglite executions that blocks all I/O processing.
|
|
1
|
+
// simple mutex for serializing pglite access
|
|
6
2
|
export class Mutex {
|
|
7
3
|
locked = false;
|
|
8
4
|
queue = [];
|
|
@@ -18,14 +14,7 @@ export class Mutex {
|
|
|
18
14
|
release() {
|
|
19
15
|
const next = this.queue.shift();
|
|
20
16
|
if (next) {
|
|
21
|
-
|
|
22
|
-
// before the next waiter acquires the mutex
|
|
23
|
-
if (typeof setImmediate !== 'undefined') {
|
|
24
|
-
setImmediate(next);
|
|
25
|
-
}
|
|
26
|
-
else {
|
|
27
|
-
setTimeout(next, 0);
|
|
28
|
-
}
|
|
17
|
+
next();
|
|
29
18
|
}
|
|
30
19
|
else {
|
|
31
20
|
this.locked = false;
|