pipework 0.212.0 → 0.243.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.
Files changed (318) hide show
  1. package/CHANGELOG.md +140 -0
  2. package/REFERENCE.md +94 -2
  3. package/dist/REFERENCE.md +472 -16
  4. package/dist/cli/commands/openapi.d.ts +8 -0
  5. package/dist/cli/commands/openapi.d.ts.map +1 -0
  6. package/dist/cli/commands/openapi.js +49 -0
  7. package/dist/cli/commands/openapi.js.map +1 -0
  8. package/dist/cli/commands/serve.d.ts +8 -0
  9. package/dist/cli/commands/serve.d.ts.map +1 -1
  10. package/dist/cli/commands/serve.js +22 -3
  11. package/dist/cli/commands/serve.js.map +1 -1
  12. package/dist/cli/dev-bootstrap.js +6 -1
  13. package/dist/cli/dev-bootstrap.js.map +1 -1
  14. package/dist/cli/index.d.ts.map +1 -1
  15. package/dist/cli/index.js +15 -1
  16. package/dist/cli/index.js.map +1 -1
  17. package/dist/cli/surface-kinds.d.ts +5 -0
  18. package/dist/cli/surface-kinds.d.ts.map +1 -0
  19. package/dist/cli/surface-kinds.js +15 -0
  20. package/dist/cli/surface-kinds.js.map +1 -0
  21. package/dist/core/config/load.d.ts +1 -0
  22. package/dist/core/config/load.d.ts.map +1 -1
  23. package/dist/core/config/load.js +1 -0
  24. package/dist/core/config/load.js.map +1 -1
  25. package/dist/core/config/namespace.d.ts +6 -0
  26. package/dist/core/config/namespace.d.ts.map +1 -1
  27. package/dist/core/config/schema.d.ts +15 -0
  28. package/dist/core/config/schema.d.ts.map +1 -1
  29. package/dist/core/config/schema.js +11 -2
  30. package/dist/core/config/schema.js.map +1 -1
  31. package/dist/core/lifecycle/health.js +2 -2
  32. package/dist/core/lifecycle/health.js.map +1 -1
  33. package/dist/core/lifecycle/types.d.ts +2 -0
  34. package/dist/core/lifecycle/types.d.ts.map +1 -1
  35. package/dist/core/pipework.d.ts +14 -1
  36. package/dist/core/pipework.d.ts.map +1 -1
  37. package/dist/core/pipework.js +18 -2
  38. package/dist/core/pipework.js.map +1 -1
  39. package/dist/core/surface/http.d.ts +3 -0
  40. package/dist/core/surface/http.d.ts.map +1 -1
  41. package/dist/core/surface/http.js +27 -8
  42. package/dist/core/surface/http.js.map +1 -1
  43. package/dist/core/surface/start.d.ts.map +1 -1
  44. package/dist/core/surface/start.js +19 -3
  45. package/dist/core/surface/start.js.map +1 -1
  46. package/dist/core/surface/types.d.ts +8 -0
  47. package/dist/core/surface/types.d.ts.map +1 -1
  48. package/dist/data/db/filter.d.ts +3 -0
  49. package/dist/data/db/filter.d.ts.map +1 -1
  50. package/dist/data/db/filter.js +3 -0
  51. package/dist/data/db/filter.js.map +1 -1
  52. package/dist/data/db/in-list.d.ts +15 -0
  53. package/dist/data/db/in-list.d.ts.map +1 -0
  54. package/dist/data/db/in-list.js +51 -0
  55. package/dist/data/db/in-list.js.map +1 -0
  56. package/dist/data/db/namespace.d.ts +2 -0
  57. package/dist/data/db/namespace.d.ts.map +1 -1
  58. package/dist/data/db/pool.d.ts +1 -1
  59. package/dist/data/db/pool.d.ts.map +1 -1
  60. package/dist/data/db/pool.js +4 -2
  61. package/dist/data/db/pool.js.map +1 -1
  62. package/dist/data/db/reservation.d.ts +40 -0
  63. package/dist/data/db/reservation.d.ts.map +1 -0
  64. package/dist/data/db/reservation.js +108 -0
  65. package/dist/data/db/reservation.js.map +1 -0
  66. package/dist/data/domain/build-table.js +32 -1
  67. package/dist/data/domain/build-table.js.map +1 -1
  68. package/dist/data/domain/index.d.ts +2 -1
  69. package/dist/data/domain/index.d.ts.map +1 -1
  70. package/dist/data/domain/types.d.ts +9 -1
  71. package/dist/data/domain/types.d.ts.map +1 -1
  72. package/dist/data/domain/types.js.map +1 -1
  73. package/dist/data/migrate/apply.d.ts +14 -0
  74. package/dist/data/migrate/apply.d.ts.map +1 -1
  75. package/dist/data/migrate/apply.js +13 -13
  76. package/dist/data/migrate/apply.js.map +1 -1
  77. package/dist/data/migrate/check.d.ts.map +1 -1
  78. package/dist/data/migrate/check.js +3 -6
  79. package/dist/data/migrate/check.js.map +1 -1
  80. package/dist/data/migrate/diff.d.ts +16 -0
  81. package/dist/data/migrate/diff.d.ts.map +1 -1
  82. package/dist/data/migrate/diff.js +44 -4
  83. package/dist/data/migrate/diff.js.map +1 -1
  84. package/dist/data/migrate/generate.d.ts +1 -1
  85. package/dist/data/migrate/generate.d.ts.map +1 -1
  86. package/dist/data/migrate/generate.js +19 -51
  87. package/dist/data/migrate/generate.js.map +1 -1
  88. package/dist/data/migrate/history.d.ts +36 -0
  89. package/dist/data/migrate/history.d.ts.map +1 -0
  90. package/dist/data/migrate/history.js +185 -0
  91. package/dist/data/migrate/history.js.map +1 -0
  92. package/dist/data/migrate/internal-definitions.d.ts.map +1 -1
  93. package/dist/data/migrate/internal-definitions.js +22 -1
  94. package/dist/data/migrate/internal-definitions.js.map +1 -1
  95. package/dist/data/migrate/provision-framework.d.ts +2 -0
  96. package/dist/data/migrate/provision-framework.d.ts.map +1 -1
  97. package/dist/data/migrate/provision-framework.js +17 -5
  98. package/dist/data/migrate/provision-framework.js.map +1 -1
  99. package/dist/data/migrate/snapshot.d.ts +4 -0
  100. package/dist/data/migrate/snapshot.d.ts.map +1 -1
  101. package/dist/data/migrate/snapshot.js +2 -0
  102. package/dist/data/migrate/snapshot.js.map +1 -1
  103. package/dist/data/migrate/sql-emit.js +66 -12
  104. package/dist/data/migrate/sql-emit.js.map +1 -1
  105. package/dist/data/query/pg-core/foreign-keys.d.ts +5 -0
  106. package/dist/data/query/pg-core/foreign-keys.d.ts.map +1 -1
  107. package/dist/data/query/pg-core/foreign-keys.js +9 -0
  108. package/dist/data/query/pg-core/foreign-keys.js.map +1 -1
  109. package/dist/data/query/pg-core/indexes.d.ts +5 -0
  110. package/dist/data/query/pg-core/indexes.d.ts.map +1 -1
  111. package/dist/data/query/pg-core/indexes.js +7 -0
  112. package/dist/data/query/pg-core/indexes.js.map +1 -1
  113. package/dist/data/schema/json-schema.js +29 -1
  114. package/dist/data/schema/json-schema.js.map +1 -1
  115. package/dist/data/schema/types.d.ts +2 -2
  116. package/dist/data/schema/types.d.ts.map +1 -1
  117. package/dist/index.d.ts +18 -9
  118. package/dist/index.d.ts.map +1 -1
  119. package/dist/index.js +5 -1
  120. package/dist/index.js.map +1 -1
  121. package/dist/infra/alerts/handle.d.ts +33 -5
  122. package/dist/infra/alerts/handle.d.ts.map +1 -1
  123. package/dist/infra/alerts/handle.js +56 -12
  124. package/dist/infra/alerts/handle.js.map +1 -1
  125. package/dist/infra/alerts/http.d.ts +2 -2
  126. package/dist/infra/alerts/http.d.ts.map +1 -1
  127. package/dist/infra/alerts/http.js +21 -3
  128. package/dist/infra/alerts/http.js.map +1 -1
  129. package/dist/infra/alerts/index.d.ts +1 -1
  130. package/dist/infra/alerts/index.d.ts.map +1 -1
  131. package/dist/infra/alerts/schema.d.ts +5 -0
  132. package/dist/infra/alerts/schema.d.ts.map +1 -1
  133. package/dist/infra/alerts/schema.js +1 -0
  134. package/dist/infra/alerts/schema.js.map +1 -1
  135. package/dist/infra/crawl/audit.d.ts +6 -0
  136. package/dist/infra/crawl/audit.d.ts.map +1 -0
  137. package/dist/infra/crawl/audit.js +38 -0
  138. package/dist/infra/crawl/audit.js.map +1 -0
  139. package/dist/infra/crawl/errors.d.ts +14 -0
  140. package/dist/infra/crawl/errors.d.ts.map +1 -0
  141. package/dist/infra/crawl/errors.js +22 -0
  142. package/dist/infra/crawl/errors.js.map +1 -0
  143. package/dist/infra/crawl/handle.d.ts +149 -0
  144. package/dist/infra/crawl/handle.d.ts.map +1 -0
  145. package/dist/infra/crawl/handle.js +550 -0
  146. package/dist/infra/crawl/handle.js.map +1 -0
  147. package/dist/infra/crawl/index.d.ts +7 -0
  148. package/dist/infra/crawl/index.d.ts.map +1 -0
  149. package/dist/infra/crawl/index.js +5 -0
  150. package/dist/infra/crawl/index.js.map +1 -0
  151. package/dist/infra/crawl/links.d.ts +9 -0
  152. package/dist/infra/crawl/links.d.ts.map +1 -0
  153. package/dist/infra/crawl/links.js +194 -0
  154. package/dist/infra/crawl/links.js.map +1 -0
  155. package/dist/infra/crawl/namespace.d.ts +36 -0
  156. package/dist/infra/crawl/namespace.d.ts.map +1 -0
  157. package/dist/infra/crawl/namespace.js +36 -0
  158. package/dist/infra/crawl/namespace.js.map +1 -0
  159. package/dist/infra/crawl/robots.d.ts +16 -0
  160. package/dist/infra/crawl/robots.d.ts.map +1 -0
  161. package/dist/infra/crawl/robots.js +98 -0
  162. package/dist/infra/crawl/robots.js.map +1 -0
  163. package/dist/infra/crawl/schema.d.ts +222 -0
  164. package/dist/infra/crawl/schema.d.ts.map +1 -0
  165. package/dist/infra/crawl/schema.js +84 -0
  166. package/dist/infra/crawl/schema.js.map +1 -0
  167. package/dist/infra/credit-line/handle.d.ts +250 -0
  168. package/dist/infra/credit-line/handle.d.ts.map +1 -0
  169. package/dist/infra/credit-line/handle.js +618 -0
  170. package/dist/infra/credit-line/handle.js.map +1 -0
  171. package/dist/infra/credit-line/index.d.ts +3 -0
  172. package/dist/infra/credit-line/index.d.ts.map +1 -0
  173. package/dist/infra/credit-line/index.js +2 -0
  174. package/dist/infra/credit-line/index.js.map +1 -0
  175. package/dist/infra/credit-line/namespace.d.ts +7 -0
  176. package/dist/infra/credit-line/namespace.d.ts.map +1 -0
  177. package/dist/infra/credit-line/namespace.js +7 -0
  178. package/dist/infra/credit-line/namespace.js.map +1 -0
  179. package/dist/infra/credit-line/schema.d.ts +194 -0
  180. package/dist/infra/credit-line/schema.d.ts.map +1 -0
  181. package/dist/infra/credit-line/schema.js +89 -0
  182. package/dist/infra/credit-line/schema.js.map +1 -0
  183. package/dist/infra/email/inbound.d.ts +14 -2
  184. package/dist/infra/email/inbound.d.ts.map +1 -1
  185. package/dist/infra/email/inbound.js +5 -1
  186. package/dist/infra/email/inbound.js.map +1 -1
  187. package/dist/infra/email/index.d.ts +2 -2
  188. package/dist/infra/email/index.d.ts.map +1 -1
  189. package/dist/infra/email/index.js.map +1 -1
  190. package/dist/infra/email/mail.d.ts +43 -5
  191. package/dist/infra/email/mail.d.ts.map +1 -1
  192. package/dist/infra/email/mail.js +124 -9
  193. package/dist/infra/email/mail.js.map +1 -1
  194. package/dist/infra/email/mime.d.ts +6 -0
  195. package/dist/infra/email/mime.d.ts.map +1 -1
  196. package/dist/infra/email/mime.js +10 -2
  197. package/dist/infra/email/mime.js.map +1 -1
  198. package/dist/infra/email/schema.d.ts +17 -3
  199. package/dist/infra/email/schema.d.ts.map +1 -1
  200. package/dist/infra/email/schema.js +15 -4
  201. package/dist/infra/email/schema.js.map +1 -1
  202. package/dist/infra/email/sns.js +2 -2
  203. package/dist/infra/email/sns.js.map +1 -1
  204. package/dist/infra/email/unsubscribe.d.ts +13 -0
  205. package/dist/infra/email/unsubscribe.d.ts.map +1 -0
  206. package/dist/infra/email/unsubscribe.js +43 -0
  207. package/dist/infra/email/unsubscribe.js.map +1 -0
  208. package/dist/infra/fetch/handle.d.ts +20 -1
  209. package/dist/infra/fetch/handle.d.ts.map +1 -1
  210. package/dist/infra/fetch/handle.js +60 -28
  211. package/dist/infra/fetch/handle.js.map +1 -1
  212. package/dist/infra/fetch/index.d.ts +2 -2
  213. package/dist/infra/fetch/index.d.ts.map +1 -1
  214. package/dist/infra/fetch/index.js +1 -1
  215. package/dist/infra/fetch/index.js.map +1 -1
  216. package/dist/infra/fetch/namespace.d.ts +20 -2
  217. package/dist/infra/fetch/namespace.d.ts.map +1 -1
  218. package/dist/infra/fetch/namespace.js +20 -2
  219. package/dist/infra/fetch/namespace.js.map +1 -1
  220. package/dist/infra/join-requests/handle.d.ts +86 -0
  221. package/dist/infra/join-requests/handle.d.ts.map +1 -0
  222. package/dist/infra/join-requests/handle.js +233 -0
  223. package/dist/infra/join-requests/handle.js.map +1 -0
  224. package/dist/infra/join-requests/index.d.ts +3 -0
  225. package/dist/infra/join-requests/index.d.ts.map +1 -0
  226. package/dist/infra/join-requests/index.js +2 -0
  227. package/dist/infra/join-requests/index.js.map +1 -0
  228. package/dist/infra/join-requests/namespace.d.ts +7 -0
  229. package/dist/infra/join-requests/namespace.d.ts.map +1 -0
  230. package/dist/infra/join-requests/namespace.js +7 -0
  231. package/dist/infra/join-requests/namespace.js.map +1 -0
  232. package/dist/infra/join-requests/schema.d.ts +58 -0
  233. package/dist/infra/join-requests/schema.d.ts.map +1 -0
  234. package/dist/infra/join-requests/schema.js +31 -0
  235. package/dist/infra/join-requests/schema.js.map +1 -0
  236. package/dist/infra/outbox/core.d.ts +9 -0
  237. package/dist/infra/outbox/core.d.ts.map +1 -1
  238. package/dist/infra/outbox/core.js +14 -0
  239. package/dist/infra/outbox/core.js.map +1 -1
  240. package/dist/infra/support/handle.d.ts +43 -0
  241. package/dist/infra/support/handle.d.ts.map +1 -1
  242. package/dist/infra/support/handle.js +35 -7
  243. package/dist/infra/support/handle.js.map +1 -1
  244. package/dist/infra/support/http.d.ts +28 -0
  245. package/dist/infra/support/http.d.ts.map +1 -0
  246. package/dist/infra/support/http.js +217 -0
  247. package/dist/infra/support/http.js.map +1 -0
  248. package/dist/infra/support/index.d.ts +2 -0
  249. package/dist/infra/support/index.d.ts.map +1 -1
  250. package/dist/infra/support/index.js +1 -0
  251. package/dist/infra/support/index.js.map +1 -1
  252. package/dist/infra/support/namespace.d.ts +3 -0
  253. package/dist/infra/support/namespace.d.ts.map +1 -1
  254. package/dist/infra/support/namespace.js +3 -0
  255. package/dist/infra/support/namespace.js.map +1 -1
  256. package/dist/infra/support/schema.d.ts +4 -4
  257. package/dist/infra/webhook/outbound.d.ts +16 -0
  258. package/dist/infra/webhook/outbound.d.ts.map +1 -1
  259. package/dist/infra/webhook/outbound.js +78 -27
  260. package/dist/infra/webhook/outbound.js.map +1 -1
  261. package/dist/request/di/builder.d.ts +24 -1
  262. package/dist/request/di/builder.d.ts.map +1 -1
  263. package/dist/request/di/builder.js +35 -0
  264. package/dist/request/di/builder.js.map +1 -1
  265. package/dist/request/di/types.d.ts +30 -0
  266. package/dist/request/di/types.d.ts.map +1 -1
  267. package/dist/request/http/server.d.ts.map +1 -1
  268. package/dist/request/http/server.js +111 -20
  269. package/dist/request/http/server.js.map +1 -1
  270. package/dist/test/auto-setup.js +2 -2
  271. package/dist/test/auto-setup.js.map +1 -1
  272. package/dist/test/crawl-fixture.d.ts +53 -0
  273. package/dist/test/crawl-fixture.d.ts.map +1 -0
  274. package/dist/test/crawl-fixture.js +130 -0
  275. package/dist/test/crawl-fixture.js.map +1 -0
  276. package/dist/test/index.d.ts +2 -1
  277. package/dist/test/index.d.ts.map +1 -1
  278. package/dist/test/index.js +2 -1
  279. package/dist/test/index.js.map +1 -1
  280. package/dist/test/progress.d.ts +7 -1
  281. package/dist/test/progress.d.ts.map +1 -1
  282. package/dist/test/progress.js +6 -0
  283. package/dist/test/progress.js.map +1 -1
  284. package/dist/test/reap-after-run.d.ts +3 -0
  285. package/dist/test/reap-after-run.d.ts.map +1 -0
  286. package/dist/test/reap-after-run.js +29 -0
  287. package/dist/test/reap-after-run.js.map +1 -0
  288. package/dist/test/reap.d.ts +11 -2
  289. package/dist/test/reap.d.ts.map +1 -1
  290. package/dist/test/reap.js +19 -12
  291. package/dist/test/reap.js.map +1 -1
  292. package/dist/test/setup.d.ts +2 -0
  293. package/dist/test/setup.d.ts.map +1 -1
  294. package/dist/test/setup.js +97 -31
  295. package/dist/test/setup.js.map +1 -1
  296. package/dist/test/vitest-plugin.d.ts.map +1 -1
  297. package/dist/test/vitest-plugin.js +8 -1
  298. package/dist/test/vitest-plugin.js.map +1 -1
  299. package/dist/test/vitest-workspace.d.ts +1 -0
  300. package/dist/test/vitest-workspace.d.ts.map +1 -1
  301. package/dist/test/vitest-workspace.js +1 -1
  302. package/dist/test/vitest-workspace.js.map +1 -1
  303. package/dist/test/vitest.d.ts +20 -0
  304. package/dist/test/vitest.d.ts.map +1 -1
  305. package/dist/test/vitest.js +41 -1
  306. package/dist/test/vitest.js.map +1 -1
  307. package/dist/trace/partition/sync.d.ts +8 -2
  308. package/dist/trace/partition/sync.d.ts.map +1 -1
  309. package/dist/trace/partition/sync.js +6 -3
  310. package/dist/trace/partition/sync.js.map +1 -1
  311. package/dist/workspace/generate.d.ts.map +1 -1
  312. package/dist/workspace/generate.js +1 -0
  313. package/dist/workspace/generate.js.map +1 -1
  314. package/package.json +1 -1
  315. package/dist/infra/email/sigv4.d.ts +0 -24
  316. package/dist/infra/email/sigv4.d.ts.map +0 -1
  317. package/dist/infra/email/sigv4.js +0 -55
  318. package/dist/infra/email/sigv4.js.map +0 -1
@@ -0,0 +1,185 @@
1
+ import { existsSync, readFileSync, readdirSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { EMPTY_SNAPSHOT } from './snapshot.js';
4
+ const LEGACY_TAG = /^\d{4}(_|$)/;
5
+ const TIMESTAMP_TAG = /^\d{14}(_|$)/;
6
+ const MAP_KEYS = ['columns', 'indexes', 'foreignKeys', 'checks', 'uniqueConstraints', 'compositePrimaryKeys'];
7
+ function readLegacyJournal(folder) {
8
+ const path = join(folder, 'meta', '_journal.json');
9
+ if (!existsSync(path))
10
+ return null;
11
+ const journal = JSON.parse(readFileSync(path, 'utf-8'));
12
+ return journal.entries ?? [];
13
+ }
14
+ /** The folder's migrations in apply order: legacy `NNNN` tags by index, then timestamp tags by time. */
15
+ export function listMigrations(folder) {
16
+ if (!existsSync(folder))
17
+ return [];
18
+ const tags = readdirSync(folder, { withFileTypes: true })
19
+ .filter(e => e.isFile() && e.name.endsWith('.sql'))
20
+ .map(e => e.name.slice(0, -'.sql'.length));
21
+ const legacy = [];
22
+ const stamped = [];
23
+ for (const tag of tags) {
24
+ if (TIMESTAMP_TAG.test(tag))
25
+ stamped.push(tag);
26
+ else if (LEGACY_TAG.test(tag))
27
+ legacy.push(tag);
28
+ else {
29
+ throw new Error(`Migration file "${tag}.sql" in ${folder} is not named like a migration. ` +
30
+ `Expected "NNNN_name.sql" (legacy index) or "YYYYMMDDHHMMSS_name.sql" (UTC timestamp).`);
31
+ }
32
+ }
33
+ const byText = (a, b) => (a < b ? -1 : a > b ? 1 : 0);
34
+ legacy.sort((a, b) => Number(a.slice(0, 4)) - Number(b.slice(0, 4)) || byText(a, b));
35
+ stamped.sort((a, b) => byText(a.slice(0, 14), b.slice(0, 14)) || byText(a, b));
36
+ const journal = readLegacyJournal(folder);
37
+ if (journal !== null) {
38
+ for (const entry of journal) {
39
+ const path = `${folder}/${entry.tag}.sql`;
40
+ if (!existsSync(path))
41
+ throw new Error(`Missing migration file: ${path}`);
42
+ }
43
+ }
44
+ const journalWhen = new Map((journal ?? []).map(e => [e.tag, e.when]));
45
+ return [
46
+ ...legacy.map(tag => ({ tag, when: journalWhen.get(tag) ?? Number(tag.slice(0, 4)) })),
47
+ ...stamped.map(tag => ({ tag, when: timestampMillis(tag) })),
48
+ ];
49
+ }
50
+ export function timestampMillis(tag) {
51
+ const p = (from, to) => Number(tag.slice(from, to));
52
+ return Date.UTC(p(0, 4), p(4, 6) - 1, p(6, 8), p(8, 10), p(10, 12), p(12, 14));
53
+ }
54
+ export function isTimestampTag(tag) {
55
+ return TIMESTAMP_TAG.test(tag);
56
+ }
57
+ export function deltaPath(folder, tag) {
58
+ return join(folder, 'meta', `${tag}.delta.json`);
59
+ }
60
+ function stable(value) {
61
+ return JSON.stringify(value, (_key, v) => {
62
+ if (v !== null && typeof v === 'object' && !Array.isArray(v)) {
63
+ return Object.fromEntries(Object.entries(v).sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0)));
64
+ }
65
+ return v;
66
+ });
67
+ }
68
+ function same(a, b) {
69
+ return stable(a) === stable(b);
70
+ }
71
+ function diffMap(prev, next) {
72
+ const out = {};
73
+ for (const [key, value] of Object.entries(next)) {
74
+ if (!(key in prev) || !same(prev[key], value))
75
+ out[key] = value;
76
+ }
77
+ for (const key of Object.keys(prev)) {
78
+ if (!(key in next))
79
+ out[key] = null;
80
+ }
81
+ return out;
82
+ }
83
+ /** The element-level change from one snapshot to the next; only changed tables, elements and doors appear. */
84
+ export function snapshotDelta(prev, next) {
85
+ const tables = {};
86
+ for (const [key, table] of Object.entries(next.tables)) {
87
+ const before = prev.tables[key];
88
+ const empty = before === undefined;
89
+ const delta = {
90
+ name: table.name,
91
+ schema: table.schema,
92
+ partitionBy: table.partitionBy ?? null,
93
+ columns: diffMap(before?.columns ?? {}, table.columns),
94
+ indexes: diffMap(before?.indexes ?? {}, table.indexes),
95
+ foreignKeys: diffMap(before?.foreignKeys ?? {}, table.foreignKeys),
96
+ checks: diffMap(before?.checks ?? {}, table.checks),
97
+ uniqueConstraints: diffMap(before?.uniqueConstraints ?? {}, table.uniqueConstraints),
98
+ compositePrimaryKeys: diffMap(before?.compositePrimaryKeys ?? {}, table.compositePrimaryKeys),
99
+ };
100
+ const changed = empty
101
+ || before.name !== table.name
102
+ || before.schema !== table.schema
103
+ || !same(before.partitionBy ?? null, delta.partitionBy)
104
+ || MAP_KEYS.some(k => Object.keys(delta[k]).length > 0);
105
+ if (changed)
106
+ tables[key] = delta;
107
+ }
108
+ for (const key of Object.keys(prev.tables)) {
109
+ if (!(key in next.tables))
110
+ tables[key] = null;
111
+ }
112
+ const delta = { version: 'pw1-delta', tables };
113
+ if (next.doors !== undefined || prev.doors !== undefined) {
114
+ const doors = diffMap(prev.doors ?? {}, next.doors ?? {});
115
+ if (Object.keys(doors).length > 0)
116
+ delta.doors = doors;
117
+ }
118
+ return delta;
119
+ }
120
+ function applyMap(base, changes) {
121
+ const out = { ...base };
122
+ for (const [key, value] of Object.entries(changes)) {
123
+ if (value === null)
124
+ delete out[key];
125
+ else
126
+ out[key] = value;
127
+ }
128
+ return out;
129
+ }
130
+ /** `snap` with `delta` applied. Pure: the input is not modified. */
131
+ export function applyDelta(snap, delta) {
132
+ const tables = { ...snap.tables };
133
+ for (const [key, change] of Object.entries(delta.tables)) {
134
+ if (change === null) {
135
+ delete tables[key];
136
+ continue;
137
+ }
138
+ const base = tables[key];
139
+ tables[key] = {
140
+ name: change.name,
141
+ schema: change.schema,
142
+ columns: applyMap(base?.columns ?? {}, change.columns),
143
+ indexes: applyMap(base?.indexes ?? {}, change.indexes),
144
+ foreignKeys: applyMap(base?.foreignKeys ?? {}, change.foreignKeys),
145
+ checks: applyMap(base?.checks ?? {}, change.checks),
146
+ uniqueConstraints: applyMap(base?.uniqueConstraints ?? {}, change.uniqueConstraints),
147
+ compositePrimaryKeys: applyMap(base?.compositePrimaryKeys ?? {}, change.compositePrimaryKeys),
148
+ partitionBy: change.partitionBy ?? undefined,
149
+ };
150
+ }
151
+ const result = { ...snap, tables };
152
+ if (delta.doors !== undefined) {
153
+ result.doors = applyMap(snap.doors ?? {}, delta.doors);
154
+ }
155
+ return result;
156
+ }
157
+ /** The schema as of every migration in the folder: the legacy snapshot, then each timestamp migration's delta. */
158
+ export function readFoldedSnapshot(folder) {
159
+ let snap = readLegacySnapshot(folder);
160
+ for (const { tag } of listMigrations(folder)) {
161
+ if (!isTimestampTag(tag))
162
+ continue;
163
+ const path = deltaPath(folder, tag);
164
+ if (!existsSync(path)) {
165
+ throw new Error(`Missing snapshot delta ${path} for migration ${tag}.sql; the delta is written beside the migration by \`pipework generate\` and is committed with it.`);
166
+ }
167
+ snap = applyDelta(snap, JSON.parse(readFileSync(path, 'utf-8')));
168
+ }
169
+ return snap;
170
+ }
171
+ function readLegacySnapshot(folder) {
172
+ const journal = readLegacyJournal(folder);
173
+ if (journal === null || journal.length === 0)
174
+ return EMPTY_SNAPSHOT;
175
+ const last = journal[journal.length - 1];
176
+ const idx = last.idx ?? journal.length - 1;
177
+ const path = join(folder, 'meta', `${String(idx).padStart(4, '0')}_snapshot.json`);
178
+ if (!existsSync(path))
179
+ return EMPTY_SNAPSHOT;
180
+ const raw = JSON.parse(readFileSync(path, 'utf-8'));
181
+ if (raw.version === '7')
182
+ return EMPTY_SNAPSHOT;
183
+ return raw;
184
+ }
185
+ //# sourceMappingURL=history.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.js","sourceRoot":"","sources":["../../../src/data/migrate/history.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"internal-definitions.d.ts","sourceRoot":"","sources":["../../../src/data/migrate/internal-definitions.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAE5D,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE;IAAE,iBAAiB,EAAE,OAAO,CAAA;CAAE,GACtC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAuIlC"}
1
+ {"version":3,"file":"internal-definitions.d.ts","sourceRoot":"","sources":["../../../src/data/migrate/internal-definitions.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAE5D,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE;IAAE,iBAAiB,EAAE,OAAO,CAAA;CAAE,GACtC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAiKlC"}
@@ -35,6 +35,10 @@ export async function loadInternalDefinitions(blueprint, options) {
35
35
  result['__pipework_access_link_check_spent'] = accessLinkCheckSpent;
36
36
  result['__pipework_access_link_miss'] = accessLinkMiss;
37
37
  }
38
+ if (blueprint.joinRequests !== undefined) {
39
+ const { joinRequest } = await import('../../infra/join-requests/schema.js');
40
+ result['__pipework_join_request'] = joinRequest;
41
+ }
38
42
  if (blueprint.credits !== undefined) {
39
43
  const { creditGrant, creditReservation, creditDraw, creditLedger, creditAccount } = await import('../../infra/credits/schema.js');
40
44
  result['__pipework_credit_grant'] = creditGrant;
@@ -43,6 +47,15 @@ export async function loadInternalDefinitions(blueprint, options) {
43
47
  result['__pipework_credit_ledger'] = creditLedger;
44
48
  result['__pipework_credit_account'] = creditAccount;
45
49
  }
50
+ if (blueprint.creditLine !== undefined) {
51
+ const { creditLine, creditLineReservation, creditLineEntry, creditLinePayment, creditLinePaymentApplication, creditLineAuthorization, } = await import('../../infra/credit-line/schema.js');
52
+ result['__pipework_credit_line'] = creditLine;
53
+ result['__pipework_credit_line_reservation'] = creditLineReservation;
54
+ result['__pipework_credit_line_entry'] = creditLineEntry;
55
+ result['__pipework_credit_line_payment'] = creditLinePayment;
56
+ result['__pipework_credit_line_payment_application'] = creditLinePaymentApplication;
57
+ result['__pipework_credit_line_authorization'] = creditLineAuthorization;
58
+ }
46
59
  if (blueprint.quota !== undefined) {
47
60
  const { outboundQuota } = await import('../../infra/quota/schema.js');
48
61
  result['__pipework_outbound_quota'] = outboundQuota;
@@ -51,6 +64,13 @@ export async function loadInternalDefinitions(blueprint, options) {
51
64
  const { storageFile } = await import('../../infra/storage/schema.js');
52
65
  result['__pipework_storage_file'] = storageFile;
53
66
  }
67
+ if (blueprint.crawl !== undefined) {
68
+ const { crawls, crawlUrls, crawlHosts, crawlResources } = await import('../../infra/crawl/schema.js');
69
+ result['__pipework_crawl'] = crawls;
70
+ result['__pipework_crawl_url'] = crawlUrls;
71
+ result['__pipework_crawl_host'] = crawlHosts;
72
+ result['__pipework_crawl_resource'] = crawlResources;
73
+ }
54
74
  if (blueprint.alerts !== undefined) {
55
75
  const { alerts, alertOccurrences, alertDeliveries, alertSourceState, unitFaults, loopBeats, faults } = await import('../../infra/alerts/schema.js');
56
76
  result['__pipework_alerts'] = alerts;
@@ -95,10 +115,11 @@ export async function loadInternalDefinitions(blueprint, options) {
95
115
  result['__pipework_rate_limit_counts'] = rateLimitCounts;
96
116
  }
97
117
  if (blueprint.email !== undefined) {
98
- const { emailMessages, emailSuppressions, emailInbound } = await import('../../infra/email/schema.js');
118
+ const { emailMessages, emailSuppressions, emailInbound, emailUnsubscribes } = await import('../../infra/email/schema.js');
99
119
  result['__pipework_email_messages'] = emailMessages;
100
120
  result['__pipework_email_suppressions'] = emailSuppressions;
101
121
  result['__pipework_email_inbound'] = emailInbound;
122
+ result['__pipework_email_unsubscribes'] = emailUnsubscribes;
102
123
  }
103
124
  // Queue tables register at createQueue() time (worker surfaces create their
104
125
  // queue at construction, so config discovery populates the registry before
@@ -1 +1 @@
1
- {"version":3,"file":"internal-definitions.js","sourceRoot":"","sources":["../../../src/data/migrate/internal-definitions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"internal-definitions.js","sourceRoot":"","sources":["../../../src/data/migrate/internal-definitions.ts"],"names":[],"mappings":"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"}
@@ -33,5 +33,7 @@ export declare class FrameworkTableColumnError extends Error {
33
33
  export declare function provisionFrameworkTables(db: DB, blueprint: Blueprint, traceConfig: TracePartitionConfig, isDefaultDatabase: boolean, options?: {
34
34
  unlogged: boolean;
35
35
  rls?: FrameworkRls | undefined;
36
+ /** Told as each step starts; a partition reports `step` 'partition' with `i/n name` as detail. */
37
+ onProgress?: ((step: string, detail?: string) => void) | undefined;
36
38
  }): Promise<FrameworkTablesResult>;
37
39
  //# sourceMappingURL=provision-framework.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"provision-framework.d.ts","sourceRoot":"","sources":["../../../src/data/migrate/provision-framework.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAuB,KAAK,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AAS/F,OAAO,EAA4B,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEhF,MAAM,WAAW,qBAAqB;IACpC,yDAAyD;IACzD,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,6EAA6E;IAC7E,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,8BAA8B;IAC9B,iBAAiB,EAAE,MAAM,EAAE,CAAA;CAC5B;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAExE;AAED,qBAAa,yBAA0B,SAAQ,KAAK;IAClD,SAAkB,IAAI,+BAA8B;CACrD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,wBAAwB,CAC5C,EAAE,EAAE,EAAE,EACN,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,oBAAoB,EACjC,iBAAiB,EAAE,OAAO,EAC1B,OAAO,GAAE;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,YAAY,GAAG,SAAS,CAAA;CAAuB,GAClF,OAAO,CAAC,qBAAqB,CAAC,CAkDhC"}
1
+ {"version":3,"file":"provision-framework.d.ts","sourceRoot":"","sources":["../../../src/data/migrate/provision-framework.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAuB,KAAK,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AAS/F,OAAO,EAA4B,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEhF,MAAM,WAAW,qBAAqB;IACpC,yDAAyD;IACzD,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,6EAA6E;IAC7E,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,8BAA8B;IAC9B,iBAAiB,EAAE,MAAM,EAAE,CAAA;CAC5B;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAExE;AAED,qBAAa,yBAA0B,SAAQ,KAAK;IAClD,SAAkB,IAAI,+BAA8B;CACrD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,wBAAwB,CAC5C,EAAE,EAAE,EAAE,EACN,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,oBAAoB,EACjC,iBAAiB,EAAE,OAAO,EAC1B,OAAO,GAAE;IACP,QAAQ,EAAE,OAAO,CAAA;IACjB,GAAG,CAAC,EAAE,YAAY,GAAG,SAAS,CAAA;IAC9B,kGAAkG;IAClG,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;CAC9C,GACrB,OAAO,CAAC,qBAAqB,CAAC,CAiEhC"}
@@ -39,6 +39,7 @@ export class FrameworkTableColumnError extends Error {
39
39
  */
40
40
  export async function provisionFrameworkTables(db, blueprint, traceConfig, isDefaultDatabase, options = { unlogged: true }) {
41
41
  const result = { created: [], columnsAdded: [], partitionsCreated: [] };
42
+ const progress = options.onProgress ?? (() => { });
42
43
  if (!isDefaultDatabase)
43
44
  return result;
44
45
  if (blueprint.trace === undefined && blueprint.audit === undefined)
@@ -72,18 +73,29 @@ export async function provisionFrameworkTables(db, blueprint, traceConfig, isDef
72
73
  result.columnsAdded.push(`${table.name}.${column.name}`);
73
74
  }
74
75
  }
75
- for (const statement of emitSQL(createOps)) {
76
+ progress('tables');
77
+ const createStatements = emitSQL(createOps);
78
+ for (const [i, statement] of createStatements.entries()) {
76
79
  await db.execute(sql.raw(options.unlogged ? makeTablesUnlogged(statement) : statement));
80
+ progress('tables', `create ${i + 1}/${createStatements.length}`);
77
81
  }
78
- for (const statement of alterStatements)
82
+ for (const [i, statement] of alterStatements.entries()) {
79
83
  await db.execute(sql.raw(statement));
84
+ progress('tables', `alter ${i + 1}/${alterStatements.length}`);
85
+ }
80
86
  if (tables.some(t => t.name === 'audit_record'))
81
87
  await db.execute(sql.raw(AUDIT_ENTITY_INDEX_SQL));
82
- if (blueprint.audit?.chain === true)
88
+ if (blueprint.audit?.chain === true) {
89
+ progress('audit-chain');
83
90
  await installAuditChain(db);
84
- if (options.rls !== undefined)
91
+ }
92
+ if (options.rls !== undefined) {
93
+ progress('policies');
85
94
  await installFrameworkPolicies(db, tables.map(t => t.name), options.rls);
86
- const synced = await syncTracePartitions(db, traceConfig);
95
+ }
96
+ const synced = await syncTracePartitions(db, traceConfig, undefined, {
97
+ onPartition: (name, index, total) => progress('partition', `${index}/${total} ${name}`),
98
+ });
87
99
  result.partitionsCreated.push(...synced.created);
88
100
  return result;
89
101
  }
@@ -1 +1 @@
1
- {"version":3,"file":"provision-framework.js","sourceRoot":"","sources":["../../../src/data/migrate/provision-framework.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provision-framework.js","sourceRoot":"","sources":["../../../src/data/migrate/provision-framework.ts"],"names":[],"mappings":"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"}
@@ -64,6 +64,8 @@ export interface PwIndexSnapshot {
64
64
  where: string | undefined;
65
65
  concurrently: boolean;
66
66
  with: Record<string, unknown> | undefined;
67
+ /** Present (true) only for a NULLS NOT DISTINCT unique index, so stored snapshots stay unchanged. */
68
+ nullsNotDistinct?: boolean;
67
69
  }
68
70
  export interface PwIndexColumnSnapshot {
69
71
  expression: string;
@@ -82,6 +84,8 @@ export interface PwForeignKeySnapshot {
82
84
  foreignColumns: string[];
83
85
  onUpdate: string | undefined;
84
86
  onDelete: string | undefined;
87
+ /** Database names cleared by ON DELETE SET NULL / SET DEFAULT (Postgres 15+); absent for the whole key. */
88
+ onDeleteColumns?: string[];
85
89
  }
86
90
  export interface PwCheckSnapshot {
87
91
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../../src/data/migrate/snapshot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../../src/data/migrate/snapshot.ts"],"names":[],"mappings":"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"}
@@ -102,6 +102,7 @@ export function buildSnapshot(imports, prevId) {
102
102
  where: idx.config.where !== undefined ? serializeSQL(idx.config.where) : undefined,
103
103
  concurrently: idx.config.concurrently ?? false,
104
104
  with: idx.config.with,
105
+ ...(idx.config.nullsNotDistinct === true ? { nullsNotDistinct: true } : {}),
105
106
  };
106
107
  }
107
108
  const foreignKeys = {};
@@ -117,6 +118,7 @@ export function buildSnapshot(imports, prevId) {
117
118
  foreignColumns: ref.foreignColumns.map(c => c.name),
118
119
  onUpdate: fk.onUpdate,
119
120
  onDelete: fk.onDelete,
121
+ ...(fk.onDeleteColumns !== undefined ? { onDeleteColumns: [...fk.onDeleteColumns] } : {}),
120
122
  };
121
123
  }
122
124
  const checks = {};
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../src/data/migrate/snapshot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../src/data/migrate/snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAA;AACvC,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAuGlD,MAAM,CAAC,MAAM,cAAc,GAAe;IACxC,OAAO,EAAE,KAAK;IACd,EAAE,EAAE,sCAAsC;IAC1C,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,EAAE;CACX,CAAA;AAED,MAAM,cAAc,GAAG;IACrB,MAAM,EAAE,IAAI,WAAW,EAAE;IACzB,UAAU,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,IAAI,GAAG;IACzC,WAAW,EAAE,CAAC,IAAY,EAAE,KAAc,EAAE,EAAE,CAAC,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE;IACpG,YAAY,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG;IAC7D,YAAY,EAAE,IAAI;CACnB,CAAA;AAED,MAAM,UAAU,YAAY,CAAC,KAAU;IACrC,OAAO,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,CAAA;AAC1C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC7C,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAClD,IAAI,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,YAAY,CAAC,MAAM,CAAC,OAAc,CAAC,CAAA;IAC5C,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAA;IACxF,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC3G,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAA;IACjF,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAClE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAClE,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAA;QACnC,IAAI,OAAO,KAAK,OAAO,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YAC9C,OAAO,IAAI,OAAO,MAAM,OAAO,EAAE,CAAA;QACnC,CAAC;QACD,OAAO,IAAI,OAAO,GAAG,CAAA;IACvB,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;AAC/B,CAAC;AAED,SAAS,QAAQ,CAAC,MAAc,EAAE,IAAY;IAC5C,OAAO,GAAG,MAAM,IAAI,IAAI,EAAE,CAAA;AAC5B,CAAC;AAED,SAAS,SAAS,CAAC,SAAiB,EAAE,OAAgC,EAAE,MAAe;IACrF,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACxD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAA;IAC5C,OAAO,GAAG,SAAS,IAAI,OAAO,GAAG,MAAM,EAAE,CAAA;AAC3C,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,OAAgC,EAChC,MAAc;IAEd,MAAM,MAAM,GAAoC,EAAE,CAAA;IAElD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3C,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;YAAE,SAAQ;QACjC,IAAI,UAAU,CAAC,KAAK,CAAC;YAAE,SAAQ;QAE/B,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;QACpC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAA;QACxC,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;QAEzC,MAAM,OAAO,GAAqC,EAAE,CAAA;QACpD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG;gBAClB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,IAAI,EAAE,GAAG,CAAC,UAAU,EAAE;gBACtB,UAAU,EAAE,GAAG,CAAC,OAAO;gBACvB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,OAAO,EAAE,gBAAgB,CAAC,GAAG,CAAC;gBAC9B,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,GAAG,CAAC,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpE,SAAS,EAAE,GAAG,CAAC,SAAS,KAAK,SAAS;oBACpC,CAAC,CAAC,EAAE,EAAE,EAAE,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAC9D,CAAC,CAAC,SAAS;gBACb,QAAQ,EAAE,GAAG,CAAC,iBAAiB,KAAK,SAAS;oBAC3C,CAAC,CAAC;wBACA,IAAI,EAAE,GAAG,CAAC,iBAAiB,CAAC,IAAI;wBAChC,IAAI,EAAE,GAAG,CAAC,iBAAiB,CAAC,YAAY;wBACxC,OAAO,EAAE,GAAG,CAAC,iBAAiB,CAAC,eAAe,KAAK,SAAS;4BAC1D,CAAC,CAAC,wBAAwB,CAAC,GAAG,CAAC,iBAAiB,CAAC,eAAe,CAAC;4BACjE,CAAC,CAAC,SAAS;qBACd;oBACD,CAAC,CAAC,SAAS;aACd,CAAA;QACH,CAAC;QAED,MAAM,OAAO,GAAoC,EAAE,CAAA;QACnD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,OAAO,CAAA;YAC3C,MAAM,UAAU,GAAG,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;YACpE,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YACrF,OAAO,CAAC,IAAI,CAAC,GAAG;gBACd,IAAI;gBACJ,OAAO,EAAE,UAAU;gBACnB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM;gBACzB,MAAM;gBACN,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;gBAClF,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,KAAK;gBAC9C,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI;gBACrB,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC5E,CAAA;QACH,CAAC;QAED,MAAM,WAAW,GAAyC,EAAE,CAAA;QAC5D,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACpC,MAAM,GAAG,GAAG,EAAE,CAAC,SAAS,EAAE,CAAA;YAC1B,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAA;YACzB,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,MAAoC,CAAC,IAAI,QAAQ,CAAA;YACnF,WAAW,CAAC,IAAI,CAAC,GAAG;gBAClB,IAAI;gBACJ,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;gBACrC,YAAY,EAAE,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;gBACjD,aAAa,EAAE,QAAkB;gBACjC,cAAc,EAAE,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;gBACnD,QAAQ,EAAE,EAAE,CAAC,QAAQ;gBACrB,QAAQ,EAAE,EAAE,CAAC,QAAQ;gBACrB,GAAG,CAAC,EAAE,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1F,CAAA;QACH,CAAC;QAED,MAAM,MAAM,GAAoC,EAAE,CAAA;QAClD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAChC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG;gBACjB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;aAC/B,CAAA;QACH,CAAC;QAED,MAAM,iBAAiB,GAAqC,EAAE,CAAA;QAC9D,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,EAAE,CAAC,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAA;YAC1F,iBAAiB,CAAC,MAAM,CAAC,GAAG;gBAC1B,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;gBACpC,gBAAgB,EAAE,EAAE,CAAC,gBAAgB;aACtC,CAAA;QACH,CAAC;QAED,MAAM,oBAAoB,GAA0C,EAAE,CAAA;QACtE,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAA;YACzB,oBAAoB,CAAC,IAAI,CAAC,GAAG;gBAC3B,IAAI;gBACJ,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aACrC,CAAA;QACH,CAAC;QAED,MAAM,CAAC,GAAG,CAAC,GAAG;YACZ,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,MAAM;YACN,OAAO;YACP,OAAO;YACP,WAAW;YACX,MAAM;YACN,iBAAiB;YACjB,oBAAoB;YACpB,WAAW,EAAE,aAAa,CAAC,KAAK,CAAC;SAClC,CAAA;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,KAAK;QACd,EAAE,EAAE,UAAU,EAAE;QAChB,MAAM;QACN,MAAM;KACP,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,KAAc;IACnC,MAAM,OAAO,GAAI,KAAsC,CAAC,QAAQ,CAAA;IAChE,IAAI,OAAO,EAAE,WAAW,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACxD,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC,QAAQ;QACtC,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC;KACjD,CAAA;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,EAAW;IACrC,IAAI,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC;QAAE,OAAO,YAAY,CAAC,EAAE,CAAC,CAAA;IACxC,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAY,EAAE,EAAE,CAAA;QAC5B,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC;YAAE,OAAO,YAAY,CAAC,MAAM,CAAC,CAAA;QAChD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAA;IACvB,CAAC;IACD,OAAO,MAAM,CAAC,EAAE,CAAC,CAAA;AACnB,CAAC;AAED,SAAS,wBAAwB,CAAC,IAOjC;IACC,OAAO;QACL,SAAS,EAAE,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;QAC5E,QAAQ,EAAE,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;QACzE,QAAQ,EAAE,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;QACzE,SAAS,EAAE,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;QAC5E,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;QAChE,KAAK,EAAE,IAAI,CAAC,KAAK;KAClB,CAAA;AACH,CAAC;AAED,MAAM,qBAAqB,GAA2B;IACpD,QAAQ,EAAE,mBAAmB;IAC7B,YAAY,EAAE,oBAAoB;IAClC,cAAc,EAAE,iBAAiB;IACjC,cAAc,EAAE,sBAAsB;CACvC,CAAA;AAED,SAAS,qBAAqB,CAAC,OAAuC,EAAE,MAAc;IACpF,MAAM,YAAY,GAAG,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,SAAS,CAAA;IAE9D,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACvB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;YACjB,OAAO;gBACL,UAAU,EAAE,YAAY,CAAC,GAAG,CAAC;gBAC7B,YAAY,EAAE,IAAI;gBAClB,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,SAAS;gBAChB,OAAO,EAAE,SAAS;aACnB,CAAA;QACH,CAAC;QACD,MAAM,OAAO,GAAG,GAAoB,CAAA;QACpC,IAAI,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAA;QACzC,IAAI,OAAO,KAAK,SAAS,IAAI,YAAY,EAAE,CAAC;YAC1C,OAAO,GAAG,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC/C,CAAC;QACD,sEAAsE;QACtE,0EAA0E;QAC1E,0EAA0E;QAC1E,qCAAqC;QACrC,MAAM,OAAO,GAAG,MAAM,KAAK,OAAO,CAAA;QAClC,OAAO;YACL,UAAU,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE;YAC9B,YAAY,EAAE,KAAK;YACnB,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACtD,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACtD,OAAO;YACP,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrG,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -51,9 +51,11 @@ function emitOp(op) {
51
51
  case 'drop_foreign_key': return [emitDropForeignKey(op.tableName, op.tableSchema, op.fk.name)];
52
52
  case 'add_check': return [emitAddCheck(op.tableName, op.tableSchema, op.check.name, op.check.value)];
53
53
  case 'drop_check': return [emitDropConstraint(op.tableName, op.tableSchema, op.check.name)];
54
- case 'add_unique': return [emitAddUnique(op.tableName, op.tableSchema, op.unique)];
54
+ case 'add_unique': return emitAddUnique(op.tableName, op.tableSchema, op.unique, op.tablePartitioned);
55
+ case 'replace_unique': return emitReplaceUnique(op.tableName, op.tableSchema, op.from, op.to, op.tablePartitioned);
55
56
  case 'drop_unique': return [emitDropConstraint(op.tableName, op.tableSchema, op.unique.name)];
56
- case 'add_composite_pk': return [emitAddCompositePK(op.tableName, op.tableSchema, op.pk)];
57
+ case 'add_composite_pk': return emitAddCompositePK(op.tableName, op.tableSchema, op.pk, op.tablePartitioned);
58
+ case 'replace_composite_pk': return emitReplaceCompositePK(op.tableName, op.tableSchema, op.from, op.to, op.tablePartitioned);
57
59
  case 'drop_composite_pk': return [emitDropConstraint(op.tableName, op.tableSchema, op.pk.name)];
58
60
  }
59
61
  }
@@ -204,11 +206,12 @@ function emitCreateIndex(tableName, tableSchema, idx) {
204
206
  expr += ` NULLS ${col.nulls.toUpperCase()}`;
205
207
  return expr;
206
208
  });
209
+ const nullsNotDistinct = idx.nullsNotDistinct === true ? ' NULLS NOT DISTINCT' : '';
207
210
  const withOpts = idx.with !== undefined && Object.keys(idx.with).length > 0
208
211
  ? ` WITH (${Object.entries(idx.with).map(([k, v]) => `${k} = ${String(v)}`).join(', ')})`
209
212
  : '';
210
213
  const where = idx.where !== undefined ? ` WHERE ${idx.where}` : '';
211
- return `CREATE ${unique}INDEX ${concurrent}${q(idx.name)} ON ${tbl}${method} (${colExprs.join(', ')})${withOpts}${where}`;
214
+ return `CREATE ${unique}INDEX ${concurrent}${q(idx.name)} ON ${tbl}${method} (${colExprs.join(', ')})${nullsNotDistinct}${withOpts}${where}`;
212
215
  }
213
216
  function qualifiedIndex(tableSchema, name) {
214
217
  return tableSchema === 'public' ? q(name) : `${q(tableSchema)}.${q(name)}`;
@@ -218,16 +221,18 @@ function emitDropIndex(tableSchema, idx) {
218
221
  }
219
222
  /** Builds the changed index beside the old one, drops the old, renames the new into its place. */
220
223
  function emitReplaceIndex(tableName, tableSchema, from, to) {
221
- let stem = to.name;
222
- while (Buffer.byteLength(stem) > 59)
223
- stem = stem.slice(0, -1);
224
- const tmp = `${stem}_new`;
224
+ const tmp = tempIndexName(to.name);
225
225
  return [
226
+ dropLeftoverIndex(tableSchema, tmp),
226
227
  emitCreateIndex(tableName, tableSchema, { ...to, name: tmp, concurrently: true }),
227
228
  `DROP INDEX CONCURRENTLY IF EXISTS ${qualifiedIndex(tableSchema, from.name)}`,
228
229
  `ALTER INDEX ${qualifiedIndex(tableSchema, tmp)} RENAME TO ${q(to.name)}`,
229
230
  ];
230
231
  }
232
+ /** A failed CONCURRENTLY build leaves an INVALID index; clear it so a rerun can build again. */
233
+ function dropLeftoverIndex(tableSchema, name) {
234
+ return `DROP INDEX CONCURRENTLY IF EXISTS ${qualifiedIndex(tableSchema, name)}`;
235
+ }
231
236
  function emitAddForeignKey(tableName, tableSchema, fk, tablePartitioned) {
232
237
  const tbl = qualifiedTable(tableSchema, tableName);
233
238
  const cols = fk.columns.map(q).join(', ');
@@ -239,6 +244,8 @@ function emitAddForeignKey(tableName, tableSchema, fk, tablePartitioned) {
239
244
  }
240
245
  if (fk.onDelete !== undefined && fk.onDelete !== 'no action') {
241
246
  stmt += ` ON DELETE ${fk.onDelete.toUpperCase()}`;
247
+ if (fk.onDeleteColumns !== undefined)
248
+ stmt += ` (${fk.onDeleteColumns.map(q).join(', ')})`;
242
249
  }
243
250
  // A partitioned table rejects NOT VALID foreign keys — Postgres requires the
244
251
  // constraint be created already valid. For an ordinary table, ADD ... NOT
@@ -260,11 +267,58 @@ function emitAddCheck(tableName, tableSchema, checkName, value) {
260
267
  function emitDropConstraint(tableName, tableSchema, constraintName) {
261
268
  return `ALTER TABLE ${qualifiedTable(tableSchema, tableName)} DROP CONSTRAINT ${q(constraintName)}`;
262
269
  }
263
- function emitAddUnique(tableName, tableSchema, uc) {
264
- const nd = uc.nullsNotDistinct ? ' NULLS NOT DISTINCT' : '';
265
- return `ALTER TABLE ${qualifiedTable(tableSchema, tableName)} ADD CONSTRAINT ${q(uc.name)} UNIQUE${nd} (${uc.columns.map(q).join(', ')})`;
270
+ function tempIndexName(name) {
271
+ let stem = name;
272
+ while (Buffer.byteLength(stem) > 59)
273
+ stem = stem.slice(0, -1);
274
+ return `${stem}_new`;
275
+ }
276
+ function keyIndex(name, columns, nullsNotDistinct) {
277
+ return {
278
+ name,
279
+ columns: columns.map(c => ({ expression: c, isExpression: false, order: undefined, nulls: undefined, opClass: undefined })),
280
+ unique: true,
281
+ method: 'btree',
282
+ where: undefined,
283
+ concurrently: true,
284
+ with: undefined,
285
+ ...(nullsNotDistinct ? { nullsNotDistinct: true } : {}),
286
+ };
287
+ }
288
+ /**
289
+ * A key constraint on a populated table is built as a unique index
290
+ * CONCURRENTLY, then attached with USING INDEX (a brief lock, no build under
291
+ * ACCESS EXCLUSIVE). `replaceOld` swaps an existing constraint in the same
292
+ * statement so uniqueness is never absent. A partitioned table cannot build
293
+ * concurrently on its parent, so it keeps the plain ADD CONSTRAINT.
294
+ */
295
+ function emitKeyConstraint(tableName, tableSchema, kind, key, partitioned, replaceOld) {
296
+ const tbl = qualifiedTable(tableSchema, tableName);
297
+ const drop = replaceOld !== undefined ? `DROP CONSTRAINT ${q(replaceOld)}, ` : '';
298
+ if (partitioned) {
299
+ const nd = key.nullsNotDistinct === true ? ' NULLS NOT DISTINCT' : '';
300
+ const add = `ADD CONSTRAINT ${q(key.name)} ${kind}${nd} (${key.columns.map(q).join(', ')})`;
301
+ return replaceOld !== undefined
302
+ ? [`ALTER TABLE ${tbl} DROP CONSTRAINT ${q(replaceOld)}`, `ALTER TABLE ${tbl} ${add}`]
303
+ : [`ALTER TABLE ${tbl} ${add}`];
304
+ }
305
+ const indexName = replaceOld !== undefined ? tempIndexName(key.name) : key.name;
306
+ return [
307
+ dropLeftoverIndex(tableSchema, indexName),
308
+ emitCreateIndex(tableName, tableSchema, keyIndex(indexName, key.columns, key.nullsNotDistinct === true)),
309
+ `ALTER TABLE ${tbl} ${drop}ADD CONSTRAINT ${q(key.name)} ${kind} USING INDEX ${q(indexName)}`,
310
+ ];
311
+ }
312
+ function emitAddUnique(tableName, tableSchema, uc, partitioned) {
313
+ return emitKeyConstraint(tableName, tableSchema, 'UNIQUE', uc, partitioned, undefined);
314
+ }
315
+ function emitReplaceUnique(tableName, tableSchema, from, to, partitioned) {
316
+ return emitKeyConstraint(tableName, tableSchema, 'UNIQUE', to, partitioned, from.name);
317
+ }
318
+ function emitAddCompositePK(tableName, tableSchema, pk, partitioned) {
319
+ return emitKeyConstraint(tableName, tableSchema, 'PRIMARY KEY', pk, partitioned, undefined);
266
320
  }
267
- function emitAddCompositePK(tableName, tableSchema, pk) {
268
- return `ALTER TABLE ${qualifiedTable(tableSchema, tableName)} ADD CONSTRAINT ${q(pk.name)} PRIMARY KEY (${pk.columns.map(q).join(', ')})`;
321
+ function emitReplaceCompositePK(tableName, tableSchema, from, to, partitioned) {
322
+ return emitKeyConstraint(tableName, tableSchema, 'PRIMARY KEY', to, partitioned, from.name);
269
323
  }
270
324
  //# sourceMappingURL=sql-emit.js.map