@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,176 @@
1
+ /**
2
+ * Helpers for extracting object info from Change objects.
3
+ */
4
+ /**
5
+ * Get the object name from a change (exhaustive).
6
+ */
7
+ export function getObjectName(change) {
8
+ switch (change.objectType) {
9
+ case "aggregate":
10
+ return change.aggregate.name;
11
+ case "collation":
12
+ return change.collation.name;
13
+ case "composite_type":
14
+ return change.compositeType.name;
15
+ case "domain":
16
+ return change.domain.name;
17
+ case "enum":
18
+ return change.enum.name;
19
+ case "event_trigger":
20
+ return change.eventTrigger.name;
21
+ case "extension":
22
+ return change.extension.name;
23
+ case "foreign_data_wrapper":
24
+ return change.foreignDataWrapper.name;
25
+ case "foreign_table":
26
+ return change.foreignTable.name;
27
+ case "index":
28
+ return change.index.name;
29
+ case "language":
30
+ return change.language.name;
31
+ case "materialized_view":
32
+ return change.materializedView.name;
33
+ case "procedure":
34
+ return change.procedure.name;
35
+ case "publication":
36
+ return change.publication.name;
37
+ case "range":
38
+ return change.range.name;
39
+ case "rls_policy":
40
+ return change.policy.name;
41
+ case "role":
42
+ return change.role.name;
43
+ case "rule":
44
+ return change.rule.name;
45
+ case "schema":
46
+ return change.schema.name;
47
+ case "sequence":
48
+ return change.sequence.name;
49
+ case "server":
50
+ return change.server.name;
51
+ case "subscription":
52
+ return change.subscription.name;
53
+ case "table":
54
+ return change.table.name;
55
+ case "trigger":
56
+ return change.trigger.name;
57
+ case "user_mapping":
58
+ return `${change.userMapping.user}@${change.userMapping.server}`;
59
+ case "view":
60
+ return change.view.name;
61
+ default: {
62
+ const _exhaustive = change;
63
+ return _exhaustive;
64
+ }
65
+ }
66
+ }
67
+ /**
68
+ * Get the schema from a change, or null for cluster-wide objects (exhaustive).
69
+ */
70
+ export function getObjectSchema(change) {
71
+ switch (change.objectType) {
72
+ case "aggregate":
73
+ return change.aggregate.schema;
74
+ case "collation":
75
+ return change.collation.schema;
76
+ case "composite_type":
77
+ return change.compositeType.schema;
78
+ case "domain":
79
+ return change.domain.schema;
80
+ case "enum":
81
+ return change.enum.schema;
82
+ case "event_trigger":
83
+ return null;
84
+ case "extension":
85
+ return change.extension.schema;
86
+ case "foreign_data_wrapper":
87
+ return null;
88
+ case "foreign_table":
89
+ return change.foreignTable.schema;
90
+ case "index":
91
+ return change.index.schema;
92
+ case "language":
93
+ return null;
94
+ case "materialized_view":
95
+ return change.materializedView.schema;
96
+ case "procedure":
97
+ return change.procedure.schema;
98
+ case "publication":
99
+ return null;
100
+ case "range":
101
+ return change.range.schema;
102
+ case "rls_policy":
103
+ return change.policy.schema;
104
+ case "role":
105
+ return null;
106
+ case "rule":
107
+ return change.rule.schema;
108
+ case "schema":
109
+ return change.schema.name;
110
+ case "sequence":
111
+ return change.sequence.schema;
112
+ case "server":
113
+ return null;
114
+ case "subscription":
115
+ return null;
116
+ case "table":
117
+ return change.table.schema;
118
+ case "trigger":
119
+ return change.trigger.schema;
120
+ case "user_mapping":
121
+ return null;
122
+ case "view":
123
+ return change.view.schema;
124
+ default: {
125
+ const _exhaustive = change;
126
+ return _exhaustive;
127
+ }
128
+ }
129
+ }
130
+ /**
131
+ * Get parent info for child objects (indexes, triggers, policies, rules).
132
+ * Returns null for top-level objects (exhaustive).
133
+ */
134
+ export function getParentInfo(change) {
135
+ switch (change.objectType) {
136
+ case "index": {
137
+ // Indexes can belong to tables or materialized views
138
+ // Use table_relkind to determine the parent type: 'r' = table, 'm' = materialized view
139
+ const parentType = change.index.table_relkind === "m" ? "materialized_view" : "table";
140
+ return { type: parentType, name: change.index.table_name };
141
+ }
142
+ case "trigger":
143
+ return { type: "table", name: change.trigger.table_name };
144
+ case "rule":
145
+ return { type: "table", name: change.rule.table_name };
146
+ case "rls_policy":
147
+ return { type: "table", name: change.policy.table_name };
148
+ case "aggregate":
149
+ case "collation":
150
+ case "composite_type":
151
+ case "domain":
152
+ case "enum":
153
+ case "event_trigger":
154
+ case "extension":
155
+ case "foreign_data_wrapper":
156
+ case "foreign_table":
157
+ case "language":
158
+ case "materialized_view":
159
+ case "procedure":
160
+ case "publication":
161
+ case "range":
162
+ case "role":
163
+ case "schema":
164
+ case "sequence":
165
+ case "server":
166
+ case "subscription":
167
+ case "table":
168
+ case "user_mapping":
169
+ case "view":
170
+ return null;
171
+ default: {
172
+ const _exhaustive = change;
173
+ return _exhaustive;
174
+ }
175
+ }
176
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * SQL script formatting utilities.
3
+ */
4
+ /**
5
+ * Format an array of SQL statements into a single script string.
6
+ * Statements are joined with double newlines and the script ends with a semicolon.
7
+ */
8
+ export declare function formatSqlScript(statements: string[]): string;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * SQL script formatting utilities.
3
+ */
4
+ const STATEMENT_DELIMITER = ";\n\n";
5
+ /**
6
+ * Format an array of SQL statements into a single script string.
7
+ * Statements are joined with double newlines and the script ends with a semicolon.
8
+ */
9
+ export function formatSqlScript(statements) {
10
+ if (statements.length === 0)
11
+ return "";
12
+ return `${statements.join(STATEMENT_DELIMITER)};`;
13
+ }
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Type definitions for the Plan module.
3
+ */
4
+ import z from "zod";
5
+ import type { Change } from "../change.types.ts";
6
+ import type { FilterDSL } from "../integrations/filter/dsl.ts";
7
+ import type { SerializeDSL } from "../integrations/serialize/dsl.ts";
8
+ import type { ChangeFilter, ChangeSerializer } from "../main.ts";
9
+ export type PlanRisk = {
10
+ level: "safe";
11
+ } | {
12
+ level: "data_loss";
13
+ statements: string[];
14
+ };
15
+ /**
16
+ * All supported object types in the system.
17
+ * Derived from the Change union type's objectType discriminant.
18
+ */
19
+ export type ObjectType = Change["objectType"];
20
+ /**
21
+ * Cluster-wide object types (no schema).
22
+ */
23
+ export type ClusterObjectType = Extract<ObjectType, "event_trigger" | "foreign_data_wrapper" | "language" | "publication" | "role" | "server" | "subscription" | "user_mapping">;
24
+ /**
25
+ * Object types that are children of tables/views.
26
+ */
27
+ export type ChildObjectType = Extract<ObjectType, "index" | "trigger" | "rule" | "rls_policy">;
28
+ /**
29
+ * Parent types for child objects.
30
+ */
31
+ export type ParentType = Extract<ObjectType, "table" | "view" | "materialized_view" | "foreign_table">;
32
+ /**
33
+ * Change scopes - what aspect of an object is being changed.
34
+ * Derived from the Change union type's scope property.
35
+ */
36
+ export type ChangeScope = Change["scope"];
37
+ /**
38
+ * A change entry storing both serialized and original change for instanceof checks.
39
+ */
40
+ export interface ChangeEntry {
41
+ original: Change;
42
+ }
43
+ /**
44
+ * A group of changes organized by operation.
45
+ */
46
+ export interface ChangeGroup {
47
+ create: ChangeEntry[];
48
+ alter: ChangeEntry[];
49
+ drop: ChangeEntry[];
50
+ }
51
+ /**
52
+ * Children objects of a table/view (indexes, triggers, policies, etc.)
53
+ */
54
+ export interface TableChildren {
55
+ changes: ChangeGroup;
56
+ columns: ChangeGroup;
57
+ indexes: ChangeGroup;
58
+ triggers: ChangeGroup;
59
+ rules: ChangeGroup;
60
+ policies: ChangeGroup;
61
+ /** Partition tables (only for partitioned tables) */
62
+ partitions: Record<string, TableChildren>;
63
+ }
64
+ /**
65
+ * Children objects of a materialized view
66
+ */
67
+ export interface MaterializedViewChildren {
68
+ changes: ChangeGroup;
69
+ indexes: ChangeGroup;
70
+ }
71
+ /**
72
+ * Type grouping within a schema
73
+ */
74
+ export interface TypeGroup {
75
+ enums: ChangeGroup;
76
+ composites: ChangeGroup;
77
+ ranges: ChangeGroup;
78
+ domains: ChangeGroup;
79
+ }
80
+ /**
81
+ * Schema-level grouping of objects
82
+ */
83
+ export interface SchemaGroup {
84
+ changes: ChangeGroup;
85
+ tables: Record<string, TableChildren>;
86
+ views: Record<string, TableChildren>;
87
+ materializedViews: Record<string, MaterializedViewChildren>;
88
+ functions: ChangeGroup;
89
+ procedures: ChangeGroup;
90
+ aggregates: ChangeGroup;
91
+ sequences: ChangeGroup;
92
+ types: TypeGroup;
93
+ collations: ChangeGroup;
94
+ foreignTables: Record<string, TableChildren>;
95
+ }
96
+ /**
97
+ * Cluster-wide objects (no schema)
98
+ */
99
+ export interface ClusterGroup {
100
+ roles: ChangeGroup;
101
+ extensions: ChangeGroup;
102
+ eventTriggers: ChangeGroup;
103
+ publications: ChangeGroup;
104
+ subscriptions: ChangeGroup;
105
+ foreignDataWrappers: ChangeGroup;
106
+ servers: ChangeGroup;
107
+ userMappings: ChangeGroup;
108
+ }
109
+ /**
110
+ * Fully hierarchical plan structure for tree display.
111
+ */
112
+ export interface HierarchicalPlan {
113
+ cluster: ClusterGroup;
114
+ schemas: Record<string, SchemaGroup>;
115
+ }
116
+ /**
117
+ * Plan schema for serialization/deserialization.
118
+ */
119
+ export declare const PlanSchema: z.ZodObject<{
120
+ version: z.ZodNumber;
121
+ toolVersion: z.ZodOptional<z.ZodString>;
122
+ source: z.ZodObject<{
123
+ fingerprint: z.ZodString;
124
+ }, z.z.core.$strip>;
125
+ target: z.ZodObject<{
126
+ fingerprint: z.ZodString;
127
+ }, z.z.core.$strip>;
128
+ statements: z.ZodArray<z.ZodString>;
129
+ role: z.ZodOptional<z.ZodString>;
130
+ filter: z.ZodOptional<z.ZodAny>;
131
+ serialize: z.ZodOptional<z.ZodAny>;
132
+ risk: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
133
+ level: z.ZodLiteral<"safe">;
134
+ }, z.z.core.$strip>, z.ZodObject<{
135
+ level: z.ZodLiteral<"data_loss">;
136
+ statements: z.ZodArray<z.ZodString>;
137
+ }, z.z.core.$strip>], "level">>;
138
+ }, z.z.core.$strip>;
139
+ /**
140
+ * A migration plan containing all changes to transform one database schema into another.
141
+ */
142
+ export type Plan = z.infer<typeof PlanSchema>;
143
+ /**
144
+ * Options for creating a plan.
145
+ */
146
+ export interface CreatePlanOptions {
147
+ /** Filter - either FilterDSL (stored in plan) or ChangeFilter function (not stored) */
148
+ filter?: FilterDSL | ChangeFilter;
149
+ /** Serialize - either SerializeDSL (stored in plan) or ChangeSerializer function (not stored) */
150
+ serialize?: SerializeDSL | ChangeSerializer;
151
+ /** Role to use when executing the migration (SET ROLE will be added to statements) */
152
+ role?: string;
153
+ }
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Type definitions for the Plan module.
3
+ */
4
+ import z from "zod";
5
+ /**
6
+ * Plan schema for serialization/deserialization.
7
+ */
8
+ export const PlanSchema = z.object({
9
+ version: z.number(),
10
+ toolVersion: z.string().optional(),
11
+ source: z.object({
12
+ fingerprint: z.string(),
13
+ }),
14
+ target: z.object({
15
+ fingerprint: z.string(),
16
+ }),
17
+ statements: z.array(z.string()),
18
+ role: z.string().optional(),
19
+ filter: z.any().optional(), // FilterDSL - complex recursive type, validated at compile time
20
+ serialize: z.any().optional(), // SerializeDSL - complex recursive type, validated at compile time
21
+ risk: z
22
+ .discriminatedUnion("level", [
23
+ z.object({
24
+ level: z.literal("safe"),
25
+ }),
26
+ z.object({
27
+ level: z.literal("data_loss"),
28
+ statements: z.array(z.string()),
29
+ }),
30
+ ])
31
+ .optional(),
32
+ });
@@ -0,0 +1,8 @@
1
+ /**
2
+ * PostgreSQL connection configuration with custom type handlers.
3
+ */
4
+ import type postgres from "postgres";
5
+ /**
6
+ * Custom type handler for specific corner cases.
7
+ */
8
+ export declare const postgresConfig: postgres.Options<Record<string, postgres.PostgresType>>;
@@ -0,0 +1,46 @@
1
+ /**
2
+ * PostgreSQL connection configuration with custom type handlers.
3
+ */
4
+ /**
5
+ * Custom type handler for specific corner cases.
6
+ */
7
+ export const postgresConfig = {
8
+ types: {
9
+ int2vector: {
10
+ // The pg_types oid for int2vector (22 is the OID for int2vector)
11
+ to: 22,
12
+ // Array of pg_types oids to handle when parsing values coming from the db
13
+ from: [22],
14
+ // Parse int2vector from string format "1 2 3" to array [1, 2, 3]
15
+ parse: (value) => {
16
+ if (!value || value === "")
17
+ return [];
18
+ return value
19
+ .split(" ")
20
+ .map(Number)
21
+ .filter((n) => !Number.isNaN(n));
22
+ },
23
+ // Serialize array back to int2vector format if needed
24
+ serialize: (value) => {
25
+ if (!Array.isArray(value))
26
+ return "";
27
+ return value.join(" ");
28
+ },
29
+ },
30
+ // Handle bigint values from PostgreSQL
31
+ bigint: {
32
+ // The pg_types oid for bigint (20 is the OID for int8/bigint)
33
+ to: 20,
34
+ // Array of pg_types oids to handle when parsing values coming from the db
35
+ from: [20],
36
+ // Parse bigint string to JavaScript BigInt
37
+ parse: (value) => {
38
+ return BigInt(value);
39
+ },
40
+ // Serialize BigInt back to string for PostgreSQL
41
+ serialize: (value) => {
42
+ return value.toString();
43
+ },
44
+ },
45
+ },
46
+ };
@@ -0,0 +1,9 @@
1
+ import type { Change } from "../change.types.ts";
2
+ import type { Constraint } from "./types.ts";
3
+ /**
4
+ * Generate Constraints from custom constraint generators.
5
+ *
6
+ * Iterates through registered generators to produce constraints.
7
+ * Generators should be optimized (e.g. using indexing) to avoid O(N²) complexity.
8
+ */
9
+ export declare function generateCustomConstraints(changes: Change[]): Constraint[];
@@ -0,0 +1,133 @@
1
+ import { getSchema } from "../integrations/filter/extractors.js";
2
+ import { GrantRoleDefaultPrivileges, RevokeRoleDefaultPrivileges, } from "../objects/role/changes/role.privilege.js";
3
+ /**
4
+ * Maps object type names to PostgreSQL default privilege objtype codes.
5
+ * This mirrors the mapping in base.default-privileges.ts.
6
+ */
7
+ function objectTypeToObjtype(objectType) {
8
+ switch (objectType) {
9
+ case "table":
10
+ case "view":
11
+ case "materialized_view":
12
+ return "r"; // Relations
13
+ case "sequence":
14
+ return "S"; // Sequences
15
+ case "procedure":
16
+ case "function":
17
+ case "aggregate":
18
+ return "f"; // Functions/routines
19
+ case "type":
20
+ case "domain":
21
+ case "enum":
22
+ case "range":
23
+ case "composite_type":
24
+ return "T"; // Types
25
+ case "schema":
26
+ return "n"; // Schemas
27
+ default:
28
+ return null;
29
+ }
30
+ }
31
+ /**
32
+ * Generate constraints to ensure ALTER DEFAULT PRIVILEGES comes before CREATE statements.
33
+ *
34
+ * Rules:
35
+ * - Only applies when the default privilege's schema matches the CREATE statement's schema
36
+ * (or if the default privilege is global, applies to all schemas)
37
+ * - Only applies when the default privilege's objtype matches the CREATE statement's object type
38
+ * - Excludes CREATE ROLE and CREATE SCHEMA since they are dependencies
39
+ * of ALTER DEFAULT PRIVILEGES and must come before it
40
+ *
41
+ * implementation: O(N) using schema/objtype indexing.
42
+ */
43
+ function generateDefaultPrivilegeConstraints(changes) {
44
+ const constraints = [];
45
+ const defaultPrivilegeIndices = [];
46
+ // Map<objtype_code, Map<schema_name, index[]>>
47
+ const createsByObjTypeAndSchema = new Map();
48
+ // Pass 1: Index changes
49
+ for (let i = 0; i < changes.length; i++) {
50
+ const change = changes[i];
51
+ // Identify default privilege changes
52
+ if (change instanceof GrantRoleDefaultPrivileges ||
53
+ change instanceof RevokeRoleDefaultPrivileges) {
54
+ defaultPrivilegeIndices.push(i);
55
+ continue;
56
+ }
57
+ // Identify CREATE object changes (excluding role/schema)
58
+ if (change.operation === "create" &&
59
+ change.scope === "object" &&
60
+ change.objectType !== "role" &&
61
+ change.objectType !== "schema") {
62
+ const objTypeCode = objectTypeToObjtype(change.objectType);
63
+ if (!objTypeCode)
64
+ continue;
65
+ const schema = getSchema(change);
66
+ // Default privileges only apply to schema-contained objects.
67
+ if (schema) {
68
+ let schemaMap = createsByObjTypeAndSchema.get(objTypeCode);
69
+ if (!schemaMap) {
70
+ schemaMap = new Map();
71
+ createsByObjTypeAndSchema.set(objTypeCode, schemaMap);
72
+ }
73
+ let indices = schemaMap.get(schema);
74
+ if (!indices) {
75
+ indices = [];
76
+ schemaMap.set(schema, indices);
77
+ }
78
+ indices.push(i);
79
+ }
80
+ }
81
+ }
82
+ // Pass 2: Generate constraints
83
+ for (const privIndex of defaultPrivilegeIndices) {
84
+ const privChange = changes[privIndex];
85
+ const privSchema = privChange.inSchema;
86
+ const privObjType = privChange.objtype;
87
+ const schemaMap = createsByObjTypeAndSchema.get(privObjType);
88
+ if (!schemaMap)
89
+ continue;
90
+ if (privSchema === null) {
91
+ // Global default privilege: applies to ALL schemas
92
+ for (const indices of schemaMap.values()) {
93
+ for (const createIndex of indices) {
94
+ // (No self-check needed as types differ)
95
+ constraints.push({
96
+ sourceChangeIndex: privIndex,
97
+ targetChangeIndex: createIndex,
98
+ source: "custom",
99
+ });
100
+ }
101
+ }
102
+ }
103
+ else {
104
+ // Specific schema: applies only to that schema
105
+ const indices = schemaMap.get(privSchema);
106
+ if (indices) {
107
+ for (const createIndex of indices) {
108
+ constraints.push({
109
+ sourceChangeIndex: privIndex,
110
+ targetChangeIndex: createIndex,
111
+ source: "custom",
112
+ });
113
+ }
114
+ }
115
+ }
116
+ }
117
+ return constraints;
118
+ }
119
+ /**
120
+ * All custom constraint generators.
121
+ */
122
+ const customConstraintGenerators = [
123
+ generateDefaultPrivilegeConstraints,
124
+ ];
125
+ /**
126
+ * Generate Constraints from custom constraint generators.
127
+ *
128
+ * Iterates through registered generators to produce constraints.
129
+ * Generators should be optimized (e.g. using indexing) to avoid O(N²) complexity.
130
+ */
131
+ export function generateCustomConstraints(changes) {
132
+ return customConstraintGenerators.flatMap((generate) => generate(changes));
133
+ }
@@ -0,0 +1,8 @@
1
+ import type { Change } from "../change.types.ts";
2
+ import type { Constraint, GraphData, PgDependRow } from "./types.ts";
3
+ /**
4
+ * Print debug information about the dependency graph.
5
+ *
6
+ * Builds debug-only data structures (requirementSets, dependenciesByReferencedId) just-in-time.
7
+ */
8
+ export declare function printDebugGraph(phaseChanges: Change[], graphData: GraphData, edges: Array<[number, number]>, dependencyRows: PgDependRow[], constraints: Constraint[]): void;