@mason-data/cli 0.7.0 → 0.9.0
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 +101 -73
- package/dist/src/api/error.js +3 -0
- package/dist/src/api/postgres/catalog-worker.js +49 -2
- package/dist/src/api/postgres/catalog.js +368 -25
- package/dist/src/api/postgres/encode.js +3 -1
- package/dist/src/api/postgres/explain.js +3 -2
- package/dist/src/api/postgres/listener.js +11 -3
- package/dist/src/api/postgres/protocol.js +39 -23
- package/dist/src/api/postgres/proxy.js +283 -0
- package/dist/src/api/postgres/schema.js +6 -0
- package/dist/src/api/postgres/server.js +1617 -245
- package/dist/src/api/postgres/translate.js +127 -10
- package/dist/src/api/request-log.js +18 -5
- package/dist/src/cdc/poll.js +5 -5
- package/dist/src/cli/background.js +47 -25
- package/dist/src/cli/bridge-stdin.js +101 -0
- package/dist/src/cli/cancel.js +75 -0
- package/dist/src/cli/command.js +170 -11
- package/dist/src/cli/commands.js +804 -209
- package/dist/src/cli/control.js +59 -0
- package/dist/src/cli/credentials.js +182 -0
- package/dist/src/cli/demo.js +20 -11
- package/dist/src/cli/deploy.js +574 -0
- package/dist/src/cli/dev.js +491 -130
- package/dist/src/cli/doctor.js +131 -38
- package/dist/src/cli/generated-files.js +143 -0
- package/dist/src/cli/guides.js +175 -36
- package/dist/src/cli/hosted.js +850 -0
- package/dist/src/cli/init.js +162 -65
- package/dist/src/cli/login.js +289 -0
- package/dist/src/cli/machine.js +13 -12
- package/dist/src/cli/main.js +11 -5
- package/dist/src/cli/mason.cjs +17 -0
- package/dist/src/cli/mcp.js +31 -22
- package/dist/src/cli/metrics.js +79 -0
- package/dist/src/cli/output-gate.js +176 -0
- package/dist/src/cli/page-share.js +96 -0
- package/dist/src/cli/pg-tls.js +14 -4
- package/dist/src/cli/pg-url.js +4 -0
- package/dist/src/cli/pin.js +19 -14
- package/dist/src/cli/pool-size.cjs +85 -0
- package/dist/src/cli/ports.js +2 -0
- package/dist/src/cli/preflight.js +138 -46
- package/dist/src/cli/project.js +142 -4
- package/dist/src/cli/readiness.js +76 -6
- package/dist/src/cli/registry.js +65 -38
- package/dist/src/cli/replica-hosted.js +665 -0
- package/dist/src/cli/replica.js +76 -0
- package/dist/src/cli/replication-checks.js +7 -5
- package/dist/src/cli/replication-mode.js +105 -26
- package/dist/src/cli/request-filter.js +134 -0
- package/dist/src/cli/roles.js +585 -0
- package/dist/src/cli/run-server.js +637 -48
- package/dist/src/cli/runs.js +1 -1
- package/dist/src/cli/security.js +67 -18
- package/dist/src/cli/serve.js +204 -46
- package/dist/src/cli/share-run.js +329 -0
- package/dist/src/cli/share.js +286 -0
- package/dist/src/cli/source-edit.js +75 -17
- package/dist/src/cli/source-role.js +344 -0
- package/dist/src/cli/sources.js +306 -47
- package/dist/src/cli/style.js +2 -1
- package/dist/src/cli/supervise.js +27 -24
- package/dist/src/cli/sync.js +55 -25
- package/dist/src/cli/token-hosted.js +337 -0
- package/dist/src/cli/tunnel.js +200 -0
- package/dist/src/cli/ui-ssh.js +460 -0
- package/dist/src/cli/ui.js +124 -17
- package/dist/src/cli/usage.js +128 -0
- package/dist/src/cli/user-hosted.js +299 -0
- package/dist/src/cli/user.js +573 -65
- package/dist/src/cli/version.js +9 -7
- package/dist/src/demo/seed.js +29 -0
- package/dist/src/duck/analyze.js +36 -20
- package/dist/src/duck/cancel.js +10 -1
- package/dist/src/duck/collation.js +266 -0
- package/dist/src/duck/constant-key.js +94 -0
- package/dist/src/duck/distinct-key.js +283 -26
- package/dist/src/duck/events.js +165 -0
- package/dist/src/duck/executor-worker.js +20 -11
- package/dist/src/duck/executor.js +47 -33
- package/dist/src/duck/explain.js +60 -46
- package/dist/src/duck/extensions.js +160 -0
- package/dist/src/duck/functions.js +461 -63
- package/dist/src/duck/gaps.js +48 -21
- package/dist/src/duck/generated-plan.js +1070 -0
- package/dist/src/duck/generated.js +906 -0
- package/dist/src/duck/grants.js +176 -0
- package/dist/src/duck/held-types.js +64 -0
- package/dist/src/duck/history.js +127 -0
- package/dist/src/duck/jsonb-order.js +9 -12
- package/dist/src/duck/kept-route.js +6 -5
- package/dist/src/duck/kept.js +15 -13
- package/dist/src/duck/late.js +1469 -40
- package/dist/src/duck/libc-bound.js +341 -0
- package/dist/src/duck/libc-order.js +892 -126
- package/dist/src/duck/pg-eval-worker.js +7 -1
- package/dist/src/duck/pg-eval.js +6 -4
- package/dist/src/duck/pgtree.js +774 -23
- package/dist/src/duck/plan.js +369 -47
- package/dist/src/duck/publication.js +20 -6
- package/dist/src/duck/requests.js +269 -93
- package/dist/src/duck/resolved.js +117 -2
- package/dist/src/duck/rewrite.js +4584 -580
- package/dist/src/duck/row-filter.js +655 -0
- package/dist/src/duck/statement.js +19 -0
- package/dist/src/duck/store.js +439 -177
- package/dist/src/duck/stream.js +19 -10
- package/dist/src/duck/sync.js +1411 -368
- package/dist/src/duck/token.js +4 -1
- package/dist/src/duck/types.js +69 -12
- package/dist/src/duck/usage.js +326 -0
- package/dist/src/duck/users.js +69 -15
- package/dist/src/duck/verified.js +161 -1
- package/dist/src/duck/views.js +5 -5
- package/dist/src/lib/database-name.js +62 -0
- package/dist/src/lib/database-url.js +55 -10
- package/dist/src/lib/dotenv.js +17 -4
- package/dist/src/lib/instant.js +50 -0
- package/dist/src/lib/log-buffer.js +77 -0
- package/dist/src/lib/log-read.js +196 -0
- package/dist/src/lib/pg-numeric.js +390 -49
- package/dist/src/lib/project-version.js +23 -23
- package/dist/src/lib/secret-mask.js +142 -0
- package/dist/src/lib/table-sync.js +282 -0
- package/dist/src/web/app.css +706 -66
- package/dist/src/web/app.js +331 -409
- package/dist/src/web/charts.js +229 -0
- package/dist/src/web/index.html +82 -18
- package/dist/src/web/pages/queries.js +192 -0
- package/dist/src/web/pages/status.js +611 -0
- package/dist/src/web/pages/syncs.js +155 -0
- package/dist/src/web/pages/tables.js +439 -0
- package/dist/src/web/pages/usage.js +397 -0
- package/dist/src/web/pages/users.js +219 -0
- package/dist/src/web/shared.js +584 -0
- package/dist/src/web/vendor/README.md +25 -0
- package/dist/src/web/vendor/geist-1.7.2/Geist-Variable.woff2 +0 -0
- package/dist/src/web/vendor/geist-1.7.2/GeistMono-Variable.woff2 +0 -0
- package/dist/src/web/vendor/geist-1.7.2/LICENSE.txt +92 -0
- package/dist/src/web/vendor/lucide-1.56.0/LICENSE.txt +43 -0
- package/dist/src/web/vendor/lucide-1.56.0/chart-column.mjs +29 -0
- package/dist/src/web/vendor/lucide-1.56.0/layout-dashboard.mjs +29 -0
- package/dist/src/web/vendor/lucide-1.56.0/logs.mjs +34 -0
- package/dist/src/web/vendor/lucide-1.56.0/menu.mjs +28 -0
- package/dist/src/web/vendor/lucide-1.56.0/square-terminal.mjs +28 -0
- package/dist/src/web/vendor/lucide-1.56.0/table.mjs +29 -0
- package/dist/src/web/vendor/lucide-1.56.0/users.mjs +29 -0
- package/dist/src/web/vendor/lucide-1.56.0/x.mjs +27 -0
- package/dist/src/web/vendor/uplot-1.6.32/LICENSE.txt +21 -0
- package/dist/src/web/vendor/uplot-1.6.32/uPlot.esm.js +6140 -0
- package/dist/src/web/vendor/uplot-1.6.32/uPlot.min.css +1 -0
- package/dist/src/web/vendor/zilla-slab-5.3.0/LICENSE.txt +93 -0
- package/dist/src/web/vendor/zilla-slab-5.3.0/zilla-slab-latin-700-normal.woff2 +0 -0
- package/package.json +12 -4
|
@@ -12,6 +12,7 @@ import { PGlite } from "@electric-sql/pglite";
|
|
|
12
12
|
const { port, signal } = workerData;
|
|
13
13
|
const db = new PGlite();
|
|
14
14
|
let zone = null;
|
|
15
|
+
let order = null;
|
|
15
16
|
const reply = (m) => { port.postMessage(m); Atomics.store(signal, 0, 1); Atomics.notify(signal, 0); };
|
|
16
17
|
port.on("message", (m) => {
|
|
17
18
|
void (async () => {
|
|
@@ -21,6 +22,11 @@ port.on("message", (m) => {
|
|
|
21
22
|
await db.exec(`SET TimeZone = '${m.timeZone.replace(/'/g, "''")}'`);
|
|
22
23
|
zone = m.timeZone;
|
|
23
24
|
}
|
|
25
|
+
// the session's DateStyle: a text read as a date in its field order (`'01/02/2026'` under `ISO, DMY`)
|
|
26
|
+
if (order !== m.dateStyle) {
|
|
27
|
+
await db.exec(`SET DateStyle = '${m.dateStyle.replace(/'/g, "''")}'`);
|
|
28
|
+
order = m.dateStyle;
|
|
29
|
+
}
|
|
24
30
|
const result = await db.query(m.sql, m.params, { rowMode: "array" });
|
|
25
31
|
// an array as the JSON of its elements' text (the `list` kind, src/duck/functions.ts)
|
|
26
32
|
const textOf = (v) => v === null ? null : Array.isArray(v) ? JSON.stringify(v.map(textOf)) : String(v);
|
|
@@ -28,7 +34,7 @@ port.on("message", (m) => {
|
|
|
28
34
|
}
|
|
29
35
|
catch (e) {
|
|
30
36
|
const err = e;
|
|
31
|
-
reply({ ok: false, code: typeof err.code === "string" ? err.code : "XX000", message: err.message ?? String(e) });
|
|
37
|
+
reply({ ok: false, code: typeof err.code === "string" ? err.code : "XX000", message: err.message ?? String(e), ...(typeof err.detail === "string" ? { detail: err.detail } : {}) });
|
|
32
38
|
}
|
|
33
39
|
})();
|
|
34
40
|
});
|
package/dist/src/duck/pg-eval.js
CHANGED
|
@@ -17,7 +17,9 @@ import { runnable } from "../lib/runnable.js";
|
|
|
17
17
|
const TIMEOUT_MS = 30_000;
|
|
18
18
|
export class PgEvalError extends Error {
|
|
19
19
|
code;
|
|
20
|
-
|
|
20
|
+
/** Postgres's DETAIL, where it gave one */
|
|
21
|
+
detail;
|
|
22
|
+
constructor(code, message, detail) { super(message); this.code = code; this.detail = detail; }
|
|
21
23
|
}
|
|
22
24
|
let current = null;
|
|
23
25
|
function start() {
|
|
@@ -33,11 +35,11 @@ function start() {
|
|
|
33
35
|
return { worker, port: port1, signal };
|
|
34
36
|
}
|
|
35
37
|
/** Runs one statement on the worker's Postgres and returns its rows as text; Postgres's error is a PgEvalError. */
|
|
36
|
-
export function pgEvalSync(sql, params, timeZone) {
|
|
38
|
+
export function pgEvalSync(sql, params, timeZone, dateStyle = "ISO, MDY") {
|
|
37
39
|
current ??= start();
|
|
38
40
|
const w = current;
|
|
39
41
|
Atomics.store(w.signal, 0, 0);
|
|
40
|
-
w.port.postMessage({ sql, params, timeZone });
|
|
42
|
+
w.port.postMessage({ sql, params, timeZone, dateStyle });
|
|
41
43
|
const waited = Atomics.wait(w.signal, 0, 0, TIMEOUT_MS);
|
|
42
44
|
const got = receiveMessageOnPort(w.port);
|
|
43
45
|
if (waited === "timed-out" || got === undefined) {
|
|
@@ -47,7 +49,7 @@ export function pgEvalSync(sql, params, timeZone) {
|
|
|
47
49
|
}
|
|
48
50
|
const r = got.message;
|
|
49
51
|
if (!r.ok)
|
|
50
|
-
throw new PgEvalError(r.code, r.message);
|
|
52
|
+
throw new PgEvalError(r.code, r.message, r.detail);
|
|
51
53
|
return r.rows;
|
|
52
54
|
}
|
|
53
55
|
/** Stops the worker (a store that closes). */
|