@supabase/pg-delta 0.0.0 → 1.0.0-alpha.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 (567) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +149 -0
  3. package/dist/cli/app.d.ts +1 -0
  4. package/dist/cli/app.js +26 -0
  5. package/dist/cli/bin/cli.d.ts +2 -0
  6. package/dist/cli/bin/cli.js +7 -0
  7. package/dist/cli/commands/apply.d.ts +5 -0
  8. package/dist/cli/commands/apply.js +85 -0
  9. package/dist/cli/commands/plan.d.ts +5 -0
  10. package/dist/cli/commands/plan.js +137 -0
  11. package/dist/cli/commands/sync.d.ts +5 -0
  12. package/dist/cli/commands/sync.js +141 -0
  13. package/dist/cli/formatters/index.d.ts +4 -0
  14. package/dist/cli/formatters/index.js +4 -0
  15. package/dist/cli/formatters/tree/tree-builder.d.ts +10 -0
  16. package/dist/cli/formatters/tree/tree-builder.js +333 -0
  17. package/dist/cli/formatters/tree/tree-renderer.d.ts +45 -0
  18. package/dist/cli/formatters/tree/tree-renderer.js +303 -0
  19. package/dist/cli/formatters/tree/tree.d.ts +8 -0
  20. package/dist/cli/formatters/tree/tree.js +161 -0
  21. package/dist/cli/utils/integrations.d.ts +13 -0
  22. package/dist/cli/utils/integrations.js +35 -0
  23. package/dist/cli/utils.d.ts +64 -0
  24. package/dist/cli/utils.js +160 -0
  25. package/dist/core/catalog.diff.d.ts +5 -0
  26. package/dist/core/catalog.diff.js +147 -0
  27. package/dist/core/catalog.model.d.ts +93 -0
  28. package/dist/core/catalog.model.js +254 -0
  29. package/dist/core/change.types.d.ts +22 -0
  30. package/dist/core/change.types.js +1 -0
  31. package/dist/core/context.d.ts +11 -0
  32. package/dist/core/context.js +12 -0
  33. package/dist/core/depend.d.ts +31 -0
  34. package/dist/core/depend.js +1833 -0
  35. package/dist/core/expand-replace-dependencies.d.ts +14 -0
  36. package/dist/core/expand-replace-dependencies.js +280 -0
  37. package/dist/core/fingerprint.d.ts +23 -0
  38. package/dist/core/fingerprint.js +174 -0
  39. package/dist/core/index.d.ts +15 -0
  40. package/dist/core/index.js +14 -0
  41. package/dist/core/integrations/filter/dsl.d.ts +97 -0
  42. package/dist/core/integrations/filter/dsl.js +107 -0
  43. package/dist/core/integrations/filter/extractors.d.ts +12 -0
  44. package/dist/core/integrations/filter/extractors.js +136 -0
  45. package/dist/core/integrations/integration-dsl.d.ts +22 -0
  46. package/dist/core/integrations/integration-dsl.js +6 -0
  47. package/dist/core/integrations/integration.types.d.ts +5 -0
  48. package/dist/core/integrations/integration.types.js +1 -0
  49. package/dist/core/integrations/serialize/dsl.d.ts +58 -0
  50. package/dist/core/integrations/serialize/dsl.js +42 -0
  51. package/dist/core/main.d.ts +5 -0
  52. package/dist/core/main.js +44 -0
  53. package/dist/core/objects/aggregate/aggregate.diff.d.ts +10 -0
  54. package/dist/core/objects/aggregate/aggregate.diff.js +186 -0
  55. package/dist/core/objects/aggregate/aggregate.model.d.ts +174 -0
  56. package/dist/core/objects/aggregate/aggregate.model.js +297 -0
  57. package/dist/core/objects/aggregate/changes/aggregate.alter.d.ts +19 -0
  58. package/dist/core/objects/aggregate/changes/aggregate.alter.js +25 -0
  59. package/dist/core/objects/aggregate/changes/aggregate.base.d.ts +17 -0
  60. package/dist/core/objects/aggregate/changes/aggregate.base.js +13 -0
  61. package/dist/core/objects/aggregate/changes/aggregate.comment.d.ts +23 -0
  62. package/dist/core/objects/aggregate/changes/aggregate.comment.js +44 -0
  63. package/dist/core/objects/aggregate/changes/aggregate.create.d.ts +19 -0
  64. package/dist/core/objects/aggregate/changes/aggregate.create.js +228 -0
  65. package/dist/core/objects/aggregate/changes/aggregate.drop.d.ts +17 -0
  66. package/dist/core/objects/aggregate/changes/aggregate.drop.js +26 -0
  67. package/dist/core/objects/aggregate/changes/aggregate.privilege.d.ts +62 -0
  68. package/dist/core/objects/aggregate/changes/aggregate.privilege.js +102 -0
  69. package/dist/core/objects/aggregate/changes/aggregate.types.d.ts +6 -0
  70. package/dist/core/objects/aggregate/changes/aggregate.types.js +1 -0
  71. package/dist/core/objects/base.change.d.ts +46 -0
  72. package/dist/core/objects/base.change.js +38 -0
  73. package/dist/core/objects/base.default-privileges.d.ts +29 -0
  74. package/dist/core/objects/base.default-privileges.js +167 -0
  75. package/dist/core/objects/base.diff.d.ts +6 -0
  76. package/dist/core/objects/base.diff.js +12 -0
  77. package/dist/core/objects/base.model.d.ts +74 -0
  78. package/dist/core/objects/base.model.js +47 -0
  79. package/dist/core/objects/base.privilege-diff.d.ts +54 -0
  80. package/dist/core/objects/base.privilege-diff.js +216 -0
  81. package/dist/core/objects/base.privilege.d.ts +27 -0
  82. package/dist/core/objects/base.privilege.js +169 -0
  83. package/dist/core/objects/collation/changes/collation.alter.d.ts +45 -0
  84. package/dist/core/objects/collation/changes/collation.alter.js +52 -0
  85. package/dist/core/objects/collation/changes/collation.base.d.ts +17 -0
  86. package/dist/core/objects/collation/changes/collation.base.js +13 -0
  87. package/dist/core/objects/collation/changes/collation.comment.d.ts +26 -0
  88. package/dist/core/objects/collation/changes/collation.comment.js +50 -0
  89. package/dist/core/objects/collation/changes/collation.create.d.ts +32 -0
  90. package/dist/core/objects/collation/changes/collation.create.js +86 -0
  91. package/dist/core/objects/collation/changes/collation.drop.d.ts +22 -0
  92. package/dist/core/objects/collation/changes/collation.drop.js +31 -0
  93. package/dist/core/objects/collation/changes/collation.types.d.ts +5 -0
  94. package/dist/core/objects/collation/changes/collation.types.js +1 -0
  95. package/dist/core/objects/collation/collation.diff.d.ts +13 -0
  96. package/dist/core/objects/collation/collation.diff.js +85 -0
  97. package/dist/core/objects/collation/collation.model.d.ts +67 -0
  98. package/dist/core/objects/collation/collation.model.js +207 -0
  99. package/dist/core/objects/domain/changes/domain.alter.d.ts +143 -0
  100. package/dist/core/objects/domain/changes/domain.alter.js +191 -0
  101. package/dist/core/objects/domain/changes/domain.base.d.ts +17 -0
  102. package/dist/core/objects/domain/changes/domain.base.js +13 -0
  103. package/dist/core/objects/domain/changes/domain.comment.d.ts +25 -0
  104. package/dist/core/objects/domain/changes/domain.comment.js +47 -0
  105. package/dist/core/objects/domain/changes/domain.create.d.ts +30 -0
  106. package/dist/core/objects/domain/changes/domain.create.js +92 -0
  107. package/dist/core/objects/domain/changes/domain.drop.d.ts +22 -0
  108. package/dist/core/objects/domain/changes/domain.drop.js +28 -0
  109. package/dist/core/objects/domain/changes/domain.privilege.d.ts +97 -0
  110. package/dist/core/objects/domain/changes/domain.privilege.js +127 -0
  111. package/dist/core/objects/domain/changes/domain.types.d.ts +6 -0
  112. package/dist/core/objects/domain/changes/domain.types.js +1 -0
  113. package/dist/core/objects/domain/domain.diff.d.ts +18 -0
  114. package/dist/core/objects/domain/domain.diff.js +244 -0
  115. package/dist/core/objects/domain/domain.model.d.ts +103 -0
  116. package/dist/core/objects/domain/domain.model.js +172 -0
  117. package/dist/core/objects/event-trigger/changes/event-trigger.alter.d.ts +44 -0
  118. package/dist/core/objects/event-trigger/changes/event-trigger.alter.js +51 -0
  119. package/dist/core/objects/event-trigger/changes/event-trigger.base.d.ts +17 -0
  120. package/dist/core/objects/event-trigger/changes/event-trigger.base.js +13 -0
  121. package/dist/core/objects/event-trigger/changes/event-trigger.comment.d.ts +23 -0
  122. package/dist/core/objects/event-trigger/changes/event-trigger.comment.js +46 -0
  123. package/dist/core/objects/event-trigger/changes/event-trigger.create.d.ts +25 -0
  124. package/dist/core/objects/event-trigger/changes/event-trigger.create.js +55 -0
  125. package/dist/core/objects/event-trigger/changes/event-trigger.drop.d.ts +22 -0
  126. package/dist/core/objects/event-trigger/changes/event-trigger.drop.js +28 -0
  127. package/dist/core/objects/event-trigger/changes/event-trigger.types.d.ts +5 -0
  128. package/dist/core/objects/event-trigger/changes/event-trigger.types.js +1 -0
  129. package/dist/core/objects/event-trigger/event-trigger.diff.d.ts +13 -0
  130. package/dist/core/objects/event-trigger/event-trigger.diff.js +81 -0
  131. package/dist/core/objects/event-trigger/event-trigger.model.d.ts +45 -0
  132. package/dist/core/objects/event-trigger/event-trigger.model.js +89 -0
  133. package/dist/core/objects/extension/changes/extension.alter.d.ts +44 -0
  134. package/dist/core/objects/extension/changes/extension.alter.js +51 -0
  135. package/dist/core/objects/extension/changes/extension.base.d.ts +17 -0
  136. package/dist/core/objects/extension/changes/extension.base.js +13 -0
  137. package/dist/core/objects/extension/changes/extension.comment.d.ts +26 -0
  138. package/dist/core/objects/extension/changes/extension.comment.js +46 -0
  139. package/dist/core/objects/extension/changes/extension.create.d.ts +25 -0
  140. package/dist/core/objects/extension/changes/extension.create.js +49 -0
  141. package/dist/core/objects/extension/changes/extension.drop.d.ts +22 -0
  142. package/dist/core/objects/extension/changes/extension.drop.js +28 -0
  143. package/dist/core/objects/extension/changes/extension.types.d.ts +5 -0
  144. package/dist/core/objects/extension/changes/extension.types.js +1 -0
  145. package/dist/core/objects/extension/extension.diff.d.ts +10 -0
  146. package/dist/core/objects/extension/extension.diff.js +65 -0
  147. package/dist/core/objects/extension/extension.model.d.ts +52 -0
  148. package/dist/core/objects/extension/extension.model.js +268 -0
  149. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.alter.d.ts +51 -0
  150. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.alter.js +61 -0
  151. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.base.d.ts +17 -0
  152. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.base.js +13 -0
  153. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.comment.d.ts +26 -0
  154. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.comment.js +50 -0
  155. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.create.d.ts +25 -0
  156. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.create.js +78 -0
  157. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.drop.d.ts +22 -0
  158. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.drop.js +28 -0
  159. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.privilege.d.ts +97 -0
  160. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.privilege.js +123 -0
  161. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.types.d.ts +6 -0
  162. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.types.js +1 -0
  163. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/foreign-data-wrapper.diff.d.ts +18 -0
  164. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/foreign-data-wrapper.diff.js +221 -0
  165. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/foreign-data-wrapper.model.d.ts +59 -0
  166. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/foreign-data-wrapper.model.js +128 -0
  167. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper.types.d.ts +5 -0
  168. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper.types.js +1 -0
  169. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.alter.d.ts +163 -0
  170. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.alter.js +248 -0
  171. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.base.d.ts +17 -0
  172. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.base.js +13 -0
  173. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.comment.d.ts +26 -0
  174. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.comment.js +50 -0
  175. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.create.d.ts +25 -0
  176. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.create.js +64 -0
  177. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.drop.d.ts +22 -0
  178. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.drop.js +31 -0
  179. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.privilege.d.ts +97 -0
  180. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.privilege.js +129 -0
  181. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.types.d.ts +6 -0
  182. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.types.js +1 -0
  183. package/dist/core/objects/foreign-data-wrapper/foreign-table/foreign-table.diff.d.ts +18 -0
  184. package/dist/core/objects/foreign-data-wrapper/foreign-table/foreign-table.diff.js +268 -0
  185. package/dist/core/objects/foreign-data-wrapper/foreign-table/foreign-table.model.d.ts +117 -0
  186. package/dist/core/objects/foreign-data-wrapper/foreign-table/foreign-table.model.js +215 -0
  187. package/dist/core/objects/foreign-data-wrapper/server/changes/server.alter.d.ts +65 -0
  188. package/dist/core/objects/foreign-data-wrapper/server/changes/server.alter.js +84 -0
  189. package/dist/core/objects/foreign-data-wrapper/server/changes/server.base.d.ts +17 -0
  190. package/dist/core/objects/foreign-data-wrapper/server/changes/server.base.js +13 -0
  191. package/dist/core/objects/foreign-data-wrapper/server/changes/server.comment.d.ts +26 -0
  192. package/dist/core/objects/foreign-data-wrapper/server/changes/server.comment.js +43 -0
  193. package/dist/core/objects/foreign-data-wrapper/server/changes/server.create.d.ts +24 -0
  194. package/dist/core/objects/foreign-data-wrapper/server/changes/server.create.js +62 -0
  195. package/dist/core/objects/foreign-data-wrapper/server/changes/server.drop.d.ts +22 -0
  196. package/dist/core/objects/foreign-data-wrapper/server/changes/server.drop.js +28 -0
  197. package/dist/core/objects/foreign-data-wrapper/server/changes/server.privilege.d.ts +97 -0
  198. package/dist/core/objects/foreign-data-wrapper/server/changes/server.privilege.js +123 -0
  199. package/dist/core/objects/foreign-data-wrapper/server/changes/server.types.d.ts +6 -0
  200. package/dist/core/objects/foreign-data-wrapper/server/changes/server.types.js +1 -0
  201. package/dist/core/objects/foreign-data-wrapper/server/server.diff.d.ts +18 -0
  202. package/dist/core/objects/foreign-data-wrapper/server/server.diff.js +209 -0
  203. package/dist/core/objects/foreign-data-wrapper/server/server.model.d.ts +62 -0
  204. package/dist/core/objects/foreign-data-wrapper/server/server.model.js +118 -0
  205. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.alter.d.ts +37 -0
  206. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.alter.js +38 -0
  207. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.base.d.ts +17 -0
  208. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.base.js +13 -0
  209. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.create.d.ts +24 -0
  210. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.create.js +52 -0
  211. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.drop.d.ts +23 -0
  212. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.drop.js +34 -0
  213. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.types.d.ts +4 -0
  214. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.types.js +1 -0
  215. package/dist/core/objects/foreign-data-wrapper/user-mapping/user-mapping.diff.d.ts +10 -0
  216. package/dist/core/objects/foreign-data-wrapper/user-mapping/user-mapping.diff.js +77 -0
  217. package/dist/core/objects/foreign-data-wrapper/user-mapping/user-mapping.model.d.ts +36 -0
  218. package/dist/core/objects/foreign-data-wrapper/user-mapping/user-mapping.model.js +85 -0
  219. package/dist/core/objects/index/changes/index.alter.d.ts +76 -0
  220. package/dist/core/objects/index/changes/index.alter.js +94 -0
  221. package/dist/core/objects/index/changes/index.base.d.ts +17 -0
  222. package/dist/core/objects/index/changes/index.base.js +13 -0
  223. package/dist/core/objects/index/changes/index.comment.d.ts +26 -0
  224. package/dist/core/objects/index/changes/index.comment.js +50 -0
  225. package/dist/core/objects/index/changes/index.create.d.ts +30 -0
  226. package/dist/core/objects/index/changes/index.create.js +53 -0
  227. package/dist/core/objects/index/changes/index.drop.d.ts +22 -0
  228. package/dist/core/objects/index/changes/index.drop.js +28 -0
  229. package/dist/core/objects/index/changes/index.types.d.ts +5 -0
  230. package/dist/core/objects/index/changes/index.types.js +1 -0
  231. package/dist/core/objects/index/changes/utils.d.ts +3 -0
  232. package/dist/core/objects/index/changes/utils.js +6 -0
  233. package/dist/core/objects/index/index.diff.d.ts +12 -0
  234. package/dist/core/objects/index/index.diff.js +182 -0
  235. package/dist/core/objects/index/index.model.d.ts +150 -0
  236. package/dist/core/objects/index/index.model.js +340 -0
  237. package/dist/core/objects/language/changes/language.alter.d.ts +32 -0
  238. package/dist/core/objects/language/changes/language.alter.js +30 -0
  239. package/dist/core/objects/language/changes/language.base.d.ts +17 -0
  240. package/dist/core/objects/language/changes/language.base.js +13 -0
  241. package/dist/core/objects/language/changes/language.comment.d.ts +26 -0
  242. package/dist/core/objects/language/changes/language.comment.js +45 -0
  243. package/dist/core/objects/language/changes/language.create.d.ts +25 -0
  244. package/dist/core/objects/language/changes/language.create.js +76 -0
  245. package/dist/core/objects/language/changes/language.drop.d.ts +22 -0
  246. package/dist/core/objects/language/changes/language.drop.js +31 -0
  247. package/dist/core/objects/language/changes/language.privilege.d.ts +97 -0
  248. package/dist/core/objects/language/changes/language.privilege.js +128 -0
  249. package/dist/core/objects/language/changes/language.types.d.ts +6 -0
  250. package/dist/core/objects/language/changes/language.types.js +1 -0
  251. package/dist/core/objects/language/language.diff.d.ts +15 -0
  252. package/dist/core/objects/language/language.diff.js +117 -0
  253. package/dist/core/objects/language/language.model.d.ts +62 -0
  254. package/dist/core/objects/language/language.model.js +128 -0
  255. package/dist/core/objects/materialized-view/changes/materialized-view.alter.d.ts +67 -0
  256. package/dist/core/objects/materialized-view/changes/materialized-view.alter.js +63 -0
  257. package/dist/core/objects/materialized-view/changes/materialized-view.base.d.ts +17 -0
  258. package/dist/core/objects/materialized-view/changes/materialized-view.base.js +13 -0
  259. package/dist/core/objects/materialized-view/changes/materialized-view.comment.d.ts +53 -0
  260. package/dist/core/objects/materialized-view/changes/materialized-view.comment.js +112 -0
  261. package/dist/core/objects/materialized-view/changes/materialized-view.create.d.ts +35 -0
  262. package/dist/core/objects/materialized-view/changes/materialized-view.create.js +71 -0
  263. package/dist/core/objects/materialized-view/changes/materialized-view.drop.d.ts +26 -0
  264. package/dist/core/objects/materialized-view/changes/materialized-view.drop.js +42 -0
  265. package/dist/core/objects/materialized-view/changes/materialized-view.privilege.d.ts +105 -0
  266. package/dist/core/objects/materialized-view/changes/materialized-view.privilege.js +151 -0
  267. package/dist/core/objects/materialized-view/changes/materialized-view.types.d.ts +6 -0
  268. package/dist/core/objects/materialized-view/changes/materialized-view.types.js +1 -0
  269. package/dist/core/objects/materialized-view/materialized-view.diff.d.ts +18 -0
  270. package/dist/core/objects/materialized-view/materialized-view.diff.js +335 -0
  271. package/dist/core/objects/materialized-view/materialized-view.model.d.ts +152 -0
  272. package/dist/core/objects/materialized-view/materialized-view.model.js +228 -0
  273. package/dist/core/objects/procedure/changes/procedure.alter.d.ts +143 -0
  274. package/dist/core/objects/procedure/changes/procedure.alter.js +207 -0
  275. package/dist/core/objects/procedure/changes/procedure.base.d.ts +17 -0
  276. package/dist/core/objects/procedure/changes/procedure.base.js +13 -0
  277. package/dist/core/objects/procedure/changes/procedure.comment.d.ts +26 -0
  278. package/dist/core/objects/procedure/changes/procedure.comment.js +52 -0
  279. package/dist/core/objects/procedure/changes/procedure.create.d.ts +42 -0
  280. package/dist/core/objects/procedure/changes/procedure.create.js +77 -0
  281. package/dist/core/objects/procedure/changes/procedure.drop.d.ts +23 -0
  282. package/dist/core/objects/procedure/changes/procedure.drop.js +37 -0
  283. package/dist/core/objects/procedure/changes/procedure.privilege.d.ts +98 -0
  284. package/dist/core/objects/procedure/changes/procedure.privilege.js +144 -0
  285. package/dist/core/objects/procedure/changes/procedure.types.d.ts +6 -0
  286. package/dist/core/objects/procedure/changes/procedure.types.js +1 -0
  287. package/dist/core/objects/procedure/procedure.diff.d.ts +18 -0
  288. package/dist/core/objects/procedure/procedure.diff.js +282 -0
  289. package/dist/core/objects/procedure/procedure.model.d.ts +132 -0
  290. package/dist/core/objects/procedure/procedure.model.js +244 -0
  291. package/dist/core/objects/procedure/utils.d.ts +14 -0
  292. package/dist/core/objects/procedure/utils.js +55 -0
  293. package/dist/core/objects/publication/changes/publication.alter.d.ts +88 -0
  294. package/dist/core/objects/publication/changes/publication.alter.js +176 -0
  295. package/dist/core/objects/publication/changes/publication.base.d.ts +17 -0
  296. package/dist/core/objects/publication/changes/publication.base.js +13 -0
  297. package/dist/core/objects/publication/changes/publication.comment.d.ts +23 -0
  298. package/dist/core/objects/publication/changes/publication.comment.js +46 -0
  299. package/dist/core/objects/publication/changes/publication.create.d.ts +17 -0
  300. package/dist/core/objects/publication/changes/publication.create.js +61 -0
  301. package/dist/core/objects/publication/changes/publication.drop.d.ts +17 -0
  302. package/dist/core/objects/publication/changes/publication.drop.js +23 -0
  303. package/dist/core/objects/publication/changes/publication.types.d.ts +5 -0
  304. package/dist/core/objects/publication/changes/publication.types.js +1 -0
  305. package/dist/core/objects/publication/publication.diff.d.ts +5 -0
  306. package/dist/core/objects/publication/publication.diff.js +161 -0
  307. package/dist/core/objects/publication/publication.model.d.ts +96 -0
  308. package/dist/core/objects/publication/publication.model.js +186 -0
  309. package/dist/core/objects/publication/utils.d.ts +5 -0
  310. package/dist/core/objects/publication/utils.js +45 -0
  311. package/dist/core/objects/rls-policy/changes/rls-policy.alter.d.ts +62 -0
  312. package/dist/core/objects/rls-policy/changes/rls-policy.alter.js +90 -0
  313. package/dist/core/objects/rls-policy/changes/rls-policy.base.d.ts +17 -0
  314. package/dist/core/objects/rls-policy/changes/rls-policy.base.js +13 -0
  315. package/dist/core/objects/rls-policy/changes/rls-policy.comment.d.ts +23 -0
  316. package/dist/core/objects/rls-policy/changes/rls-policy.comment.js +51 -0
  317. package/dist/core/objects/rls-policy/changes/rls-policy.create.d.ts +27 -0
  318. package/dist/core/objects/rls-policy/changes/rls-policy.create.js +79 -0
  319. package/dist/core/objects/rls-policy/changes/rls-policy.drop.d.ts +22 -0
  320. package/dist/core/objects/rls-policy/changes/rls-policy.drop.js +33 -0
  321. package/dist/core/objects/rls-policy/changes/rls-policy.types.d.ts +5 -0
  322. package/dist/core/objects/rls-policy/changes/rls-policy.types.js +1 -0
  323. package/dist/core/objects/rls-policy/rls-policy.diff.d.ts +10 -0
  324. package/dist/core/objects/rls-policy/rls-policy.diff.js +80 -0
  325. package/dist/core/objects/rls-policy/rls-policy.model.d.ts +52 -0
  326. package/dist/core/objects/rls-policy/rls-policy.model.js +127 -0
  327. package/dist/core/objects/role/changes/role.alter.d.ts +78 -0
  328. package/dist/core/objects/role/changes/role.alter.js +55 -0
  329. package/dist/core/objects/role/changes/role.base.d.ts +17 -0
  330. package/dist/core/objects/role/changes/role.base.js +13 -0
  331. package/dist/core/objects/role/changes/role.comment.d.ts +23 -0
  332. package/dist/core/objects/role/changes/role.comment.js +42 -0
  333. package/dist/core/objects/role/changes/role.create.d.ts +38 -0
  334. package/dist/core/objects/role/changes/role.create.js +83 -0
  335. package/dist/core/objects/role/changes/role.drop.d.ts +22 -0
  336. package/dist/core/objects/role/changes/role.drop.js +28 -0
  337. package/dist/core/objects/role/changes/role.privilege.d.ts +148 -0
  338. package/dist/core/objects/role/changes/role.privilege.js +283 -0
  339. package/dist/core/objects/role/changes/role.types.d.ts +6 -0
  340. package/dist/core/objects/role/changes/role.types.js +1 -0
  341. package/dist/core/objects/role/role.diff.d.ts +13 -0
  342. package/dist/core/objects/role/role.diff.js +386 -0
  343. package/dist/core/objects/role/role.model.d.ts +89 -0
  344. package/dist/core/objects/role/role.model.js +312 -0
  345. package/dist/core/objects/rule/changes/rule.alter.d.ts +22 -0
  346. package/dist/core/objects/rule/changes/rule.alter.js +58 -0
  347. package/dist/core/objects/rule/changes/rule.base.d.ts +17 -0
  348. package/dist/core/objects/rule/changes/rule.base.js +13 -0
  349. package/dist/core/objects/rule/changes/rule.comment.d.ts +22 -0
  350. package/dist/core/objects/rule/changes/rule.comment.js +51 -0
  351. package/dist/core/objects/rule/changes/rule.create.d.ts +14 -0
  352. package/dist/core/objects/rule/changes/rule.create.js +28 -0
  353. package/dist/core/objects/rule/changes/rule.drop.d.ts +12 -0
  354. package/dist/core/objects/rule/changes/rule.drop.js +23 -0
  355. package/dist/core/objects/rule/changes/rule.types.d.ts +5 -0
  356. package/dist/core/objects/rule/changes/rule.types.js +1 -0
  357. package/dist/core/objects/rule/rule.diff.d.ts +3 -0
  358. package/dist/core/objects/rule/rule.diff.js +53 -0
  359. package/dist/core/objects/rule/rule.model.d.ts +72 -0
  360. package/dist/core/objects/rule/rule.model.js +156 -0
  361. package/dist/core/objects/schema/changes/schema.alter.d.ts +32 -0
  362. package/dist/core/objects/schema/changes/schema.alter.js +25 -0
  363. package/dist/core/objects/schema/changes/schema.base.d.ts +17 -0
  364. package/dist/core/objects/schema/changes/schema.base.js +13 -0
  365. package/dist/core/objects/schema/changes/schema.comment.d.ts +23 -0
  366. package/dist/core/objects/schema/changes/schema.comment.js +43 -0
  367. package/dist/core/objects/schema/changes/schema.create.d.ts +27 -0
  368. package/dist/core/objects/schema/changes/schema.create.js +38 -0
  369. package/dist/core/objects/schema/changes/schema.drop.d.ts +22 -0
  370. package/dist/core/objects/schema/changes/schema.drop.js +28 -0
  371. package/dist/core/objects/schema/changes/schema.privilege.d.ts +97 -0
  372. package/dist/core/objects/schema/changes/schema.privilege.js +131 -0
  373. package/dist/core/objects/schema/changes/schema.types.d.ts +6 -0
  374. package/dist/core/objects/schema/changes/schema.types.js +1 -0
  375. package/dist/core/objects/schema/schema.diff.d.ts +18 -0
  376. package/dist/core/objects/schema/schema.diff.js +142 -0
  377. package/dist/core/objects/schema/schema.model.d.ts +47 -0
  378. package/dist/core/objects/schema/schema.model.js +91 -0
  379. package/dist/core/objects/sequence/changes/sequence.alter.d.ts +59 -0
  380. package/dist/core/objects/sequence/changes/sequence.alter.js +75 -0
  381. package/dist/core/objects/sequence/changes/sequence.base.d.ts +17 -0
  382. package/dist/core/objects/sequence/changes/sequence.base.js +13 -0
  383. package/dist/core/objects/sequence/changes/sequence.comment.d.ts +23 -0
  384. package/dist/core/objects/sequence/changes/sequence.comment.js +47 -0
  385. package/dist/core/objects/sequence/changes/sequence.create.d.ts +25 -0
  386. package/dist/core/objects/sequence/changes/sequence.create.js +78 -0
  387. package/dist/core/objects/sequence/changes/sequence.drop.d.ts +22 -0
  388. package/dist/core/objects/sequence/changes/sequence.drop.js +31 -0
  389. package/dist/core/objects/sequence/changes/sequence.privilege.d.ts +101 -0
  390. package/dist/core/objects/sequence/changes/sequence.privilege.js +135 -0
  391. package/dist/core/objects/sequence/changes/sequence.types.d.ts +6 -0
  392. package/dist/core/objects/sequence/changes/sequence.types.js +1 -0
  393. package/dist/core/objects/sequence/sequence.diff.d.ts +20 -0
  394. package/dist/core/objects/sequence/sequence.diff.js +258 -0
  395. package/dist/core/objects/sequence/sequence.model.d.ts +76 -0
  396. package/dist/core/objects/sequence/sequence.model.js +169 -0
  397. package/dist/core/objects/subscription/changes/subscription.alter.d.ts +56 -0
  398. package/dist/core/objects/subscription/changes/subscription.alter.js +82 -0
  399. package/dist/core/objects/subscription/changes/subscription.base.d.ts +17 -0
  400. package/dist/core/objects/subscription/changes/subscription.base.js +13 -0
  401. package/dist/core/objects/subscription/changes/subscription.comment.d.ts +23 -0
  402. package/dist/core/objects/subscription/changes/subscription.comment.js +46 -0
  403. package/dist/core/objects/subscription/changes/subscription.create.d.ts +12 -0
  404. package/dist/core/objects/subscription/changes/subscription.create.js +52 -0
  405. package/dist/core/objects/subscription/changes/subscription.drop.d.ts +11 -0
  406. package/dist/core/objects/subscription/changes/subscription.drop.js +15 -0
  407. package/dist/core/objects/subscription/changes/subscription.types.d.ts +5 -0
  408. package/dist/core/objects/subscription/changes/subscription.types.js +1 -0
  409. package/dist/core/objects/subscription/subscription.diff.d.ts +5 -0
  410. package/dist/core/objects/subscription/subscription.diff.js +167 -0
  411. package/dist/core/objects/subscription/subscription.model.d.ts +80 -0
  412. package/dist/core/objects/subscription/subscription.model.js +166 -0
  413. package/dist/core/objects/subscription/utils.d.ts +37 -0
  414. package/dist/core/objects/subscription/utils.js +112 -0
  415. package/dist/core/objects/table/changes/table.alter.d.ts +357 -0
  416. package/dist/core/objects/table/changes/table.alter.js +607 -0
  417. package/dist/core/objects/table/changes/table.base.d.ts +17 -0
  418. package/dist/core/objects/table/changes/table.base.js +13 -0
  419. package/dist/core/objects/table/changes/table.comment.d.ts +106 -0
  420. package/dist/core/objects/table/changes/table.comment.js +175 -0
  421. package/dist/core/objects/table/changes/table.create.d.ts +33 -0
  422. package/dist/core/objects/table/changes/table.create.js +145 -0
  423. package/dist/core/objects/table/changes/table.drop.d.ts +22 -0
  424. package/dist/core/objects/table/changes/table.drop.js +35 -0
  425. package/dist/core/objects/table/changes/table.privilege.d.ts +107 -0
  426. package/dist/core/objects/table/changes/table.privilege.js +150 -0
  427. package/dist/core/objects/table/changes/table.types.d.ts +6 -0
  428. package/dist/core/objects/table/changes/table.types.js +1 -0
  429. package/dist/core/objects/table/table.diff.d.ts +18 -0
  430. package/dist/core/objects/table/table.diff.js +668 -0
  431. package/dist/core/objects/table/table.model.d.ts +341 -0
  432. package/dist/core/objects/table/table.model.js +426 -0
  433. package/dist/core/objects/trigger/changes/trigger.alter.d.ts +29 -0
  434. package/dist/core/objects/trigger/changes/trigger.alter.js +27 -0
  435. package/dist/core/objects/trigger/changes/trigger.base.d.ts +17 -0
  436. package/dist/core/objects/trigger/changes/trigger.base.js +13 -0
  437. package/dist/core/objects/trigger/changes/trigger.comment.d.ts +23 -0
  438. package/dist/core/objects/trigger/changes/trigger.comment.js +51 -0
  439. package/dist/core/objects/trigger/changes/trigger.create.d.ts +41 -0
  440. package/dist/core/objects/trigger/changes/trigger.create.js +61 -0
  441. package/dist/core/objects/trigger/changes/trigger.drop.d.ts +22 -0
  442. package/dist/core/objects/trigger/changes/trigger.drop.js +33 -0
  443. package/dist/core/objects/trigger/changes/trigger.types.d.ts +5 -0
  444. package/dist/core/objects/trigger/changes/trigger.types.js +1 -0
  445. package/dist/core/objects/trigger/trigger.diff.d.ts +11 -0
  446. package/dist/core/objects/trigger/trigger.diff.js +84 -0
  447. package/dist/core/objects/trigger/trigger.model.d.ts +92 -0
  448. package/dist/core/objects/trigger/trigger.model.js +235 -0
  449. package/dist/core/objects/type/composite-type/changes/composite-type.alter.d.ts +81 -0
  450. package/dist/core/objects/type/composite-type/changes/composite-type.alter.js +123 -0
  451. package/dist/core/objects/type/composite-type/changes/composite-type.base.d.ts +17 -0
  452. package/dist/core/objects/type/composite-type/changes/composite-type.base.js +13 -0
  453. package/dist/core/objects/type/composite-type/changes/composite-type.comment.d.ts +53 -0
  454. package/dist/core/objects/type/composite-type/changes/composite-type.comment.js +108 -0
  455. package/dist/core/objects/type/composite-type/changes/composite-type.create.d.ts +23 -0
  456. package/dist/core/objects/type/composite-type/changes/composite-type.create.js +72 -0
  457. package/dist/core/objects/type/composite-type/changes/composite-type.drop.d.ts +22 -0
  458. package/dist/core/objects/type/composite-type/changes/composite-type.drop.js +31 -0
  459. package/dist/core/objects/type/composite-type/changes/composite-type.privilege.d.ts +97 -0
  460. package/dist/core/objects/type/composite-type/changes/composite-type.privilege.js +131 -0
  461. package/dist/core/objects/type/composite-type/changes/composite-type.types.d.ts +6 -0
  462. package/dist/core/objects/type/composite-type/changes/composite-type.types.js +1 -0
  463. package/dist/core/objects/type/composite-type/composite-type.diff.d.ts +18 -0
  464. package/dist/core/objects/type/composite-type/composite-type.diff.js +250 -0
  465. package/dist/core/objects/type/composite-type/composite-type.model.d.ts +148 -0
  466. package/dist/core/objects/type/composite-type/composite-type.model.js +223 -0
  467. package/dist/core/objects/type/enum/changes/enum.alter.d.ts +52 -0
  468. package/dist/core/objects/type/enum/changes/enum.alter.js +60 -0
  469. package/dist/core/objects/type/enum/changes/enum.base.d.ts +17 -0
  470. package/dist/core/objects/type/enum/changes/enum.base.js +13 -0
  471. package/dist/core/objects/type/enum/changes/enum.comment.d.ts +26 -0
  472. package/dist/core/objects/type/enum/changes/enum.comment.js +47 -0
  473. package/dist/core/objects/type/enum/changes/enum.create.d.ts +22 -0
  474. package/dist/core/objects/type/enum/changes/enum.create.js +43 -0
  475. package/dist/core/objects/type/enum/changes/enum.drop.d.ts +22 -0
  476. package/dist/core/objects/type/enum/changes/enum.drop.js +28 -0
  477. package/dist/core/objects/type/enum/changes/enum.privilege.d.ts +97 -0
  478. package/dist/core/objects/type/enum/changes/enum.privilege.js +131 -0
  479. package/dist/core/objects/type/enum/changes/enum.types.d.ts +6 -0
  480. package/dist/core/objects/type/enum/changes/enum.types.js +1 -0
  481. package/dist/core/objects/type/enum/enum.diff.d.ts +18 -0
  482. package/dist/core/objects/type/enum/enum.diff.js +268 -0
  483. package/dist/core/objects/type/enum/enum.model.d.ts +66 -0
  484. package/dist/core/objects/type/enum/enum.model.js +154 -0
  485. package/dist/core/objects/type/range/changes/range.alter.d.ts +33 -0
  486. package/dist/core/objects/type/range/changes/range.alter.js +30 -0
  487. package/dist/core/objects/type/range/changes/range.base.d.ts +17 -0
  488. package/dist/core/objects/type/range/changes/range.base.js +13 -0
  489. package/dist/core/objects/type/range/changes/range.comment.d.ts +26 -0
  490. package/dist/core/objects/type/range/changes/range.comment.js +47 -0
  491. package/dist/core/objects/type/range/changes/range.create.d.ts +31 -0
  492. package/dist/core/objects/type/range/changes/range.create.js +113 -0
  493. package/dist/core/objects/type/range/changes/range.drop.d.ts +22 -0
  494. package/dist/core/objects/type/range/changes/range.drop.js +28 -0
  495. package/dist/core/objects/type/range/changes/range.privilege.d.ts +97 -0
  496. package/dist/core/objects/type/range/changes/range.privilege.js +131 -0
  497. package/dist/core/objects/type/range/changes/range.types.d.ts +6 -0
  498. package/dist/core/objects/type/range/changes/range.types.js +1 -0
  499. package/dist/core/objects/type/range/range.diff.d.ts +18 -0
  500. package/dist/core/objects/type/range/range.diff.js +172 -0
  501. package/dist/core/objects/type/range/range.model.d.ts +81 -0
  502. package/dist/core/objects/type/range/range.model.js +165 -0
  503. package/dist/core/objects/type/type.types.d.ts +4 -0
  504. package/dist/core/objects/type/type.types.js +1 -0
  505. package/dist/core/objects/utils.d.ts +57 -0
  506. package/dist/core/objects/utils.js +137 -0
  507. package/dist/core/objects/view/changes/view.alter.d.ts +62 -0
  508. package/dist/core/objects/view/changes/view.alter.js +75 -0
  509. package/dist/core/objects/view/changes/view.base.d.ts +17 -0
  510. package/dist/core/objects/view/changes/view.base.js +13 -0
  511. package/dist/core/objects/view/changes/view.comment.d.ts +23 -0
  512. package/dist/core/objects/view/changes/view.comment.js +46 -0
  513. package/dist/core/objects/view/changes/view.create.d.ts +27 -0
  514. package/dist/core/objects/view/changes/view.create.js +57 -0
  515. package/dist/core/objects/view/changes/view.drop.d.ts +17 -0
  516. package/dist/core/objects/view/changes/view.drop.js +30 -0
  517. package/dist/core/objects/view/changes/view.privilege.d.ts +107 -0
  518. package/dist/core/objects/view/changes/view.privilege.js +150 -0
  519. package/dist/core/objects/view/changes/view.types.d.ts +6 -0
  520. package/dist/core/objects/view/changes/view.types.js +1 -0
  521. package/dist/core/objects/view/view.diff.d.ts +18 -0
  522. package/dist/core/objects/view/view.diff.js +270 -0
  523. package/dist/core/objects/view/view.model.d.ts +152 -0
  524. package/dist/core/objects/view/view.model.js +250 -0
  525. package/dist/core/plan/apply.d.ts +33 -0
  526. package/dist/core/plan/apply.js +112 -0
  527. package/dist/core/plan/create.d.ts +22 -0
  528. package/dist/core/plan/create.js +228 -0
  529. package/dist/core/plan/hierarchy.d.ts +19 -0
  530. package/dist/core/plan/hierarchy.js +488 -0
  531. package/dist/core/plan/index.d.ts +19 -0
  532. package/dist/core/plan/index.js +21 -0
  533. package/dist/core/plan/io.d.ts +12 -0
  534. package/dist/core/plan/io.js +17 -0
  535. package/dist/core/plan/risk.d.ts +10 -0
  536. package/dist/core/plan/risk.js +38 -0
  537. package/dist/core/plan/serialize.d.ts +26 -0
  538. package/dist/core/plan/serialize.js +176 -0
  539. package/dist/core/plan/statements.d.ts +8 -0
  540. package/dist/core/plan/statements.js +13 -0
  541. package/dist/core/plan/types.d.ts +153 -0
  542. package/dist/core/plan/types.js +32 -0
  543. package/dist/core/postgres-config.d.ts +8 -0
  544. package/dist/core/postgres-config.js +46 -0
  545. package/dist/core/sort/custom-constraints.d.ts +9 -0
  546. package/dist/core/sort/custom-constraints.js +133 -0
  547. package/dist/core/sort/debug-visualization.d.ts +8 -0
  548. package/dist/core/sort/debug-visualization.js +145 -0
  549. package/dist/core/sort/dependency-filter.d.ts +19 -0
  550. package/dist/core/sort/dependency-filter.js +152 -0
  551. package/dist/core/sort/graph-builder.d.ts +37 -0
  552. package/dist/core/sort/graph-builder.js +172 -0
  553. package/dist/core/sort/graph-utils.d.ts +14 -0
  554. package/dist/core/sort/graph-utils.js +41 -0
  555. package/dist/core/sort/logical-sort.d.ts +26 -0
  556. package/dist/core/sort/logical-sort.js +532 -0
  557. package/dist/core/sort/sort-changes.d.ts +28 -0
  558. package/dist/core/sort/sort-changes.js +147 -0
  559. package/dist/core/sort/topological-sort.d.ts +20 -0
  560. package/dist/core/sort/topological-sort.js +138 -0
  561. package/dist/core/sort/types.d.ts +102 -0
  562. package/dist/core/sort/types.js +1 -0
  563. package/dist/core/sort/utils.d.ts +23 -0
  564. package/dist/core/sort/utils.js +51 -0
  565. package/dist/index.d.ts +1 -0
  566. package/dist/index.js +1 -0
  567. package/package.json +58 -12
@@ -0,0 +1,14 @@
1
+ import type { Catalog } from "./catalog.model.ts";
2
+ import type { Change } from "./change.types.ts";
3
+ /**
4
+ * For objects we are replacing (drop + create), ensure that any dependents are also
5
+ * replaced so that destructive drops succeed. Uses dependency edges from pg_depend
6
+ * (already captured in Catalog.depends) plus change metadata (creates/drops/requires).
7
+ *
8
+ * New changes are appended; ordering is handled later by the sorter.
9
+ */
10
+ export declare function expandReplaceDependencies({ changes, mainCatalog, branchCatalog, }: {
11
+ changes: Change[];
12
+ mainCatalog: Catalog;
13
+ branchCatalog: Catalog;
14
+ }): Change[];
@@ -0,0 +1,280 @@
1
+ import { CreateDomain } from "./objects/domain/changes/domain.create.js";
2
+ import { DropDomain } from "./objects/domain/changes/domain.drop.js";
3
+ import { CreateMaterializedView } from "./objects/materialized-view/changes/materialized-view.create.js";
4
+ import { DropMaterializedView } from "./objects/materialized-view/changes/materialized-view.drop.js";
5
+ import { CreateProcedure } from "./objects/procedure/changes/procedure.create.js";
6
+ import { DropProcedure } from "./objects/procedure/changes/procedure.drop.js";
7
+ import { AlterTableAddConstraint, AlterTableValidateConstraint, } from "./objects/table/changes/table.alter.js";
8
+ import { CreateCommentOnConstraint } from "./objects/table/changes/table.comment.js";
9
+ import { CreateTable } from "./objects/table/changes/table.create.js";
10
+ import { DropTable } from "./objects/table/changes/table.drop.js";
11
+ import { CreateCompositeType } from "./objects/type/composite-type/changes/composite-type.create.js";
12
+ import { DropCompositeType } from "./objects/type/composite-type/changes/composite-type.drop.js";
13
+ import { CreateEnum } from "./objects/type/enum/changes/enum.create.js";
14
+ import { DropEnum } from "./objects/type/enum/changes/enum.drop.js";
15
+ import { CreateRange } from "./objects/type/range/changes/range.create.js";
16
+ import { DropRange } from "./objects/type/range/changes/range.drop.js";
17
+ import { CreateView } from "./objects/view/changes/view.create.js";
18
+ import { DropView } from "./objects/view/changes/view.drop.js";
19
+ /**
20
+ * For objects we are replacing (drop + create), ensure that any dependents are also
21
+ * replaced so that destructive drops succeed. Uses dependency edges from pg_depend
22
+ * (already captured in Catalog.depends) plus change metadata (creates/drops/requires).
23
+ *
24
+ * New changes are appended; ordering is handled later by the sorter.
25
+ */
26
+ export function expandReplaceDependencies({ changes, mainCatalog, branchCatalog, }) {
27
+ const createdIds = new Set();
28
+ const droppedIds = new Set();
29
+ for (const change of changes) {
30
+ for (const id of change.creates ?? [])
31
+ createdIds.add(id);
32
+ for (const id of change.drops ?? [])
33
+ droppedIds.add(id);
34
+ }
35
+ const replaceRoots = new Set();
36
+ for (const id of createdIds) {
37
+ if (droppedIds.has(id)) {
38
+ replaceRoots.add(id);
39
+ }
40
+ }
41
+ if (replaceRoots.size === 0) {
42
+ return changes;
43
+ }
44
+ // Build referenced -> dependents adjacency from main catalog dependencies.
45
+ const dependentsByReferenced = new Map();
46
+ for (const dep of mainCatalog.depends) {
47
+ let list = dependentsByReferenced.get(dep.referenced_stable_id);
48
+ if (!list) {
49
+ list = new Set();
50
+ dependentsByReferenced.set(dep.referenced_stable_id, list);
51
+ }
52
+ list.add(dep.dependent_stable_id);
53
+ }
54
+ const additions = [];
55
+ const visitedTargets = new Set();
56
+ const visitedRefs = new Set(replaceRoots);
57
+ const queue = [...replaceRoots];
58
+ while (queue.length > 0) {
59
+ const refId = queue.shift();
60
+ const dependents = dependentsByReferenced.get(refId);
61
+ if (!dependents)
62
+ continue;
63
+ for (const dependentRaw of dependents) {
64
+ // Continue traversing the dependency graph from the raw dependent id.
65
+ if (!visitedRefs.has(dependentRaw)) {
66
+ visitedRefs.add(dependentRaw);
67
+ queue.push(dependentRaw);
68
+ }
69
+ const targetId = normalizeDependentId(dependentRaw);
70
+ if (!targetId)
71
+ continue;
72
+ // Also traverse using the normalized owning object id (e.g., table for a column).
73
+ if (!visitedRefs.has(targetId)) {
74
+ visitedRefs.add(targetId);
75
+ queue.push(targetId);
76
+ }
77
+ if (visitedTargets.has(targetId))
78
+ continue;
79
+ visitedTargets.add(targetId);
80
+ // Already handled (either original replace or previously added).
81
+ if (createdIds.has(targetId) && droppedIds.has(targetId))
82
+ continue;
83
+ if (replaceRoots.has(targetId))
84
+ continue;
85
+ const resolved = resolveObjectForStableId(targetId, mainCatalog, branchCatalog);
86
+ if (!resolved)
87
+ continue;
88
+ const hasCreate = createdIds.has(targetId);
89
+ const hasDrop = droppedIds.has(targetId);
90
+ const addDrop = !hasDrop;
91
+ const addCreate = !hasCreate;
92
+ if (!addDrop && !addCreate)
93
+ continue;
94
+ const replacementChanges = buildReplaceChanges(resolved, {
95
+ addDrop,
96
+ addCreate,
97
+ });
98
+ if (!replacementChanges)
99
+ continue;
100
+ additions.push(...replacementChanges);
101
+ // Track new creates/drops so we don't duplicate work for downstream dependents.
102
+ for (const change of replacementChanges) {
103
+ for (const id of change.creates ?? [])
104
+ createdIds.add(id);
105
+ for (const id of change.drops ?? [])
106
+ droppedIds.add(id);
107
+ }
108
+ }
109
+ }
110
+ if (additions.length === 0) {
111
+ return changes;
112
+ }
113
+ return [...changes, ...additions];
114
+ }
115
+ function normalizeDependentId(dependentId) {
116
+ let id = dependentId;
117
+ while (id.startsWith("comment:")) {
118
+ id = id.slice("comment:".length);
119
+ }
120
+ if (id.startsWith("acl:") ||
121
+ id.startsWith("defacl:") ||
122
+ id.startsWith("membership:") ||
123
+ id.startsWith("role:") ||
124
+ id.startsWith("schema:")) {
125
+ return null;
126
+ }
127
+ if (id.startsWith("column:")) {
128
+ const parts = id.slice("column:".length).split(".");
129
+ if (parts.length >= 2) {
130
+ const [schema, table] = parts;
131
+ return `table:${schema}.${table}`;
132
+ }
133
+ return null;
134
+ }
135
+ if (id.startsWith("constraint:")) {
136
+ const parts = id.slice("constraint:".length).split(".");
137
+ if (parts.length >= 2) {
138
+ const [schema, table] = parts;
139
+ return `table:${schema}.${table}`;
140
+ }
141
+ return null;
142
+ }
143
+ return id;
144
+ }
145
+ function resolveObjectForStableId(stableId, mainCatalog, branchCatalog) {
146
+ if (stableId.startsWith("table:")) {
147
+ const main = mainCatalog.tables[stableId];
148
+ const branch = branchCatalog.tables[stableId];
149
+ return main && branch ? { kind: "table", main, branch } : null;
150
+ }
151
+ if (stableId.startsWith("view:")) {
152
+ const main = mainCatalog.views[stableId];
153
+ const branch = branchCatalog.views[stableId];
154
+ return main && branch ? { kind: "view", main, branch } : null;
155
+ }
156
+ if (stableId.startsWith("materializedView:")) {
157
+ const main = mainCatalog.materializedViews[stableId];
158
+ const branch = branchCatalog.materializedViews[stableId];
159
+ return main && branch ? { kind: "materialized_view", main, branch } : null;
160
+ }
161
+ if (stableId.startsWith("procedure:")) {
162
+ const main = mainCatalog.procedures[stableId];
163
+ const branch = branchCatalog.procedures[stableId];
164
+ return main && branch ? { kind: "procedure", main, branch } : null;
165
+ }
166
+ if (stableId.startsWith("domain:")) {
167
+ const main = mainCatalog.domains[stableId];
168
+ const branch = branchCatalog.domains[stableId];
169
+ return main && branch ? { kind: "domain", main, branch } : null;
170
+ }
171
+ if (stableId.startsWith("type:")) {
172
+ const enumMain = mainCatalog.enums[stableId];
173
+ const enumBranch = branchCatalog.enums[stableId];
174
+ if (enumMain && enumBranch) {
175
+ return { kind: "enum", main: enumMain, branch: enumBranch };
176
+ }
177
+ const rangeMain = mainCatalog.ranges[stableId];
178
+ const rangeBranch = branchCatalog.ranges[stableId];
179
+ if (rangeMain && rangeBranch) {
180
+ return { kind: "range", main: rangeMain, branch: rangeBranch };
181
+ }
182
+ const compositeMain = mainCatalog.compositeTypes[stableId];
183
+ const compositeBranch = branchCatalog.compositeTypes[stableId];
184
+ if (compositeMain && compositeBranch) {
185
+ return {
186
+ kind: "composite_type",
187
+ main: compositeMain,
188
+ branch: compositeBranch,
189
+ };
190
+ }
191
+ }
192
+ return null;
193
+ }
194
+ function buildReplaceChanges(resolved, options) {
195
+ const { addDrop, addCreate } = options;
196
+ if (!addDrop && !addCreate)
197
+ return null;
198
+ switch (resolved.kind) {
199
+ case "table":
200
+ return [
201
+ ...(addDrop ? [new DropTable({ table: resolved.main })] : []),
202
+ ...(addCreate
203
+ ? [
204
+ new CreateTable({ table: resolved.branch }),
205
+ ...(resolved.branch.constraints ?? [])
206
+ .filter((c) => !c.is_partition_clone)
207
+ .flatMap((constraint) => {
208
+ const items = [
209
+ new AlterTableAddConstraint({
210
+ table: resolved.branch,
211
+ constraint,
212
+ }),
213
+ ];
214
+ if (!constraint.validated) {
215
+ items.push(new AlterTableValidateConstraint({
216
+ table: resolved.branch,
217
+ constraint,
218
+ }));
219
+ }
220
+ if (constraint.comment !== null &&
221
+ constraint.comment !== undefined) {
222
+ items.push(new CreateCommentOnConstraint({
223
+ table: resolved.branch,
224
+ constraint,
225
+ }));
226
+ }
227
+ return items;
228
+ }),
229
+ ]
230
+ : []),
231
+ ];
232
+ case "view":
233
+ return [
234
+ ...(addDrop ? [new DropView({ view: resolved.main })] : []),
235
+ ...(addCreate ? [new CreateView({ view: resolved.branch })] : []),
236
+ ];
237
+ case "materialized_view":
238
+ return [
239
+ ...(addDrop
240
+ ? [new DropMaterializedView({ materializedView: resolved.main })]
241
+ : []),
242
+ ...(addCreate
243
+ ? [new CreateMaterializedView({ materializedView: resolved.branch })]
244
+ : []),
245
+ ];
246
+ case "procedure":
247
+ return [
248
+ ...(addDrop ? [new DropProcedure({ procedure: resolved.main })] : []),
249
+ ...(addCreate
250
+ ? [new CreateProcedure({ procedure: resolved.branch })]
251
+ : []),
252
+ ];
253
+ case "enum":
254
+ return [
255
+ ...(addDrop ? [new DropEnum({ enum: resolved.main })] : []),
256
+ ...(addCreate ? [new CreateEnum({ enum: resolved.branch })] : []),
257
+ ];
258
+ case "range":
259
+ return [
260
+ ...(addDrop ? [new DropRange({ range: resolved.main })] : []),
261
+ ...(addCreate ? [new CreateRange({ range: resolved.branch })] : []),
262
+ ];
263
+ case "composite_type":
264
+ return [
265
+ ...(addDrop
266
+ ? [new DropCompositeType({ compositeType: resolved.main })]
267
+ : []),
268
+ ...(addCreate
269
+ ? [new CreateCompositeType({ compositeType: resolved.branch })]
270
+ : []),
271
+ ];
272
+ case "domain":
273
+ return [
274
+ ...(addDrop ? [new DropDomain({ domain: resolved.main })] : []),
275
+ ...(addCreate ? [new CreateDomain({ domain: resolved.branch })] : []),
276
+ ];
277
+ default:
278
+ return null;
279
+ }
280
+ }
@@ -0,0 +1,23 @@
1
+ import type { Catalog } from "./catalog.model.ts";
2
+ import type { Change } from "./change.types.ts";
3
+ /**
4
+ * Build a deterministic fingerprint for the objects actually touched by a plan.
5
+ * Uses the stableIds declared by the changes (creates/requires/drops) and snapshots
6
+ * only the catalog entities that exist for those stableIds (parent objects, no virtuals).
7
+ */
8
+ export declare function buildPlanScopeFingerprint(catalog: Catalog, changes: Change[]): {
9
+ hash: string;
10
+ stableIds: string[];
11
+ };
12
+ /**
13
+ * Compute a fingerprint from a catalog and a set of stableIds.
14
+ */
15
+ export declare function hashStableIds(catalog: Catalog, stableIds: string[]): string;
16
+ /**
17
+ * Hash a string to hex SHA256.
18
+ */
19
+ export declare function sha256(input: string): string;
20
+ /**
21
+ * Collect the union of stableIds referenced by all changes.
22
+ */
23
+ export declare function collectStableIds(changes: Change[]): string[];
@@ -0,0 +1,174 @@
1
+ import crypto from "node:crypto";
2
+ /**
3
+ * Build a deterministic fingerprint for the objects actually touched by a plan.
4
+ * Uses the stableIds declared by the changes (creates/requires/drops) and snapshots
5
+ * only the catalog entities that exist for those stableIds (parent objects, no virtuals).
6
+ */
7
+ export function buildPlanScopeFingerprint(catalog, changes) {
8
+ const stableIds = collectStableIds(changes);
9
+ const hash = hashStableIds(catalog, stableIds);
10
+ return { hash, stableIds };
11
+ }
12
+ /**
13
+ * Compute a fingerprint from a catalog and a set of stableIds.
14
+ */
15
+ export function hashStableIds(catalog, stableIds) {
16
+ const catalogLookup = buildCatalogLookup(catalog);
17
+ const projection = [];
18
+ for (const stableId of stableIds) {
19
+ const record = catalogLookup[stableId];
20
+ if (!record) {
21
+ continue;
22
+ }
23
+ projection.push({
24
+ stableId,
25
+ snapshot: record.stableSnapshot(),
26
+ });
27
+ }
28
+ const canonical = stableStringify(projection);
29
+ return sha256(canonical);
30
+ }
31
+ /**
32
+ * Hash a string to hex SHA256.
33
+ */
34
+ export function sha256(input) {
35
+ return crypto.createHash("sha256").update(input).digest("hex");
36
+ }
37
+ /**
38
+ * Collect the union of stableIds referenced by all changes.
39
+ */
40
+ export function collectStableIds(changes) {
41
+ const ids = new Set();
42
+ for (const change of changes) {
43
+ for (const id of getChangeStableIds(change)) {
44
+ ids.add(id);
45
+ }
46
+ }
47
+ return Array.from(ids).sort((a, b) => a.localeCompare(b));
48
+ }
49
+ /**
50
+ * Gather the stableIds a change touches (creates/requires/drops) and, when the
51
+ * change has a primary entity with a stableId, include it as well.
52
+ */
53
+ function getChangeStableIds(change) {
54
+ const ids = [];
55
+ // Dependencies declared on the change.
56
+ ids.push(...change.creates, ...change.requires, ...change.drops);
57
+ // Best-effort primary entity stableId, when available.
58
+ const primary = getPrimaryStableId(change);
59
+ if (primary)
60
+ ids.push(primary);
61
+ return ids;
62
+ }
63
+ /**
64
+ * Extract the primary entity stableId for a change, when it exists.
65
+ */
66
+ function getPrimaryStableId(change) {
67
+ switch (change.objectType) {
68
+ case "aggregate":
69
+ return change.aggregate.stableId;
70
+ case "collation":
71
+ return change.collation.stableId;
72
+ case "composite_type":
73
+ return change.compositeType.stableId;
74
+ case "domain":
75
+ return change.domain.stableId;
76
+ case "enum":
77
+ return change.enum.stableId;
78
+ case "event_trigger":
79
+ return change.eventTrigger.stableId;
80
+ case "extension":
81
+ return change.extension.stableId;
82
+ case "foreign_data_wrapper":
83
+ return change.foreignDataWrapper.stableId;
84
+ case "foreign_table":
85
+ return change.foreignTable.stableId;
86
+ case "index":
87
+ return change.index.stableId;
88
+ case "language":
89
+ return change.language.stableId;
90
+ case "materialized_view":
91
+ return change.materializedView.stableId;
92
+ case "procedure":
93
+ return change.procedure.stableId;
94
+ case "publication":
95
+ return change.publication.stableId;
96
+ case "range":
97
+ return change.range.stableId;
98
+ case "role":
99
+ return change.role.stableId;
100
+ case "schema":
101
+ return change.schema.stableId;
102
+ case "sequence":
103
+ return change.sequence.stableId;
104
+ case "server":
105
+ return change.server.stableId;
106
+ case "subscription":
107
+ return change.subscription.stableId;
108
+ case "table":
109
+ return change.table.stableId;
110
+ case "trigger":
111
+ return change.trigger.stableId;
112
+ case "rls_policy":
113
+ return change.policy.stableId;
114
+ case "rule":
115
+ return change.rule.stableId;
116
+ case "view":
117
+ return change.view.stableId;
118
+ case "user_mapping":
119
+ return change.userMapping.stableId;
120
+ default:
121
+ return null;
122
+ }
123
+ }
124
+ /**
125
+ * Build a flat lookup of catalog objects keyed by stableId.
126
+ */
127
+ function buildCatalogLookup(catalog) {
128
+ return {
129
+ ...catalog.aggregates,
130
+ ...catalog.collations,
131
+ ...catalog.compositeTypes,
132
+ ...catalog.domains,
133
+ ...catalog.enums,
134
+ ...catalog.extensions,
135
+ ...catalog.procedures,
136
+ ...catalog.indexes,
137
+ ...catalog.materializedViews,
138
+ ...catalog.subscriptions,
139
+ ...catalog.publications,
140
+ ...catalog.rlsPolicies,
141
+ ...catalog.roles,
142
+ ...catalog.schemas,
143
+ ...catalog.sequences,
144
+ ...catalog.tables,
145
+ ...catalog.triggers,
146
+ ...catalog.eventTriggers,
147
+ ...catalog.rules,
148
+ ...catalog.ranges,
149
+ ...catalog.views,
150
+ ...catalog.foreignDataWrappers,
151
+ ...catalog.servers,
152
+ ...catalog.userMappings,
153
+ ...catalog.foreignTables,
154
+ };
155
+ }
156
+ /**
157
+ * Deterministic stringify with sorted object keys.
158
+ */
159
+ function stableStringify(value) {
160
+ if (value === null || typeof value !== "object") {
161
+ if (typeof value === "bigint") {
162
+ return JSON.stringify(value.toString());
163
+ }
164
+ return JSON.stringify(value);
165
+ }
166
+ if (Array.isArray(value)) {
167
+ return `[${value.map(stableStringify).join(",")}]`;
168
+ }
169
+ const entries = Object.entries(value).sort(([a], [b]) => a.localeCompare(b));
170
+ const inner = entries
171
+ .map(([k, v]) => `${JSON.stringify(k)}:${stableStringify(v)}`)
172
+ .join(",");
173
+ return `{${inner}}`;
174
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @supabase/pg-delta - PostgreSQL migrations made easy
3
+ *
4
+ * This module exports the public API for the pg-delta library.
5
+ */
6
+ export type { ChangeGroup, ChangeScope, ChildObjectType, ClusterGroup, ClusterObjectType, CreatePlanOptions, HierarchicalPlan, MaterializedViewChildren, ObjectType, ParentType, Plan, SchemaGroup, TableChildren, TypeGroup, } from "./plan/index.ts";
7
+ export { createPlan, groupChangesHierarchically, } from "./plan/index.ts";
8
+ export type { Integration } from "./integrations/integration.types.ts";
9
+ export { diffCatalogs } from "./catalog.diff.ts";
10
+ export { Catalog, extractCatalog } from "./catalog.model.ts";
11
+ export type { Change } from "./change.types.ts";
12
+ export type { DiffContext } from "./context.ts";
13
+ export { buildPlanScopeFingerprint, collectStableIds, hashStableIds, sha256, } from "./fingerprint.ts";
14
+ export { postgresConfig } from "./postgres-config.ts";
15
+ export { sortChanges } from "./sort/sort-changes.ts";
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @supabase/pg-delta - PostgreSQL migrations made easy
3
+ *
4
+ * This module exports the public API for the pg-delta library.
5
+ */
6
+ export { createPlan, groupChangesHierarchically, } from "./plan/index.js";
7
+ // =============================================================================
8
+ // Low-level APIs (for advanced usage)
9
+ // =============================================================================
10
+ export { diffCatalogs } from "./catalog.diff.js";
11
+ export { Catalog, extractCatalog } from "./catalog.model.js";
12
+ export { buildPlanScopeFingerprint, collectStableIds, hashStableIds, sha256, } from "./fingerprint.js";
13
+ export { postgresConfig } from "./postgres-config.js";
14
+ export { sortChanges } from "./sort/sort-changes.js";
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Filter DSL - A serializable domain-specific language for change filtering.
3
+ */
4
+ import type { Change } from "../../change.types.ts";
5
+ import type { ChangeFilter } from "../../main.ts";
6
+ /**
7
+ * Core properties that all changes have.
8
+ */
9
+ type CoreProperties = {
10
+ type?: Change["objectType"];
11
+ operation?: "create" | "alter" | "drop";
12
+ scope?: Change["scope"];
13
+ };
14
+ /**
15
+ * Extracted properties that are extracted from changes via extractor functions.
16
+ * String value = exact match, Array value = value must be in array
17
+ */
18
+ type ExtractedProperties = {
19
+ schema?: string | string[];
20
+ owner?: string | string[];
21
+ member?: string | string[];
22
+ };
23
+ /**
24
+ * Property pattern - matches against change properties.
25
+ * Multiple properties are combined with AND (all must match).
26
+ */
27
+ type PropertyPattern = CoreProperties & ExtractedProperties & {
28
+ and?: never;
29
+ or?: never;
30
+ not?: never;
31
+ };
32
+ /**
33
+ * Composition pattern - combines other patterns using logical operators.
34
+ * Composition operators are exclusive - cannot be mixed with properties.
35
+ */
36
+ type CompositionPattern = ({
37
+ and: FilterPattern[];
38
+ or?: never;
39
+ not?: never;
40
+ } & {
41
+ [K in keyof CoreProperties]?: never;
42
+ } & {
43
+ [K in keyof ExtractedProperties]?: never;
44
+ }) | ({
45
+ or: FilterPattern[];
46
+ and?: never;
47
+ not?: never;
48
+ } & {
49
+ [K in keyof CoreProperties]?: never;
50
+ } & {
51
+ [K in keyof ExtractedProperties]?: never;
52
+ }) | ({
53
+ not: FilterPattern;
54
+ and?: never;
55
+ or?: never;
56
+ } & {
57
+ [K in keyof CoreProperties]?: never;
58
+ } & {
59
+ [K in keyof ExtractedProperties]?: never;
60
+ });
61
+ /**
62
+ * Filter pattern DSL.
63
+ * Either a property pattern (matches against change properties) or
64
+ * a composition pattern (combines other patterns using logical operators).
65
+ * Composition operators are exclusive - cannot be mixed with properties.
66
+ */
67
+ export type FilterPattern = PropertyPattern | CompositionPattern;
68
+ /**
69
+ * Filter DSL - a single pattern expression.
70
+ */
71
+ export type FilterDSL = FilterPattern;
72
+ /**
73
+ * Evaluate a pattern against a change.
74
+ *
75
+ * @param pattern - The pattern to evaluate
76
+ * @param change - The change to match against
77
+ * @returns true if the pattern matches, false otherwise
78
+ */
79
+ export declare function evaluatePattern(pattern: FilterPattern, change: Change): boolean;
80
+ /**
81
+ * Compile a Filter DSL to a ChangeFilter function.
82
+ *
83
+ * @param dsl - The filter DSL pattern
84
+ * @returns A ChangeFilter function that evaluates the pattern
85
+ *
86
+ * @example
87
+ * ```ts
88
+ * const filter = compileFilterDSL({
89
+ * or: [
90
+ * { type: "schema", operation: "create" },
91
+ * { schema: "public" }
92
+ * ]
93
+ * });
94
+ * ```
95
+ */
96
+ export declare function compileFilterDSL(dsl: FilterDSL): ChangeFilter;
97
+ export {};