orez 0.0.15 → 0.0.17
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/README.md +42 -64
- package/dist/cli.js +8 -50
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +2 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +3 -1
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +165 -53
- package/dist/index.js.map +1 -1
- package/dist/log.d.ts +9 -1
- package/dist/log.d.ts.map +1 -1
- package/dist/log.js +21 -4
- package/dist/log.js.map +1 -1
- package/dist/pg-proxy.d.ts.map +1 -1
- package/dist/pg-proxy.js +20 -5
- package/dist/pg-proxy.js.map +1 -1
- package/dist/pglite-manager.d.ts.map +1 -1
- package/dist/pglite-manager.js +14 -9
- package/dist/pglite-manager.js.map +1 -1
- package/dist/replication/change-tracker.d.ts.map +1 -1
- package/dist/replication/change-tracker.js +38 -6
- package/dist/replication/change-tracker.js.map +1 -1
- package/dist/replication/handler.d.ts.map +1 -1
- package/dist/replication/handler.js +87 -25
- package/dist/replication/handler.js.map +1 -1
- package/dist/replication/pgoutput-encoder.d.ts +1 -0
- package/dist/replication/pgoutput-encoder.d.ts.map +1 -1
- package/dist/replication/pgoutput-encoder.js +1 -1
- package/dist/replication/pgoutput-encoder.js.map +1 -1
- package/dist/sqlite-shim.cjs +88 -0
- package/dist/src/config.js +38 -0
- package/dist/src/index.js +8996 -0
- package/dist/src/log.js +63 -0
- package/dist/src/pg-proxy.js +1915 -0
- package/dist/src/pglite-manager.js +6779 -0
- package/dist/src/port.js +40 -0
- package/dist/src/replication/change-tracker.js +174 -0
- package/dist/src/replication/handler.js +625 -0
- package/dist/src/replication/pgoutput-encoder.js +207 -0
- package/dist/vite-plugin.d.ts +0 -2
- package/dist/vite-plugin.d.ts.map +1 -1
- package/dist/vite-plugin.js +0 -9
- package/dist/vite-plugin.js.map +1 -1
- package/package.json +6 -8
- package/src/cli.ts +8 -53
- package/src/config.ts +5 -1
- package/src/index.ts +161 -50
- package/src/integration/integration.test.ts +415 -0
- package/src/log.ts +26 -4
- package/src/pg-proxy.ts +22 -5
- package/src/pglite-manager.ts +15 -9
- package/src/replication/change-tracker.ts +50 -8
- package/src/replication/handler.ts +105 -27
- package/src/replication/pgoutput-encoder.ts +2 -1
- package/src/sqlite-shim.cjs +26 -8
- package/src/vite-plugin.ts +0 -12
- package/src/wasm-sqlite.test.ts +536 -0
- package/src/bunny-local.ts +0 -224
package/README.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# orez
|
|
2
2
|
|
|
3
|
-
[Zero](https://zero.rocicorp.dev) development backend powered by [PGlite](https://pglite.dev). Bundles PostgreSQL and zero-cache into a single
|
|
3
|
+
[Zero](https://zero.rocicorp.dev) development backend powered by [PGlite](https://pglite.dev) and [bedrock-sqlite](https://www.npmjs.com/package/bedrock-sqlite) (our WASM fork of SQLite's [bedrock branch](https://sqlite.org/src/timeline?t=begin-concurrent)). Bundles PostgreSQL and zero-cache into a single package with no native dependencies — both Postgres and SQLite run as WASM, so you can `bunx orez` and have a full backend up in seconds. No Docker, no Postgres install, no `node-gyp`, no platform-specific binaries.
|
|
4
4
|
|
|
5
5
|
```
|
|
6
6
|
bunx orez
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Starts PGlite, the TCP proxy, and zero-cache. Ports auto-increment if already in use.
|
|
9
|
+
Starts PGlite (Postgres via WASM), the TCP proxy, and zero-cache (SQLite via WASM). Ports auto-increment if already in use.
|
|
10
10
|
|
|
11
11
|
Exports a CLI, programmatic API, and Vite plugin.
|
|
12
12
|
|
|
@@ -25,26 +25,26 @@ bunx orez
|
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
```
|
|
28
|
-
--pg-port
|
|
29
|
-
--zero-port
|
|
30
|
-
--data-dir
|
|
31
|
-
--migrations
|
|
32
|
-
--seed
|
|
33
|
-
--pg-user
|
|
34
|
-
--pg-password
|
|
35
|
-
--skip-zero-cache
|
|
36
|
-
--log-level
|
|
37
|
-
--s3
|
|
38
|
-
--s3-port
|
|
39
|
-
--
|
|
40
|
-
--
|
|
28
|
+
--pg-port=6434 postgresql proxy port
|
|
29
|
+
--zero-port=5849 zero-cache port
|
|
30
|
+
--data-dir=.orez data directory
|
|
31
|
+
--migrations=DIR migrations directory (skipped if not set)
|
|
32
|
+
--seed=FILE seed file path
|
|
33
|
+
--pg-user=user postgresql user
|
|
34
|
+
--pg-password=password postgresql password
|
|
35
|
+
--skip-zero-cache run pglite + proxy only, skip zero-cache
|
|
36
|
+
--log-level=info error, warn, info, debug
|
|
37
|
+
--s3 also start a local s3-compatible server
|
|
38
|
+
--s3-port=9200 s3 server port
|
|
39
|
+
--disable-wasm-sqlite use native @rocicorp/zero-sqlite3 instead of wasm bedrock-sqlite
|
|
40
|
+
--on-db-ready=CMD command to run after db+proxy are ready, before zero-cache starts
|
|
41
|
+
--on-healthy=CMD command to run once all services are healthy
|
|
41
42
|
```
|
|
42
43
|
|
|
43
44
|
Subcommands for standalone servers:
|
|
44
45
|
|
|
45
46
|
```
|
|
46
|
-
bunx orez s3 --port
|
|
47
|
-
bunx orez bunny --port 3533 --data-dir .orez
|
|
47
|
+
bunx orez s3 --port=9200 --data-dir=.orez
|
|
48
48
|
```
|
|
49
49
|
|
|
50
50
|
## Programmatic
|
|
@@ -79,19 +79,16 @@ export default {
|
|
|
79
79
|
pgPort: 6434,
|
|
80
80
|
zeroPort: 5849,
|
|
81
81
|
migrationsDir: 'src/database/migrations',
|
|
82
|
-
s3: true,
|
|
83
|
-
bunny: true,
|
|
84
|
-
bunnyPort: 3533,
|
|
85
82
|
}),
|
|
86
83
|
],
|
|
87
84
|
}
|
|
88
85
|
```
|
|
89
86
|
|
|
90
|
-
Starts orez when vite dev server starts, stops on close.
|
|
87
|
+
Starts orez when vite dev server starts, stops on close.
|
|
91
88
|
|
|
92
89
|
## How it works
|
|
93
90
|
|
|
94
|
-
orez starts three things
|
|
91
|
+
orez starts three things:
|
|
95
92
|
|
|
96
93
|
1. A PGlite instance (full PostgreSQL 16 running in-process via WASM)
|
|
97
94
|
2. A TCP proxy that speaks the PostgreSQL wire protocol, including logical replication
|
|
@@ -101,11 +98,11 @@ The trick is in the TCP proxy. zero-cache needs logical replication to stay in s
|
|
|
101
98
|
|
|
102
99
|
The proxy also handles multi-database routing. zero-cache expects three separate databases (upstream, CVR, change), but PGlite is a single database. orez maps database names to schemas, so `zero_cvr` becomes the `zero_cvr` schema and `zero_cdb` becomes `zero_cdb`.
|
|
103
100
|
|
|
104
|
-
###
|
|
101
|
+
### Zero native dependencies
|
|
105
102
|
|
|
106
|
-
|
|
103
|
+
The whole point of orez is that `bunx orez` works everywhere with no native compilation step. Postgres runs in-process as WASM via PGlite. But zero-cache also needs SQLite, and `@rocicorp/zero-sqlite3` ships as a compiled C addon — which means `node-gyp`, build tools, and platform-specific binaries.
|
|
107
104
|
|
|
108
|
-
At startup, orez patches `@rocicorp/zero-sqlite3` to load bedrock-sqlite instead of native
|
|
105
|
+
orez ships its own package, [bedrock-sqlite](https://www.npmjs.com/package/bedrock-sqlite) — SQLite's [bedrock branch](https://sqlite.org/src/timeline?t=begin-concurrent) recompiled to WASM with BEGIN CONCURRENT and WAL2 support. At startup, orez patches `@rocicorp/zero-sqlite3` to load bedrock-sqlite instead of the native C addon. Both databases run as WASM — nothing to compile, nothing platform-specific. Just `bun install` and go.
|
|
109
106
|
|
|
110
107
|
## Environment variables
|
|
111
108
|
|
|
@@ -133,7 +130,6 @@ Common vars you might want to set:
|
|
|
133
130
|
```bash
|
|
134
131
|
ZERO_MUTATE_URL=http://localhost:3000/api/zero/push
|
|
135
132
|
ZERO_QUERY_URL=http://localhost:3000/api/zero/pull
|
|
136
|
-
ZERO_LOG_LEVEL=debug
|
|
137
133
|
```
|
|
138
134
|
|
|
139
135
|
## What gets faked
|
|
@@ -151,47 +147,13 @@ The proxy intercepts several things to convince zero-cache it's talking to a rea
|
|
|
151
147
|
|
|
152
148
|
The pgoutput encoder produces spec-compliant binary messages: Begin, Relation, Insert, Update, Delete, Commit, and Keepalive. All column values are encoded as text (typeOid 25), which zero-cache handles fine since it re-maps types downstream anyway.
|
|
153
149
|
|
|
154
|
-
## Extra: orez/s3
|
|
155
|
-
|
|
156
|
-
Local s3-compatible server for dev. Avoids needing Docker or MinIO.
|
|
157
|
-
|
|
158
|
-
```typescript
|
|
159
|
-
import { startS3Local } from 'orez/s3'
|
|
160
|
-
|
|
161
|
-
const server = await startS3Local({
|
|
162
|
-
port: 9200,
|
|
163
|
-
dataDir: '.orez',
|
|
164
|
-
})
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
Or via CLI: `bunx orez --s3` or standalone `bunx orez s3`.
|
|
168
|
-
|
|
169
|
-
Handles GET, PUT, DELETE, HEAD with CORS. Files stored on disk. No multipart, no ACLs, no versioning.
|
|
170
|
-
|
|
171
|
-
## Extra: orez/bunny
|
|
172
|
-
|
|
173
|
-
Local Bunny CDN storage-compatible server for dev. Drop-in replacement for Bunny's storage API.
|
|
174
|
-
|
|
175
|
-
```typescript
|
|
176
|
-
import { startBunnyLocal } from 'orez/bunny'
|
|
177
|
-
|
|
178
|
-
const server = await startBunnyLocal({
|
|
179
|
-
port: 3533,
|
|
180
|
-
dataDir: '.orez',
|
|
181
|
-
})
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
Or via CLI: `bunx orez --bunny` or standalone `bunx orez bunny`.
|
|
185
|
-
|
|
186
|
-
Handles GET, PUT, DELETE, HEAD with CORS, plus directory listing. Files stored on disk.
|
|
187
|
-
|
|
188
150
|
## Tests
|
|
189
151
|
|
|
190
|
-
|
|
152
|
+
141 tests — 104 orez tests across 7 test files covering the full stack from binary encoding to TCP-level integration, plus 37 bedrock-sqlite tests covering the WASM SQLite engine:
|
|
191
153
|
|
|
192
154
|
```
|
|
193
|
-
bun test
|
|
194
|
-
cd sqlite-wasm && bunx vitest run
|
|
155
|
+
bun run test # orez tests
|
|
156
|
+
cd sqlite-wasm && bunx vitest run # bedrock-sqlite tests
|
|
195
157
|
```
|
|
196
158
|
|
|
197
159
|
The orez test suite includes a zero-cache compatibility layer that decodes pgoutput messages into the same typed format that zero-cache's PgoutputParser produces, validating end-to-end compatibility.
|
|
@@ -219,7 +181,6 @@ src/
|
|
|
219
181
|
pg-proxy.ts tcp proxy with query rewriting
|
|
220
182
|
pglite-manager.ts pglite instance and migration runner
|
|
221
183
|
s3-local.ts local s3-compatible server (orez/s3)
|
|
222
|
-
bunny-local.ts local bunny cdn storage server (orez/bunny)
|
|
223
184
|
vite-plugin.ts vite dev server plugin (orez/vite)
|
|
224
185
|
replication/
|
|
225
186
|
handler.ts replication protocol state machine
|
|
@@ -236,6 +197,23 @@ sqlite-wasm/
|
|
|
236
197
|
database.test.ts 37 tests for the wasm sqlite engine
|
|
237
198
|
```
|
|
238
199
|
|
|
200
|
+
## Extra: orez/s3
|
|
201
|
+
|
|
202
|
+
Local s3-compatible server for dev. Avoids needing Docker or MinIO.
|
|
203
|
+
|
|
204
|
+
```typescript
|
|
205
|
+
import { startS3Local } from 'orez/s3'
|
|
206
|
+
|
|
207
|
+
const server = await startS3Local({
|
|
208
|
+
port: 9200,
|
|
209
|
+
dataDir: '.orez',
|
|
210
|
+
})
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
Or via CLI: `bunx orez --s3` or standalone `bunx orez s3`.
|
|
214
|
+
|
|
215
|
+
Handles GET, PUT, DELETE, HEAD with CORS. Files stored on disk. No multipart, no ACLs, no versioning.
|
|
216
|
+
|
|
239
217
|
## License
|
|
240
218
|
|
|
241
219
|
MIT
|
package/dist/cli.js
CHANGED
|
@@ -36,39 +36,6 @@ const s3Command = defineCommand({
|
|
|
36
36
|
});
|
|
37
37
|
},
|
|
38
38
|
});
|
|
39
|
-
const bunnyCommand = defineCommand({
|
|
40
|
-
meta: {
|
|
41
|
-
name: 'bunny',
|
|
42
|
-
description: 'start a local bunny cdn storage-compatible server',
|
|
43
|
-
},
|
|
44
|
-
args: {
|
|
45
|
-
port: {
|
|
46
|
-
type: 'string',
|
|
47
|
-
description: 'port to listen on',
|
|
48
|
-
default: '3533',
|
|
49
|
-
},
|
|
50
|
-
'data-dir': {
|
|
51
|
-
type: 'string',
|
|
52
|
-
description: 'data directory for stored files',
|
|
53
|
-
default: '.orez',
|
|
54
|
-
},
|
|
55
|
-
},
|
|
56
|
-
async run({ args }) {
|
|
57
|
-
const { startBunnyLocal } = await import('./bunny-local.js');
|
|
58
|
-
const server = await startBunnyLocal({
|
|
59
|
-
port: Number(args.port),
|
|
60
|
-
dataDir: args['data-dir'],
|
|
61
|
-
});
|
|
62
|
-
process.on('SIGINT', () => {
|
|
63
|
-
server.close();
|
|
64
|
-
process.exit(0);
|
|
65
|
-
});
|
|
66
|
-
process.on('SIGTERM', () => {
|
|
67
|
-
server.close();
|
|
68
|
-
process.exit(0);
|
|
69
|
-
});
|
|
70
|
-
},
|
|
71
|
-
});
|
|
72
39
|
const main = defineCommand({
|
|
73
40
|
meta: {
|
|
74
41
|
name: 'orez',
|
|
@@ -88,7 +55,7 @@ const main = defineCommand({
|
|
|
88
55
|
'data-dir': {
|
|
89
56
|
type: 'string',
|
|
90
57
|
description: 'data directory',
|
|
91
|
-
default: '.
|
|
58
|
+
default: '.orez',
|
|
92
59
|
},
|
|
93
60
|
migrations: {
|
|
94
61
|
type: 'string',
|
|
@@ -130,15 +97,15 @@ const main = defineCommand({
|
|
|
130
97
|
description: 's3 server port',
|
|
131
98
|
default: '9200',
|
|
132
99
|
},
|
|
133
|
-
|
|
100
|
+
'disable-wasm-sqlite': {
|
|
134
101
|
type: 'boolean',
|
|
135
|
-
description: '
|
|
102
|
+
description: 'use native @rocicorp/zero-sqlite3 instead of wasm bedrock-sqlite',
|
|
136
103
|
default: false,
|
|
137
104
|
},
|
|
138
|
-
'
|
|
105
|
+
'on-db-ready': {
|
|
139
106
|
type: 'string',
|
|
140
|
-
description: '
|
|
141
|
-
default: '
|
|
107
|
+
description: 'command to run after db+proxy are ready, before zero-cache starts',
|
|
108
|
+
default: '',
|
|
142
109
|
},
|
|
143
110
|
'on-healthy': {
|
|
144
111
|
type: 'string',
|
|
@@ -148,7 +115,6 @@ const main = defineCommand({
|
|
|
148
115
|
},
|
|
149
116
|
subCommands: {
|
|
150
117
|
s3: s3Command,
|
|
151
|
-
bunny: bunnyCommand,
|
|
152
118
|
},
|
|
153
119
|
async run({ args }) {
|
|
154
120
|
const { config, stop } = await startZeroLite({
|
|
@@ -160,7 +126,9 @@ const main = defineCommand({
|
|
|
160
126
|
pgUser: args['pg-user'],
|
|
161
127
|
pgPassword: args['pg-password'],
|
|
162
128
|
skipZeroCache: args['skip-zero-cache'],
|
|
129
|
+
disableWasmSqlite: args['disable-wasm-sqlite'],
|
|
163
130
|
logLevel: args['log-level'],
|
|
131
|
+
onDbReady: args['on-db-ready'],
|
|
164
132
|
});
|
|
165
133
|
let s3Server = null;
|
|
166
134
|
if (args.s3) {
|
|
@@ -170,14 +138,6 @@ const main = defineCommand({
|
|
|
170
138
|
dataDir: args['data-dir'],
|
|
171
139
|
});
|
|
172
140
|
}
|
|
173
|
-
let bunnyServer = null;
|
|
174
|
-
if (args.bunny) {
|
|
175
|
-
const { startBunnyLocal } = await import('./bunny-local.js');
|
|
176
|
-
bunnyServer = await startBunnyLocal({
|
|
177
|
-
port: Number(args['bunny-port']),
|
|
178
|
-
dataDir: args['data-dir'],
|
|
179
|
-
});
|
|
180
|
-
}
|
|
181
141
|
log.orez('ready');
|
|
182
142
|
log.orez(`pg: postgresql://${config.pgUser}:${config.pgPassword}@127.0.0.1:${config.pgPort}/postgres`);
|
|
183
143
|
if (!config.skipZeroCache) {
|
|
@@ -201,13 +161,11 @@ const main = defineCommand({
|
|
|
201
161
|
});
|
|
202
162
|
}
|
|
203
163
|
process.on('SIGINT', async () => {
|
|
204
|
-
bunnyServer?.close();
|
|
205
164
|
s3Server?.close();
|
|
206
165
|
await stop();
|
|
207
166
|
process.exit(0);
|
|
208
167
|
});
|
|
209
168
|
process.on('SIGTERM', async () => {
|
|
210
|
-
bunnyServer?.close();
|
|
211
169
|
s3Server?.close();
|
|
212
170
|
await stop();
|
|
213
171
|
process.exit(0);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAE1C,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAE9B,MAAM,SAAS,GAAG,aAAa,CAAC;IAC9B,IAAI,EAAE;QACJ,IAAI,EAAE,IAAI;QACV,WAAW,EAAE,oCAAoC;KAClD;IACD,IAAI,EAAE;QACJ,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,mBAAmB;YAChC,OAAO,EAAE,MAAM;SAChB;QACD,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,iCAAiC;YAC9C,OAAO,EAAE,OAAO;SACjB;KACF;IACD,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;QAChB,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAA;QACtD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;YAChC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YACvB,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC;SAC1B,CAAC,CAAA;QAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YACxB,MAAM,CAAC,KAAK,EAAE,CAAA;YACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC,CAAC,CAAA;QACF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACzB,MAAM,CAAC,KAAK,EAAE,CAAA;YACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC,CAAC,CAAA;IACJ,CAAC;CACF,CAAC,CAAA;AAEF,MAAM,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -9,8 +9,10 @@ export interface ZeroLiteConfig {
|
|
|
9
9
|
migrationsDir: string;
|
|
10
10
|
seedFile: string;
|
|
11
11
|
skipZeroCache: boolean;
|
|
12
|
+
disableWasmSqlite: boolean;
|
|
12
13
|
logLevel: LogLevel;
|
|
13
14
|
pgliteOptions: Partial<PGliteOptions>;
|
|
15
|
+
onDbReady: string;
|
|
14
16
|
}
|
|
15
17
|
export declare function getConfig(overrides?: Partial<ZeroLiteConfig>): ZeroLiteConfig;
|
|
16
18
|
export declare function getConnectionString(config: ZeroLiteConfig, dbName?: string): string;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEzD,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;AAE1D,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,OAAO,CAAA;IACtB,QAAQ,EAAE,QAAQ,CAAA;IAClB,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEzD,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;AAE1D,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,OAAO,CAAA;IACtB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,QAAQ,EAAE,QAAQ,CAAA;IAClB,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;IACrC,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,wBAAgB,SAAS,CAAC,SAAS,GAAE,OAAO,CAAC,cAAc,CAAM,GAAG,cAAc,CAejF;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,SAAa,GAAG,MAAM,CAEvF"}
|
package/dist/config.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export function getConfig(overrides = {}) {
|
|
2
2
|
return {
|
|
3
|
-
dataDir: overrides.dataDir || '.
|
|
3
|
+
dataDir: overrides.dataDir || '.orez',
|
|
4
4
|
pgPort: overrides.pgPort || 6434,
|
|
5
5
|
zeroPort: overrides.zeroPort || 5849,
|
|
6
6
|
pgUser: overrides.pgUser || 'user',
|
|
@@ -8,8 +8,10 @@ export function getConfig(overrides = {}) {
|
|
|
8
8
|
migrationsDir: overrides.migrationsDir || '',
|
|
9
9
|
seedFile: overrides.seedFile || 'src/database/seed.sql',
|
|
10
10
|
skipZeroCache: overrides.skipZeroCache || false,
|
|
11
|
+
disableWasmSqlite: overrides.disableWasmSqlite || false,
|
|
11
12
|
logLevel: overrides.logLevel || 'info',
|
|
12
13
|
pgliteOptions: overrides.pgliteOptions || {},
|
|
14
|
+
onDbReady: overrides.onDbReady || '',
|
|
13
15
|
};
|
|
14
16
|
}
|
|
15
17
|
export function getConnectionString(config, dbName = 'postgres') {
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAmBA,MAAM,UAAU,SAAS,CAAC,YAAqC,EAAE;IAC/D,OAAO;QACL,OAAO,EAAE,SAAS,CAAC,OAAO,IAAI,OAAO;QACrC,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,IAAI;QAChC,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,IAAI;QACpC,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,MAAM;QAClC,UAAU,EAAE,SAAS,CAAC,UAAU,IAAI,UAAU;QAC9C,aAAa,EAAE,SAAS,CAAC,aAAa,IAAI,EAAE;QAC5C,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,uBAAuB;QACvD,aAAa,EAAE,SAAS,CAAC,aAAa,IAAI,KAAK;QAC/C,iBAAiB,EAAE,SAAS,CAAC,iBAAiB,IAAI,KAAK;QACvD,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,MAAM;QACtC,aAAa,EAAE,SAAS,CAAC,aAAa,IAAI,EAAE;QAC5C,SAAS,EAAE,SAAS,CAAC,SAAS,IAAI,EAAE;KACrC,CAAA;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAsB,EAAE,MAAM,GAAG,UAAU;IAC7E,OAAO,gBAAgB,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,cAAc,MAAM,CAAC,MAAM,IAAI,MAAM,EAAE,CAAA;AAClG,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,10 +6,14 @@
|
|
|
6
6
|
* `bun run` command.
|
|
7
7
|
*/
|
|
8
8
|
import type { ZeroLiteConfig } from './config.js';
|
|
9
|
+
import type { PGlite } from '@electric-sql/pglite';
|
|
9
10
|
export { getConfig, getConnectionString } from './config.js';
|
|
10
11
|
export type { LogLevel, ZeroLiteConfig } from './config.js';
|
|
11
12
|
export declare function startZeroLite(overrides?: Partial<ZeroLiteConfig>): Promise<{
|
|
12
13
|
config: ZeroLiteConfig;
|
|
13
14
|
stop: () => Promise<void>;
|
|
15
|
+
db: PGlite;
|
|
16
|
+
pgPort: number;
|
|
17
|
+
zeroPort: number;
|
|
14
18
|
}>;
|
|
15
19
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
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;;;;;;GAgH1E"}
|