tinbase 0.10.0 → 0.10.1
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 +209 -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
package/dist/db/database.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/db/database.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/db/database.ts"],"names":[],"mappings":"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"}
|
package/dist/db/emulated.d.ts
CHANGED
|
@@ -8,8 +8,45 @@
|
|
|
8
8
|
* `pgmq.send(...)`, `pgmq.read(...)`, `select cron.schedule(...)` etc. behave
|
|
9
9
|
* the same from the client's and a migration's point of view.
|
|
10
10
|
*/
|
|
11
|
+
/**
|
|
12
|
+
* Self-contained SQL emulation of the pgmq extension: per-queue `q_<name>` /
|
|
13
|
+
* `a_<name>` tables plus create/send/read/pop/delete/archive/etc functions,
|
|
14
|
+
* matching pgmq's signatures. No C extension, no background worker needed.
|
|
15
|
+
*/
|
|
11
16
|
export declare const PGMQ_SQL = "\ncreate schema if not exists pgmq;\ngrant usage on schema pgmq to anon, authenticated, service_role;\n\ndo $$ begin\n if not exists (select 1 from pg_type t join pg_namespace n on n.oid = t.typnamespace\n where t.typname = 'message_record' and n.nspname = 'pgmq') then\n create type pgmq.message_record as (\n msg_id bigint, read_ct integer, enqueued_at timestamptz, vt timestamptz, message jsonb\n );\n end if;\nend $$;\n\ncreate or replace function pgmq.create(queue_name text) returns void language plpgsql security definer set search_path = pgmq, pg_catalog, public as $pgmq$\nbegin\n execute format('create table if not exists pgmq.%I (\n msg_id bigint generated always as identity primary key,\n read_ct integer not null default 0,\n enqueued_at timestamptz not null default now(),\n vt timestamptz not null default now(),\n message jsonb)', 'q_' || queue_name);\n execute format('create table if not exists pgmq.%I (\n msg_id bigint primary key, read_ct integer not null default 0,\n enqueued_at timestamptz not null, archived_at timestamptz not null default now(),\n vt timestamptz, message jsonb)', 'a_' || queue_name);\nend $pgmq$;\n\ncreate or replace function pgmq.send(queue_name text, msg jsonb, delay integer default 0)\nreturns bigint language plpgsql security definer set search_path = pgmq, pg_catalog, public as $pgmq$\ndeclare id bigint;\nbegin\n perform pgmq.create(queue_name);\n execute format('insert into pgmq.%I (vt, message) values (now() + make_interval(secs => $1), $2) returning msg_id', 'q_' || queue_name)\n into id using delay, msg;\n return id;\nend $pgmq$;\n\ncreate or replace function pgmq.read(queue_name text, vt integer, qty integer)\nreturns setof pgmq.message_record language plpgsql security definer set search_path = pgmq, pg_catalog, public as $pgmq$\nbegin\n return query execute format($fmt$\n with cte as (\n select msg_id from pgmq.%I where vt <= now() order by msg_id limit $1 for update skip locked\n )\n update pgmq.%I m set vt = now() + make_interval(secs => $2), read_ct = read_ct + 1\n from cte where m.msg_id = cte.msg_id\n returning m.msg_id, m.read_ct, m.enqueued_at, m.vt, m.message\n $fmt$, 'q_' || queue_name, 'q_' || queue_name) using qty, vt;\nend $pgmq$;\n\ncreate or replace function pgmq.pop(queue_name text)\nreturns setof pgmq.message_record language plpgsql security definer set search_path = pgmq, pg_catalog, public as $pgmq$\nbegin\n return query execute format($fmt$\n with cte as (select msg_id from pgmq.%I where vt <= now() order by msg_id limit 1 for update skip locked)\n delete from pgmq.%I m using cte where m.msg_id = cte.msg_id\n returning m.msg_id, m.read_ct, m.enqueued_at, m.vt, m.message\n $fmt$, 'q_' || queue_name, 'q_' || queue_name);\nend $pgmq$;\n\ncreate or replace function pgmq.delete(queue_name text, msg_id bigint)\nreturns boolean language plpgsql security definer set search_path = pgmq, pg_catalog, public as $pgmq$\ndeclare n integer;\nbegin\n execute format('delete from pgmq.%I where msg_id = $1', 'q_' || queue_name) using msg_id;\n get diagnostics n = row_count;\n return n > 0;\nend $pgmq$;\n\ncreate or replace function pgmq.archive(queue_name text, msg_id bigint)\nreturns boolean language plpgsql security definer set search_path = pgmq, pg_catalog, public as $pgmq$\ndeclare n integer;\nbegin\n execute format($fmt$\n with del as (delete from pgmq.%I where msg_id = $1 returning *)\n insert into pgmq.%I (msg_id, read_ct, enqueued_at, vt, message)\n select msg_id, read_ct, enqueued_at, vt, message from del\n $fmt$, 'q_' || queue_name, 'a_' || queue_name) using msg_id;\n get diagnostics n = row_count;\n return n > 0;\nend $pgmq$;\n\ncreate or replace function pgmq.drop_queue(queue_name text) returns boolean language plpgsql security definer set search_path = pgmq, pg_catalog, public as $pgmq$\nbegin\n execute format('drop table if exists pgmq.%I', 'q_' || queue_name);\n execute format('drop table if exists pgmq.%I', 'a_' || queue_name);\n return true;\nend $pgmq$;\n\ncreate or replace function pgmq.purge_queue(queue_name text) returns bigint language plpgsql security definer set search_path = pgmq, pg_catalog, public as $pgmq$\ndeclare n bigint;\nbegin\n execute format('delete from pgmq.%I', 'q_' || queue_name);\n get diagnostics n = row_count;\n return n;\nend $pgmq$;\n\ncreate or replace function pgmq.list_queues()\nreturns table(queue_name text, is_partitioned boolean, is_unlogged boolean, created_at timestamptz)\nlanguage sql security definer set search_path = pgmq, pg_catalog, public as $pgmq$\n select substring(tablename from 3), false, false, now()\n from pg_tables where schemaname = 'pgmq' and left(tablename, 2) = 'q_';\n$pgmq$;\n\ngrant execute on all functions in schema pgmq to anon, authenticated, service_role;\n";
|
|
12
|
-
|
|
13
|
-
|
|
17
|
+
/**
|
|
18
|
+
* pg_cron emulation: the `cron.job` / `cron.job_run_details` tables and
|
|
19
|
+
* schedule/unschedule functions. This only records jobs; the in-process
|
|
20
|
+
* CronService (src/cron/service.ts) reads the table and runs them.
|
|
21
|
+
*/
|
|
22
|
+
export declare const CRON_SQL = "\ncreate schema if not exists cron;\n-- cron.schedule executes arbitrary SQL as the (superuser) function owner, so it\n-- must stay restricted to service_role - matching hosted Supabase, where\n-- authenticated cannot schedule jobs.\ngrant usage on schema cron to service_role;\n\ncreate table if not exists cron.job (\n jobid bigint generated always as identity primary key,\n schedule text not null,\n command text not null,\n jobname text unique,\n active boolean not null default true,\n created_at timestamptz not null default now()\n);\n\ncreate table if not exists cron.job_run_details (\n runid bigint generated always as identity primary key,\n jobid bigint,\n command text,\n status text,\n return_message text,\n start_time timestamptz,\n end_time timestamptz\n);\n\ncreate or replace function cron.schedule(job_name text, schedule text, command text)\nreturns bigint language plpgsql security definer set search_path = cron, pg_catalog, public as $cron$\ndeclare id bigint;\nbegin\n insert into cron.job (jobname, schedule, command) values (job_name, schedule, command)\n on conflict (jobname) do update set schedule = excluded.schedule, command = excluded.command, active = true\n returning jobid into id;\n return id;\nend $cron$;\n\ncreate or replace function cron.schedule(schedule text, command text)\nreturns bigint language plpgsql security definer set search_path = cron, pg_catalog, public as $cron$\nbegin\n return cron.schedule('job_' || floor(extract(epoch from clock_timestamp()) * 1000)::bigint::text, schedule, command);\nend $cron$;\n\ncreate or replace function cron.unschedule(job_name text)\nreturns boolean language plpgsql security definer set search_path = cron, pg_catalog, public as $cron$\ndeclare n integer;\nbegin\n delete from cron.job where jobname = job_name;\n get diagnostics n = row_count;\n return n > 0;\nend $cron$;\n\ncreate or replace function cron.unschedule(job_id bigint)\nreturns boolean language plpgsql security definer set search_path = cron, pg_catalog, public as $cron$\ndeclare n integer;\nbegin\n delete from cron.job where jobid = job_id;\n get diagnostics n = row_count;\n return n > 0;\nend $cron$;\n\ngrant execute on function cron.schedule(text,text,text), cron.schedule(text,text), cron.unschedule(text), cron.unschedule(bigint) to service_role;\n";
|
|
23
|
+
/**
|
|
24
|
+
* pg_net emulation - the `net.http_get/post/delete` SQL surface. The functions
|
|
25
|
+
* only enqueue into net.http_request_queue; the in-process NetService
|
|
26
|
+
* (src/net/service.ts) performs the HTTP and records the reply in
|
|
27
|
+
* net._http_response, exactly like pg_net's background worker. This lets the
|
|
28
|
+
* common Supabase pattern - a cron job that calls net.http_post to hit an Edge
|
|
29
|
+
* Function - run unchanged, with no C extension on either engine.
|
|
30
|
+
*/
|
|
31
|
+
export declare const NET_SQL = "\ncreate schema if not exists net;\n-- net.http_* can reach arbitrary URLs from the server (SSRF surface), so keep it\n-- restricted to service_role like hosted Supabase - not authenticated.\ngrant usage on schema net to service_role;\n\ncreate table if not exists net.http_request_queue (\n id bigint generated always as identity primary key,\n method text not null,\n url text not null,\n headers jsonb not null default '{}'::jsonb,\n body text,\n timeout_milliseconds int not null default 5000,\n created timestamptz not null default now()\n);\n\ncreate table if not exists net._http_response (\n id bigint primary key,\n status_code int,\n content_type text,\n headers jsonb,\n content text,\n timed_out boolean,\n error_msg text,\n created timestamptz not null default now()\n);\ngrant select on net._http_response to service_role;\n\n-- fold a jsonb param object into the URL as a query string (pg_net semantics)\ncreate or replace function net._merge_params(url text, params jsonb)\nreturns text language sql immutable as $net$\n select case\n when params is null or params = '{}'::jsonb then url\n else url || (case when position('?' in url) > 0 then '&' else '?' end) ||\n (select string_agg(key || '=' || (value #>> '{}'), '&') from jsonb_each(params))\n end;\n$net$;\n\ncreate or replace function net.http_get(url text, params jsonb default '{}'::jsonb, headers jsonb default '{}'::jsonb, timeout_milliseconds int default 5000)\nreturns bigint language plpgsql security definer set search_path = net, pg_catalog, public as $net$\ndeclare req_id bigint;\nbegin\n insert into net.http_request_queue (method, url, headers, body, timeout_milliseconds)\n values ('GET', net._merge_params(url, params), coalesce(headers, '{}'::jsonb), null, timeout_milliseconds)\n returning id into req_id;\n return req_id;\nend $net$;\n\ncreate or replace function net.http_post(url text, body jsonb default '{}'::jsonb, params jsonb default '{}'::jsonb, headers jsonb default '{}'::jsonb, timeout_milliseconds int default 5000)\nreturns bigint language plpgsql security definer set search_path = net, pg_catalog, public as $net$\ndeclare req_id bigint; hdrs jsonb;\nbegin\n hdrs := coalesce(headers, '{}'::jsonb);\n -- default the content type to JSON, matching pg_net, unless the caller set one\n if not (hdrs ? 'Content-Type' or hdrs ? 'content-type') then\n hdrs := hdrs || jsonb_build_object('Content-Type', 'application/json');\n end if;\n insert into net.http_request_queue (method, url, headers, body, timeout_milliseconds)\n values ('POST', net._merge_params(url, params), hdrs, body::text, timeout_milliseconds)\n returning id into req_id;\n return req_id;\nend $net$;\n\ncreate or replace function net.http_delete(url text, params jsonb default '{}'::jsonb, headers jsonb default '{}'::jsonb, timeout_milliseconds int default 5000)\nreturns bigint language plpgsql security definer set search_path = net, pg_catalog, public as $net$\ndeclare req_id bigint;\nbegin\n insert into net.http_request_queue (method, url, headers, body, timeout_milliseconds)\n values ('DELETE', net._merge_params(url, params), coalesce(headers, '{}'::jsonb), null, timeout_milliseconds)\n returning id into req_id;\n return req_id;\nend $net$;\n\ngrant execute on function net.http_get(text,jsonb,jsonb,int), net.http_post(text,jsonb,jsonb,jsonb,int), net.http_delete(text,jsonb,jsonb,int) to service_role;\n";
|
|
32
|
+
/**
|
|
33
|
+
* Small pure-SQL stand-ins for contrib extensions Supabase migrations lean on
|
|
34
|
+
* but which aren't in the PGlite / native builds. `moddatetime` (a BEFORE
|
|
35
|
+
* UPDATE trigger that stamps a timestamp column) is the common one - projects
|
|
36
|
+
* attach it as the updated_at trigger. Created only if absent, so a real
|
|
37
|
+
* extension (where present) still wins.
|
|
38
|
+
*/
|
|
14
39
|
export declare const EXT_COMPAT_SQL = "\ncreate schema if not exists extensions;\ndo $ensure_moddatetime$\nbegin\n if not exists (\n select 1 from pg_proc p join pg_namespace n on n.oid = p.pronamespace\n where n.nspname = 'extensions' and p.proname = 'moddatetime'\n ) then\n execute $fn$\n create function extensions.moddatetime() returns trigger language plpgsql as $mod$\n begin\n if TG_NARGS >= 1 then\n NEW := jsonb_populate_record(NEW, jsonb_build_object(TG_ARGV[0], now()));\n end if;\n return NEW;\n end\n $mod$\n $fn$;\n end if;\nend\n$ensure_moddatetime$;\n";
|
|
40
|
+
/**
|
|
41
|
+
* Supabase Vault emulation. Real Vault (supabase_vault + pgsodium) encrypts
|
|
42
|
+
* secrets at rest; we can't ship those C extensions. This stand-in keeps the
|
|
43
|
+
* same surface (vault.secrets, vault.decrypted_secrets, vault.create_secret /
|
|
44
|
+
* update_secret) but stores the secret encrypted with pgcrypto's authenticated
|
|
45
|
+
* symmetric encryption (pgp_sym_encrypt) under a key held in the GUC
|
|
46
|
+
* app.settings.vault_key, set at boot and never stored in the database.
|
|
47
|
+
*
|
|
48
|
+
* SECURITY: the stored `secret` column holds ciphertext; decrypted_secrets
|
|
49
|
+
* decrypts on read. If pgcrypto or the key is unavailable the functions raise,
|
|
50
|
+
* rather than silently falling back to cleartext.
|
|
51
|
+
*/
|
|
15
52
|
export declare const VAULT_SQL = "\ncreate schema if not exists vault;\ngrant usage on schema vault to service_role;\n\ncreate table if not exists vault.secrets (\n id uuid primary key default gen_random_uuid(),\n name text unique,\n description text not null default '',\n secret text not null,\n key_id uuid,\n nonce bytea,\n created_at timestamptz not null default now(),\n updated_at timestamptz not null default now()\n);\ngrant select, insert, update, delete on vault.secrets to service_role;\n\n-- the encryption key, from the GUC set at boot (empty string if unset)\ncreate or replace function vault._key() returns text\nlanguage sql stable as $vault$\n select coalesce(nullif(current_setting('app.settings.vault_key', true), ''), '')\n$vault$;\n\ncreate or replace function vault._encrypt(plain text) returns text\nlanguage plpgsql security definer set search_path = vault, extensions, pg_catalog, public as $vault$\ndeclare k text := vault._key();\nbegin\n if plain is null then return null; end if;\n if k = '' then raise exception 'vault key is not configured'; end if;\n return encode(pgp_sym_encrypt(plain, k), 'base64');\nend $vault$;\n\ncreate or replace function vault._decrypt(cipher text) returns text\nlanguage plpgsql security definer set search_path = vault, extensions, pg_catalog, public as $vault$\ndeclare k text := vault._key();\nbegin\n if cipher is null then return null; end if;\n if k = '' then raise exception 'vault key is not configured'; end if;\n return pgp_sym_decrypt(decode(cipher, 'base64'), k);\nend $vault$;\n\ncreate or replace view vault.decrypted_secrets as\n select id, name, description, secret, vault._decrypt(secret) as decrypted_secret, key_id, nonce, created_at, updated_at\n from vault.secrets;\ngrant select on vault.decrypted_secrets to service_role;\n\ncreate or replace function vault.create_secret(new_secret text, new_name text default null, new_description text default '', new_key_id uuid default null)\nreturns uuid language plpgsql security definer set search_path = vault, pg_catalog, public as $vault$\ndeclare rec_id uuid;\nbegin\n insert into vault.secrets (name, description, secret, key_id)\n values (new_name, coalesce(new_description, ''), vault._encrypt(new_secret), new_key_id)\n returning id into rec_id;\n return rec_id;\nend $vault$;\n\ncreate or replace function vault.update_secret(secret_id uuid, new_secret text default null, new_name text default null, new_description text default null, new_key_id uuid default null)\nreturns void language plpgsql security definer set search_path = vault, pg_catalog, public as $vault$\nbegin\n update vault.secrets set\n secret = case when new_secret is null then secret else vault._encrypt(new_secret) end,\n name = coalesce(new_name, name),\n description = coalesce(new_description, description),\n key_id = coalesce(new_key_id, key_id),\n updated_at = now()\n where id = secret_id;\nend $vault$;\n\ngrant execute on function vault.create_secret(text,text,text,uuid), vault.update_secret(uuid,text,text,text,uuid) to service_role;\n";
|
package/dist/db/emulated.js
CHANGED
|
@@ -9,6 +9,11 @@
|
|
|
9
9
|
* the same from the client's and a migration's point of view.
|
|
10
10
|
*/
|
|
11
11
|
// ── pgmq (message queue) ────────────────────────────────────────────────────
|
|
12
|
+
/**
|
|
13
|
+
* Self-contained SQL emulation of the pgmq extension: per-queue `q_<name>` /
|
|
14
|
+
* `a_<name>` tables plus create/send/read/pop/delete/archive/etc functions,
|
|
15
|
+
* matching pgmq's signatures. No C extension, no background worker needed.
|
|
16
|
+
*/
|
|
12
17
|
export const PGMQ_SQL = `
|
|
13
18
|
create schema if not exists pgmq;
|
|
14
19
|
grant usage on schema pgmq to anon, authenticated, service_role;
|
|
@@ -116,10 +121,15 @@ $pgmq$;
|
|
|
116
121
|
grant execute on all functions in schema pgmq to anon, authenticated, service_role;
|
|
117
122
|
`;
|
|
118
123
|
// ── cron (scheduled jobs) ────────────────────────────────────────────────────
|
|
124
|
+
/**
|
|
125
|
+
* pg_cron emulation: the `cron.job` / `cron.job_run_details` tables and
|
|
126
|
+
* schedule/unschedule functions. This only records jobs; the in-process
|
|
127
|
+
* CronService (src/cron/service.ts) reads the table and runs them.
|
|
128
|
+
*/
|
|
119
129
|
export const CRON_SQL = `
|
|
120
130
|
create schema if not exists cron;
|
|
121
131
|
-- cron.schedule executes arbitrary SQL as the (superuser) function owner, so it
|
|
122
|
-
-- must stay restricted to service_role
|
|
132
|
+
-- must stay restricted to service_role - matching hosted Supabase, where
|
|
123
133
|
-- authenticated cannot schedule jobs.
|
|
124
134
|
grant usage on schema cron to service_role;
|
|
125
135
|
|
|
@@ -178,16 +188,18 @@ end $cron$;
|
|
|
178
188
|
|
|
179
189
|
grant execute on function cron.schedule(text,text,text), cron.schedule(text,text), cron.unschedule(text), cron.unschedule(bigint) to service_role;
|
|
180
190
|
`;
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
191
|
+
/**
|
|
192
|
+
* pg_net emulation - the `net.http_get/post/delete` SQL surface. The functions
|
|
193
|
+
* only enqueue into net.http_request_queue; the in-process NetService
|
|
194
|
+
* (src/net/service.ts) performs the HTTP and records the reply in
|
|
195
|
+
* net._http_response, exactly like pg_net's background worker. This lets the
|
|
196
|
+
* common Supabase pattern - a cron job that calls net.http_post to hit an Edge
|
|
197
|
+
* Function - run unchanged, with no C extension on either engine.
|
|
198
|
+
*/
|
|
187
199
|
export const NET_SQL = `
|
|
188
200
|
create schema if not exists net;
|
|
189
201
|
-- net.http_* can reach arbitrary URLs from the server (SSRF surface), so keep it
|
|
190
|
-
-- restricted to service_role like hosted Supabase
|
|
202
|
+
-- restricted to service_role like hosted Supabase - not authenticated.
|
|
191
203
|
grant usage on schema net to service_role;
|
|
192
204
|
|
|
193
205
|
create table if not exists net.http_request_queue (
|
|
@@ -259,11 +271,13 @@ end $net$;
|
|
|
259
271
|
|
|
260
272
|
grant execute on function net.http_get(text,jsonb,jsonb,int), net.http_post(text,jsonb,jsonb,jsonb,int), net.http_delete(text,jsonb,jsonb,int) to service_role;
|
|
261
273
|
`;
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
274
|
+
/**
|
|
275
|
+
* Small pure-SQL stand-ins for contrib extensions Supabase migrations lean on
|
|
276
|
+
* but which aren't in the PGlite / native builds. `moddatetime` (a BEFORE
|
|
277
|
+
* UPDATE trigger that stamps a timestamp column) is the common one - projects
|
|
278
|
+
* attach it as the updated_at trigger. Created only if absent, so a real
|
|
279
|
+
* extension (where present) still wins.
|
|
280
|
+
*/
|
|
267
281
|
export const EXT_COMPAT_SQL = `
|
|
268
282
|
create schema if not exists extensions;
|
|
269
283
|
do $ensure_moddatetime$
|
|
@@ -286,16 +300,18 @@ begin
|
|
|
286
300
|
end
|
|
287
301
|
$ensure_moddatetime$;
|
|
288
302
|
`;
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
303
|
+
/**
|
|
304
|
+
* Supabase Vault emulation. Real Vault (supabase_vault + pgsodium) encrypts
|
|
305
|
+
* secrets at rest; we can't ship those C extensions. This stand-in keeps the
|
|
306
|
+
* same surface (vault.secrets, vault.decrypted_secrets, vault.create_secret /
|
|
307
|
+
* update_secret) but stores the secret encrypted with pgcrypto's authenticated
|
|
308
|
+
* symmetric encryption (pgp_sym_encrypt) under a key held in the GUC
|
|
309
|
+
* app.settings.vault_key, set at boot and never stored in the database.
|
|
310
|
+
*
|
|
311
|
+
* SECURITY: the stored `secret` column holds ciphertext; decrypted_secrets
|
|
312
|
+
* decrypts on read. If pgcrypto or the key is unavailable the functions raise,
|
|
313
|
+
* rather than silently falling back to cleartext.
|
|
314
|
+
*/
|
|
299
315
|
export const VAULT_SQL = `
|
|
300
316
|
create schema if not exists vault;
|
|
301
317
|
grant usage on schema vault to service_role;
|
package/dist/db/emulated.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emulated.js","sourceRoot":"","sources":["../../src/db/emulated.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,+EAA+E;
|
|
1
|
+
{"version":3,"file":"emulated.js","sourceRoot":"","sources":["../../src/db/emulated.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,+EAA+E;AAE/E;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyGvB,CAAA;AAED,gFAAgF;AAEhF;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6DvB,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0EtB,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;CAqB7B,CAAA;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoExB,CAAA"}
|
package/dist/db/engine.d.ts
CHANGED
|
@@ -1,32 +1,46 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Database engine abstraction. Two implementations:
|
|
3
|
-
* - PGlite (WASM Postgres)
|
|
4
|
-
* - Native embedded Postgres (Node only)
|
|
3
|
+
* - PGlite (WASM Postgres): portable, runs in the browser; heavier RAM.
|
|
4
|
+
* - Native embedded Postgres (Node only): PocketBase-class footprint.
|
|
5
5
|
* The rest of tinbase only talks to this interface.
|
|
6
6
|
*/
|
|
7
|
+
/** Result of a query: returned rows plus, for writes, the affected row count. */
|
|
7
8
|
export interface EngineResults<T = any> {
|
|
9
|
+
/** result rows, typed as `T` */
|
|
8
10
|
rows: T[];
|
|
11
|
+
/** rows touched by an INSERT/UPDATE/DELETE; undefined for plain SELECTs */
|
|
9
12
|
affectedRows?: number;
|
|
10
13
|
}
|
|
14
|
+
/** Handle passed to a transaction callback; scoped to the open transaction. */
|
|
11
15
|
export interface EngineTx {
|
|
16
|
+
/** run a parameterized query within the transaction */
|
|
12
17
|
query<T = any>(sql: string, params?: unknown[]): Promise<EngineResults<T>>;
|
|
18
|
+
/** run one or more statements within the transaction (no params) */
|
|
13
19
|
exec(sql: string): Promise<void>;
|
|
14
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* The single database interface the rest of tinbase talks to, regardless of
|
|
23
|
+
* whether it's backed by PGlite, native embedded Postgres, or the pg-mem subset.
|
|
24
|
+
*/
|
|
15
25
|
export interface DbEngine {
|
|
16
26
|
/** true for subset engines (pg-mem) that can't run the full plpgsql/RLS bootstrap */
|
|
17
27
|
minimalBootstrap?: boolean;
|
|
28
|
+
/** run a parameterized query */
|
|
18
29
|
query<T = any>(sql: string, params?: unknown[]): Promise<EngineResults<T>>;
|
|
19
|
-
/**
|
|
30
|
+
/** run multiple SQL statements (no params) */
|
|
20
31
|
exec(sql: string): Promise<void>;
|
|
21
|
-
/**
|
|
32
|
+
/** serialized transaction; implementations must guarantee mutual exclusion */
|
|
22
33
|
transaction<T>(fn: (tx: EngineTx) => Promise<T>): Promise<T>;
|
|
23
|
-
/**
|
|
34
|
+
/** subscribe to pg_notify on a channel; returns an unsubscribe function */
|
|
24
35
|
listen(channel: string, cb: (payload: string) => void): Promise<() => void>;
|
|
36
|
+
/** close the underlying connection/instance */
|
|
25
37
|
close(): Promise<void>;
|
|
26
38
|
}
|
|
27
39
|
/** Simple async mutex for engines that serialize over one connection. */
|
|
28
40
|
export declare class Mutex {
|
|
29
41
|
private tail;
|
|
42
|
+
/** Acquire the lock; await the returned release fn's turn, then call it to free it. */
|
|
30
43
|
lock(): Promise<() => void>;
|
|
44
|
+
/** Run `fn` while holding the lock; releases even if `fn` throws. */
|
|
31
45
|
run<T>(fn: () => Promise<T>): Promise<T>;
|
|
32
46
|
}
|
package/dist/db/engine.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Database engine abstraction. Two implementations:
|
|
3
|
-
* - PGlite (WASM Postgres)
|
|
4
|
-
* - Native embedded Postgres (Node only)
|
|
3
|
+
* - PGlite (WASM Postgres): portable, runs in the browser; heavier RAM.
|
|
4
|
+
* - Native embedded Postgres (Node only): PocketBase-class footprint.
|
|
5
5
|
* The rest of tinbase only talks to this interface.
|
|
6
6
|
*/
|
|
7
7
|
/** Simple async mutex for engines that serialize over one connection. */
|
|
8
8
|
export class Mutex {
|
|
9
9
|
tail = Promise.resolve();
|
|
10
|
+
/** Acquire the lock; await the returned release fn's turn, then call it to free it. */
|
|
10
11
|
async lock() {
|
|
11
12
|
let release;
|
|
12
13
|
const next = new Promise((r) => (release = r));
|
|
@@ -15,6 +16,7 @@ export class Mutex {
|
|
|
15
16
|
await prev;
|
|
16
17
|
return release;
|
|
17
18
|
}
|
|
19
|
+
/** Run `fn` while holding the lock; releases even if `fn` throws. */
|
|
18
20
|
async run(fn) {
|
|
19
21
|
const release = await this.lock();
|
|
20
22
|
try {
|
package/dist/db/engine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/db/engine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/db/engine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAqCH,yEAAyE;AACzE,MAAM,OAAO,KAAK;IACR,IAAI,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAA;IAE/C,uFAAuF;IACvF,KAAK,CAAC,IAAI;QACR,IAAI,OAAoB,CAAA;QACxB,MAAM,IAAI,GAAG,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAA;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;QACtC,MAAM,IAAI,CAAA;QACV,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,qEAAqE;IACrE,KAAK,CAAC,GAAG,CAAI,EAAoB;QAC/B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;QACjC,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAA;QACnB,CAAC;gBAAS,CAAC;YACT,OAAO,EAAE,CAAA;QACX,CAAC;IACH,CAAC;CACF"}
|
package/dist/db/inspect.d.ts
CHANGED
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `tinbase inspect` core: a lightweight database report
|
|
2
|
+
* `tinbase inspect` core: a lightweight database report - per-table row counts
|
|
3
3
|
* and on-disk size for a schema. Like a tiny `supabase inspect db`, enough to
|
|
4
4
|
* eyeball what's in a local project. (Uses pg_total_relation_size, so it runs
|
|
5
5
|
* on the real-Postgres engines, not the pg-mem subset.)
|
|
6
6
|
*/
|
|
7
7
|
import { type Database } from './database.js';
|
|
8
|
+
/** One row of the inspect report: a table with its row count and on-disk size. */
|
|
8
9
|
export interface TableInfo {
|
|
10
|
+
/** table name (unqualified) */
|
|
9
11
|
table: string;
|
|
12
|
+
/** live row count from count(*) */
|
|
10
13
|
rows: number;
|
|
14
|
+
/** human-readable total relation size (pg_size_pretty) */
|
|
11
15
|
size: string;
|
|
12
16
|
}
|
|
17
|
+
/** Report per-table row counts and on-disk sizes for a schema, largest first. */
|
|
13
18
|
export declare function inspectDb(db: Database, schema?: string): Promise<TableInfo[]>;
|
package/dist/db/inspect.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `tinbase inspect` core: a lightweight database report
|
|
2
|
+
* `tinbase inspect` core: a lightweight database report - per-table row counts
|
|
3
3
|
* and on-disk size for a schema. Like a tiny `supabase inspect db`, enough to
|
|
4
4
|
* eyeball what's in a local project. (Uses pg_total_relation_size, so it runs
|
|
5
5
|
* on the real-Postgres engines, not the pg-mem subset.)
|
|
6
6
|
*/
|
|
7
7
|
import { quoteIdent } from './database.js';
|
|
8
|
+
/** Report per-table row counts and on-disk sizes for a schema, largest first. */
|
|
8
9
|
export async function inspectDb(db, schema = 'public') {
|
|
9
10
|
const tables = await db.query(`select c.relname as table,
|
|
10
11
|
pg_size_pretty(pg_total_relation_size(c.oid)) as size
|
package/dist/db/inspect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../src/db/inspect.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,UAAU,EAAiB,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../src/db/inspect.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,UAAU,EAAiB,MAAM,eAAe,CAAA;AAYzD,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,EAAY,EAAE,MAAM,GAAG,QAAQ;IAC7D,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,KAAK,CAC3B;;;;;4DAKwD,EACxD,CAAC,MAAM,CAAC,CACT,CAAA;IACD,MAAM,GAAG,GAAgB,EAAE,CAAA;IAC3B,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC,KAAK,CACtB,kCAAkC,UAAU,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAC9E,CAAA;QACD,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;IACrE,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
-
/** PGlite (WASM) engine
|
|
1
|
+
/** PGlite (WASM) engine - imported dynamically so native mode never loads the WASM bundle. */
|
|
2
2
|
import type { DbEngine } from './engine.js';
|
|
3
|
+
/**
|
|
4
|
+
* Build a {@link DbEngine} backed by PGlite (WASM Postgres) at `dataDir`, or an
|
|
5
|
+
* in-memory database when `dataDir` is omitted. Loads the bundled contrib
|
|
6
|
+
* extensions Supabase enables by default.
|
|
7
|
+
* @throws if the PGlite WASM bundle isn't available in this build (use the native engine instead).
|
|
8
|
+
*/
|
|
3
9
|
export declare function createPgliteEngine(dataDir?: string): Promise<DbEngine>;
|
package/dist/db/pglite-engine.js
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build a {@link DbEngine} backed by PGlite (WASM Postgres) at `dataDir`, or an
|
|
3
|
+
* in-memory database when `dataDir` is omitted. Loads the bundled contrib
|
|
4
|
+
* extensions Supabase enables by default.
|
|
5
|
+
* @throws if the PGlite WASM bundle isn't available in this build (use the native engine instead).
|
|
6
|
+
*/
|
|
1
7
|
export async function createPgliteEngine(dataDir) {
|
|
2
8
|
let PGlite, extensions;
|
|
3
9
|
try {
|
|
@@ -19,7 +25,7 @@ export async function createPgliteEngine(dataDir) {
|
|
|
19
25
|
catch (e) {
|
|
20
26
|
if (e instanceof Error && /wasm/.test(e.message))
|
|
21
27
|
throw e;
|
|
22
|
-
throw new Error('the PGlite (wasm) engine is not available in this build
|
|
28
|
+
throw new Error('the PGlite (wasm) engine is not available in this build - run with --engine native');
|
|
23
29
|
}
|
|
24
30
|
const pg = new PGlite({ dataDir, extensions });
|
|
25
31
|
await pg.waitReady;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pglite-engine.js","sourceRoot":"","sources":["../../src/db/pglite-engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pglite-engine.js","sourceRoot":"","sources":["../../src/db/pglite-engine.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAAgB;IACvD,IAAI,MAAM,EAAE,UAAU,CAAA;IACtB,IAAI,CAAC;QACH,CAAC;QAAA,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAA;QACpD,4EAA4E;QAC5E,2EAA2E;QAC3E,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC7F,MAAM,CAAC,wCAAwC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YACzE,MAAM,CAAC,uCAAuC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;YACvE,MAAM,CAAC,qCAAqC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;YACnE,MAAM,CAAC,sCAAsC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YACrE,MAAM,CAAC,oCAAoC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;YACjE,MAAM,CAAC,qCAAqC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;YACnE,MAAM,CAAC,4CAA4C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;SAClF,CAAC,CAAA;QACF,UAAU,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAA;IACrF,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;YAAE,MAAM,CAAC,CAAA;QACzD,MAAM,IAAI,KAAK,CACb,oFAAoF,CACrF,CAAA;IACH,CAAC;IACD,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAA;IAC9C,MAAM,EAAE,CAAC,SAAS,CAAA;IAElB,OAAO;QACL,KAAK,CAAC,KAAK,CAAI,GAAW,EAAE,MAAkB;YAC5C,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,KAAK,CAAI,GAAG,EAAE,MAAM,CAAC,CAAA;YAC1C,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE,CAAA;QAC3D,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAW;YACpB,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACpB,CAAC;QACD,WAAW,CAAI,EAAgC;YAC7C,OAAO,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;gBACjC,OAAO,EAAE,CAAC;oBACR,KAAK,CAAC,KAAK,CAAI,GAAW,EAAE,MAAkB;wBAC5C,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,KAAK,CAAI,GAAG,EAAE,MAAM,CAAC,CAAA;wBAC1C,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE,CAAA;oBAC3D,CAAC;oBACD,KAAK,CAAC,IAAI,CAAC,GAAW;wBACpB,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;oBACpB,CAAC;iBACF,CAAC,CAAA;YACJ,CAAC,CAAe,CAAA;QAClB,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,OAAe,EAAE,EAA6B;YACzD,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;QAC/B,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE;KACxB,CAAA;AACH,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* pg-mem engine
|
|
2
|
+
* pg-mem engine - an ultralight, pure-JS, in-memory Postgres *subset* for
|
|
3
3
|
* local dev / previews (RapidNative) where footprint matters more than full
|
|
4
4
|
* fidelity. A ~3.6 MB install with no WASM, vs PGlite's ~600 MB heap.
|
|
5
5
|
*
|
|
@@ -7,11 +7,11 @@
|
|
|
7
7
|
* embeds, count), email/password auth, edge functions, realtime
|
|
8
8
|
* (broadcast/presence + postgres_changes), and database webhooks. Because
|
|
9
9
|
* pg-mem has no triggers/LISTEN/NOTIFY, change events for realtime and webhooks
|
|
10
|
-
* are synthesized in JS by the REST layer (see Database.emitCdc)
|
|
10
|
+
* are synthesized in JS by the REST layer (see Database.emitCdc) - every write
|
|
11
11
|
* goes through it in-process.
|
|
12
12
|
*
|
|
13
13
|
* What's explicitly NOT here (it is a subset, not a faithful Postgres):
|
|
14
|
-
* - NO row-level security (policies are skipped; RLS is not enforced)
|
|
14
|
+
* - NO row-level security (policies are skipped; RLS is not enforced) - so
|
|
15
15
|
* realtime/webhook events are delivered UNFILTERED, not per-subscriber
|
|
16
16
|
* - NO PL/pgSQL functions, pgmq, or cron
|
|
17
17
|
* - reduced introspection; UPDATE change events carry no old_record
|
|
@@ -19,4 +19,10 @@
|
|
|
19
19
|
* Use it for throwaway local data and previews, never production.
|
|
20
20
|
*/
|
|
21
21
|
import type { DbEngine } from './engine.js';
|
|
22
|
+
/**
|
|
23
|
+
* Build the pg-mem subset {@link DbEngine}: an in-memory Postgres for local dev
|
|
24
|
+
* and previews. Reports `minimalBootstrap: true` so the caller runs the reduced
|
|
25
|
+
* bootstrap and synthesizes CDC in JS.
|
|
26
|
+
* @throws if the optional `pg-mem` dependency isn't installed.
|
|
27
|
+
*/
|
|
22
28
|
export declare function createPgmemEngine(): Promise<DbEngine>;
|
package/dist/db/pgmem-engine.js
CHANGED
|
@@ -2,7 +2,7 @@ import { Mutex } from './engine.js';
|
|
|
2
2
|
/**
|
|
3
3
|
* Split SQL into statements on top-level `;`. Respects $tag$…$tag$ dollar-quoted
|
|
4
4
|
* blocks, '…' string literals ('' escapes), "…" quoted identifiers, and both
|
|
5
|
-
* -- line and /* block */ comments
|
|
5
|
+
* -- line and /* block */ comments - so a `;` inside any of those never splits.
|
|
6
6
|
*/
|
|
7
7
|
function splitStatements(sql) {
|
|
8
8
|
const out = [];
|
|
@@ -96,6 +96,12 @@ function isSkippable(stmt) {
|
|
|
96
96
|
/^create publication/.test(s) ||
|
|
97
97
|
/^alter publication/.test(s));
|
|
98
98
|
}
|
|
99
|
+
/**
|
|
100
|
+
* Build the pg-mem subset {@link DbEngine}: an in-memory Postgres for local dev
|
|
101
|
+
* and previews. Reports `minimalBootstrap: true` so the caller runs the reduced
|
|
102
|
+
* bootstrap and synthesizes CDC in JS.
|
|
103
|
+
* @throws if the optional `pg-mem` dependency isn't installed.
|
|
104
|
+
*/
|
|
99
105
|
export async function createPgmemEngine() {
|
|
100
106
|
let newDb, DataType;
|
|
101
107
|
try {
|
|
@@ -103,11 +109,11 @@ export async function createPgmemEngine() {
|
|
|
103
109
|
({ newDb, DataType } = await import('pg-mem'));
|
|
104
110
|
}
|
|
105
111
|
catch {
|
|
106
|
-
throw new Error('the pg-mem engine requires the optional `pg-mem` dependency
|
|
112
|
+
throw new Error('the pg-mem engine requires the optional `pg-mem` dependency - run `npm install pg-mem`');
|
|
107
113
|
}
|
|
108
114
|
const db = newDb({ autoCreateForeignKeyIndices: true });
|
|
109
115
|
// functions our REST/bootstrap SQL needs that pg-mem lacks
|
|
110
|
-
// impure: true so pg-mem evaluates them per row (not once per statement)
|
|
116
|
+
// impure: true so pg-mem evaluates them per row (not once per statement) -
|
|
111
117
|
// otherwise every row in a multi-row insert gets the same UUID → PK collision
|
|
112
118
|
db.public.registerFunction({ name: 'gen_random_uuid', returns: DataType.uuid, impure: true, implementation: () => crypto.randomUUID() });
|
|
113
119
|
db.public.registerFunction({ name: 'uuid_generate_v4', returns: DataType.uuid, impure: true, implementation: () => crypto.randomUUID() });
|
|
@@ -146,7 +152,7 @@ export async function createPgmemEngine() {
|
|
|
146
152
|
};
|
|
147
153
|
/**
|
|
148
154
|
* Tolerant exec: run statements one at a time and skip the ones a real
|
|
149
|
-
* Supabase migration contains that pg-mem can't do
|
|
155
|
+
* Supabase migration contains that pg-mem can't do - RLS policies, plpgsql
|
|
150
156
|
* functions/triggers, extensions, grants. Genuine errors on supported DDL
|
|
151
157
|
* still throw. Skipped statements are logged so nothing silently vanishes.
|
|
152
158
|
*/
|
|
@@ -176,7 +182,7 @@ export async function createPgmemEngine() {
|
|
|
176
182
|
// pg-mem is single-connection in-memory; serialize and use a snapshot so
|
|
177
183
|
// a thrown fn rolls back. Note: pg-mem commits DDL immediately and cannot
|
|
178
184
|
// restore a snapshot once the schema changed, so a rollback attempt after
|
|
179
|
-
// DDL may itself fail
|
|
185
|
+
// DDL may itself fail - swallow that and surface the ORIGINAL error.
|
|
180
186
|
const restore = db.backup();
|
|
181
187
|
try {
|
|
182
188
|
return await fn(tx);
|
|
@@ -186,12 +192,12 @@ export async function createPgmemEngine() {
|
|
|
186
192
|
restore.restore();
|
|
187
193
|
}
|
|
188
194
|
catch {
|
|
189
|
-
// schema changed since backup (DDL ran)
|
|
195
|
+
// schema changed since backup (DDL ran) - can't roll back in-memory; ignore
|
|
190
196
|
}
|
|
191
197
|
throw e;
|
|
192
198
|
}
|
|
193
199
|
}),
|
|
194
|
-
// no LISTEN/NOTIFY in pg-mem
|
|
200
|
+
// no LISTEN/NOTIFY in pg-mem - realtime/webhooks simply don't fire
|
|
195
201
|
listen: async () => () => { },
|
|
196
202
|
close: async () => {
|
|
197
203
|
await client.end();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pgmem-engine.js","sourceRoot":"","sources":["../../src/db/pgmem-engine.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAEnC;;;;GAIG;AACH,SAAS,eAAe,CAAC,GAAW;IAClC,MAAM,GAAG,GAAa,EAAE,CAAA;IACxB,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,IAAI,SAAS,GAAkB,IAAI,CAAA;IACnC,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QACtB,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;QACjB,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC;gBACjC,GAAG,IAAI,SAAS,CAAA;gBAChB,CAAC,IAAI,SAAS,CAAC,MAAM,CAAA;gBACrB,SAAS,GAAG,IAAI,CAAA;gBAChB,SAAQ;YACV,CAAC;YACD,GAAG,IAAI,EAAE,CAAA;YACT,CAAC,EAAE,CAAA;YACH,SAAQ;QACV,CAAC;QACD,kBAAkB;QAClB,IAAI,EAAE,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACrC,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;YAC/B,MAAM,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;YACvC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;YACxB,CAAC,GAAG,GAAG,CAAA;YACP,SAAQ;QACV,CAAC;QACD,sBAAsB;QACtB,IAAI,EAAE,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;YACtC,MAAM,GAAG,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAA;YACjD,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;YACxB,CAAC,GAAG,GAAG,CAAA;YACP,SAAQ;QACV,CAAC;QACD,gEAAgE;QAChE,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAC7B,MAAM,CAAC,GAAG,EAAE,CAAA;YACZ,GAAG,IAAI,EAAE,CAAA;YACT,CAAC,EAAE,CAAA;YACH,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;gBACtB,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;oBACjB,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;wBAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;wBAAC,CAAC,IAAI,CAAC,CAAC;wBAAC,SAAQ;oBAAC,CAAC;oBACxD,GAAG,IAAI,CAAC,CAAA;oBACR,CAAC,EAAE,CAAA;oBACH,MAAK;gBACP,CAAC;gBACD,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAA;gBACb,CAAC,EAAE,CAAA;YACL,CAAC;YACD,SAAQ;QACV,CAAC;QACD,MAAM,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QACnE,IAAI,CAAC,EAAE,CAAC;YACN,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YAChB,GAAG,IAAI,SAAS,CAAA;YAChB,CAAC,IAAI,SAAS,CAAC,MAAM,CAAA;YACrB,SAAQ;QACV,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,IAAI,GAAG,CAAC,IAAI,EAAE;gBAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;YACpC,GAAG,GAAG,EAAE,CAAA;YACR,CAAC,EAAE,CAAA;YACH,SAAQ;QACV,CAAC;QACD,GAAG,IAAI,EAAE,CAAA;QACT,CAAC,EAAE,CAAA;IACL,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,EAAE;QAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;IACpC,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,8EAA8E;AAC9E,SAAS,WAAW,CAAC,IAAY;IAC/B,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;IACxD,OAAO,CACL,8BAA8B,CAAC,IAAI,CAAC,CAAC,CAAC;QACtC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QACtB,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5B,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3B,+BAA+B,CAAC,IAAI,CAAC,CAAC,CAAC;QACvC,gCAAgC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;QACxE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAChB,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QACjB,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QAClB,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;QACrB,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7B,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAC7B,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,IAAI,KAAK,EAAE,QAAQ,CAAA;IACnB,IAAI,CAAC;QACH,CAAC;QAAA,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,wFAAwF,CAAC,CAAA;IAC3G,CAAC;IAED,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,2BAA2B,EAAE,IAAI,EAAE,CAAC,CAAA;IAEvD,2DAA2D;IAC3D,2EAA2E;IAC3E,8EAA8E;IAC9E,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;IACxI,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;IACzI,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC;QACzB,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;QACvB,OAAO,EAAE,QAAQ,CAAC,KAAK;QACvB,cAAc,EAAE,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAU;KAC7C,CAAC,CAAA;IACF,mFAAmF;IAEnF,sFAAsF;IACtF,qFAAqF;IACrF,qEAAqE;IACrE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;;;;;;;;;;;;;;GAcd,CAAC,CAAA;IAEF,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAA;IACzC,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAA;IAC3B,MAAM,MAAM,CAAC,OAAO,EAAE,CAAA;IACtB,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA;IAEzB,MAAM,GAAG,GAAG,KAAK,EAAK,GAAW,EAAE,MAAkB,EAA6B,EAAE;QAClF,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QAC7F,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAQ,EAAE,YAAY,EAAE,GAAG,CAAC,QAAQ,IAAI,SAAS,EAAE,CAAA;IACnF,CAAC,CAAA;IAED;;;;;OAKG;IACH,MAAM,IAAI,GAAG,KAAK,EAAE,GAAW,EAAiB,EAAE;QAChD,KAAK,MAAM,IAAI,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAC1B,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;oBACtB,OAAO,CAAC,IAAI,CAAC,4CAA4C,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAA;oBACnG,SAAQ;gBACV,CAAC;gBACD,MAAM,CAAC,CAAA;YACT,CAAC;QACH,CAAC;IACH,CAAC,CAAA;IAED,MAAM,EAAE,GAAa;QACnB,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC;QACxC,IAAI;KACL,CAAA;IAED,OAAO;QACL,gBAAgB,EAAE,IAAI;QACtB,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACzD,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzC,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,CAClB,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;YACnB,yEAAyE;YACzE,0EAA0E;YAC1E,0EAA0E;YAC1E,qEAAqE;YACrE,MAAM,OAAO,GAAG,EAAE,CAAC,MAAM,EAAE,CAAA;YAC3B,IAAI,CAAC;gBACH,OAAO,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;YACrB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC;oBACH,OAAO,CAAC,OAAO,EAAE,CAAA;gBACnB,CAAC;gBAAC,MAAM,CAAC;oBACP,4EAA4E;gBAC9E,CAAC;gBACD,MAAM,CAAC,CAAA;YACT,CAAC;QACH,CAAC,CAAC;QACJ,mEAAmE;QACnE,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,GAAG,EAAE,GAAE,CAAC;QAC5B,KAAK,EAAE,KAAK,IAAI,EAAE;YAChB,MAAM,MAAM,CAAC,GAAG,EAAE,CAAA;QACpB,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"pgmem-engine.js","sourceRoot":"","sources":["../../src/db/pgmem-engine.ts"],"names":[],"mappings":"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"}
|
package/dist/db/schema-diff.d.ts
CHANGED
|
@@ -1,22 +1,30 @@
|
|
|
1
1
|
import type { Database } from './database.js';
|
|
2
2
|
interface ColumnSnap {
|
|
3
3
|
name: string;
|
|
4
|
+
/** fully-specified type from format_type (e.g. `character varying(255)`) */
|
|
4
5
|
type: string;
|
|
5
6
|
nullable: boolean;
|
|
7
|
+
/** column default expression, or null when none */
|
|
6
8
|
default: string | null;
|
|
7
9
|
}
|
|
8
10
|
interface TableSnap {
|
|
9
11
|
name: string;
|
|
10
12
|
columns: Map<string, ColumnSnap>;
|
|
13
|
+
/** column names in declaration order, so DDL is emitted deterministically */
|
|
11
14
|
order: string[];
|
|
12
15
|
}
|
|
16
|
+
/** A structured snapshot of one schema, diffable into DDL by {@link diffSchemas}. */
|
|
13
17
|
export interface SchemaSnapshot {
|
|
18
|
+
/** table name → its columns */
|
|
14
19
|
tables: Map<string, TableSnap>;
|
|
15
|
-
/** constraint
|
|
20
|
+
/** table → (constraint name → definition from pg_get_constraintdef) */
|
|
16
21
|
constraints: Map<string, Map<string, string>>;
|
|
22
|
+
/** table → (index name → definition from pg_get_indexdef), excluding constraint-backing indexes */
|
|
17
23
|
indexes: Map<string, Map<string, string>>;
|
|
24
|
+
/** enum type name → its labels in sort order */
|
|
18
25
|
enums: Map<string, string[]>;
|
|
19
26
|
}
|
|
27
|
+
/** Snapshot a schema's tables, columns, constraints, indexes, and enums. */
|
|
20
28
|
export declare function snapshotSchema(db: Database, schema?: string): Promise<SchemaSnapshot>;
|
|
21
29
|
/** DDL to turn `from` into `to`, scoped to one schema. Empty array = no changes. */
|
|
22
30
|
export declare function diffSchemas(from: SchemaSnapshot, to: SchemaSnapshot, schema?: string): string[];
|