pg-admin-mcp 0.0.0-stage → 0.1.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 +608 -2
- package/dist/config/env.js +67 -0
- package/dist/config/env.js.map +1 -0
- package/dist/config/profiles.js +257 -0
- package/dist/config/profiles.js.map +1 -0
- package/dist/core/audit-context.js +21 -0
- package/dist/core/audit-context.js.map +1 -0
- package/dist/core/audit.js +91 -0
- package/dist/core/audit.js.map +1 -0
- package/dist/core/brands.js +24 -0
- package/dist/core/brands.js.map +1 -0
- package/dist/core/classifier.js +279 -0
- package/dist/core/classifier.js.map +1 -0
- package/dist/core/errors.js +197 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/format.js +258 -0
- package/dist/core/format.js.map +1 -0
- package/dist/core/guards.js +513 -0
- package/dist/core/guards.js.map +1 -0
- package/dist/core/identifiers.js +431 -0
- package/dist/core/identifiers.js.map +1 -0
- package/dist/core/limits.js +79 -0
- package/dist/core/limits.js.map +1 -0
- package/dist/core/logger.js +34 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/paginate.js +195 -0
- package/dist/core/paginate.js.map +1 -0
- package/dist/core/paths.js +392 -0
- package/dist/core/paths.js.map +1 -0
- package/dist/core/policy.js +98 -0
- package/dist/core/policy.js.map +1 -0
- package/dist/core/shutdown.js +10 -0
- package/dist/core/shutdown.js.map +1 -0
- package/dist/core/stdout-guard.js +25 -0
- package/dist/core/stdout-guard.js.map +1 -0
- package/dist/db/catalog.js +1006 -0
- package/dist/db/catalog.js.map +1 -0
- package/dist/db/pool.js +158 -0
- package/dist/db/pool.js.map +1 -0
- package/dist/db/session.js +258 -0
- package/dist/db/session.js.map +1 -0
- package/dist/db/types.js +2 -0
- package/dist/db/types.js.map +1 -0
- package/dist/index.js +91 -0
- package/dist/index.js.map +1 -0
- package/dist/resources/index.js +88 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/runtime/binaries.js +356 -0
- package/dist/runtime/binaries.js.map +1 -0
- package/dist/runtime/env-file.js +62 -0
- package/dist/runtime/env-file.js.map +1 -0
- package/dist/runtime/environment.js +34 -0
- package/dist/runtime/environment.js.map +1 -0
- package/dist/server.js +106 -0
- package/dist/server.js.map +1 -0
- package/dist/snapshot/capture.js +189 -0
- package/dist/snapshot/capture.js.map +1 -0
- package/dist/snapshot/diff.js +254 -0
- package/dist/snapshot/diff.js.map +1 -0
- package/dist/snapshot/migrate.js +1596 -0
- package/dist/snapshot/migrate.js.map +1 -0
- package/dist/snapshot/model.js +80 -0
- package/dist/snapshot/model.js.map +1 -0
- package/dist/tools/_archive_meta.js +138 -0
- package/dist/tools/_archive_meta.js.map +1 -0
- package/dist/tools/_batch_shared.js +73 -0
- package/dist/tools/_batch_shared.js.map +1 -0
- package/dist/tools/_export_format.js +107 -0
- package/dist/tools/_export_format.js.map +1 -0
- package/dist/tools/_object_kinds.js +97 -0
- package/dist/tools/_object_kinds.js.map +1 -0
- package/dist/tools/_relation_detail.js +55 -0
- package/dist/tools/_relation_detail.js.map +1 -0
- package/dist/tools/_shared.js +17 -0
- package/dist/tools/_shared.js.map +1 -0
- package/dist/tools/_snapshot_io.js +238 -0
- package/dist/tools/_snapshot_io.js.map +1 -0
- package/dist/tools/admin/_shared.js +18 -0
- package/dist/tools/admin/_shared.js.map +1 -0
- package/dist/tools/admin/extensions.js +80 -0
- package/dist/tools/admin/extensions.js.map +1 -0
- package/dist/tools/admin/grants.js +207 -0
- package/dist/tools/admin/grants.js.map +1 -0
- package/dist/tools/admin/index.js +138 -0
- package/dist/tools/admin/index.js.map +1 -0
- package/dist/tools/admin/maintenance.js +106 -0
- package/dist/tools/admin/maintenance.js.map +1 -0
- package/dist/tools/admin/roles.js +144 -0
- package/dist/tools/admin/roles.js.map +1 -0
- package/dist/tools/admin/sessions.js +104 -0
- package/dist/tools/admin/sessions.js.map +1 -0
- package/dist/tools/admin/stats.js +63 -0
- package/dist/tools/admin/stats.js.map +1 -0
- package/dist/tools/backup.js +288 -0
- package/dist/tools/backup.js.map +1 -0
- package/dist/tools/connection_status.js +138 -0
- package/dist/tools/connection_status.js.map +1 -0
- package/dist/tools/copy.js +355 -0
- package/dist/tools/copy.js.map +1 -0
- package/dist/tools/delete_batch.js +73 -0
- package/dist/tools/delete_batch.js.map +1 -0
- package/dist/tools/describe_object.js +87 -0
- package/dist/tools/describe_object.js.map +1 -0
- package/dist/tools/execute_sql.js +395 -0
- package/dist/tools/execute_sql.js.map +1 -0
- package/dist/tools/explain.js +134 -0
- package/dist/tools/explain.js.map +1 -0
- package/dist/tools/export.js +215 -0
- package/dist/tools/export.js.map +1 -0
- package/dist/tools/get_schema.js +148 -0
- package/dist/tools/get_schema.js.map +1 -0
- package/dist/tools/index.js +40 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/insert_batch.js +212 -0
- package/dist/tools/insert_batch.js.map +1 -0
- package/dist/tools/list_objects.js +160 -0
- package/dist/tools/list_objects.js.map +1 -0
- package/dist/tools/prepare_migration.js +112 -0
- package/dist/tools/prepare_migration.js.map +1 -0
- package/dist/tools/restore.js +301 -0
- package/dist/tools/restore.js.map +1 -0
- package/dist/tools/schema_diff.js +79 -0
- package/dist/tools/schema_diff.js.map +1 -0
- package/dist/tools/schema_snapshot.js +57 -0
- package/dist/tools/schema_snapshot.js.map +1 -0
- package/dist/tools/select.js +162 -0
- package/dist/tools/select.js.map +1 -0
- package/dist/tools/update_batch.js +154 -0
- package/dist/tools/update_batch.js.map +1 -0
- package/package.json +47 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/snapshot/migrate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The normalized schema snapshot — plain data, deliberately.
|
|
3
|
+
*
|
|
4
|
+
* Every type below is a flat `readonly` interface over strings, booleans and
|
|
5
|
+
* arrays: no generics, no conditional types, no recursive mapped types
|
|
6
|
+
* (docs/design.md §"Type discipline": *"the snapshot model is data, not
|
|
7
|
+
* type-level computation"*). A diff engine that has to be understood at 3am is
|
|
8
|
+
* not the place to be clever with the type system, and the compile time of a
|
|
9
|
+
* recursive `DeepDiff<T>` is paid by every build forever.
|
|
10
|
+
*
|
|
11
|
+
* Two properties this shape exists to guarantee, both load-bearing for
|
|
12
|
+
* `diff.ts`:
|
|
13
|
+
*
|
|
14
|
+
* 1. **JSON-serializable and byte-stable.** Capturing the same database twice
|
|
15
|
+
* must produce the identical string, so `JSON.stringify(a) ===
|
|
16
|
+
* JSON.stringify(b)` is a valid smoke test. That rules out `Map`, `Set`,
|
|
17
|
+
* `Date`, `bigint`, `undefined`-valued properties — and any field that
|
|
18
|
+
* changes without the schema changing. There is deliberately **no capture
|
|
19
|
+
* timestamp, no server version and no row count** in here: all three move on
|
|
20
|
+
* their own and would make every snapshot differ from every other one. A
|
|
21
|
+
* tool that wants to record when a snapshot was taken wraps it around this
|
|
22
|
+
* object rather than inside it.
|
|
23
|
+
* 2. **Every collection is sorted by a stable key** — see {@link sortByKey}.
|
|
24
|
+
* The one exception is {@link SnapshotEnum.labels}, where the order *is* the
|
|
25
|
+
* data (`ALTER TYPE … ADD VALUE 'x' BEFORE 'y'` changes nothing but order).
|
|
26
|
+
*
|
|
27
|
+
* What is deliberately *not* modeled, so nobody has to rediscover it:
|
|
28
|
+
* - **Physical column order.** Columns sort by name. `attnum` carries gaps from
|
|
29
|
+
* dropped columns, so two schemas built by different routes to the same end
|
|
30
|
+
* state have different `attnum`s for the same columns, and reporting that as
|
|
31
|
+
* a change is exactly the noise design.md risk 5 warns about.
|
|
32
|
+
* - **A sequence's `last_value`.** That is data, not schema; including it would
|
|
33
|
+
* make an `INSERT` show up in a schema diff.
|
|
34
|
+
* - **Grants.** `postgres_describe_object` reports them; they are role state
|
|
35
|
+
* rather than schema shape and they belong to the Phase 5 admin surface.
|
|
36
|
+
*/
|
|
37
|
+
/**
|
|
38
|
+
* Bump when a captured snapshot's *meaning* changes, not when the code changes:
|
|
39
|
+
* a field added, removed or renamed; a field's normalization rule changed (a
|
|
40
|
+
* different `pg_get_*def`, a different sort key, a newly ignored attribute); or
|
|
41
|
+
* a collection's identity key changed. A bump makes every stored snapshot from
|
|
42
|
+
* the previous format refuse to diff — {@link ../snapshot/diff.ts#diffSnapshots}
|
|
43
|
+
* — instead of silently comparing two things that were never comparable.
|
|
44
|
+
*
|
|
45
|
+
* Purely additive changes still count. A v1 snapshot missing a field a v2
|
|
46
|
+
* capture always emits would diff as "every table modified", which is worse
|
|
47
|
+
* than a refusal.
|
|
48
|
+
*/
|
|
49
|
+
export const SNAPSHOT_FORMAT_VERSION = 1;
|
|
50
|
+
/**
|
|
51
|
+
* Byte ordering on UTF-16 code units — **never** `localeCompare`.
|
|
52
|
+
*
|
|
53
|
+
* `localeCompare` is locale- and ICU-dependent: it orders `_` before `a` on one
|
|
54
|
+
* host and after it on another, and a Node built with `small-icu` disagrees
|
|
55
|
+
* with a full-icu one. That would make a snapshot captured in the container
|
|
56
|
+
* fail a byte comparison against the same schema captured on the host, for no
|
|
57
|
+
* schema reason at all. The same argument applies to `ORDER BY` in the catalog
|
|
58
|
+
* queries: those sort under the *database's* collation, so every collection is
|
|
59
|
+
* re-sorted here rather than trusted from SQL.
|
|
60
|
+
*
|
|
61
|
+
* Total and antisymmetric: returns 0 only for equal strings, which combined
|
|
62
|
+
* with `Array.prototype.sort`'s guaranteed stability makes the result of
|
|
63
|
+
* {@link sortByKey} a function of its input alone.
|
|
64
|
+
*/
|
|
65
|
+
export function compareKeys(a, b) {
|
|
66
|
+
if (a < b)
|
|
67
|
+
return -1;
|
|
68
|
+
if (a > b)
|
|
69
|
+
return 1;
|
|
70
|
+
return 0;
|
|
71
|
+
}
|
|
72
|
+
/** Non-mutating sort by a string key, using {@link compareKeys}. */
|
|
73
|
+
export function sortByKey(items, key) {
|
|
74
|
+
return [...items].sort((a, b) => compareKeys(key(a), key(b)));
|
|
75
|
+
}
|
|
76
|
+
/** The key a function is identified by in a snapshot and a diff: overloads differ only in their arguments. */
|
|
77
|
+
export function functionKey(fn) {
|
|
78
|
+
return `${fn.name}(${fn.arguments})`;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/snapshot/model.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAsKzC;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,WAAW,CAAC,CAAS,EAAE,CAAS;IAC9C,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC,CAAC;IACrB,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IACpB,OAAO,CAAC,CAAC;AACX,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,SAAS,CAAI,KAAmB,EAAE,GAAwB;IACxE,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,8GAA8G;AAC9G,MAAM,UAAU,WAAW,CAAC,EAAoB;IAC9C,OAAO,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { PgMcpError } from '../core/errors.js';
|
|
3
|
+
import { resolveWorkspaceFileForRead } from '../core/paths.js';
|
|
4
|
+
import { withSession } from '../db/session.js';
|
|
5
|
+
/**
|
|
6
|
+
* The sidecar metadata file `postgres_backup` writes next to every archive,
|
|
7
|
+
* and `postgres_restore` reads before it touches anything.
|
|
8
|
+
*
|
|
9
|
+
* **Why a sidecar at all.** design.md risk 10: an archive is forward-only —
|
|
10
|
+
* `pg_dump 17` can dump a 16 server, but a custom-format archive written by 17
|
|
11
|
+
* can never be read by `pg_restore 16`. The archive header does carry that
|
|
12
|
+
* information, but the only way to get at it is to run `pg_restore --list`,
|
|
13
|
+
* which on a too-new archive fails with `unsupported version (1.16) in file
|
|
14
|
+
* header` — a message that names neither the version that wrote it nor the
|
|
15
|
+
* image tag that could read it. The sidecar answers both questions *before*
|
|
16
|
+
* anything is spawned, and `postgres_restore` falls back to the `--list`
|
|
17
|
+
* header only when the sidecar is absent.
|
|
18
|
+
*
|
|
19
|
+
* It is a convenience, never a trust anchor: it is a plain JSON file in the
|
|
20
|
+
* same workspace as the archive, so it is read through the same
|
|
21
|
+
* `resolveWorkspaceFileForRead` policy as every other operator-supplied file,
|
|
22
|
+
* zod-validated, and a missing or malformed one degrades to "unknown", never
|
|
23
|
+
* to "assume it is fine".
|
|
24
|
+
*/
|
|
25
|
+
export const ARCHIVE_META_VERSION = 1;
|
|
26
|
+
export const archiveMetaSchema = z
|
|
27
|
+
.object({
|
|
28
|
+
metaVersion: z.number().int(),
|
|
29
|
+
createdAt: z.string(),
|
|
30
|
+
/** `pg_dump (PostgreSQL) 17.5 …` */
|
|
31
|
+
clientVersion: z.string(),
|
|
32
|
+
clientMajor: z.number().int(),
|
|
33
|
+
serverVersion: z.string(),
|
|
34
|
+
serverVersionNum: z.number().int(),
|
|
35
|
+
database: z.string(),
|
|
36
|
+
format: z.enum(['custom', 'directory', 'tar', 'plain']),
|
|
37
|
+
/** What was dumped: the whole database, or the named schemas/tables. */
|
|
38
|
+
scope: z.object({ schemas: z.array(z.string()), tables: z.array(z.string()), schemaOnly: z.boolean(), dataOnly: z.boolean() }),
|
|
39
|
+
bytes: z.number().int(),
|
|
40
|
+
/** SHA-256 of the archive file, or of `toc.dat` for a directory-format archive. */
|
|
41
|
+
checksum: z.string(),
|
|
42
|
+
checksumOf: z.enum(['archive', 'toc.dat']),
|
|
43
|
+
})
|
|
44
|
+
.strict();
|
|
45
|
+
/** `dumps/db.dump` -> `dumps/db.dump.meta.json`. One rule, so `postgres_restore` can find it without being told. */
|
|
46
|
+
export function sidecarPathFor(archivePath) {
|
|
47
|
+
return `${archivePath}.meta.json`;
|
|
48
|
+
}
|
|
49
|
+
/** Generous for a sidecar (a few hundred bytes in practice) and small enough that a wrong path cannot buffer anything meaningful. */
|
|
50
|
+
const SIDECAR_MAX_BYTES = 64 * 1024;
|
|
51
|
+
/** `PATH_DENIED` wrapping a real `ENOENT` — the file is absent, as opposed to unreadable or outside the allow-list. */
|
|
52
|
+
function isMissingFile(err) {
|
|
53
|
+
if (!(err instanceof PgMcpError))
|
|
54
|
+
return false;
|
|
55
|
+
const cause = err.cause;
|
|
56
|
+
return typeof cause === 'object' && cause !== null && 'code' in cause && cause.code === 'ENOENT';
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Reads and validates the sidecar for `archivePath`, or `undefined` when there
|
|
60
|
+
* is none — an archive produced by plain `pg_dump` on the command line is a
|
|
61
|
+
* perfectly legitimate restore source and must not be refused for lacking a
|
|
62
|
+
* file this server invented.
|
|
63
|
+
*
|
|
64
|
+
* A sidecar that exists but does not parse is **not** silently ignored: it
|
|
65
|
+
* means the pair is inconsistent, and quietly falling through to "unknown
|
|
66
|
+
* version" is how a forward-only archive gets fed to an old `pg_restore`.
|
|
67
|
+
*/
|
|
68
|
+
export async function readSidecar(archivePath, allowedDirs) {
|
|
69
|
+
const sidecarPath = sidecarPathFor(archivePath);
|
|
70
|
+
let raw;
|
|
71
|
+
try {
|
|
72
|
+
const { handle } = await resolveWorkspaceFileForRead(sidecarPath, allowedDirs, {
|
|
73
|
+
maxBytes: SIDECAR_MAX_BYTES,
|
|
74
|
+
limitLabel: 'sidecar read',
|
|
75
|
+
limitHint: `a file that large is not a sidecar postgres_backup wrote — delete or rename "${sidecarPath}" and re-run`,
|
|
76
|
+
missingHint: 'this is optional metadata; nothing to do',
|
|
77
|
+
notFileHint: `remove the directory at "${sidecarPath}" — that name is reserved for postgres_backup's metadata file`,
|
|
78
|
+
});
|
|
79
|
+
try {
|
|
80
|
+
raw = await handle.readFile('utf8');
|
|
81
|
+
}
|
|
82
|
+
finally {
|
|
83
|
+
await handle.close();
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
catch (err) {
|
|
87
|
+
// A genuinely absent sidecar is the normal case for a hand-made archive.
|
|
88
|
+
// Matched on the underlying errno, not on the message text: an EACCES or a
|
|
89
|
+
// path refused by the allow-list must still be reported, not swallowed as
|
|
90
|
+
// "no metadata".
|
|
91
|
+
if (isMissingFile(err))
|
|
92
|
+
return undefined;
|
|
93
|
+
throw err;
|
|
94
|
+
}
|
|
95
|
+
let json;
|
|
96
|
+
try {
|
|
97
|
+
json = JSON.parse(raw);
|
|
98
|
+
}
|
|
99
|
+
catch (err) {
|
|
100
|
+
throw new PgMcpError({
|
|
101
|
+
code: 'SNAPSHOT_INVALID',
|
|
102
|
+
message: `"${sidecarPath}" sits next to the archive but is not valid JSON`,
|
|
103
|
+
hint: 'delete it and re-run postgres_backup, or delete it to restore without the version pre-check',
|
|
104
|
+
details: { sidecarPath },
|
|
105
|
+
cause: err,
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
const parsed = archiveMetaSchema.safeParse(json);
|
|
109
|
+
if (!parsed.success) {
|
|
110
|
+
throw new PgMcpError({
|
|
111
|
+
code: 'SNAPSHOT_INVALID',
|
|
112
|
+
message: `"${sidecarPath}" does not match the archive metadata format (${parsed.error.issues.length} issue(s))`,
|
|
113
|
+
hint: 'delete it and re-run postgres_backup, or delete it to restore without the version pre-check',
|
|
114
|
+
details: { sidecarPath, issueCount: parsed.error.issues.length },
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
return parsed.data;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* `SHOW server_version_num` in its function form, so the value comes back as a
|
|
121
|
+
* bound result rather than a parsed notice. Read before `pg_dump` is spawned —
|
|
122
|
+
* design.md risk 2's client-vs-server check has to happen at the tool
|
|
123
|
+
* boundary, not as raw stderr from a refused child.
|
|
124
|
+
*/
|
|
125
|
+
export async function serverVersionOf(profile, operation) {
|
|
126
|
+
return withSession(profile, async (client) => {
|
|
127
|
+
const result = await client.query({
|
|
128
|
+
text: "SELECT current_setting('server_version') AS version, current_setting('server_version_num') AS num",
|
|
129
|
+
values: [],
|
|
130
|
+
queryMode: 'extended',
|
|
131
|
+
});
|
|
132
|
+
const row = result.rows[0];
|
|
133
|
+
if (row === undefined)
|
|
134
|
+
throw new Error('server did not return its version');
|
|
135
|
+
return { version: row.version, num: Number.parseInt(row.num, 10) };
|
|
136
|
+
}, { operation });
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=_archive_meta.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_archive_meta.js","sourceRoot":"","sources":["../../src/tools/_archive_meta.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { resolveColumn } from '../core/identifiers.js';
|
|
3
|
+
/**
|
|
4
|
+
* Shared plumbing for the three guarded batch-write tools
|
|
5
|
+
* (`insert_batch`/`update_batch`/`delete_batch`) — kept out of `core/guards.ts`
|
|
6
|
+
* because it is zod schema + SQL-fragment building, not guard policy.
|
|
7
|
+
*/
|
|
8
|
+
/** Mirrors `core/guards.ts#ExpectToken` / `tools/_shared.ts#ExpectToken` as a zod shape. */
|
|
9
|
+
export const expectTokenSchema = z.object({
|
|
10
|
+
sqlHash: z.string().min(1),
|
|
11
|
+
rowCount: z.number().int().min(0),
|
|
12
|
+
keyChecksum: z.string().min(1).optional(),
|
|
13
|
+
});
|
|
14
|
+
/** Spread into every guarded batch-write tool's `z.object({ ... })`. Pair with `core/guards.ts#CONFIRM_PROTOCOL_DESCRIPTION` in the description. */
|
|
15
|
+
export const confirmFragment = {
|
|
16
|
+
confirm: z.boolean().optional().describe('false/omitted (default) = dry run. true = commit, using the `expect` token from the prior dry run.'),
|
|
17
|
+
expect: expectTokenSchema.optional().describe('The `expect` token returned by the prior dry run — pass it back verbatim. Required to confirm on staging/production profiles.'),
|
|
18
|
+
allowRowDrift: z.number().int().min(0).optional().describe('Row-count tolerance between the dry run and the confirm. Forced to 0 on production profiles.'),
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Builds a parameterized `WHERE` clause from structured predicates, starting
|
|
22
|
+
* parameter numbering at `startParamIndex` (so a caller can bind other
|
|
23
|
+
* parameters — e.g. an `unnest()` value array — before the predicates).
|
|
24
|
+
* `columnPrefix` lets a caller qualify columns against a table alias (e.g.
|
|
25
|
+
* `'t.'` when the statement also joins an `unnest()` value set).
|
|
26
|
+
*
|
|
27
|
+
* Identical predicate-building logic to `tools/select.ts`'s inline version —
|
|
28
|
+
* extracted here because `update_batch` and `delete_batch` both need it
|
|
29
|
+
* verbatim, where `select.ts` only needs its own copy once.
|
|
30
|
+
*/
|
|
31
|
+
export function buildWhereClause(where, schema, table, knownColumns, startParamIndex, columnPrefix = '') {
|
|
32
|
+
let paramIndex = startParamIndex;
|
|
33
|
+
const parts = [];
|
|
34
|
+
const params = [];
|
|
35
|
+
for (const pred of where) {
|
|
36
|
+
const ident = resolveColumn(schema, table, pred.column, knownColumns);
|
|
37
|
+
const ref = `${columnPrefix}${ident}`;
|
|
38
|
+
if (pred.op === 'IS NULL' || pred.op === 'IS NOT NULL') {
|
|
39
|
+
parts.push(`${ref} ${pred.op}`);
|
|
40
|
+
}
|
|
41
|
+
else if (pred.op === 'IN' || pred.op === 'NOT IN') {
|
|
42
|
+
const placeholders = pred.value.map(() => `$${paramIndex++}`).join(', ');
|
|
43
|
+
parts.push(`${ref} ${pred.op} (${placeholders})`);
|
|
44
|
+
params.push(...pred.value);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
parts.push(`${ref} ${pred.op} $${paramIndex++}`);
|
|
48
|
+
params.push(pred.value);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return { clause: parts.join(' AND '), params, nextParamIndex: paramIndex };
|
|
52
|
+
}
|
|
53
|
+
/** `${dataType}[]` — a real catalog type (from `db/catalog.ts#getColumns`) cast to its array form, for `unnest($n::type[])`. */
|
|
54
|
+
export function arrayCast(dataType) {
|
|
55
|
+
return `${dataType}[]`;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* `zod`'s `.optional()` infers `keyChecksum?: string | undefined`, which
|
|
59
|
+
* `exactOptionalPropertyTypes` refuses to assign to `core/guards.ts#ExpectToken`'s
|
|
60
|
+
* `keyChecksum?: string` (present-and-string, or absent — never present-and-`undefined`).
|
|
61
|
+
* Rebuilds the object so an omitted `keyChecksum` is an absent key, not an
|
|
62
|
+
* explicit `undefined` value.
|
|
63
|
+
*/
|
|
64
|
+
export function toExpectToken(expect) {
|
|
65
|
+
if (expect === undefined)
|
|
66
|
+
return undefined;
|
|
67
|
+
return {
|
|
68
|
+
sqlHash: expect.sqlHash,
|
|
69
|
+
rowCount: expect.rowCount,
|
|
70
|
+
...(expect.keyChecksum === undefined ? {} : { keyChecksum: expect.keyChecksum }),
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=_batch_shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_batch_shared.js","sourceRoot":"","sources":["../../src/tools/_batch_shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { Transform } from 'node:stream';
|
|
2
|
+
/** True for the `postgres-interval` object `pg` parses an `interval` column into — same duck type `core/format.ts` uses. */
|
|
3
|
+
function isPgInterval(value) {
|
|
4
|
+
return typeof value.toPostgres === 'function';
|
|
5
|
+
}
|
|
6
|
+
/** Bare (unquoted) text form of one cell. CSV-specific quoting is applied by {@link csvField}; JSON-specific encoding by {@link cellJson}. */
|
|
7
|
+
function cellText(value) {
|
|
8
|
+
if (value === null || value === undefined)
|
|
9
|
+
return '';
|
|
10
|
+
if (typeof value === 'bigint')
|
|
11
|
+
return value.toString();
|
|
12
|
+
if (typeof value === 'string')
|
|
13
|
+
return value;
|
|
14
|
+
if (Buffer.isBuffer(value))
|
|
15
|
+
return `\\x${value.toString('hex')}`;
|
|
16
|
+
if (value instanceof Date)
|
|
17
|
+
return value.toISOString();
|
|
18
|
+
if (Array.isArray(value))
|
|
19
|
+
return `{${value.map((el) => cellText(el)).join(',')}}`;
|
|
20
|
+
if (typeof value === 'object' && isPgInterval(value))
|
|
21
|
+
return value.toPostgres();
|
|
22
|
+
if (typeof value === 'object')
|
|
23
|
+
return JSON.stringify(value);
|
|
24
|
+
return String(value);
|
|
25
|
+
}
|
|
26
|
+
/** JSON-safe mirror of `core/format.ts#toJsonSafe` — kept local since that helper is not exported, and export's rules are a strict subset (no `dataTypeId` disambiguation needed: every string, numeric or not, is already correct as a JSON string). */
|
|
27
|
+
function cellJson(value) {
|
|
28
|
+
if (value === null || value === undefined)
|
|
29
|
+
return null;
|
|
30
|
+
if (typeof value === 'bigint')
|
|
31
|
+
return value.toString();
|
|
32
|
+
if (typeof value === 'string')
|
|
33
|
+
return value;
|
|
34
|
+
if (Buffer.isBuffer(value))
|
|
35
|
+
return `\\x${value.toString('hex')}`;
|
|
36
|
+
if (value instanceof Date)
|
|
37
|
+
return value.toISOString();
|
|
38
|
+
if (Array.isArray(value))
|
|
39
|
+
return value.map((el) => cellJson(el));
|
|
40
|
+
if (typeof value === 'object' && isPgInterval(value))
|
|
41
|
+
return value.toPostgres();
|
|
42
|
+
return value;
|
|
43
|
+
}
|
|
44
|
+
function csvField(raw, opts) {
|
|
45
|
+
if (raw === null || raw === undefined)
|
|
46
|
+
return opts.nullValue; // never quoted, regardless of its own content — that is the NULL/empty-string distinction
|
|
47
|
+
const text = cellText(raw);
|
|
48
|
+
// `text === opts.nullValue` is not optional: NULL is written bare, so a real
|
|
49
|
+
// value whose text happens to equal the NULL sentinel must be quoted or the
|
|
50
|
+
// two become the same bytes — and PostgreSQL's own `COPY … FROM` then reads
|
|
51
|
+
// the value back as SQL NULL. (The default `nullValue: ''` survives only
|
|
52
|
+
// because the empty-string case below force-quotes it anyway; `nullValue:
|
|
53
|
+
// 'NULL'` against a row containing the text `'NULL'` did not.) This is what
|
|
54
|
+
// `postgres_copy` gets for free from PostgreSQL's own COPY writer.
|
|
55
|
+
const needsQuote = text === '' || text === opts.nullValue || text.includes(opts.delimiter) || text.includes('\n') || text.includes('\r') || text.includes('"');
|
|
56
|
+
return needsQuote ? `"${text.replace(/"/g, '""')}"` : text;
|
|
57
|
+
}
|
|
58
|
+
function csvLine(values, opts) {
|
|
59
|
+
return `${values.map((v) => csvField(v, opts)).join(opts.delimiter)}\r\n`;
|
|
60
|
+
}
|
|
61
|
+
function jsonObject(row, columns) {
|
|
62
|
+
return Object.fromEntries(columns.map((c) => [c, cellJson(row[c])]));
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Object-mode-in (`Record<string, unknown>[]` batches), string-out transform.
|
|
66
|
+
* The caller (`tools/export.ts`) drives this through `stream.pipeline`
|
|
67
|
+
* alongside the batch source and the destination file, which is what gives
|
|
68
|
+
* the whole chain real backpressure: this transform's `_transform` is not
|
|
69
|
+
* invoked again — and so the next FETCH is not issued — until whatever is
|
|
70
|
+
* downstream (ultimately the disk) is ready for more.
|
|
71
|
+
*/
|
|
72
|
+
export function createExportTransform(format, columns, csv) {
|
|
73
|
+
let wroteAnyRow = false;
|
|
74
|
+
return new Transform({
|
|
75
|
+
writableObjectMode: true,
|
|
76
|
+
transform(batch, _encoding, callback) {
|
|
77
|
+
try {
|
|
78
|
+
const rows = batch;
|
|
79
|
+
let chunk = '';
|
|
80
|
+
if (!wroteAnyRow && format === 'csv' && csv.header)
|
|
81
|
+
chunk += csvLine(columns, csv);
|
|
82
|
+
for (const row of rows) {
|
|
83
|
+
if (format === 'csv') {
|
|
84
|
+
chunk += csvLine(columns.map((c) => row[c]), csv);
|
|
85
|
+
}
|
|
86
|
+
else if (format === 'json') {
|
|
87
|
+
chunk += (wroteAnyRow ? ',' : '[') + JSON.stringify(jsonObject(row, columns));
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
chunk += `${JSON.stringify(jsonObject(row, columns))}\n`;
|
|
91
|
+
}
|
|
92
|
+
wroteAnyRow = true;
|
|
93
|
+
}
|
|
94
|
+
callback(null, chunk);
|
|
95
|
+
}
|
|
96
|
+
catch (err) {
|
|
97
|
+
callback(err instanceof Error ? err : new Error(String(err)));
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
flush(callback) {
|
|
101
|
+
if (format === 'json')
|
|
102
|
+
this.push(wroteAnyRow ? ']' : '[]');
|
|
103
|
+
callback();
|
|
104
|
+
},
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=_export_format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_export_format.js","sourceRoot":"","sources":["../../src/tools/_export_format.ts"],"names":[],"mappings":"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"}
|