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
@@ -1,8 +1,9 @@
1
- import { readFileSync, existsSync } from 'node:fs';
1
+ import { readFileSync } from 'node:fs';
2
2
  import { createHash } from 'node:crypto';
3
3
  import postgres from 'postgres';
4
4
  import { scanStatements } from './statements.js';
5
5
  import { stripPragmaLines } from './pragma.js';
6
+ import { listMigrations } from './history.js';
6
7
  const NO_TRANSACTION_PRAGMA = '-- pipework:no-transaction';
7
8
  export async function applyMigrations(options) {
8
9
  const migrations = readMigrations(options);
@@ -11,6 +12,7 @@ export async function applyMigrations(options) {
11
12
  const client = postgres(options.connectionUrl, { max: 1, onnotice: () => { } });
12
13
  try {
13
14
  const table = quoteIdent(options.migrationsTable);
15
+ const prepared = (detail) => options.onPrepare?.(detail);
14
16
  // "Applied" is MEMBERSHIP — this exact migration (by tag, verified by
15
17
  // content hash) has a tracker row — never a timestamp high-water mark.
16
18
  // A threshold silently skips any unapplied migration dated earlier than
@@ -25,19 +27,23 @@ export async function applyMigrations(options) {
25
27
  tag text
26
28
  )
27
29
  `);
30
+ prepared('tracker table');
28
31
  // Deployed databases predate the tag column: add it, then recover each
29
32
  // legacy row's identity by matching its recorded content hash against the
30
33
  // journal's files (min(id) claims one row per tag, so a duplicated hash
31
34
  // can't double-claim). Rows matching no current journal entry keep a NULL
32
35
  // tag and never participate in membership.
33
36
  await client.unsafe(`ALTER TABLE ${table} ADD COLUMN IF NOT EXISTS tag text`);
34
- for (const migration of migrations) {
37
+ for (const [i, migration] of migrations.entries()) {
35
38
  await client.unsafe(`UPDATE ${table} SET tag = $1
36
39
  WHERE id = (SELECT min(id) FROM ${table} WHERE hash = $2 AND tag IS NULL)`, [migration.tag, migration.hash]);
40
+ prepared(`tags ${i + 1}/${migrations.length}`);
37
41
  }
38
42
  await client.unsafe(`CREATE UNIQUE INDEX IF NOT EXISTS ${quoteIdent(`${options.migrationsTable}_tag_key`)} ON ${table} (tag)`);
43
+ prepared('tag index');
39
44
  const rows = await client.unsafe(`SELECT tag, hash FROM ${table} WHERE tag IS NOT NULL`);
40
45
  const appliedHashByTag = new Map(rows.map((row) => [row.tag, row.hash]));
46
+ prepared('applied read');
41
47
  // A no-transaction file has no rollback: interrupted between statements it
42
48
  // leaves the database half-changed with no tracker row, and the rerun
43
49
  // replays from the top and dies on the first already-applied statement.
@@ -61,6 +67,7 @@ export async function applyMigrations(options) {
61
67
  for (const row of partial) {
62
68
  progressByTag.set(row.tag, { hash: row.hash, done: row.statements_done });
63
69
  }
70
+ prepared('progress table');
64
71
  }
65
72
  let applied = 0;
66
73
  for (const migration of migrations) {
@@ -90,14 +97,16 @@ export async function applyMigrations(options) {
90
97
  // landed yet — instead of the whole file.
91
98
  await client.unsafe(`INSERT INTO ${progress} (tag, hash, statements_done) VALUES ($1, $2, $3)
92
99
  ON CONFLICT (tag) DO UPDATE SET statements_done = EXCLUDED.statements_done, updated_at = now()`, [migration.tag, migration.hash, i + 1]);
100
+ options.onStatement?.(migration.tag, i + 1, migration.statements.length, applied + 1, migrations.length);
93
101
  }
94
102
  await client.unsafe(`INSERT INTO ${table} ("hash", "created_at", "tag") VALUES ($1, $2, $3)`, [migration.hash, migration.folderMillis, migration.tag]);
95
103
  await client.unsafe(`DELETE FROM ${progress} WHERE tag = $1`, [migration.tag]);
96
104
  }
97
105
  else {
98
106
  await client.begin(async (tx) => {
99
- for (const stmt of migration.statements) {
107
+ for (const [i, stmt] of migration.statements.entries()) {
100
108
  await tx.unsafe(stmt);
109
+ options.onStatement?.(migration.tag, i + 1, migration.statements.length, applied + 1, migrations.length);
101
110
  }
102
111
  await tx.unsafe(`INSERT INTO ${table} ("hash", "created_at", "tag") VALUES ($1, $2, $3)`, [migration.hash, migration.folderMillis, migration.tag]);
103
112
  });
@@ -112,18 +121,9 @@ export async function applyMigrations(options) {
112
121
  }
113
122
  }
114
123
  export function readMigrations(options) {
115
- const journalPath = `${options.migrationsFolder}/meta/_journal.json`;
116
- if (!existsSync(journalPath)) {
117
- throw new Error(`No migration journal found at ${journalPath}.\n\n` +
118
- ` Run \`pipework generate\` to create migrations.\n`);
119
- }
120
- const journal = JSON.parse(readFileSync(journalPath, 'utf-8'));
121
124
  const migrations = [];
122
- for (const entry of journal.entries) {
125
+ for (const entry of listMigrations(options.migrationsFolder)) {
123
126
  const filePath = `${options.migrationsFolder}/${entry.tag}.sql`;
124
- if (!existsSync(filePath)) {
125
- throw new Error(`Missing migration file: ${filePath}`);
126
- }
127
127
  let raw = readFileSync(filePath, 'utf-8');
128
128
  const noTransaction = raw.includes(NO_TRANSACTION_PRAGMA);
129
129
  if (options.stripConcurrently === true) {
@@ -1 +1 @@
1
- {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/data/migrate/apply.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/data/migrate/apply.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/data/migrate/check.ts"],"names":[],"mappings":"AAEA,OAAO,EAA6B,KAAK,eAAe,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC5F,OAAO,EAAyB,KAAK,UAAU,EAAE,MAAM,aAAa,CAAA;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAEhD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,eAAe,EAAE,CAAA;IAC1B,yEAAyE;IACzE,UAAU,EAAE,UAAU,EAAE,CAAA;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,CAAA;IACb,cAAc,EAAE,OAAO,CAAA;IACvB,UAAU,EAAE,OAAO,CAAA;IACnB,UAAU,EAAE,OAAO,CAAA;IACnB,sEAAsE;IACtE,QAAQ,EAAE,OAAO,CAAA;IACjB,WAAW,EAAE,WAAW,EAAE,CAAA;CAC3B;AAYD;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,gBAAgB,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI,GAAG,oBAAoB,CAuD7G;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,CA6BtE;AAED,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAA"}
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/data/migrate/check.ts"],"names":[],"mappings":"AAEA,OAAO,EAA6B,KAAK,eAAe,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC5F,OAAO,EAAyB,KAAK,UAAU,EAAE,MAAM,aAAa,CAAA;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAGhD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,eAAe,EAAE,CAAA;IAC1B,yEAAyE;IACzE,UAAU,EAAE,UAAU,EAAE,CAAA;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,CAAA;IACb,cAAc,EAAE,OAAO,CAAA;IACvB,UAAU,EAAE,OAAO,CAAA;IACnB,UAAU,EAAE,OAAO,CAAA;IACnB,sEAAsE;IACtE,QAAQ,EAAE,OAAO,CAAA;IACjB,WAAW,EAAE,WAAW,EAAE,CAAA;CAC3B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,gBAAgB,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI,GAAG,oBAAoB,CAkD7G;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,CA6BtE;AAED,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAA"}
@@ -2,6 +2,7 @@ import { readFileSync, existsSync } from 'node:fs';
2
2
  import { join } from 'node:path';
3
3
  import { analyzeSQL, formatHazards } from './safety.js';
4
4
  import { hasPragma, PRAGMA_FOR } from './pragma.js';
5
+ import { listMigrations } from './history.js';
5
6
  /**
6
7
  * Scans pending migrations for destructive and locking operations.
7
8
  *
@@ -14,11 +15,7 @@ import { hasPragma, PRAGMA_FOR } from './pragma.js';
14
15
  * behaviour when nothing is known to be applied.
15
16
  */
16
17
  export function checkMigrations(migrationsFolder, applied) {
17
- const journalPath = join(migrationsFolder, 'meta', '_journal.json');
18
- if (!existsSync(journalPath)) {
19
- return { safe: true, hasDestructive: false, hasLocking: false, hasDynamic: false, declared: true, fileHazards: [] };
20
- }
21
- const journal = JSON.parse(readFileSync(journalPath, 'utf-8'));
18
+ const entries = listMigrations(migrationsFolder);
22
19
  const fileHazards = [];
23
20
  let hasDestructive = false;
24
21
  let hasLocking = false;
@@ -31,7 +28,7 @@ export function checkMigrations(migrationsFolder, applied) {
31
28
  return applied.tags.has(entry.tag);
32
29
  return entry.when <= applied.threshold;
33
30
  };
34
- for (const entry of journal.entries) {
31
+ for (const entry of entries) {
35
32
  if (isApplied(entry))
36
33
  continue;
37
34
  const sqlPath = join(migrationsFolder, `${entry.tag}.sql`);
@@ -1 +1 @@
1
- {"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/data/migrate/check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAuC,MAAM,aAAa,CAAA;AAC5F,OAAO,EAAE,SAAS,EAAE,UAAU,EAAmB,MAAM,aAAa,CAAA;AA8BpE;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAAC,gBAAwB,EAAE,OAA6B;IACrF,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,EAAE,MAAM,EAAE,eAAe,CAAC,CAAA;IACnE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,CAAA;IACrH,CAAC;IAED,MAAM,OAAO,GAAY,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAA;IACvE,MAAM,WAAW,GAAkB,EAAE,CAAA;IACrC,IAAI,cAAc,GAAG,KAAK,CAAA;IAC1B,IAAI,UAAU,GAAG,KAAK,CAAA;IACtB,IAAI,UAAU,GAAG,KAAK,CAAA;IACtB,IAAI,QAAQ,GAAG,IAAI,CAAA;IAEnB,MAAM,SAAS,GAAG,CAAC,KAAmB,EAAW,EAAE;QACjD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,KAAK,CAAA;QAC3D,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC/D,OAAO,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,SAAS,CAAA;IACxC,CAAC,CAAA;IAED,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpC,IAAI,SAAS,CAAC,KAAK,CAAC;YAAE,SAAQ;QAE9B,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,CAAA;QAC1D,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,SAAQ;QAElC,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAC1C,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAA;QAE/B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,uEAAuE;YACvE,oEAAoE;YACpE,uEAAuE;YACvE,MAAM,UAAU,GAAiB,EAAE,CAAA;YACnC,KAAK,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,SAAS,CAAU,EAAE,CAAC;gBAClE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC;oBAAE,SAAQ;gBACrD,IAAI,IAAI,KAAK,aAAa;oBAAE,cAAc,GAAG,IAAI,CAAA;gBACjD,IAAI,IAAI,KAAK,SAAS;oBAAE,UAAU,GAAG,IAAI,CAAA;gBACzC,IAAI,IAAI,KAAK,SAAS;oBAAE,UAAU,GAAG,IAAI,CAAA;gBACzC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;oBAC1B,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;oBACrB,QAAQ,GAAG,KAAK,CAAA;gBAClB,CAAC;YACH,CAAC;YACD,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAA;QACrE,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,EAAE,CAAC,cAAc,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU;QACnD,cAAc;QACd,UAAU;QACV,UAAU;QACV,QAAQ;QACR,WAAW;KACZ,CAAA;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAA4B;IAC5D,IAAI,MAAM,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAA;IAE9B,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,MAAM,eAAe,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAC/E,MAAM,CAAC,GAAG,eAAe,CAAC,MAAM,CAAA;IAEhC,KAAK,CAAC,IAAI,CACR,2BAA2B,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG;QACrF,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,mBAAmB,iBAAiB,CACpF,CAAA;IAED,KAAK,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,eAAe,EAAE,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAA;IAC1C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAA;IAC7E,KAAK,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAA;IAChF,KAAK,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAA;IAC9E,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAEd,KAAK,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,eAAe,EAAE,CAAC;QACnD,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,SAAS,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAClD,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC"}
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/data/migrate/check.ts"],"names":[],"mappings":"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"}
@@ -106,6 +106,14 @@ export type DiffOp = {
106
106
  tableName: string;
107
107
  tableSchema: string;
108
108
  unique: PwUniqueSnapshot;
109
+ tablePartitioned: boolean;
110
+ } | {
111
+ type: 'replace_unique';
112
+ tableName: string;
113
+ tableSchema: string;
114
+ from: PwUniqueSnapshot;
115
+ to: PwUniqueSnapshot;
116
+ tablePartitioned: boolean;
109
117
  } | {
110
118
  type: 'drop_unique';
111
119
  tableName: string;
@@ -116,6 +124,14 @@ export type DiffOp = {
116
124
  tableName: string;
117
125
  tableSchema: string;
118
126
  pk: PwCompositePKSnapshot;
127
+ tablePartitioned: boolean;
128
+ } | {
129
+ type: 'replace_composite_pk';
130
+ tableName: string;
131
+ tableSchema: string;
132
+ from: PwCompositePKSnapshot;
133
+ to: PwCompositePKSnapshot;
134
+ tablePartitioned: boolean;
119
135
  } | {
120
136
  type: 'drop_composite_pk';
121
137
  tableName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../../src/data/migrate/diff.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../../src/data/migrate/diff.ts"],"names":[],"mappings":"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"}
@@ -78,14 +78,14 @@ function diffDropConstraints(prev, cur, ops) {
78
78
  for (const name of Object.keys(prev.uniqueConstraints)) {
79
79
  const prevUc = prev.uniqueConstraints[name];
80
80
  const curUc = cur.uniqueConstraints[name];
81
- if (curUc === undefined || !uniqueEqual(prevUc, curUc)) {
81
+ if (curUc === undefined || (!uniqueEqual(prevUc, curUc) && !canSwapOnline(prev, cur, prevUc.columns))) {
82
82
  ops.push({ type: 'drop_unique', tableName: tn, tableSchema: ts, unique: prevUc });
83
83
  }
84
84
  }
85
85
  for (const name of Object.keys(prev.compositePrimaryKeys)) {
86
86
  const prevPk = prev.compositePrimaryKeys[name];
87
87
  const curPk = cur.compositePrimaryKeys[name];
88
- if (curPk === undefined || !arraysEqual(prevPk.columns, curPk.columns)) {
88
+ if (curPk === undefined || (!arraysEqual(prevPk.columns, curPk.columns) && !canSwapOnline(prev, cur, prevPk.columns))) {
89
89
  ops.push({ type: 'drop_composite_pk', tableName: tn, tableSchema: ts, pk: prevPk });
90
90
  }
91
91
  }
@@ -152,18 +152,31 @@ function diffColumns(prev, cur, ops) {
152
152
  function diffAddConstraints(prev, cur, ops) {
153
153
  const tn = cur.name;
154
154
  const ts = cur.schema;
155
+ const partitioned = cur.partitionBy !== undefined;
155
156
  for (const name of Object.keys(cur.compositePrimaryKeys)) {
156
157
  const prevPk = prev.compositePrimaryKeys[name];
157
158
  const curPk = cur.compositePrimaryKeys[name];
158
159
  if (prevPk === undefined || !arraysEqual(prevPk.columns, curPk.columns)) {
159
- ops.push({ type: 'add_composite_pk', tableName: tn, tableSchema: ts, pk: curPk });
160
+ if (prevPk !== undefined && canSwapOnline(prev, cur, prevPk.columns)) {
161
+ ops.push({ type: 'replace_composite_pk', tableName: tn, tableSchema: ts, from: prevPk, to: curPk, tablePartitioned: partitioned });
162
+ }
163
+ else {
164
+ assertNoIndexNamed(cur, name, 'primary key');
165
+ ops.push({ type: 'add_composite_pk', tableName: tn, tableSchema: ts, pk: curPk, tablePartitioned: partitioned });
166
+ }
160
167
  }
161
168
  }
162
169
  for (const name of Object.keys(cur.uniqueConstraints)) {
163
170
  const prevUc = prev.uniqueConstraints[name];
164
171
  const curUc = cur.uniqueConstraints[name];
165
172
  if (prevUc === undefined || !uniqueEqual(prevUc, curUc)) {
166
- ops.push({ type: 'add_unique', tableName: tn, tableSchema: ts, unique: curUc });
173
+ if (prevUc !== undefined && canSwapOnline(prev, cur, prevUc.columns)) {
174
+ ops.push({ type: 'replace_unique', tableName: tn, tableSchema: ts, from: prevUc, to: curUc, tablePartitioned: partitioned });
175
+ }
176
+ else {
177
+ assertNoIndexNamed(cur, name, 'unique constraint');
178
+ ops.push({ type: 'add_unique', tableName: tn, tableSchema: ts, unique: curUc, tablePartitioned: partitioned });
179
+ }
167
180
  }
168
181
  }
169
182
  for (const name of Object.keys(cur.checks)) {
@@ -191,11 +204,36 @@ function diffAddConstraints(prev, cur, ops) {
191
204
  }
192
205
  }
193
206
  }
207
+ /**
208
+ * A changed key constraint is swapped in one statement (new index built
209
+ * beside it first) only while the old key's columns survive the migration
210
+ * unchanged; otherwise the old constraint is dropped up front, as before.
211
+ */
212
+ function canSwapOnline(prev, cur, oldColumns) {
213
+ return oldColumns.every(c => {
214
+ const p = prev.columns[c];
215
+ const n = cur.columns[c];
216
+ return p !== undefined && n !== undefined && p.type === n.type && p.collation === n.collation;
217
+ });
218
+ }
219
+ /**
220
+ * An added key constraint builds its index under the constraint's name after
221
+ * clearing any leftover of that name, so a declared index may not share it.
222
+ */
223
+ function assertNoIndexNamed(cur, name, what) {
224
+ if (cur.indexes[name] === undefined)
225
+ return;
226
+ throw new Error(`[pipework] The ${what} "${name}" on "${cur.name}" has the same name as an index on that table. ` +
227
+ 'Give one of them another name.');
228
+ }
194
229
  function fkEqual(a, b) {
195
230
  return a.foreignTable === b.foreignTable
196
231
  && a.foreignSchema === b.foreignSchema
197
232
  && a.onUpdate === b.onUpdate
198
233
  && a.onDelete === b.onDelete
234
+ && (a.onDeleteColumns === undefined || b.onDeleteColumns === undefined
235
+ ? a.onDeleteColumns === b.onDeleteColumns
236
+ : arraysEqual(a.onDeleteColumns, b.onDeleteColumns))
199
237
  && arraysEqual(a.columns, b.columns)
200
238
  && arraysEqual(a.foreignColumns, b.foreignColumns);
201
239
  }
@@ -207,6 +245,8 @@ function withEqual(a, b) {
207
245
  function indexEqual(a, b) {
208
246
  if (a.unique !== b.unique || a.method !== b.method || a.where !== b.where)
209
247
  return false;
248
+ if ((a.nullsNotDistinct ?? false) !== (b.nullsNotDistinct ?? false))
249
+ return false;
210
250
  if (!withEqual(a.with, b.with))
211
251
  return false;
212
252
  if (a.columns.length !== b.columns.length)
@@ -1 +1 @@
1
- {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../src/data/migrate/diff.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../src/data/migrate/diff.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import type { ResolvedDatabase, ResolvedDoor } from '../../core/config/load.js';
2
2
  export interface GenerateResult {
3
3
  database: string;
4
4
  migrationFile: string | null;
5
- snapshotFile: string;
5
+ snapshotFile: string | null;
6
6
  statements: number;
7
7
  }
8
8
  export declare function generateForDatabase(dbConfig: ResolvedDatabase, migrationName?: string, internalDefinitions?: () => Promise<Record<string, unknown>>, doors?: readonly ResolvedDoor[] | (() => readonly ResolvedDoor[])): Promise<GenerateResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/data/migrate/generate.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAuB/E,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;CACnB;AAgBD,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,gBAAgB,EAC1B,aAAa,CAAC,EAAE,MAAM,EACtB,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAC5D,KAAK,GAAE,SAAS,YAAY,EAAE,GAAG,CAAC,MAAM,SAAS,YAAY,EAAE,CAAM,GACpE,OAAO,CAAC,cAAc,CAAC,CAqHzB;AAOD,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAO7D"}
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/data/migrate/generate.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAwB/E,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,gBAAgB,EAC1B,aAAa,CAAC,EAAE,MAAM,EACtB,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAC5D,KAAK,GAAE,SAAS,YAAY,EAAE,GAAG,CAAC,MAAM,SAAS,YAAY,EAAE,CAAM,GACpE,OAAO,CAAC,cAAc,CAAC,CAmHzB;AAOD,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAO7D"}
@@ -1,4 +1,4 @@
1
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
1
+ import { existsSync, mkdirSync, writeFileSync } from 'node:fs';
2
2
  import { join, resolve } from 'node:path';
3
3
  import { pathToFileURL } from 'node:url';
4
4
  import { glob } from 'node:fs/promises';
@@ -8,7 +8,8 @@ import { diffDoors, doorSnapshots } from './door-generate.js';
8
8
  import { generateRlsStatements } from './rls-generate.js';
9
9
  import { generateAppendOnlyStatements } from './append-only-generate.js';
10
10
  import { definitions } from '../domain/index.js';
11
- import { buildSnapshot, EMPTY_SNAPSHOT } from './snapshot.js';
11
+ import { buildSnapshot } from './snapshot.js';
12
+ import { deltaPath, listMigrations, readFoldedSnapshot, snapshotDelta } from './history.js';
12
13
  import { diffSnapshots, diffOpTableName } from './diff.js';
13
14
  import { emitSQL } from './sql-emit.js';
14
15
  import { PARTITIONED_TRACE_TABLE_NAMES } from '../../trace/partition/tables.js';
@@ -64,7 +65,7 @@ export async function generateForDatabase(dbConfig, migrationName, internalDefin
64
65
  imports[key] = value;
65
66
  }
66
67
  }
67
- const prevSnapshot = readPreviousSnapshot(metaDir);
68
+ const prevSnapshot = readFoldedSnapshot(migrationsDir);
68
69
  const currentSnapshot = buildSnapshot(imports, prevSnapshot.id);
69
70
  // Doors are not tables, so the table diff never sees them: their policies are
70
71
  // diffed against the doors the previous snapshot recorded.
@@ -81,17 +82,14 @@ export async function generateForDatabase(dbConfig, migrationName, internalDefin
81
82
  const emittableOps = ops.filter(op => !PARTITIONED_TRACE_TABLE_NAMES.has(diffOpTableName(op)));
82
83
  const statements = emitSQL(emittableOps).map(idempotentAuthTable);
83
84
  if (statements.length === 0 && doorStatements.length === 0) {
84
- const snapshotFile = writeSnapshot(metaDir, currentSnapshot, readJournal(metaDir));
85
85
  return {
86
86
  database: dbConfig.name,
87
87
  migrationFile: null,
88
- snapshotFile,
88
+ snapshotFile: null,
89
89
  statements: 0,
90
90
  };
91
91
  }
92
- const journal = readJournal(metaDir);
93
- const idx = journal.entries.length;
94
- const tag = formatTag(idx, migrationName);
92
+ const tag = freeTag(migrationsDir, migrationName);
95
93
  const joined = statements.map(s => s + ';').join('\n');
96
94
  const withTenantRls = dbConfig.rls !== undefined
97
95
  ? generateRlsStatements(joined, definitions(), dbConfig.rls.sessionVar, dbConfig.rls.force)
@@ -104,7 +102,8 @@ export async function generateForDatabase(dbConfig, migrationName, internalDefin
104
102
  const sqlContent = postProcessMigration(withAppendOnly);
105
103
  const migrationFile = join(migrationsDir, `${tag}.sql`);
106
104
  writeFileSync(migrationFile, sqlContent, 'utf-8');
107
- const snapshotFile = writeSnapshot(metaDir, currentSnapshot, journal, idx, tag);
105
+ const snapshotFile = deltaPath(migrationsDir, tag);
106
+ writeFileSync(snapshotFile, JSON.stringify(snapshotDelta(prevSnapshot, currentSnapshot), null, 2), 'utf-8');
108
107
  return {
109
108
  database: dbConfig.name,
110
109
  migrationFile,
@@ -125,49 +124,18 @@ export function idempotentAuthTable(statement) {
125
124
  return statement;
126
125
  return statement.replace(AUTH_CREATE_RE, (_all, kind, name, on) => `CREATE ${kind} IF NOT EXISTS ${name}${on ?? ''}`);
127
126
  }
128
- function readPreviousSnapshot(metaDir) {
129
- const journal = readJournal(metaDir);
130
- if (journal.entries.length === 0)
131
- return EMPTY_SNAPSHOT;
132
- const lastEntry = journal.entries[journal.entries.length - 1];
133
- const snapshotPath = join(metaDir, `${String(lastEntry.idx).padStart(4, '0')}_snapshot.json`);
134
- if (!existsSync(snapshotPath))
135
- return EMPTY_SNAPSHOT;
136
- const raw = JSON.parse(readFileSync(snapshotPath, 'utf-8'));
137
- if (raw.version === '7')
138
- return EMPTY_SNAPSHOT;
139
- return raw;
140
- }
141
- function readJournal(metaDir) {
142
- const journalPath = join(metaDir, '_journal.json');
143
- if (!existsSync(journalPath)) {
144
- return { version: 'pw1', dialect: 'postgresql', entries: [] };
145
- }
146
- return JSON.parse(readFileSync(journalPath, 'utf-8'));
147
- }
148
- function writeSnapshot(metaDir, snapshot, journal, idx, tag) {
149
- const snapshotIdx = idx ?? journal.entries.length;
150
- const snapshotFile = join(metaDir, `${String(snapshotIdx).padStart(4, '0')}_snapshot.json`);
151
- writeFileSync(snapshotFile, JSON.stringify(snapshot, null, 2), 'utf-8');
152
- if (idx !== undefined && tag !== undefined) {
153
- journal.entries.push({
154
- idx,
155
- version: 'pw1',
156
- when: Date.now(),
157
- tag,
158
- breakpoints: true,
159
- });
160
- writeFileSync(join(metaDir, '_journal.json'), JSON.stringify(journal, null, 2), 'utf-8');
161
- }
162
- return snapshotFile;
163
- }
164
- function formatTag(idx, name) {
165
- const prefix = String(idx).padStart(4, '0');
166
- if (name !== undefined) {
167
- const slug = name.toLowerCase().replace(/[^a-z0-9]+/g, '_').replace(/^_|_$/g, '');
168
- return `${prefix}_${slug}`;
127
+ /** `YYYYMMDDHHMMSS[_slug]` from the UTC clock, moved forward a second at a time until no migration holds that timestamp. */
128
+ function freeTag(migrationsDir, name) {
129
+ const taken = new Set(listMigrations(migrationsDir).map(m => m.tag.slice(0, 14)));
130
+ const slug = name === undefined ? '' : name.toLowerCase().replace(/[^a-z0-9]+/g, '_').replace(/^_|_$/g, '');
131
+ const at = new Date();
132
+ at.setUTCMilliseconds(0);
133
+ for (;;) {
134
+ const stamp = at.toISOString().replace(/\D/g, '').slice(0, 14);
135
+ if (!taken.has(stamp))
136
+ return slug === '' ? stamp : `${stamp}_${slug}`;
137
+ at.setTime(at.getTime() + 1000);
169
138
  }
170
- return prefix;
171
139
  }
172
140
  async function resolveSchemaFiles(schema, baseDir) {
173
141
  const patterns = Array.isArray(schema) ? schema : [schema];
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/data/migrate/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/data/migrate/generate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { type PwSnapshot, type PwTableSnapshot, type PwPartitionSnapshot } from './snapshot.js';
2
+ import type { DoorSnapshot } from './door-generate.js';
3
+ export interface MigrationEntry {
4
+ tag: string;
5
+ when: number;
6
+ }
7
+ type Sub<K extends keyof PwTableSnapshot> = Record<string, NonNullable<PwTableSnapshot[K]> extends Record<string, infer V> ? V | null : never>;
8
+ export interface TableDelta {
9
+ name: string;
10
+ schema: string;
11
+ partitionBy: PwPartitionSnapshot | null;
12
+ columns: Sub<'columns'>;
13
+ indexes: Sub<'indexes'>;
14
+ foreignKeys: Sub<'foreignKeys'>;
15
+ checks: Sub<'checks'>;
16
+ uniqueConstraints: Sub<'uniqueConstraints'>;
17
+ compositePrimaryKeys: Sub<'compositePrimaryKeys'>;
18
+ }
19
+ export interface SnapshotDelta {
20
+ version: 'pw1-delta';
21
+ tables: Record<string, TableDelta | null>;
22
+ doors?: Record<string, DoorSnapshot | null>;
23
+ }
24
+ /** The folder's migrations in apply order: legacy `NNNN` tags by index, then timestamp tags by time. */
25
+ export declare function listMigrations(folder: string): MigrationEntry[];
26
+ export declare function timestampMillis(tag: string): number;
27
+ export declare function isTimestampTag(tag: string): boolean;
28
+ export declare function deltaPath(folder: string, tag: string): string;
29
+ /** The element-level change from one snapshot to the next; only changed tables, elements and doors appear. */
30
+ export declare function snapshotDelta(prev: PwSnapshot, next: PwSnapshot): SnapshotDelta;
31
+ /** `snap` with `delta` applied. Pure: the input is not modified. */
32
+ export declare function applyDelta(snap: PwSnapshot, delta: SnapshotDelta): PwSnapshot;
33
+ /** The schema as of every migration in the folder: the legacy snapshot, then each timestamp migration's delta. */
34
+ export declare function readFoldedSnapshot(folder: string): PwSnapshot;
35
+ export {};
36
+ //# sourceMappingURL=history.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../../src/data/migrate/history.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,KAAK,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAC/G,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEtD,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;CACb;AAKD,KAAK,GAAG,CAAC,CAAC,SAAS,MAAM,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,CAAA;AAE9I,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,mBAAmB,GAAG,IAAI,CAAA;IACvC,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,CAAA;IACvB,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,CAAA;IACvB,WAAW,EAAE,GAAG,CAAC,aAAa,CAAC,CAAA;IAC/B,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAA;IACrB,iBAAiB,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAA;IAC3C,oBAAoB,EAAE,GAAG,CAAC,sBAAsB,CAAC,CAAA;CAClD;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,WAAW,CAAA;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC,CAAA;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC,CAAA;CAC5C;AAWD,wGAAwG;AACxG,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE,CAmC/D;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7D;AA0BD,8GAA8G;AAC9G,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,aAAa,CAiC/E;AAWD,oEAAoE;AACpE,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,GAAG,UAAU,CAyB7E;AAED,kHAAkH;AAClH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAW7D"}