tinbase 0.10.0 → 0.10.2
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 +10 -9
- package/dist/admin/api.d.ts +62 -1
- package/dist/admin/api.js +221 -10
- package/dist/admin/api.js.map +1 -1
- package/dist/admin/ui.d.ts +1 -1
- package/dist/admin/ui.js +1548 -16
- package/dist/admin/ui.js.map +1 -1
- package/dist/auth/handler.d.ts +52 -5
- package/dist/auth/handler.js +147 -36
- package/dist/auth/handler.js.map +1 -1
- package/dist/auth/inbox.d.ts +4 -2
- package/dist/auth/inbox.js +1 -0
- package/dist/auth/inbox.js.map +1 -1
- package/dist/auth/oauth.d.ts +30 -4
- package/dist/auth/oauth.js +22 -6
- package/dist/auth/oauth.js.map +1 -1
- package/dist/auth/password.d.ts +5 -0
- package/dist/auth/password.js +7 -0
- package/dist/auth/password.js.map +1 -1
- package/dist/auth/qr.d.ts +1 -1
- package/dist/auth/qr.js +1 -1
- package/dist/auth/rate-limit.d.ts +33 -0
- package/dist/auth/rate-limit.js +63 -0
- package/dist/auth/rate-limit.js.map +1 -0
- package/dist/auth/redirect.d.ts +20 -0
- package/dist/auth/redirect.js +79 -0
- package/dist/auth/redirect.js.map +1 -0
- package/dist/auth/settings.d.ts +55 -0
- package/dist/auth/settings.js +116 -0
- package/dist/auth/settings.js.map +1 -0
- package/dist/auth/totp.js +1 -1
- package/dist/cli.js +43 -21
- package/dist/cli.js.map +1 -1
- package/dist/cron/service.d.ts +15 -2
- package/dist/cron/service.js +19 -2
- package/dist/cron/service.js.map +1 -1
- package/dist/db/bootstrap.d.ts +13 -6
- package/dist/db/bootstrap.js +26 -5
- package/dist/db/bootstrap.js.map +1 -1
- package/dist/db/database.d.ts +61 -3
- package/dist/db/database.js +72 -9
- package/dist/db/database.js.map +1 -1
- package/dist/db/emulated.d.ts +39 -2
- package/dist/db/emulated.js +39 -23
- package/dist/db/emulated.js.map +1 -1
- package/dist/db/engine.d.ts +19 -5
- package/dist/db/engine.js +4 -2
- package/dist/db/engine.js.map +1 -1
- package/dist/db/inspect.d.ts +6 -1
- package/dist/db/inspect.js +2 -1
- package/dist/db/inspect.js.map +1 -1
- package/dist/db/pglite-engine.d.ts +7 -1
- package/dist/db/pglite-engine.js +7 -1
- package/dist/db/pglite-engine.js.map +1 -1
- package/dist/db/pgmem-engine.d.ts +9 -3
- package/dist/db/pgmem-engine.js +13 -7
- package/dist/db/pgmem-engine.js.map +1 -1
- package/dist/db/schema-diff.d.ts +9 -1
- package/dist/db/schema-diff.js +19 -5
- package/dist/db/schema-diff.js.map +1 -1
- package/dist/db/sql-compat.d.ts +2 -2
- package/dist/db/sql-compat.js +2 -2
- package/dist/functions/deno-shim.d.ts +6 -17
- package/dist/functions/deno-shim.js +42 -10
- package/dist/functions/deno-shim.js.map +1 -1
- package/dist/functions/handler.d.ts +9 -4
- package/dist/functions/handler.js +9 -1
- package/dist/functions/handler.js.map +1 -1
- package/dist/gen-types.d.ts +6 -1
- package/dist/gen-types.js +53 -41
- package/dist/gen-types.js.map +1 -1
- package/dist/index.d.ts +33 -3
- package/dist/index.js +158 -28
- package/dist/index.js.map +1 -1
- package/dist/jwt.d.ts +4 -1
- package/dist/jwt.js +4 -2
- package/dist/jwt.js.map +1 -1
- package/dist/log-buffer.d.ts +7 -1
- package/dist/log-buffer.js +3 -0
- package/dist/log-buffer.js.map +1 -1
- package/dist/net/service.d.ts +35 -6
- package/dist/net/service.js +72 -17
- package/dist/net/service.js.map +1 -1
- package/dist/node/bun-server.d.ts +2 -1
- package/dist/node/bun-server.js +11 -1
- package/dist/node/bun-server.js.map +1 -1
- package/dist/node/bundle-function.d.ts +1 -1
- package/dist/node/bundle-function.js +1 -1
- package/dist/node/config-toml.d.ts +31 -0
- package/dist/node/config-toml.js +186 -0
- package/dist/node/config-toml.js.map +1 -0
- package/dist/node/db-diff.d.ts +13 -1
- package/dist/node/db-diff.js +3 -1
- package/dist/node/db-diff.js.map +1 -1
- package/dist/node/fs-driver.d.ts +16 -1
- package/dist/node/fs-driver.js +20 -1
- package/dist/node/fs-driver.js.map +1 -1
- package/dist/node/index.d.ts +2 -2
- package/dist/node/index.js +1 -1
- package/dist/node/index.js.map +1 -1
- package/dist/node/load-config.d.ts +80 -0
- package/dist/node/load-config.js +230 -0
- package/dist/node/load-config.js.map +1 -0
- package/dist/node/load-functions.d.ts +17 -2
- package/dist/node/load-functions.js +17 -4
- package/dist/node/load-functions.js.map +1 -1
- package/dist/node/native/engine.d.ts +7 -0
- package/dist/node/native/engine.js +58 -7
- package/dist/node/native/engine.js.map +1 -1
- package/dist/node/native/wire.d.ts +15 -1
- package/dist/node/native/wire.js +32 -10
- package/dist/node/native/wire.js.map +1 -1
- package/dist/node/project.d.ts +15 -1
- package/dist/node/project.js +19 -7
- package/dist/node/project.js.map +1 -1
- package/dist/node/server-shared.d.ts +4 -1
- package/dist/node/server.d.ts +11 -0
- package/dist/node/server.js +11 -0
- package/dist/node/server.js.map +1 -1
- package/dist/node/ws.d.ts +26 -1
- package/dist/node/ws.js +26 -3
- package/dist/node/ws.js.map +1 -1
- package/dist/realtime/engine.d.ts +6 -0
- package/dist/realtime/engine.js +45 -34
- package/dist/realtime/engine.js.map +1 -1
- package/dist/rest/build.d.ts +37 -1
- package/dist/rest/build.js +48 -8
- package/dist/rest/build.js.map +1 -1
- package/dist/rest/errors.d.ts +8 -0
- package/dist/rest/errors.js +12 -1
- package/dist/rest/errors.js.map +1 -1
- package/dist/rest/handler.d.ts +17 -1
- package/dist/rest/handler.js +48 -5
- package/dist/rest/handler.js.map +1 -1
- package/dist/rest/parse.d.ts +24 -1
- package/dist/rest/parse.js +7 -1
- package/dist/rest/parse.js.map +1 -1
- package/dist/retention/service.d.ts +3 -0
- package/dist/retention/service.js +3 -1
- package/dist/retention/service.js.map +1 -1
- package/dist/security.d.ts +22 -0
- package/dist/security.js +47 -0
- package/dist/security.js.map +1 -0
- package/dist/storage/driver.d.ts +8 -1
- package/dist/storage/driver.js +4 -1
- package/dist/storage/driver.js.map +1 -1
- package/dist/storage/handler.d.ts +10 -1
- package/dist/storage/handler.js +93 -12
- package/dist/storage/handler.js.map +1 -1
- package/dist/types.d.ts +77 -1
- package/dist/types.js +10 -0
- package/dist/types.js.map +1 -1
- package/dist/webhooks/service.d.ts +25 -2
- package/dist/webhooks/service.js +21 -3
- package/dist/webhooks/service.js.map +1 -1
- package/package.json +5 -3
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Native embedded Postgres engine
|
|
2
|
+
* Native embedded Postgres engine - PocketBase-class footprint with real
|
|
3
3
|
* Postgres semantics. Downloads platform binaries once (~12 MB from
|
|
4
4
|
* theseus-rs/postgresql-binaries), runs initdb with memory-lean settings,
|
|
5
5
|
* and manages the postgres child process. Trust auth over a private unix
|
|
6
6
|
* socket directory (0700), never TCP.
|
|
7
7
|
*/
|
|
8
8
|
import { execFileSync, spawn } from 'node:child_process';
|
|
9
|
-
import { randomBytes } from 'node:crypto';
|
|
9
|
+
import { createHash, randomBytes } from 'node:crypto';
|
|
10
10
|
import { chmodSync, existsSync, mkdirSync, mkdtempSync, readFileSync, renameSync, rmSync, appendFileSync } from 'node:fs';
|
|
11
11
|
import { writeFile } from 'node:fs/promises';
|
|
12
12
|
import { homedir, tmpdir } from 'node:os';
|
|
@@ -28,6 +28,42 @@ function target() {
|
|
|
28
28
|
function isCompleteInstall(dir) {
|
|
29
29
|
return existsSync(join(dir, 'bin', 'postgres')) && existsSync(join(dir, 'share', 'postgres.bki'));
|
|
30
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Pinned SHA-256 digests for the tarballs we download, keyed by
|
|
33
|
+
* `postgresql-<version>-<target>`. A pinned entry is enforced offline (strongest
|
|
34
|
+
* integrity). For versions/targets not listed here we fall back to the checksum
|
|
35
|
+
* the release publishes alongside the tarball, which still defends against
|
|
36
|
+
* truncated downloads and mismatched redirects.
|
|
37
|
+
*/
|
|
38
|
+
const PINNED_SHA256 = {
|
|
39
|
+
// theseus-rs/postgresql-binaries 17.7.0 (the DEFAULT_PG_VERSION). Refresh
|
|
40
|
+
// these from the release *.sha256 files whenever DEFAULT_PG_VERSION changes.
|
|
41
|
+
'postgresql-17.7.0-x86_64-unknown-linux-gnu': '66ad03281a43624f955c8e16ac975cb0ab751e7edf8ba35308e3b08dd7d065c3',
|
|
42
|
+
'postgresql-17.7.0-aarch64-unknown-linux-gnu': '89cc2f089880cc8e5e6b7a29387829ec4e4779427855bc0b9fa187c8fce33c8b',
|
|
43
|
+
'postgresql-17.7.0-x86_64-apple-darwin': '0dd8c25173524bad4ae8ef6b970da1ac40f4c1f231150c416ccb8cd06feff8f2',
|
|
44
|
+
'postgresql-17.7.0-aarch64-apple-darwin': '727ac08d20a704014a0d51eb3300aa0c8e292c1cf0a1c99d4f4b1002e1420220',
|
|
45
|
+
};
|
|
46
|
+
/** Verify `tarball` against a pinned digest, else the release's published .sha256. */
|
|
47
|
+
async function verifyTarball(tarball, key, url) {
|
|
48
|
+
const actual = createHash('sha256').update(readFileSync(tarball)).digest('hex');
|
|
49
|
+
const pinned = PINNED_SHA256[key];
|
|
50
|
+
if (pinned) {
|
|
51
|
+
if (actual !== pinned) {
|
|
52
|
+
throw new Error(`postgres binary checksum mismatch for ${key}: expected ${pinned}, got ${actual}`);
|
|
53
|
+
}
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
// No local pin - verify against the checksum the release publishes.
|
|
57
|
+
const res = await fetch(`${url}.sha256`);
|
|
58
|
+
if (!res.ok)
|
|
59
|
+
throw new Error(`could not fetch checksum for ${key}: HTTP ${res.status}`);
|
|
60
|
+
const expected = (await res.text()).trim().split(/\s+/)[0].toLowerCase();
|
|
61
|
+
if (!/^[0-9a-f]{64}$/.test(expected))
|
|
62
|
+
throw new Error(`malformed published checksum for ${key}`);
|
|
63
|
+
if (actual !== expected) {
|
|
64
|
+
throw new Error(`postgres binary checksum mismatch for ${key}: expected ${expected}, got ${actual}`);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
31
67
|
/** Download + unpack Postgres binaries if not already cached (concurrency-safe). Returns the install dir. */
|
|
32
68
|
export async function ensurePostgres(version = DEFAULT_PG_VERSION, cacheDir, log) {
|
|
33
69
|
const t = target();
|
|
@@ -37,7 +73,7 @@ export async function ensurePostgres(version = DEFAULT_PG_VERSION, cacheDir, log
|
|
|
37
73
|
return dir;
|
|
38
74
|
// Concurrency-safe: multiple test workers / processes may call this at once on
|
|
39
75
|
// a cold cache. Each downloads + extracts to unique temp paths, then atomically
|
|
40
|
-
// renames into place
|
|
76
|
+
// renames into place - so no worker ever sees a half-written tarball or a
|
|
41
77
|
// partially-extracted install dir.
|
|
42
78
|
const url = `https://github.com/theseus-rs/postgresql-binaries/releases/download/${version}/postgresql-${version}-${t}.tar.gz`;
|
|
43
79
|
mkdirSync(root, { recursive: true });
|
|
@@ -52,6 +88,8 @@ export async function ensurePostgres(version = DEFAULT_PG_VERSION, cacheDir, log
|
|
|
52
88
|
if (!res.ok)
|
|
53
89
|
throw new Error(`failed to download ${url}: HTTP ${res.status}`);
|
|
54
90
|
await writeFile(tarball, Buffer.from(await res.arrayBuffer()));
|
|
91
|
+
// Integrity-check the tarball before executing anything it contains.
|
|
92
|
+
await verifyTarball(tarball, `postgresql-${version}-${t}`, url);
|
|
55
93
|
mkdirSync(tmpDir, { recursive: true });
|
|
56
94
|
execFileSync('tar', ['xzf', tarball, '-C', tmpDir, '--strip-components=1']);
|
|
57
95
|
if (!isCompleteInstall(tmpDir))
|
|
@@ -85,6 +123,11 @@ max_wal_senders = 0
|
|
|
85
123
|
synchronous_commit = off
|
|
86
124
|
logging_collector = off
|
|
87
125
|
`;
|
|
126
|
+
/**
|
|
127
|
+
* Boot the embedded Postgres child (initdb on first run) and return a {@link DbEngine}
|
|
128
|
+
* backed by two wire connections: one for queries/transactions (serialized by a mutex),
|
|
129
|
+
* one dedicated to LISTEN/NOTIFY.
|
|
130
|
+
*/
|
|
88
131
|
export async function createNativeEngine(opts) {
|
|
89
132
|
const installDir = await ensurePostgres(opts.version, opts.cacheDir, opts.log);
|
|
90
133
|
const bin = (name) => join(installDir, 'bin', name);
|
|
@@ -105,7 +148,7 @@ export async function createNativeEngine(opts) {
|
|
|
105
148
|
// A stale postmaster.pid (from a crashed run) makes postgres refuse to start.
|
|
106
149
|
// Remove it if the process it names is no longer alive.
|
|
107
150
|
removeStalePidFile(join(opts.dataDir, 'postmaster.pid'));
|
|
108
|
-
// private socket dir
|
|
151
|
+
// private socket dir - trust auth is safe because only this user can reach it.
|
|
109
152
|
// Keep the path short: macOS caps unix socket paths at ~104 chars.
|
|
110
153
|
const sockDir = mkdtempSync(join(tmpdir(), 'tb-'));
|
|
111
154
|
chmodSync(sockDir, 0o700);
|
|
@@ -119,6 +162,14 @@ export async function createNativeEngine(opts) {
|
|
|
119
162
|
stderr = (stderr + d.toString()).slice(-4000);
|
|
120
163
|
});
|
|
121
164
|
child.on('exit', () => (childExited = true));
|
|
165
|
+
// Best-effort: if this Node process exits without a clean close() (crash,
|
|
166
|
+
// uncaught signal), take the postgres child down with it so it doesn't
|
|
167
|
+
// orphan and hold the data dir. Removed in close().
|
|
168
|
+
const killChild = () => {
|
|
169
|
+
if (!childExited)
|
|
170
|
+
child.kill('SIGTERM');
|
|
171
|
+
};
|
|
172
|
+
process.once('exit', killChild);
|
|
122
173
|
const socketPath = join(sockDir, '.s.PGSQL.5432');
|
|
123
174
|
const connect = async () => {
|
|
124
175
|
const deadline = Date.now() + 20_000;
|
|
@@ -162,7 +213,7 @@ export async function createNativeEngine(opts) {
|
|
|
162
213
|
/**
|
|
163
214
|
* Postgres refuses to boot if a postmaster.pid names a live process. When the
|
|
164
215
|
* previous run crashed the pid is stale; postgres usually clears it, but if the
|
|
165
|
-
* data dir moved or the boot ID differs it may not
|
|
216
|
+
* data dir moved or the boot ID differs it may not - remove it when the named
|
|
166
217
|
* pid is dead so a fresh start succeeds.
|
|
167
218
|
*/
|
|
168
219
|
function removeStalePidFile(pidPath) {
|
|
@@ -176,14 +227,14 @@ function removeStalePidFile(pidPath) {
|
|
|
176
227
|
}
|
|
177
228
|
try {
|
|
178
229
|
process.kill(pid, 0); // throws if the process does not exist
|
|
179
|
-
// process is alive
|
|
230
|
+
// process is alive - leave the pid file; postgres will report the conflict
|
|
180
231
|
}
|
|
181
232
|
catch {
|
|
182
233
|
rmSync(pidPath, { force: true });
|
|
183
234
|
}
|
|
184
235
|
}
|
|
185
236
|
catch {
|
|
186
|
-
// unreadable pid file
|
|
237
|
+
// unreadable pid file - let postgres decide
|
|
187
238
|
}
|
|
188
239
|
}
|
|
189
240
|
//# sourceMappingURL=engine.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/node/native/engine.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,YAAY,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAA;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/node/native/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,36 +6,50 @@ interface ConnectOpts {
|
|
|
6
6
|
database: string;
|
|
7
7
|
password?: string;
|
|
8
8
|
}
|
|
9
|
+
/** Result of one wire query: returned rows plus, for writes, the affected row count. */
|
|
9
10
|
export interface WireResults<T = any> {
|
|
11
|
+
/** result rows, typed as `T` */
|
|
10
12
|
rows: T[];
|
|
13
|
+
/** rows touched by an INSERT/UPDATE/DELETE; undefined for plain SELECTs */
|
|
11
14
|
affectedRows?: number;
|
|
12
15
|
}
|
|
16
|
+
/** Error raised from a Postgres ErrorResponse, carrying its structured fields. */
|
|
13
17
|
export declare class PgWireError extends Error {
|
|
18
|
+
/** SQLSTATE code (ErrorResponse field 'C') */
|
|
14
19
|
code?: string;
|
|
20
|
+
/** human-readable detail line (field 'D') */
|
|
15
21
|
detail?: string;
|
|
22
|
+
/** suggested fix, if the server sent one (field 'H') */
|
|
16
23
|
hint?: string;
|
|
24
|
+
/** severity level, e.g. ERROR / FATAL (field 'S') */
|
|
17
25
|
severity?: string;
|
|
18
26
|
constructor(fields: Map<string, string>);
|
|
19
27
|
}
|
|
28
|
+
/** A single Postgres connection speaking the v3 wire protocol; one op at a time, queued. */
|
|
20
29
|
export declare class PgWireClient {
|
|
21
30
|
private socket;
|
|
22
31
|
private buffer;
|
|
23
32
|
private pending;
|
|
24
33
|
private queue;
|
|
25
34
|
private closed;
|
|
35
|
+
/** invoked for each NOTIFY on a LISTENed channel; set by the caller before listening */
|
|
26
36
|
onNotification: ((channel: string, payload: string) => void) | null;
|
|
37
|
+
/** Open a connection and complete the auth + startup handshake before resolving. */
|
|
27
38
|
static connect(opts: ConnectOpts): Promise<PgWireClient>;
|
|
28
39
|
private open;
|
|
29
40
|
/** One protocol op at a time; queued to be safe under concurrency. */
|
|
30
41
|
private run;
|
|
31
|
-
/** Simple query protocol
|
|
42
|
+
/** Simple query protocol - supports multiple statements. */
|
|
32
43
|
exec(sql: string): Promise<WireResults[]>;
|
|
33
44
|
/** Extended query protocol with text-format params. */
|
|
34
45
|
query<T = any>(sql: string, params?: unknown[]): Promise<WireResults<T>>;
|
|
46
|
+
/** Send Terminate and end the socket; a no-op once already closed. */
|
|
35
47
|
close(): Promise<void>;
|
|
36
48
|
private nextMessage;
|
|
37
49
|
private processMessages;
|
|
38
50
|
}
|
|
51
|
+
/** Decode a text-format value by type OID to match PGlite's JS types. */
|
|
52
|
+
export declare function decodeValue(text: string, oid: number): unknown;
|
|
39
53
|
/** Parse a one-dimensional Postgres array literal: {a,"b c",NULL} */
|
|
40
54
|
export declare function parsePgArray(text: string): (string | null)[];
|
|
41
55
|
export {};
|
package/dist/node/native/wire.js
CHANGED
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Minimal Postgres wire-protocol (v3) client
|
|
2
|
+
* Minimal Postgres wire-protocol (v3) client - enough for tinbase's needs:
|
|
3
3
|
* trust (unix socket), cleartext/md5/SCRAM-SHA-256 auth (external TCP),
|
|
4
4
|
* simple + extended queries, typed decoding, LISTEN/NOTIFY. Pure Node, no deps.
|
|
5
5
|
*/
|
|
6
6
|
import { createConnection } from 'node:net';
|
|
7
7
|
import { createHash, createHmac, pbkdf2Sync, randomBytes } from 'node:crypto';
|
|
8
|
+
/** Error raised from a Postgres ErrorResponse, carrying its structured fields. */
|
|
8
9
|
export class PgWireError extends Error {
|
|
10
|
+
/** SQLSTATE code (ErrorResponse field 'C') */
|
|
9
11
|
code;
|
|
12
|
+
/** human-readable detail line (field 'D') */
|
|
10
13
|
detail;
|
|
14
|
+
/** suggested fix, if the server sent one (field 'H') */
|
|
11
15
|
hint;
|
|
16
|
+
/** severity level, e.g. ERROR / FATAL (field 'S') */
|
|
12
17
|
severity;
|
|
13
18
|
constructor(fields) {
|
|
14
19
|
super(fields.get('M') ?? 'postgres error');
|
|
@@ -18,13 +23,16 @@ export class PgWireError extends Error {
|
|
|
18
23
|
this.severity = fields.get('S');
|
|
19
24
|
}
|
|
20
25
|
}
|
|
26
|
+
/** A single Postgres connection speaking the v3 wire protocol; one op at a time, queued. */
|
|
21
27
|
export class PgWireClient {
|
|
22
28
|
socket;
|
|
23
29
|
buffer = Buffer.alloc(0);
|
|
24
30
|
pending = null;
|
|
25
31
|
queue = Promise.resolve();
|
|
26
32
|
closed = false;
|
|
33
|
+
/** invoked for each NOTIFY on a LISTENed channel; set by the caller before listening */
|
|
27
34
|
onNotification = null;
|
|
35
|
+
/** Open a connection and complete the auth + startup handshake before resolving. */
|
|
28
36
|
static async connect(opts) {
|
|
29
37
|
const client = new PgWireClient();
|
|
30
38
|
await client.open(opts);
|
|
@@ -154,7 +162,7 @@ export class PgWireClient {
|
|
|
154
162
|
resolve();
|
|
155
163
|
return;
|
|
156
164
|
}
|
|
157
|
-
// ParameterStatus (S), BackendKeyData (K), NoticeResponse (N)
|
|
165
|
+
// ParameterStatus (S), BackendKeyData (K), NoticeResponse (N) - ignore
|
|
158
166
|
}
|
|
159
167
|
};
|
|
160
168
|
this.socket.on('data', startupHandler);
|
|
@@ -171,7 +179,7 @@ export class PgWireClient {
|
|
|
171
179
|
this.queue = op.catch(() => { });
|
|
172
180
|
return op;
|
|
173
181
|
}
|
|
174
|
-
/** Simple query protocol
|
|
182
|
+
/** Simple query protocol - supports multiple statements. */
|
|
175
183
|
async exec(sql) {
|
|
176
184
|
return this.run(() => this.socket.write(message(0x51, cstring(sql))));
|
|
177
185
|
}
|
|
@@ -198,6 +206,7 @@ export class PgWireClient {
|
|
|
198
206
|
});
|
|
199
207
|
return (results[0] ?? { rows: [] });
|
|
200
208
|
}
|
|
209
|
+
/** Send Terminate and end the socket; a no-op once already closed. */
|
|
201
210
|
close() {
|
|
202
211
|
return new Promise((resolve) => {
|
|
203
212
|
if (this.closed)
|
|
@@ -265,7 +274,7 @@ export class PgWireClient {
|
|
|
265
274
|
break;
|
|
266
275
|
}
|
|
267
276
|
case 0x43: {
|
|
268
|
-
// CommandComplete
|
|
277
|
+
// CommandComplete - tag like "INSERT 0 5" / "UPDATE 3" / "SELECT 2"
|
|
269
278
|
if (!p)
|
|
270
279
|
break;
|
|
271
280
|
const tag = payload.toString('utf8', 0, payload.length - 1);
|
|
@@ -282,7 +291,7 @@ export class PgWireClient {
|
|
|
282
291
|
break;
|
|
283
292
|
}
|
|
284
293
|
case 0x45: {
|
|
285
|
-
// ErrorResponse
|
|
294
|
+
// ErrorResponse - final resolution happens at ReadyForQuery
|
|
286
295
|
if (p)
|
|
287
296
|
p.error = new PgWireError(parseErrorFields(payload));
|
|
288
297
|
break;
|
|
@@ -298,7 +307,7 @@ export class PgWireClient {
|
|
|
298
307
|
break;
|
|
299
308
|
}
|
|
300
309
|
case 0x5a: {
|
|
301
|
-
// ReadyForQuery
|
|
310
|
+
// ReadyForQuery - op finished
|
|
302
311
|
if (!p)
|
|
303
312
|
break;
|
|
304
313
|
this.pending = null;
|
|
@@ -312,7 +321,7 @@ export class PgWireClient {
|
|
|
312
321
|
break;
|
|
313
322
|
}
|
|
314
323
|
// ParseComplete (1), BindComplete (2), NoData (n), EmptyQueryResponse (I),
|
|
315
|
-
// NoticeResponse (N), ParameterStatus (S)
|
|
324
|
+
// NoticeResponse (N), ParameterStatus (S) - ignored
|
|
316
325
|
}
|
|
317
326
|
}
|
|
318
327
|
}
|
|
@@ -368,11 +377,17 @@ function parseErrorFields(payload) {
|
|
|
368
377
|
return fields;
|
|
369
378
|
}
|
|
370
379
|
/** Decode a text-format value by type OID to match PGlite's JS types. */
|
|
371
|
-
function decodeValue(text, oid) {
|
|
380
|
+
export function decodeValue(text, oid) {
|
|
372
381
|
switch (oid) {
|
|
373
382
|
case 16: // bool
|
|
374
383
|
return text === 't';
|
|
375
|
-
case 20:
|
|
384
|
+
case 20: {
|
|
385
|
+
// int8: values beyond 2^53 lose precision as a JS number - return the
|
|
386
|
+
// string in that range (matching node-postgres' default) so large ids
|
|
387
|
+
// (snowflake, long-lived pgmq msg_ids) survive intact.
|
|
388
|
+
const n = Number(text);
|
|
389
|
+
return Number.isSafeInteger(n) ? n : text;
|
|
390
|
+
}
|
|
376
391
|
case 21: // int2
|
|
377
392
|
case 23: // int4
|
|
378
393
|
case 26: // oid
|
|
@@ -395,8 +410,15 @@ function decodeValue(text, oid) {
|
|
|
395
410
|
case 1000: // _bool
|
|
396
411
|
return parsePgArray(text).map((v) => v === 't');
|
|
397
412
|
case 1007: // _int4
|
|
398
|
-
case 1016: // _int8
|
|
399
413
|
return parsePgArray(text).map((v) => (v === null ? null : Number(v)));
|
|
414
|
+
case 1016: // _int8: preserve values beyond 2^53 as strings, matching the scalar int8 case
|
|
415
|
+
return parsePgArray(text).map((v) => {
|
|
416
|
+
if (v === null)
|
|
417
|
+
return null;
|
|
418
|
+
const n = Number(v);
|
|
419
|
+
return Number.isSafeInteger(n) ? n : v;
|
|
420
|
+
});
|
|
421
|
+
case 1003: // _name (e.g. array_agg over pg_enum.enumlabel / catalog name columns)
|
|
400
422
|
case 1009: // _text
|
|
401
423
|
case 1015: // _varchar
|
|
402
424
|
return parsePgArray(text);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wire.js","sourceRoot":"","sources":["../../../src/node/native/wire.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wire.js","sourceRoot":"","sources":["../../../src/node/native/wire.ts"],"names":[],"mappings":"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"}
|
package/dist/node/project.d.ts
CHANGED
|
@@ -1,6 +1,20 @@
|
|
|
1
1
|
import type { MigrationFile } from '../types.js';
|
|
2
|
+
/** Migrations and optional seed SQL discovered under a project's supabase/ dir. */
|
|
2
3
|
export interface SupabaseProject {
|
|
4
|
+
/** Migrations in filename order (timestamp-prefixed, so lexical == chronological). */
|
|
3
5
|
migrations: MigrationFile[];
|
|
6
|
+
/** Concatenated seed files, if any were found and seeding is enabled. */
|
|
4
7
|
seedSql?: string;
|
|
5
8
|
}
|
|
6
|
-
|
|
9
|
+
/** Seed config from config.toml [db.seed] (enabled + explicit file paths). */
|
|
10
|
+
export interface SeedOptions {
|
|
11
|
+
/** whether seeding runs; only `false` disables it (undefined means enabled) */
|
|
12
|
+
enabled?: boolean;
|
|
13
|
+
/** Files relative to supabase/, applied in order. Defaults to ['seed.sql']. Globs are not expanded. */
|
|
14
|
+
paths?: string[];
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Read supabase/migrations/*.sql (sorted) and, unless disabled, the configured
|
|
18
|
+
* seed files. A missing migrations dir or seed file is not an error.
|
|
19
|
+
*/
|
|
20
|
+
export declare function loadSupabaseProject(projectDir: string, seed?: SeedOptions): Promise<SupabaseProject>;
|
package/dist/node/project.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
/** Loads migrations + seed following Supabase CLI conventions (supabase/ dir). */
|
|
2
2
|
import { readdir, readFile } from 'node:fs/promises';
|
|
3
3
|
import { join } from 'node:path';
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Read supabase/migrations/*.sql (sorted) and, unless disabled, the configured
|
|
6
|
+
* seed files. A missing migrations dir or seed file is not an error.
|
|
7
|
+
*/
|
|
8
|
+
export async function loadSupabaseProject(projectDir, seed = {}) {
|
|
5
9
|
const migrationsDir = join(projectDir, 'supabase', 'migrations');
|
|
6
10
|
const migrations = [];
|
|
7
11
|
let entries = [];
|
|
@@ -9,7 +13,7 @@ export async function loadSupabaseProject(projectDir) {
|
|
|
9
13
|
entries = await readdir(migrationsDir);
|
|
10
14
|
}
|
|
11
15
|
catch {
|
|
12
|
-
// no migrations directory
|
|
16
|
+
// no migrations directory - that's fine
|
|
13
17
|
}
|
|
14
18
|
for (const entry of entries.sort()) {
|
|
15
19
|
if (!entry.endsWith('.sql'))
|
|
@@ -18,11 +22,19 @@ export async function loadSupabaseProject(projectDir) {
|
|
|
18
22
|
migrations.push({ name: entry.replace(/\.sql$/, ''), sql });
|
|
19
23
|
}
|
|
20
24
|
let seedSql;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
25
|
+
if (seed.enabled !== false) {
|
|
26
|
+
const paths = (seed.paths ?? ['seed.sql']).filter((p) => !/[*?[\]]/.test(p)); // globs unsupported; skip them
|
|
27
|
+
const parts = [];
|
|
28
|
+
for (const rel of paths) {
|
|
29
|
+
try {
|
|
30
|
+
parts.push(await readFile(join(projectDir, 'supabase', rel), 'utf8'));
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
// missing seed file - skip
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
if (parts.length)
|
|
37
|
+
seedSql = parts.join('\n');
|
|
26
38
|
}
|
|
27
39
|
return { migrations, seedSql };
|
|
28
40
|
}
|
package/dist/node/project.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/node/project.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/node/project.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAmBhC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,UAAkB,EAAE,OAAoB,EAAE;IAClF,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY,CAAC,CAAA;IAChE,MAAM,UAAU,GAAoB,EAAE,CAAA;IAEtC,IAAI,OAAO,GAAa,EAAE,CAAA;IAC1B,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,CAAA;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,wCAAwC;IAC1C,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,SAAQ;QACrC,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,CAAA;QAC9D,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;IAC7D,CAAC;IAED,IAAI,OAA2B,CAAA;IAC/B,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,+BAA+B;QAC5G,MAAM,KAAK,GAAa,EAAE,CAAA;QAC1B,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,KAAK,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;YACvE,CAAC;YAAC,MAAM,CAAC;gBACP,2BAA2B;YAC7B,CAAC;QACH,CAAC;QACD,IAAI,KAAK,CAAC,MAAM;YAAE,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC9C,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAA;AAChC,CAAC"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
/** Backend shape shared by the node:http and Bun servers, keeping each decoupled from the full backend. */
|
|
1
2
|
import type { RealtimeEngine } from '../realtime/engine.js';
|
|
2
|
-
/** The slice of a backend that servers need
|
|
3
|
+
/** The slice of a backend that servers need - keeps bun/node servers decoupled. */
|
|
3
4
|
export interface SupaliteBackendShape {
|
|
5
|
+
/** HTTP request handler; the server forwards every non-upgrade request here */
|
|
4
6
|
fetch: (req: Request) => Promise<Response>;
|
|
7
|
+
/** realtime engine the server hands accepted websocket connections to */
|
|
5
8
|
realtime: RealtimeEngine;
|
|
6
9
|
}
|
package/dist/node/server.d.ts
CHANGED
|
@@ -7,14 +7,25 @@ import type { TinbaseBackend } from '../index.js';
|
|
|
7
7
|
* tinbase instance already running) instead of crashing with EADDRINUSE.
|
|
8
8
|
*/
|
|
9
9
|
export declare function findAvailablePort(startPort: number, host?: string, maxTries?: number): Promise<number | null>;
|
|
10
|
+
/** Options for {@link serve}. */
|
|
10
11
|
export interface ServeOptions {
|
|
12
|
+
/** Port to bind. Defaults to 54321. */
|
|
11
13
|
port?: number;
|
|
14
|
+
/** Host to bind. Defaults to 127.0.0.1 (loopback only). */
|
|
12
15
|
host?: string;
|
|
13
16
|
}
|
|
17
|
+
/** A bound HTTP server plus its resolved address and a graceful shutdown hook. */
|
|
14
18
|
export interface RunningServer {
|
|
15
19
|
server: Server;
|
|
20
|
+
/** The actually-bound port (may differ from the requested one when 0 is passed). */
|
|
16
21
|
port: number;
|
|
17
22
|
url: string;
|
|
18
23
|
close: () => Promise<void>;
|
|
19
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Bind an HTTP server that dispatches requests to `backend.fetch` and upgrades
|
|
27
|
+
* `/realtime/v1` WebSocket handshakes into realtime sessions.
|
|
28
|
+
*
|
|
29
|
+
* @throws if the port is already in use (EADDRINUSE) or binding otherwise fails.
|
|
30
|
+
*/
|
|
20
31
|
export declare function serve(backend: TinbaseBackend, opts?: ServeOptions): Promise<RunningServer>;
|
package/dist/node/server.js
CHANGED
|
@@ -23,6 +23,12 @@ export async function findAvailablePort(startPort, host = '127.0.0.1', maxTries
|
|
|
23
23
|
}
|
|
24
24
|
return null;
|
|
25
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* Bind an HTTP server that dispatches requests to `backend.fetch` and upgrades
|
|
28
|
+
* `/realtime/v1` WebSocket handshakes into realtime sessions.
|
|
29
|
+
*
|
|
30
|
+
* @throws if the port is already in use (EADDRINUSE) or binding otherwise fails.
|
|
31
|
+
*/
|
|
26
32
|
export async function serve(backend, opts = {}) {
|
|
27
33
|
const host = opts.host ?? '127.0.0.1';
|
|
28
34
|
const server = createServer(async (req, res) => {
|
|
@@ -83,6 +89,11 @@ async function toRequest(req, fallbackHost) {
|
|
|
83
89
|
else
|
|
84
90
|
headers.set(key, value);
|
|
85
91
|
}
|
|
92
|
+
// Expose the connecting client's address to the fetch handler (rate limiting)
|
|
93
|
+
// without trusting a client-supplied x-forwarded-for header.
|
|
94
|
+
const remote = req.socket.remoteAddress;
|
|
95
|
+
if (remote)
|
|
96
|
+
headers.set('x-tinbase-remote-addr', remote);
|
|
86
97
|
let body;
|
|
87
98
|
if (method !== 'GET' && method !== 'HEAD') {
|
|
88
99
|
const chunks = [];
|
package/dist/node/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/node/server.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,OAAO,EAAE,YAAY,EAA0D,MAAM,WAAW,CAAA;AAChG,OAAO,EAAE,YAAY,IAAI,eAAe,EAAE,MAAM,UAAU,CAAA;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEzC,wDAAwD;AACxD,SAAS,UAAU,CAAC,IAAY,EAAE,IAAY;IAC5C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAG,eAAe,EAAE,CAAA;QAChC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;QAC1C,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAC3B,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,SAAiB,EAAE,IAAI,GAAG,WAAW,EAAE,QAAQ,GAAG,EAAE;IAC1F,KAAK,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC,GAAG,SAAS,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;QACtD,IAAI,MAAM,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC;YAAE,OAAO,CAAC,CAAA;IACzC,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/node/server.ts"],"names":[],"mappings":"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"}
|