@homeflare/alchemy 0.45.0 → 0.46.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.
Files changed (148) hide show
  1. package/dist/postgres/connection.d.ts.map +1 -1
  2. package/dist/postgres/fake-schema-drop.d.ts +13 -0
  3. package/dist/postgres/fake-schema-drop.d.ts.map +1 -0
  4. package/dist/postgres/fake-schema-sql.d.ts +5 -0
  5. package/dist/postgres/fake-schema-sql.d.ts.map +1 -1
  6. package/dist/postgres/fake-sql.d.ts +4 -0
  7. package/dist/postgres/fake-sql.d.ts.map +1 -1
  8. package/dist/postgres/index.d.ts +2 -1
  9. package/dist/postgres/index.d.ts.map +1 -1
  10. package/dist/postgres/index.js +461 -278
  11. package/dist/postgres/index.js.map +19 -15
  12. package/dist/postgres/psql-executor.d.ts.map +1 -1
  13. package/dist/postgres/schema-closure-sql.d.ts +45 -0
  14. package/dist/postgres/schema-closure-sql.d.ts.map +1 -0
  15. package/dist/postgres/schema-delete.d.ts +17 -8
  16. package/dist/postgres/schema-delete.d.ts.map +1 -1
  17. package/dist/postgres/schema-drop-sql.d.ts +66 -0
  18. package/dist/postgres/schema-drop-sql.d.ts.map +1 -0
  19. package/dist/postgres/schema-errors.d.ts +19 -1
  20. package/dist/postgres/schema-errors.d.ts.map +1 -1
  21. package/dist/postgres/schema-sequence-error.d.ts +29 -0
  22. package/dist/postgres/schema-sequence-error.d.ts.map +1 -0
  23. package/dist/postgres/schema-sql.d.ts +16 -0
  24. package/dist/postgres/schema-sql.d.ts.map +1 -1
  25. package/dist/postgres/schema-test-kit.d.ts +3 -1
  26. package/dist/postgres/schema-test-kit.d.ts.map +1 -1
  27. package/dist/postgres/search-path.d.ts +38 -0
  28. package/dist/postgres/search-path.d.ts.map +1 -0
  29. package/dist/proxmox/generated/constraints/index.d.ts +1 -1
  30. package/dist/proxmox/generated/constraints/pve-access.d.ts +1 -1
  31. package/dist/proxmox/generated/constraints/pve-cluster-backup.d.ts +1 -1
  32. package/dist/proxmox/generated/constraints/pve-cluster-ceph.d.ts +1 -1
  33. package/dist/proxmox/generated/constraints/pve-cluster-firewall.d.ts +1 -1
  34. package/dist/proxmox/generated/constraints/pve-cluster-ha.d.ts +1 -1
  35. package/dist/proxmox/generated/constraints/pve-cluster-metrics.d.ts +1 -1
  36. package/dist/proxmox/generated/constraints/pve-cluster-notifications.d.ts +1 -1
  37. package/dist/proxmox/generated/constraints/pve-cluster-replication.d.ts +1 -1
  38. package/dist/proxmox/generated/constraints/pve-cluster-sdn.d.ts +1 -1
  39. package/dist/proxmox/generated/constraints/pve-nodes-ceph.d.ts +1 -1
  40. package/dist/proxmox/generated/constraints/pve-nodes-disks.d.ts +1 -1
  41. package/dist/proxmox/generated/constraints/pve-nodes-lxc.d.ts +1 -1
  42. package/dist/proxmox/generated/constraints/pve-nodes-network.d.ts +1 -1
  43. package/dist/proxmox/generated/constraints/pve-nodes-qemu.d.ts +1 -1
  44. package/dist/proxmox/generated/constraints/pve-nodes-qemu.d.ts.map +1 -1
  45. package/dist/proxmox/generated/constraints/pve-nodes-storage.d.ts +1 -1
  46. package/dist/proxmox/generated/constraints/pve-pools.d.ts +1 -1
  47. package/dist/proxmox/generated/constraints/pve-storage.d.ts +1 -1
  48. package/dist/proxmox/index.d.ts +1 -0
  49. package/dist/proxmox/index.d.ts.map +1 -1
  50. package/dist/proxmox/index.js +283 -130
  51. package/dist/proxmox/index.js.map +31 -27
  52. package/dist/proxmox/qemu-dns.d.ts +2 -0
  53. package/dist/proxmox/qemu-dns.d.ts.map +1 -0
  54. package/dist/proxmox/qemu-errors.d.ts +1 -0
  55. package/dist/proxmox/qemu-errors.d.ts.map +1 -1
  56. package/dist/proxmox/qemu-form.d.ts.map +1 -1
  57. package/dist/proxmox/qemu-judge.d.ts.map +1 -1
  58. package/dist/proxmox/qemu-lifecycle.d.ts +15 -10
  59. package/dist/proxmox/qemu-lifecycle.d.ts.map +1 -1
  60. package/dist/proxmox/qemu-props.d.ts +10 -0
  61. package/dist/proxmox/qemu-props.d.ts.map +1 -1
  62. package/dist/proxmox/qemu-resize.d.ts +10 -0
  63. package/dist/proxmox/qemu-resize.d.ts.map +1 -0
  64. package/dist/proxmox/qemu-size.d.ts +20 -0
  65. package/dist/proxmox/qemu-size.d.ts.map +1 -0
  66. package/dist/proxmox/qemu-spec.d.ts +25 -0
  67. package/dist/proxmox/qemu-spec.d.ts.map +1 -0
  68. package/dist/verify/fake-engine.d.ts +4 -2
  69. package/dist/verify/fake-engine.d.ts.map +1 -1
  70. package/docs/postgres-schema.md +22 -1
  71. package/docs/proxmox-qemu-resize.md +62 -0
  72. package/package.json +1 -1
  73. package/src/postgres/connection.ts +10 -14
  74. package/src/postgres/database-bigint-serialization.test.ts +2 -2
  75. package/src/postgres/database-sql.ts +6 -6
  76. package/src/postgres/fake-grants-read.ts +3 -3
  77. package/src/postgres/fake-role-sql.ts +2 -2
  78. package/src/postgres/fake-schema-drop.ts +75 -0
  79. package/src/postgres/fake-schema-sql.ts +10 -1
  80. package/src/postgres/fake-sql.ts +10 -3
  81. package/src/postgres/grants-database.test.ts +5 -5
  82. package/src/postgres/grants-existence.ts +7 -7
  83. package/src/postgres/grants-ownership.ts +5 -5
  84. package/src/postgres/grants-psql-lifecycle.test.ts +7 -3
  85. package/src/postgres/grants-read-defaults.ts +5 -5
  86. package/src/postgres/grants-read.ts +16 -16
  87. package/src/postgres/index.ts +2 -0
  88. package/src/postgres/psql-executor-escaping.test.ts +3 -1
  89. package/src/postgres/psql-executor.test.ts +11 -5
  90. package/src/postgres/psql-executor.ts +4 -1
  91. package/src/postgres/role-adopt.test.ts +3 -1
  92. package/src/postgres/role-membership-options.test.ts +3 -1
  93. package/src/postgres/role-membership-repair.test.ts +3 -3
  94. package/src/postgres/role-membership-sql.ts +4 -4
  95. package/src/postgres/role-password-transports.test.ts +4 -2
  96. package/src/postgres/role-sql.ts +1 -1
  97. package/src/postgres/schema-closure-sql.ts +108 -0
  98. package/src/postgres/schema-delete-proofs.test.ts +7 -7
  99. package/src/postgres/schema-delete.ts +88 -46
  100. package/src/postgres/schema-drop-2bp01.test.ts +29 -17
  101. package/src/postgres/schema-drop-real.test.ts +190 -0
  102. package/src/postgres/schema-drop-sql.ts +135 -0
  103. package/src/postgres/schema-drop.test.ts +241 -0
  104. package/src/postgres/schema-errors.ts +26 -0
  105. package/src/postgres/schema-handlers.test.ts +21 -14
  106. package/src/postgres/schema-lifecycle.test.ts +6 -60
  107. package/src/postgres/schema-sequence-error.ts +38 -0
  108. package/src/postgres/schema-socket.test.ts +20 -6
  109. package/src/postgres/schema-sql.ts +16 -11
  110. package/src/postgres/schema-takeover.test.ts +7 -4
  111. package/src/postgres/schema-test-kit.ts +18 -4
  112. package/src/postgres/search-path.test.ts +100 -0
  113. package/src/postgres/search-path.ts +62 -0
  114. package/src/proxmox/generated/constraints/index.ts +1 -1
  115. package/src/proxmox/generated/constraints/pve-access.ts +1 -1
  116. package/src/proxmox/generated/constraints/pve-cluster-backup.ts +1 -1
  117. package/src/proxmox/generated/constraints/pve-cluster-ceph.ts +1 -1
  118. package/src/proxmox/generated/constraints/pve-cluster-firewall.ts +1 -1
  119. package/src/proxmox/generated/constraints/pve-cluster-ha.ts +1 -1
  120. package/src/proxmox/generated/constraints/pve-cluster-metrics.ts +1 -1
  121. package/src/proxmox/generated/constraints/pve-cluster-notifications.ts +1 -1
  122. package/src/proxmox/generated/constraints/pve-cluster-replication.ts +1 -1
  123. package/src/proxmox/generated/constraints/pve-cluster-sdn.ts +1 -1
  124. package/src/proxmox/generated/constraints/pve-nodes-ceph.ts +1 -1
  125. package/src/proxmox/generated/constraints/pve-nodes-disks.ts +1 -1
  126. package/src/proxmox/generated/constraints/pve-nodes-lxc.ts +1 -1
  127. package/src/proxmox/generated/constraints/pve-nodes-network.ts +1 -1
  128. package/src/proxmox/generated/constraints/pve-nodes-qemu.ts +6 -1
  129. package/src/proxmox/generated/constraints/pve-nodes-storage.ts +1 -1
  130. package/src/proxmox/generated/constraints/pve-pools.ts +1 -1
  131. package/src/proxmox/generated/constraints/pve-storage.ts +1 -1
  132. package/src/proxmox/index.ts +1 -0
  133. package/src/proxmox/qemu-dns.test.ts +73 -0
  134. package/src/proxmox/qemu-dns.ts +32 -0
  135. package/src/proxmox/qemu-errors.ts +1 -0
  136. package/src/proxmox/qemu-form.ts +6 -3
  137. package/src/proxmox/qemu-judge.ts +2 -1
  138. package/src/proxmox/qemu-lifecycle.ts +28 -47
  139. package/src/proxmox/qemu-props.ts +14 -2
  140. package/src/proxmox/qemu-resize-lock.test.ts +121 -0
  141. package/src/proxmox/qemu-resize-recovery.test.ts +81 -0
  142. package/src/proxmox/qemu-resize.test.ts +199 -0
  143. package/src/proxmox/qemu-resize.ts +86 -0
  144. package/src/proxmox/qemu-size.test.ts +64 -0
  145. package/src/proxmox/qemu-size.ts +95 -0
  146. package/src/proxmox/qemu-spec.ts +44 -0
  147. package/src/proxmox/qemu-volume.ts +5 -5
  148. package/src/verify/fake-engine.ts +6 -3
@@ -1 +1 @@
1
- {"version":3,"file":"psql-executor.d.ts","sourceRoot":"","sources":["../../src/postgres/psql-executor.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,KAAK,UAAU,EAAsB,MAAM,mBAAmB,CAAC;AAExE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;yDAEyD;AACzD,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE;IAC9B,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AAE1B,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,yFAAyF;AACzF,eAAO,MAAM,YAAY,QAAS,MAAM,UAAU,aAAa,CAAC,OAAO,CAAC,KAAG,MASnE,CAAC;AAgBT;;8EAE8E;AAC9E,eAAO,MAAM,sBAAsB,SAAU,MAAM,KAAG,MAInD,CAAC;AAuDJ,eAAO,MAAM,gBAAgB,QAAS,UAAU,UAAU,UAAU,KAAG,UAkCrE,CAAC"}
1
+ {"version":3,"file":"psql-executor.d.ts","sourceRoot":"","sources":["../../src/postgres/psql-executor.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAE,KAAK,UAAU,EAAsB,MAAM,mBAAmB,CAAC;AAGxE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;yDAEyD;AACzD,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE;IAC9B,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AAE1B,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,yFAAyF;AACzF,eAAO,MAAM,YAAY,QAAS,MAAM,UAAU,aAAa,CAAC,OAAO,CAAC,KAAG,MASnE,CAAC;AAgBT;;8EAE8E;AAC9E,eAAO,MAAM,sBAAsB,SAAU,MAAM,KAAG,MAInD,CAAC;AAwDJ,eAAO,MAAM,gBAAgB,QAAS,UAAU,UAAU,UAAU,KAAG,UAkCrE,CAAC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * The dependency closure `DROP SCHEMA … CASCADE` would walk, and the count of what it would take
3
+ * that does NOT live in the schema being dropped (`schema-drop-sql.ts` refuses when it is > 0).
4
+ *
5
+ * ⛔ THE CLOSURE IS DERIVED FROM THE NAMESPACE OBJECT, NOT FROM A LIST OF CLASSES. Until
6
+ * 2026-10-06 the scan started from four catalogs (`pg_class`, `pg_type`, `pg_proc`,
7
+ * `pg_operator`), so `a.c` (a collation) used by `b.t.x` was invisible and the cascade reached
8
+ * into `b.t.x` (Codex read of PR 357). Now the walk starts at `(pg_namespace, v_ns)` and follows
9
+ * EVERY `pg_depend` row whose referenced object is already inside — the same edges
10
+ * `findDependentObjects` (`dependency.c`) follows — so any object class `pg_depend` can name
11
+ * (collation, conversion, opclass, opfamily, text-search, statistics, extension members, …)
12
+ * is reached with no catalog enumerated to find it.
13
+ * ★ EVERY `deptype` FOLLOWS (`pg_depend`, catalogs.sgml); they differ only in attribution:
14
+ * n NORMAL cascade drops the dependent → followed; foreign if it lives elsewhere
15
+ * a AUTO dropped with any drop → followed; foreign if it lives elsewhere
16
+ * (an owned sequence in another schema is dropped with its table)
17
+ * i INTERNAL a part of the referenced object → followed; attributed to its owner (below)
18
+ * P / S partition primary / secondary → followed; a partition in another
19
+ * schema is dropped with its parent, so it is foreign
20
+ * e EXTENSION member of an extension → followed; the extension's members are
21
+ * dropped with it, wherever they live
22
+ * x AUTO-EXT auto, and dropped with the extension → followed like `a`
23
+ * p PIN system object, `refobjid = 0` → never a referenced row, never joins
24
+ * ★ "INSIDE" is a home-schema test per class. TOAST is the case the old scan got wrong: a text
25
+ * table's TOAST relation (and its index) lives in `pg_toast` and depends internally on the
26
+ * table, so it is attributed to the table that owns it via `reltoastrelid` — otherwise every
27
+ * cascade of a schema with a text column was refused. Constraints, triggers, rules, policies
28
+ * and defaults have no schema of their own and take their table's.
29
+ * ⚠️ A CLASS THIS FILE DOES NOT KNOW (a cast, a foreign server, a language, an event trigger)
30
+ * resolves to NULL, which is NOT inside: it counts as foreign. Unknown fails CLOSED. The walk
31
+ * stops at a foreign object — one is enough to refuse.
32
+ * ★ A dependent created AFTER this scan is held off by the caller's locks (`schema-drop-sql.ts`).
33
+ */
34
+ /**
35
+ * `v_count := …`: how many objects the cascade would drop outside `v_ns`, PLUS how many objects
36
+ * INSIDE it hold an `e` or `i` edge to an object outside the closure.
37
+ * ⛔ THE SECOND TERM IS THE OWNERSHIP ESCAPE (Codex read of PR 357, 2026-10-06). An inside table
38
+ * added to a foreign extension (`ALTER EXTENSION x ADD TABLE a.t`) has an OUTGOING `e` edge; the
39
+ * walk only follows edges INTO the closure, so it saw nothing, while `findDependentObjects`
40
+ * redirects the deletion of an extension member / internal part to its OWNER and drops that
41
+ * owner's other objects too. Any outgoing `e` or `i` edge leaving the closure counts as foreign:
42
+ * refuse, never follow-and-classify (the simplest correct answer fails closed).
43
+ */
44
+ export declare const OUTSIDE_DEPENDENTS_SQL: string;
45
+ //# sourceMappingURL=schema-closure-sql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-closure-sql.d.ts","sourceRoot":"","sources":["../../src/postgres/schema-closure-sql.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAkDH;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB,QAe7B,CAAC"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * `Postgres.Schema`'s drop path: prove the connection, prove the schema is still ours, then
3
- * the guarded `DROP SCHEMA`.
3
+ * ONE atomic statement that re-proves it under a lock and drops (`schema-drop-sql.ts`).
4
4
  *
5
5
  * ⛔ THE ENGINE DOES NOT RE-READ BEFORE A DELETE THAT HAS STATE (alchemy `Apply.ts`). When
6
6
  * persisted attributes exist, `delete` receives the LAST asserted `oid` + `owner` and no
@@ -10,19 +10,28 @@
10
10
  * row that no longer matches the persisted proof fails with
11
11
  * `PostgresSchemaDeleteForeignRefused` (`schema-assert.ts#deleteForeignRefusal`) before any
12
12
  * `DROP` is issued.
13
+ * ⛔ THE RE-READ ALONE IS A WINDOW. It is a separate autocommit statement (a separate `psql` on
14
+ * the runner transport), so the schema can change between the read and the drop. The drop
15
+ * therefore carries the proven `oid` + `owner` INTO one `DO` block that locks, re-verifies
16
+ * them, checks emptiness or cross-schema dependents, and drops in one transaction. This
17
+ * file's read is the typed, readable refusal; the block is the guarantee.
13
18
  */
14
19
  import * as Effect from 'effect/Effect';
15
20
  import type { SqlError } from 'effect/unstable/sql/SqlError';
16
21
  import type { PgExecutor } from './database-sql.ts';
17
22
  import type { PostgresSchemaAttributes, PostgresSchemaProps } from './schema-attrs.ts';
18
- import { type PostgresSchemaDeleteForeignRefused, PostgresSchemaDropNotEmptyError, type PostgresSchemaWrongDatabase } from './schema-errors.ts';
19
- /** Prove the connected database, then the guarded drop — the drop core on its own, for the
20
- * tests that drive it directly. */
21
- export declare const dropWithClient: (pg: PgExecutor, props: PostgresSchemaProps) => Effect.Effect<void, PostgresSchemaWrongDatabase | PostgresSchemaDropNotEmptyError | SqlError>;
23
+ import { PostgresSchemaCascadeCrossSchemaRefused, PostgresSchemaDeleteForeignRefused, PostgresSchemaDropNotEmptyError, type PostgresSchemaWrongDatabase } from './schema-errors.ts';
24
+ import { PostgresSchemaCascadeSequencesRefused } from './schema-sequence-error.ts';
25
+ type DropError = PostgresSchemaDropNotEmptyError | PostgresSchemaCascadeCrossSchemaRefused | PostgresSchemaCascadeSequencesRefused | PostgresSchemaDeleteForeignRefused | SqlError;
26
+ /** Prove the connected database, then the guarded drop of whatever row is live now — the drop
27
+ * core on its own, for the tests that drive it directly. No persisted proof is consulted: the
28
+ * row read here is the row the atomic drop re-verifies. */
29
+ export declare const dropWithClient: (pg: PgExecutor, props: PostgresSchemaProps) => Effect.Effect<void, PostgresSchemaWrongDatabase | DropError>;
22
30
  /**
23
31
  * The core of `delete`: re-read first (see the file header), refuse a schema the persisted
24
- * proof cannot vouch for, then the guarded drop. `output` is the persisted state the engine
25
- * hands over — `undefined` is no proof and refuses too.
32
+ * proof cannot vouch for, then the atomic guarded drop. `output` is the persisted state the
33
+ * engine hands over — `undefined` is no proof and refuses too.
26
34
  */
27
- export declare const deleteWithClient: (pg: PgExecutor, props: PostgresSchemaProps, output: PostgresSchemaAttributes | undefined) => Effect.Effect<void, PostgresSchemaWrongDatabase | PostgresSchemaDeleteForeignRefused | PostgresSchemaDropNotEmptyError | SqlError>;
35
+ export declare const deleteWithClient: (pg: PgExecutor, props: PostgresSchemaProps, output: PostgresSchemaAttributes | undefined) => Effect.Effect<void, PostgresSchemaWrongDatabase | DropError>;
36
+ export {};
28
37
  //# sourceMappingURL=schema-delete.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-delete.d.ts","sourceRoot":"","sources":["../../src/postgres/schema-delete.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAEvF,OAAO,EACL,KAAK,kCAAkC,EACvC,+BAA+B,EAC/B,KAAK,2BAA2B,EACjC,MAAM,oBAAoB,CAAC;AAuC5B;mCACmC;AACnC,eAAO,MAAM,cAAc,OACrB,UAAU,SACP,mBAAmB,KACzB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,2BAA2B,GAAG,+BAA+B,GAAG,QAAQ,CAI3F,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,OACvB,UAAU,SACP,mBAAmB,UAClB,wBAAwB,GAAG,SAAS,KAC3C,MAAM,CAAC,MAAM,CACd,IAAI,EACF,2BAA2B,GAC3B,kCAAkC,GAClC,+BAA+B,GAC/B,QAAQ,CASR,CAAC"}
1
+ {"version":3,"file":"schema-delete.d.ts","sourceRoot":"","sources":["../../src/postgres/schema-delete.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAEvF,OAAO,EACL,uCAAuC,EACvC,kCAAkC,EAClC,+BAA+B,EAC/B,KAAK,2BAA2B,EACjC,MAAM,oBAAoB,CAAC;AAU5B,OAAO,EAAE,qCAAqC,EAAkB,MAAM,4BAA4B,CAAC;AAGnG,KAAK,SAAS,GACV,+BAA+B,GAC/B,uCAAuC,GACvC,qCAAqC,GACrC,kCAAkC,GAClC,QAAQ,CAAC;AA4Db;;2DAE2D;AAC3D,eAAO,MAAM,cAAc,OACrB,UAAU,SACP,mBAAmB,KACzB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,2BAA2B,GAAG,SAAS,CAM1D,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,OACvB,UAAU,SACP,mBAAmB,UAClB,wBAAwB,GAAG,SAAS,KAC3C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,2BAA2B,GAAG,SAAS,CAQ1D,CAAC"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * The atomic `DROP SCHEMA` `Postgres.Schema` issues: ONE `DO` statement that takes a lock,
3
+ * re-proves the schema inside the same transaction, refuses what must not be dropped, and only
4
+ * then drops.
5
+ *
6
+ * ⛔ PROOF AND DROP ARE ONE STATEMENT, ONE TRANSACTION. Before 2026-10-02 the re-read, the
7
+ * emptiness check and the `DROP` were three autocommit statements — three `psql` processes on
8
+ * the runner transport — so an out-of-band drop-and-recreate between them was dropped by name,
9
+ * `CASCADE` included (Opus read of PR 334). A `DO` block is atomic on both transports and needs
10
+ * no `BEGIN`/`COMMIT` the runner would have to thread through.
11
+ * ⛔ THE LOCK MUST CONFLICT WITH DDL, NOT ONLY WITH OTHER RUNS OF THIS PROVIDER. An advisory lock
12
+ * (`pg_advisory_xact_lock`) is cooperative: an ordinary `DROP SCHEMA` + `CREATE SCHEMA` ignores
13
+ * it, and the by-name `DROP` below would then drop the REPLACEMENT, `CASCADE` included (Codex
14
+ * read of PR 357, 2026-10-06). So, BEFORE the re-verify and held to the end of the transaction:
15
+ * (1) `COMMENT ON SCHEMA <name> IS <its current comment>` — `CommentObject` resolves the schema
16
+ * through `get_object_address(…, ShareUpdateExclusiveLock)`, which locks the namespace OBJECT
17
+ * (`LockDatabaseObject`), and `DROP SCHEMA` takes `AccessExclusiveLock` on that same object
18
+ * (`AcquireDeletionLock`), so a concurrent drop waits for us; (2) on a cascade, `LOCK TABLE …
19
+ * IN ACCESS EXCLUSIVE MODE` on every table-like relation in the schema, which holds off a
20
+ * concurrent creator of a dependent (a view or foreign key reads the table it references).
21
+ * Lock modes: PostgreSQL docs, explicit-locking.html §13.3; `COMMENT`: sql-comment.html.
22
+ * `lock_timeout` turns any wait into `55P03`, an unclassified error: the drop is REFUSED, never
23
+ * forced. A comment-less schema is rewritten as `IS NULL`, which still takes the lock.
24
+ * ⛔ RENAME TAKES NO SUCH LOCK (Codex read of PR 357, 2026-10-06): `ALTER SCHEMA … RENAME` updates
25
+ * `pg_namespace` without locking the object, so a rename-then-`CREATE SCHEMA` of the same name
26
+ * committed while we waited on a table lock would make the by-name `DROP` delete the
27
+ * REPLACEMENT. The last statement before the `DROP` re-reads the name of the verified OID and
28
+ * refuses `HF001` if it moved; only the statements between that read and the `DROP` remain.
29
+ * ⛔ SEQUENCES REFUSE THE CASCADE (`HF004`, KNOWN LIMIT; `schema-sequence-error.ts`). `LOCK TABLE`
30
+ * cannot lock a sequence, so an uncommitted `CREATE VIEW b.v AS SELECT last_value FROM a.s` is
31
+ * invisible to the closure scan, and PostgreSQL's deletion (locks first, THEN scans dependents)
32
+ * would cascade into `b.v` once it commits. A schema with serial or identity columns therefore
33
+ * cannot be cascade-dropped here: drop its contents first. The check runs before any table lock.
34
+ * ⚠️ NOT COVERED: a type,
35
+ * function or collation created in ANOTHER schema to use ours has no relation to wait on. The
36
+ * advisory lock stays: it serialises runs of this provider, which is cheap and correct.
37
+ * ★ THE VALUES ARE LITERALS INSIDE THE BODY, AND THE BODY IS ONE `E'…'` LITERAL. A `DO` body
38
+ * takes no bind parameters, and a dollar-quote tag could be forged by a schema NAME containing
39
+ * it; `quoteStringLiteral` doubles backslashes and quotes, so nesting it twice is exact.
40
+ * The `DROP` text inside is `buildDropSchemaSql` run through `EXECUTE`, so the quoting rule is
41
+ * the same single one.
42
+ * ★ REFUSALS ARE CUSTOM SQLSTATEs, read from `reason.cause.code` exactly like `2BP01`
43
+ * (`schema-sql.ts#isDependentObjectsError`): `HF001` identity changed, `HF002` not empty,
44
+ * `HF003` dependents in another schema, `HF004` a cascade over a schema holding a sequence. Class `HF` is not `42`, so both transports wrap it as
45
+ * `UnknownError` with the raw code. The `HF003` message carries a COUNT only: another owner's
46
+ * object names must not reach this stack's logs.
47
+ */
48
+ import type { SqlError } from 'effect/unstable/sql/SqlError';
49
+ export declare const IDENTITY_CHANGED = "HF001";
50
+ export declare const NOT_EMPTY = "HF002";
51
+ export declare const CROSS_SCHEMA_DEPENDENTS = "HF003";
52
+ export declare const CASCADE_SEQUENCES = "HF004";
53
+ export interface AtomicDrop {
54
+ readonly name: string;
55
+ readonly oid: number;
56
+ readonly owner: string;
57
+ readonly cascade: boolean;
58
+ }
59
+ /** The whole atomic drop: lock → re-verify → refuse or drop. Pure text, no client. */
60
+ export declare const buildAtomicDropSql: (drop: AtomicDrop) => string;
61
+ /** The server's SQLSTATE on a failed statement, whichever transport raised it. */
62
+ export declare const sqlStateOf: (error: SqlError) => string | undefined;
63
+ /** The dependents COUNT out of an `HF003` error. An unreadable message still refuses: it
64
+ * answers 1, never 0 — the refusal is the fail-closed answer. */
65
+ export declare const dependentsCount: (error: SqlError) => number;
66
+ //# sourceMappingURL=schema-drop-sql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-drop-sql.d.ts","sourceRoot":"","sources":["../../src/postgres/schema-drop-sql.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAK7D,eAAO,MAAM,gBAAgB,UAAU,CAAC;AACxC,eAAO,MAAM,SAAS,UAAU,CAAC;AACjC,eAAO,MAAM,uBAAuB,UAAU,CAAC;AAC/C,eAAO,MAAM,iBAAiB,UAAU,CAAC;AAKzC,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,sFAAsF;AACtF,eAAO,MAAM,kBAAkB,SAAU,UAAU,KAAG,MAiDrD,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,UAAU,UAAW,QAAQ,KAAG,MAAM,GAAG,SAKrD,CAAC;AAEF;iEACiE;AACjE,eAAO,MAAM,eAAe,UAAW,QAAQ,KAAG,MAKjD,CAAC"}
@@ -1,3 +1,4 @@
1
+ import type { PostgresSchemaCascadeSequencesRefused } from './schema-sequence-error.ts';
1
2
  declare const PostgresSchemaNameRefused_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
2
3
  readonly _tag: "PostgresSchemaNameRefused";
3
4
  } & Readonly<A>;
@@ -65,6 +66,23 @@ export declare class PostgresSchemaDropNotEmptyError extends PostgresSchemaDropN
65
66
  }> {
66
67
  get message(): string;
67
68
  }
69
+ declare const PostgresSchemaCascadeCrossSchemaRefused_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
70
+ readonly _tag: "PostgresSchemaCascadeCrossSchemaRefused";
71
+ } & Readonly<A>;
72
+ /**
73
+ * `cascade: true` refused: `DROP SCHEMA … CASCADE` would also drop objects that live in OTHER
74
+ * schemas because they depend on something in this one (a view, a foreign key or a trigger
75
+ * another stack owns). The refusal carries the COUNT only — never an object name, so the error
76
+ * cannot disclose another owner's catalog. Nothing was dropped: move or drop those dependents
77
+ * deliberately, or empty this schema by hand and declare `cascade: false`.
78
+ */
79
+ export declare class PostgresSchemaCascadeCrossSchemaRefused extends PostgresSchemaCascadeCrossSchemaRefused_base<{
80
+ readonly schema: string;
81
+ /** How many dependent objects live outside this schema (at least one when raised). */
82
+ readonly dependents: number;
83
+ }> {
84
+ get message(): string;
85
+ }
68
86
  declare const PostgresSchemaWrongDatabase_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
69
87
  readonly _tag: "PostgresSchemaWrongDatabase";
70
88
  } & Readonly<A>;
@@ -134,6 +152,6 @@ export declare class PostgresSchemaIdentityRefused extends PostgresSchemaIdentit
134
152
  }> {
135
153
  get message(): string;
136
154
  }
137
- export type PostgresSchemaError = PostgresSchemaExistsRefused | PostgresSchemaIdentityRefused | PostgresSchemaNameRefused | PostgresSchemaRenameRefused | PostgresSchemaOwnerMissing | PostgresSchemaDrift | PostgresSchemaCreateVanished | PostgresSchemaDropNotEmptyError | PostgresSchemaDeleteForeignRefused | PostgresSchemaWrongDatabase | PostgresSchemaDatabaseRefused;
155
+ export type PostgresSchemaError = PostgresSchemaExistsRefused | PostgresSchemaIdentityRefused | PostgresSchemaNameRefused | PostgresSchemaRenameRefused | PostgresSchemaOwnerMissing | PostgresSchemaDrift | PostgresSchemaCreateVanished | PostgresSchemaDropNotEmptyError | PostgresSchemaCascadeCrossSchemaRefused | PostgresSchemaCascadeSequencesRefused | PostgresSchemaDeleteForeignRefused | PostgresSchemaWrongDatabase | PostgresSchemaDatabaseRefused;
138
156
  export {};
139
157
  //# sourceMappingURL=schema-errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-errors.d.ts","sourceRoot":"","sources":["../../src/postgres/schema-errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema-errors.d.ts","sourceRoot":"","sources":["../../src/postgres/schema-errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ declare const PostgresSchemaCascadeSequencesRefused_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
2
+ readonly _tag: "PostgresSchemaCascadeSequencesRefused";
3
+ } & Readonly<A>;
4
+ /**
5
+ * `cascade: true` on a schema that holds a SEQUENCE is refused (`HF004`, `schema-drop-sql.ts`).
6
+ *
7
+ * ⛔ A sequence cannot be locked by `LOCK TABLE`, so the drop's closure proof has a hole there: a
8
+ * concurrent, uncommitted `CREATE VIEW other.v AS SELECT last_value FROM ours.seq` is invisible
9
+ * to the scan, and when it commits while the drop waits on the sequence, PostgreSQL's deletion
10
+ * cascades into `other.v` (Codex read of PR 357, 2026-10-06). Serial and identity columns each
11
+ * own a sequence, so such a schema cannot be cascade-dropped by this provider.
12
+ * The message carries a COUNT only. Nothing was dropped: drop the schema's contents deliberately
13
+ * (the sequences included), then declare `cascade: false`.
14
+ */
15
+ export declare class PostgresSchemaCascadeSequencesRefused extends PostgresSchemaCascadeSequencesRefused_base<{
16
+ readonly schema: string;
17
+ /** How many sequences the schema holds (at least one when raised). */
18
+ readonly sequences: number;
19
+ }> {
20
+ get message(): string;
21
+ }
22
+ /** The sequence COUNT out of an `HF004` error; unreadable still refuses (1, never 0). */
23
+ export declare const sequencesCount: (error: {
24
+ readonly reason: {
25
+ readonly cause?: unknown;
26
+ };
27
+ }) => number;
28
+ export {};
29
+ //# sourceMappingURL=schema-sequence-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-sequence-error.d.ts","sourceRoot":"","sources":["../../src/postgres/schema-sequence-error.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;;GAUG;AACH,qBAAa,qCAAsC,SAAQ,2CAEzD;IACA,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,sEAAsE;IACtE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,CAAC;IACA,IAAa,OAAO,IAAI,MAAM,CAO7B;CACF;AAED,yFAAyF;AACzF,eAAO,MAAM,cAAc,UAAW;IACpC,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CAC/C,KAAG,MAIH,CAAC"}
@@ -27,6 +27,22 @@ export declare const selectSchema: (pg: PgExecutor, name: string) => Effect.Effe
27
27
  * family connection points at. */
28
28
  export declare const currentDatabase: (pg: PgExecutor) => Effect.Effect<string, SqlError>;
29
29
  export declare const currentUser: (pg: PgExecutor) => Effect.Effect<string, SqlError>;
30
+ /**
31
+ * "Empty" means no object of ANY kind the schema owns. Measured object kinds live in four
32
+ * catalogs: relations (tables, views, indexes, sequences — `pg_class`), functions and
33
+ * aggregates (`pg_proc`), types, domains and enums (`pg_type`), operators (`pg_operator`). A
34
+ * kind without a dedicated catalog (an extension's `extnamespace`, a collation) can still pass
35
+ * this check — and then the plain `DROP SCHEMA` answers `2BP01`, which `dropWithClient`
36
+ * classifies as the same typed refusal.
37
+ *
38
+ * ⚠️ THE FAKE (`fake-schema-sql.ts`) ROUTES THIS STATEMENT BY `AS empty` + `pg_class` — keep both
39
+ * markers in any rewrite, and keep this check matched BEFORE the plain `pg_namespace` branch
40
+ * (this SQL contains `FROM pg_catalog.pg_namespace` too, inside its `WITH`).
41
+ */
42
+ /** The four-catalog emptiness predicate over a namespace oid expression — shared by this read
43
+ * and by the atomic drop's in-transaction check (`schema-drop-sql.ts`), so the two cannot
44
+ * disagree about what "empty" means. */
45
+ export declare const emptyPredicate: (ns: string) => string;
30
46
  /** `true` when the schema holds none of the four object catalogs above (used before a
31
47
  * non-cascade `DROP SCHEMA`). */
32
48
  export declare const schemaIsEmpty: (pg: PgExecutor, name: string) => Effect.Effect<boolean, SqlError>;
@@ -1 +1 @@
1
- {"version":3,"file":"schema-sql.d.ts","sourceRoot":"","sources":["../../src/postgres/schema-sql.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAEvF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,2FAA2F;AAC3F,eAAO,MAAM,oBAAoB,UAAW,mBAAmB,KAAG,MAG9D,CAAC;AAEL,mFAAmF;AACnF,eAAO,MAAM,qBAAqB,SAAU,MAAM,WAAW,MAAM,KAAG,MACK,CAAC;AAE5E,2FAA2F;AAC3F,eAAO,MAAM,kBAAkB,SAAU,MAAM,WAAW,OAAO,KAAG,MACK,CAAC;AAW1E;4FAC4F;AAC5F,eAAO,MAAM,YAAY,OACnB,UAAU,QACR,MAAM,KACX,MAAM,CAAC,MAAM,CAAC,wBAAwB,GAAG,SAAS,EAAE,QAAQ,CACgC,CAAC;AAIhG;;kCAEkC;AAClC,eAAO,MAAM,eAAe,OAAQ,UAAU,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAM5E,CAAC;AAUJ,eAAO,MAAM,WAAW,OAAQ,UAAU,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAKxE,CAAC;AAyBJ;iCACiC;AACjC,eAAO,MAAM,aAAa,OAAQ,UAAU,QAAQ,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAIzF,CAAC;AAEJ;;;;;;;;6FAQ6F;AAC7F,eAAO,MAAM,uBAAuB,UAAW,QAAQ,KAAG,OAKzD,CAAC;AAEF,0FAA0F;AAC1F,eAAO,MAAM,sBAAsB,UAAW,QAAQ,KAAG,OAKxD,CAAC"}
1
+ {"version":3,"file":"schema-sql.d.ts","sourceRoot":"","sources":["../../src/postgres/schema-sql.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAEvF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,2FAA2F;AAC3F,eAAO,MAAM,oBAAoB,UAAW,mBAAmB,KAAG,MAG9D,CAAC;AAEL,mFAAmF;AACnF,eAAO,MAAM,qBAAqB,SAAU,MAAM,WAAW,MAAM,KAAG,MACK,CAAC;AAE5E,2FAA2F;AAC3F,eAAO,MAAM,kBAAkB,SAAU,MAAM,WAAW,OAAO,KAAG,MACK,CAAC;AAW1E;4FAC4F;AAC5F,eAAO,MAAM,YAAY,OACnB,UAAU,QACR,MAAM,KACX,MAAM,CAAC,MAAM,CAAC,wBAAwB,GAAG,SAAS,EAAE,QAAQ,CACgC,CAAC;AAIhG;;kCAEkC;AAClC,eAAO,MAAM,eAAe,OAAQ,UAAU,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAM5E,CAAC;AAUJ,eAAO,MAAM,WAAW,OAAQ,UAAU,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAKxE,CAAC;AAEJ;;;;;;;;;;;GAWG;AACH;;wCAEwC;AACxC,eAAO,MAAM,cAAc,OAAQ,MAAM,KAAG,MAQxC,CAAC;AAKL;iCACiC;AACjC,eAAO,MAAM,aAAa,OAAQ,UAAU,QAAQ,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAIzF,CAAC;AAEJ;;;;;;;;6FAQ6F;AAC7F,eAAO,MAAM,uBAAuB,UAAW,QAAQ,KAAG,OAKzD,CAAC;AAEF,0FAA0F;AAC1F,eAAO,MAAM,sBAAsB,UAAW,QAAQ,KAAG,OAKxD,CAAC"}
@@ -37,7 +37,9 @@ export declare const router: (answers: RouteAnswers) => (stdin: string) => strin
37
37
  * `answers`. The argv recording pins the `-d` database each statement ran against — the last
38
38
  * element of the argv is the `psql -d` value (`psql-executor.ts`).
39
39
  */
40
- export declare const runnerWith: (answers: (stdin: string) => string) => {
40
+ export declare const runnerWith: (answers: (stdin: string) => string,
41
+ /** The `psql` stderr a statement fails with (exit 3), or `undefined` to answer normally. */
42
+ failOn?: (stdin: string) => string | undefined) => {
41
43
  run: PsqlRunner;
42
44
  stdins: string[];
43
45
  argvs: Array<readonly string[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"schema-test-kit.d.ts","sourceRoot":"","sources":["../../src/postgres/schema-test-kit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAEvF,eAAO,MAAM,EAAE,WAAY,MAAM;;;;EAAqD,CAAC;AAEvF,6FAA6F;AAC7F,MAAM,WAAW,YAAY;IAC3B,wEAAwE;IACxE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,+FAA+F;IAC/F,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,wFAAwF;IACxF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,8FAA8F;AAC9F,eAAO,MAAM,KAAK,UAAW,MAAM,WAAW,YAAY,KAAG,MAAM,GAAG,SAMrE,CAAC;AAEF,yFAAyF;AACzF,eAAO,MAAM,MAAM,YAAa,YAAY,aAAa,MAAM,WAAgC,CAAC;AAEhG;;;;GAIG;AACH,eAAO,MAAM,UAAU,YACZ,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,KACjC;IAAE,GAAG,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC,SAAS,MAAM,EAAE,CAAC,CAAA;CAYtE,CAAC;AAEF;;mDAEmD;AACnD,eAAO,MAAM,UAAU,SAAU,mBAAmB,UAAU,wBAAwB;;;;;;aAM9D,KAAK;cACX,KAAK;CACrB,CAAC;AAEH,2FAA2F;AAC3F,eAAO,MAAM,QAAQ,SAAU,mBAAmB;;;;;;aAM1B,KAAK;cACX,KAAK;CACrB,CAAC"}
1
+ {"version":3,"file":"schema-test-kit.d.ts","sourceRoot":"","sources":["../../src/postgres/schema-test-kit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,KAAK,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAEvF,eAAO,MAAM,EAAE,WAAY,MAAM;;;;EAAqD,CAAC;AAEvF,6FAA6F;AAC7F,MAAM,WAAW,YAAY;IAC3B,wEAAwE;IACxE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,+FAA+F;IAC/F,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,wFAAwF;IACxF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,8FAA8F;AAC9F,eAAO,MAAM,KAAK,UAAW,MAAM,WAAW,YAAY,KAAG,MAAM,GAAG,SASrE,CAAC;AAEF,yFAAyF;AACzF,eAAO,MAAM,MAAM,YAAa,YAAY,aAAa,MAAM,WAAgC,CAAC;AAEhG;;;;GAIG;AACH,eAAO,MAAM,UAAU,YACZ,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM;AAClC,4FAA4F;SACpF,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,KAC5C;IAAE,GAAG,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC,SAAS,MAAM,EAAE,CAAC,CAAA;CAoBtE,CAAC;AAEF;;mDAEmD;AACnD,eAAO,MAAM,UAAU,SAAU,mBAAmB,UAAU,wBAAwB;;;;;;aAM9D,KAAK;cACX,KAAK;CACrB,CAAC;AAEH,2FAA2F;AAC3F,eAAO,MAAM,QAAQ,SAAU,mBAAmB;;;;;;aAM1B,KAAK;cACX,KAAK;CACrB,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * The session setup every `Postgres.*` connection runs first: `search_path = pg_catalog, pg_temp`.
3
+ *
4
+ * ⛔ AN UNPINNED SESSION READS ITS OWN CATALOGS THROUGH `search_path`. Postgres searches
5
+ * `pg_catalog` first only while the path does not NAME it (ddl.sgml 5.10.3); a role- or
6
+ * database-level `ALTER … SET search_path = public, pg_catalog` (or a path naming any schema
7
+ * another role may create in) puts a writable schema ahead of it, and a `public.pg_namespace`
8
+ * TABLE then answers the delete proof's `oid`/`owner` re-read. Found by the Opus read of PR 334
9
+ * (2026-10-02). The pin makes the order ours whatever the role, database or server says; the SQL
10
+ * builders ALSO write `pg_catalog.<name>` (`catalog-qualified.test.ts` greps for it), so no
11
+ * single layer is the whole defence.
12
+ * ★ `pg_temp` goes LAST on purpose: unnamed, it is searched FIRST for relations.
13
+ * ★ TWO TRANSPORTS, TWO MECHANISMS. The runner path prefixes the stdin script: `psql` argv is
14
+ * the consumer's to join into a remote command, and a value with a space would split. The
15
+ * socket path pins the ONE connection an operation reserves, because the driver's startup
16
+ * message carries user, database and application_name only (`PgConnection.ts`, 4.0.0-rc.115)
17
+ * and a pool hands each statement a different, unpinned connection.
18
+ */
19
+ import type { PgClient } from '@effect/sql-pg/PgClient';
20
+ import * as Effect from 'effect/Effect';
21
+ import type * as Scope from 'effect/Scope';
22
+ import type { SqlError } from 'effect/unstable/sql/SqlError';
23
+ import type { PgExecutor } from './database-sql.ts';
24
+ export declare const PIN_SEARCH_PATH_SQL = "SET search_path = pg_catalog, pg_temp";
25
+ /** The runner path's script prefix. */
26
+ export declare const PIN_SCRIPT_PREFIX = "SET search_path = pg_catalog, pg_temp;\n";
27
+ /** A runner stdin without its pin — for tests that assert the statement that follows it. */
28
+ export declare const stripPin: (stdin: string) => string;
29
+ /**
30
+ * A `PgExecutor` over ONE reserved, pinned connection, for the life of the surrounding scope.
31
+ * `unsafe` runs on it (the client routes any statement under `transactionService` to that
32
+ * connection, so spans and error classification stay the driver's); `transaction` is a plain
33
+ * `BEGIN` … `COMMIT` on it — `withTransaction` would open a SAVEPOINT, because the service is
34
+ * already provided. A failure rolls back, and the pin is re-asserted by the next operation's own
35
+ * reservation, never assumed to survive one.
36
+ */
37
+ export declare const pinnedSocketExecutor: (pg: PgClient) => Effect.Effect<PgExecutor, SqlError, Scope.Scope>;
38
+ //# sourceMappingURL=search-path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-path.d.ts","sourceRoot":"","sources":["../../src/postgres/search-path.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,eAAO,MAAM,mBAAmB,0CAA0C,CAAC;AAE3E,uCAAuC;AACvC,eAAO,MAAM,iBAAiB,6CAA8B,CAAC;AAE7D,4FAA4F;AAC5F,eAAO,MAAM,QAAQ,UAAW,MAAM,KAAG,MAC4C,CAAC;AAEtF;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,OAC3B,QAAQ,KACX,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,CAkB9C,CAAC"}
@@ -15,5 +15,5 @@ export declare const PROXMOX_CONSTRAINTS: Readonly<Record<string, EndpointConstr
15
15
  * ★ A DIGEST OF THE DATA, NOT OF THE FILE TEXT, so reformatting is not a stale generation while
16
16
  * changing a 128 to a 129 by hand is. `tests/schema-manifest.test.ts` recomputes it.
17
17
  */
18
- export declare const PROXMOX_CONSTRAINTS_DIGEST = "8b6745a471839974";
18
+ export declare const PROXMOX_CONSTRAINTS_DIGEST = "cbf63b7bac0500ef";
19
19
  //# sourceMappingURL=index.d.ts.map
@@ -6,7 +6,7 @@
6
6
  * sha256 9def8f13611184ee, read on a PVE cluster node from
7
7
  * /usr/share/pve-docs/api-viewer/apidoc.js
8
8
  *
9
- * 59 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
9
+ * 60 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
10
10
  * this package writes to, named in its own source. Every other vendor write endpoint is UNTABLED
11
11
  * and therefore unchecked at plan time.
12
12
  *
@@ -6,7 +6,7 @@
6
6
  * sha256 9def8f13611184ee, read on a PVE cluster node from
7
7
  * /usr/share/pve-docs/api-viewer/apidoc.js
8
8
  *
9
- * 59 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
9
+ * 60 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
10
10
  * this package writes to, named in its own source. Every other vendor write endpoint is UNTABLED
11
11
  * and therefore unchecked at plan time.
12
12
  *
@@ -6,7 +6,7 @@
6
6
  * sha256 9def8f13611184ee, read on a PVE cluster node from
7
7
  * /usr/share/pve-docs/api-viewer/apidoc.js
8
8
  *
9
- * 59 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
9
+ * 60 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
10
10
  * this package writes to, named in its own source. Every other vendor write endpoint is UNTABLED
11
11
  * and therefore unchecked at plan time.
12
12
  *
@@ -6,7 +6,7 @@
6
6
  * sha256 9def8f13611184ee, read on a PVE cluster node from
7
7
  * /usr/share/pve-docs/api-viewer/apidoc.js
8
8
  *
9
- * 59 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
9
+ * 60 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
10
10
  * this package writes to, named in its own source. Every other vendor write endpoint is UNTABLED
11
11
  * and therefore unchecked at plan time.
12
12
  *
@@ -6,7 +6,7 @@
6
6
  * sha256 9def8f13611184ee, read on a PVE cluster node from
7
7
  * /usr/share/pve-docs/api-viewer/apidoc.js
8
8
  *
9
- * 59 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
9
+ * 60 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
10
10
  * this package writes to, named in its own source. Every other vendor write endpoint is UNTABLED
11
11
  * and therefore unchecked at plan time.
12
12
  *
@@ -6,7 +6,7 @@
6
6
  * sha256 9def8f13611184ee, read on a PVE cluster node from
7
7
  * /usr/share/pve-docs/api-viewer/apidoc.js
8
8
  *
9
- * 59 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
9
+ * 60 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
10
10
  * this package writes to, named in its own source. Every other vendor write endpoint is UNTABLED
11
11
  * and therefore unchecked at plan time.
12
12
  *
@@ -6,7 +6,7 @@
6
6
  * sha256 9def8f13611184ee, read on a PVE cluster node from
7
7
  * /usr/share/pve-docs/api-viewer/apidoc.js
8
8
  *
9
- * 59 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
9
+ * 60 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
10
10
  * this package writes to, named in its own source. Every other vendor write endpoint is UNTABLED
11
11
  * and therefore unchecked at plan time.
12
12
  *
@@ -6,7 +6,7 @@
6
6
  * sha256 9def8f13611184ee, read on a PVE cluster node from
7
7
  * /usr/share/pve-docs/api-viewer/apidoc.js
8
8
  *
9
- * 59 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
9
+ * 60 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
10
10
  * this package writes to, named in its own source. Every other vendor write endpoint is UNTABLED
11
11
  * and therefore unchecked at plan time.
12
12
  *
@@ -6,7 +6,7 @@
6
6
  * sha256 9def8f13611184ee, read on a PVE cluster node from
7
7
  * /usr/share/pve-docs/api-viewer/apidoc.js
8
8
  *
9
- * 59 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
9
+ * 60 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
10
10
  * this package writes to, named in its own source. Every other vendor write endpoint is UNTABLED
11
11
  * and therefore unchecked at plan time.
12
12
  *
@@ -6,7 +6,7 @@
6
6
  * sha256 9def8f13611184ee, read on a PVE cluster node from
7
7
  * /usr/share/pve-docs/api-viewer/apidoc.js
8
8
  *
9
- * 59 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
9
+ * 60 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
10
10
  * this package writes to, named in its own source. Every other vendor write endpoint is UNTABLED
11
11
  * and therefore unchecked at plan time.
12
12
  *
@@ -6,7 +6,7 @@
6
6
  * sha256 9def8f13611184ee, read on a PVE cluster node from
7
7
  * /usr/share/pve-docs/api-viewer/apidoc.js
8
8
  *
9
- * 59 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
9
+ * 60 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
10
10
  * this package writes to, named in its own source. Every other vendor write endpoint is UNTABLED
11
11
  * and therefore unchecked at plan time.
12
12
  *
@@ -6,7 +6,7 @@
6
6
  * sha256 9def8f13611184ee, read on a PVE cluster node from
7
7
  * /usr/share/pve-docs/api-viewer/apidoc.js
8
8
  *
9
- * 59 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
9
+ * 60 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
10
10
  * this package writes to, named in its own source. Every other vendor write endpoint is UNTABLED
11
11
  * and therefore unchecked at plan time.
12
12
  *
@@ -6,7 +6,7 @@
6
6
  * sha256 9def8f13611184ee, read on a PVE cluster node from
7
7
  * /usr/share/pve-docs/api-viewer/apidoc.js
8
8
  *
9
- * 59 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
9
+ * 60 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
10
10
  * this package writes to, named in its own source. Every other vendor write endpoint is UNTABLED
11
11
  * and therefore unchecked at plan time.
12
12
  *
@@ -6,7 +6,7 @@
6
6
  * sha256 9def8f13611184ee, read on a PVE cluster node from
7
7
  * /usr/share/pve-docs/api-viewer/apidoc.js
8
8
  *
9
- * 59 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
9
+ * 60 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
10
10
  * this package writes to, named in its own source. Every other vendor write endpoint is UNTABLED
11
11
  * and therefore unchecked at plan time.
12
12
  *
@@ -1 +1 @@
1
- {"version":3,"file":"pve-nodes-qemu.d.ts","sourceRoot":"","sources":["../../../../src/proxmox/generated/constraints/pve-nodes-qemu.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEhE,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAsGpF,CAAC"}
1
+ {"version":3,"file":"pve-nodes-qemu.d.ts","sourceRoot":"","sources":["../../../../src/proxmox/generated/constraints/pve-nodes-qemu.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEhE,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CA2GpF,CAAC"}
@@ -6,7 +6,7 @@
6
6
  * sha256 9def8f13611184ee, read on a PVE cluster node from
7
7
  * /usr/share/pve-docs/api-viewer/apidoc.js
8
8
  *
9
- * 59 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
9
+ * 60 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
10
10
  * this package writes to, named in its own source. Every other vendor write endpoint is UNTABLED
11
11
  * and therefore unchecked at plan time.
12
12
  *
@@ -6,7 +6,7 @@
6
6
  * sha256 9def8f13611184ee, read on a PVE cluster node from
7
7
  * /usr/share/pve-docs/api-viewer/apidoc.js
8
8
  *
9
- * 59 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
9
+ * 60 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
10
10
  * this package writes to, named in its own source. Every other vendor write endpoint is UNTABLED
11
11
  * and therefore unchecked at plan time.
12
12
  *
@@ -6,7 +6,7 @@
6
6
  * sha256 9def8f13611184ee, read on a PVE cluster node from
7
7
  * /usr/share/pve-docs/api-viewer/apidoc.js
8
8
  *
9
- * 59 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
9
+ * 60 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
10
10
  * this package writes to, named in its own source. Every other vendor write endpoint is UNTABLED
11
11
  * and therefore unchecked at plan time.
12
12
  *
@@ -85,6 +85,7 @@ export { PROVISION_DEFAULTS, PROVISION_PRIVILEGES, type CoreProvisionNames, type
85
85
  export { provisionBootstrap } from './provision-bootstrap.ts';
86
86
  export { type DeclareProvisionOptions, declareProvisionBaseline } from './provision-declare.ts';
87
87
  export { ProxmoxVm, ProxmoxVmProvider, type VmAttributes, type VmProps } from './qemu.ts';
88
+ export { QemuDiskResizeRefused } from './qemu-size.ts';
88
89
  export { ProxmoxStorageDownload, ProxmoxStorageDownloadProvider, type StorageDownloadAttributes, type StorageDownloadProps, } from './storage-download.ts';
89
90
  export { ProxmoxReplicationJobProvider } from './replication-job.ts';
90
91
  export { ProxmoxRole, ProxmoxRoleProvider } from './role.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/proxmox/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/proxmox/index.ts"],"names":[],"mappings":"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"}