@supabase/pg-delta 0.0.0 → 1.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (569) 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 +14 -0
  22. package/dist/cli/utils/integrations.js +44 -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 +15 -0
  38. package/dist/core/fingerprint.js +174 -0
  39. package/dist/core/integrations/filter/dsl.d.ts +97 -0
  40. package/dist/core/integrations/filter/dsl.js +107 -0
  41. package/dist/core/integrations/filter/extractors.d.ts +12 -0
  42. package/dist/core/integrations/filter/extractors.js +136 -0
  43. package/dist/core/integrations/filter/filter.types.d.ts +2 -0
  44. package/dist/core/integrations/filter/filter.types.js +1 -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 +6 -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/integrations/serialize/serialize.types.d.ts +2 -0
  52. package/dist/core/integrations/serialize/serialize.types.js +1 -0
  53. package/dist/core/integrations/supabase.d.ts +10 -0
  54. package/dist/core/integrations/supabase.js +114 -0
  55. package/dist/core/objects/aggregate/aggregate.diff.d.ts +10 -0
  56. package/dist/core/objects/aggregate/aggregate.diff.js +186 -0
  57. package/dist/core/objects/aggregate/aggregate.model.d.ts +174 -0
  58. package/dist/core/objects/aggregate/aggregate.model.js +297 -0
  59. package/dist/core/objects/aggregate/changes/aggregate.alter.d.ts +19 -0
  60. package/dist/core/objects/aggregate/changes/aggregate.alter.js +25 -0
  61. package/dist/core/objects/aggregate/changes/aggregate.base.d.ts +17 -0
  62. package/dist/core/objects/aggregate/changes/aggregate.base.js +13 -0
  63. package/dist/core/objects/aggregate/changes/aggregate.comment.d.ts +23 -0
  64. package/dist/core/objects/aggregate/changes/aggregate.comment.js +44 -0
  65. package/dist/core/objects/aggregate/changes/aggregate.create.d.ts +19 -0
  66. package/dist/core/objects/aggregate/changes/aggregate.create.js +228 -0
  67. package/dist/core/objects/aggregate/changes/aggregate.drop.d.ts +17 -0
  68. package/dist/core/objects/aggregate/changes/aggregate.drop.js +26 -0
  69. package/dist/core/objects/aggregate/changes/aggregate.privilege.d.ts +62 -0
  70. package/dist/core/objects/aggregate/changes/aggregate.privilege.js +102 -0
  71. package/dist/core/objects/aggregate/changes/aggregate.types.d.ts +6 -0
  72. package/dist/core/objects/aggregate/changes/aggregate.types.js +1 -0
  73. package/dist/core/objects/base.change.d.ts +46 -0
  74. package/dist/core/objects/base.change.js +38 -0
  75. package/dist/core/objects/base.default-privileges.d.ts +29 -0
  76. package/dist/core/objects/base.default-privileges.js +167 -0
  77. package/dist/core/objects/base.diff.d.ts +6 -0
  78. package/dist/core/objects/base.diff.js +12 -0
  79. package/dist/core/objects/base.model.d.ts +74 -0
  80. package/dist/core/objects/base.model.js +47 -0
  81. package/dist/core/objects/base.privilege-diff.d.ts +54 -0
  82. package/dist/core/objects/base.privilege-diff.js +216 -0
  83. package/dist/core/objects/base.privilege.d.ts +27 -0
  84. package/dist/core/objects/base.privilege.js +169 -0
  85. package/dist/core/objects/collation/changes/collation.alter.d.ts +45 -0
  86. package/dist/core/objects/collation/changes/collation.alter.js +52 -0
  87. package/dist/core/objects/collation/changes/collation.base.d.ts +17 -0
  88. package/dist/core/objects/collation/changes/collation.base.js +13 -0
  89. package/dist/core/objects/collation/changes/collation.comment.d.ts +26 -0
  90. package/dist/core/objects/collation/changes/collation.comment.js +50 -0
  91. package/dist/core/objects/collation/changes/collation.create.d.ts +32 -0
  92. package/dist/core/objects/collation/changes/collation.create.js +86 -0
  93. package/dist/core/objects/collation/changes/collation.drop.d.ts +22 -0
  94. package/dist/core/objects/collation/changes/collation.drop.js +31 -0
  95. package/dist/core/objects/collation/changes/collation.types.d.ts +5 -0
  96. package/dist/core/objects/collation/changes/collation.types.js +1 -0
  97. package/dist/core/objects/collation/collation.diff.d.ts +13 -0
  98. package/dist/core/objects/collation/collation.diff.js +85 -0
  99. package/dist/core/objects/collation/collation.model.d.ts +67 -0
  100. package/dist/core/objects/collation/collation.model.js +207 -0
  101. package/dist/core/objects/domain/changes/domain.alter.d.ts +143 -0
  102. package/dist/core/objects/domain/changes/domain.alter.js +191 -0
  103. package/dist/core/objects/domain/changes/domain.base.d.ts +17 -0
  104. package/dist/core/objects/domain/changes/domain.base.js +13 -0
  105. package/dist/core/objects/domain/changes/domain.comment.d.ts +25 -0
  106. package/dist/core/objects/domain/changes/domain.comment.js +47 -0
  107. package/dist/core/objects/domain/changes/domain.create.d.ts +30 -0
  108. package/dist/core/objects/domain/changes/domain.create.js +92 -0
  109. package/dist/core/objects/domain/changes/domain.drop.d.ts +22 -0
  110. package/dist/core/objects/domain/changes/domain.drop.js +28 -0
  111. package/dist/core/objects/domain/changes/domain.privilege.d.ts +97 -0
  112. package/dist/core/objects/domain/changes/domain.privilege.js +127 -0
  113. package/dist/core/objects/domain/changes/domain.types.d.ts +6 -0
  114. package/dist/core/objects/domain/changes/domain.types.js +1 -0
  115. package/dist/core/objects/domain/domain.diff.d.ts +18 -0
  116. package/dist/core/objects/domain/domain.diff.js +244 -0
  117. package/dist/core/objects/domain/domain.model.d.ts +103 -0
  118. package/dist/core/objects/domain/domain.model.js +172 -0
  119. package/dist/core/objects/event-trigger/changes/event-trigger.alter.d.ts +44 -0
  120. package/dist/core/objects/event-trigger/changes/event-trigger.alter.js +51 -0
  121. package/dist/core/objects/event-trigger/changes/event-trigger.base.d.ts +17 -0
  122. package/dist/core/objects/event-trigger/changes/event-trigger.base.js +13 -0
  123. package/dist/core/objects/event-trigger/changes/event-trigger.comment.d.ts +23 -0
  124. package/dist/core/objects/event-trigger/changes/event-trigger.comment.js +46 -0
  125. package/dist/core/objects/event-trigger/changes/event-trigger.create.d.ts +25 -0
  126. package/dist/core/objects/event-trigger/changes/event-trigger.create.js +55 -0
  127. package/dist/core/objects/event-trigger/changes/event-trigger.drop.d.ts +22 -0
  128. package/dist/core/objects/event-trigger/changes/event-trigger.drop.js +28 -0
  129. package/dist/core/objects/event-trigger/changes/event-trigger.types.d.ts +5 -0
  130. package/dist/core/objects/event-trigger/changes/event-trigger.types.js +1 -0
  131. package/dist/core/objects/event-trigger/event-trigger.diff.d.ts +13 -0
  132. package/dist/core/objects/event-trigger/event-trigger.diff.js +81 -0
  133. package/dist/core/objects/event-trigger/event-trigger.model.d.ts +45 -0
  134. package/dist/core/objects/event-trigger/event-trigger.model.js +89 -0
  135. package/dist/core/objects/extension/changes/extension.alter.d.ts +44 -0
  136. package/dist/core/objects/extension/changes/extension.alter.js +51 -0
  137. package/dist/core/objects/extension/changes/extension.base.d.ts +17 -0
  138. package/dist/core/objects/extension/changes/extension.base.js +13 -0
  139. package/dist/core/objects/extension/changes/extension.comment.d.ts +26 -0
  140. package/dist/core/objects/extension/changes/extension.comment.js +46 -0
  141. package/dist/core/objects/extension/changes/extension.create.d.ts +25 -0
  142. package/dist/core/objects/extension/changes/extension.create.js +49 -0
  143. package/dist/core/objects/extension/changes/extension.drop.d.ts +22 -0
  144. package/dist/core/objects/extension/changes/extension.drop.js +28 -0
  145. package/dist/core/objects/extension/changes/extension.types.d.ts +5 -0
  146. package/dist/core/objects/extension/changes/extension.types.js +1 -0
  147. package/dist/core/objects/extension/extension.diff.d.ts +10 -0
  148. package/dist/core/objects/extension/extension.diff.js +65 -0
  149. package/dist/core/objects/extension/extension.model.d.ts +52 -0
  150. package/dist/core/objects/extension/extension.model.js +268 -0
  151. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.alter.d.ts +51 -0
  152. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.alter.js +61 -0
  153. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.base.d.ts +17 -0
  154. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.base.js +13 -0
  155. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.comment.d.ts +26 -0
  156. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.comment.js +50 -0
  157. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.create.d.ts +25 -0
  158. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.create.js +78 -0
  159. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.drop.d.ts +22 -0
  160. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.drop.js +28 -0
  161. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.privilege.d.ts +97 -0
  162. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.privilege.js +123 -0
  163. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.types.d.ts +6 -0
  164. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.types.js +1 -0
  165. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/foreign-data-wrapper.diff.d.ts +18 -0
  166. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/foreign-data-wrapper.diff.js +221 -0
  167. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/foreign-data-wrapper.model.d.ts +59 -0
  168. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/foreign-data-wrapper.model.js +128 -0
  169. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper.types.d.ts +5 -0
  170. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper.types.js +1 -0
  171. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.alter.d.ts +163 -0
  172. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.alter.js +248 -0
  173. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.base.d.ts +17 -0
  174. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.base.js +13 -0
  175. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.comment.d.ts +26 -0
  176. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.comment.js +50 -0
  177. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.create.d.ts +25 -0
  178. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.create.js +64 -0
  179. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.drop.d.ts +22 -0
  180. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.drop.js +31 -0
  181. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.privilege.d.ts +97 -0
  182. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.privilege.js +129 -0
  183. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.types.d.ts +6 -0
  184. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.types.js +1 -0
  185. package/dist/core/objects/foreign-data-wrapper/foreign-table/foreign-table.diff.d.ts +18 -0
  186. package/dist/core/objects/foreign-data-wrapper/foreign-table/foreign-table.diff.js +268 -0
  187. package/dist/core/objects/foreign-data-wrapper/foreign-table/foreign-table.model.d.ts +117 -0
  188. package/dist/core/objects/foreign-data-wrapper/foreign-table/foreign-table.model.js +215 -0
  189. package/dist/core/objects/foreign-data-wrapper/server/changes/server.alter.d.ts +65 -0
  190. package/dist/core/objects/foreign-data-wrapper/server/changes/server.alter.js +84 -0
  191. package/dist/core/objects/foreign-data-wrapper/server/changes/server.base.d.ts +17 -0
  192. package/dist/core/objects/foreign-data-wrapper/server/changes/server.base.js +13 -0
  193. package/dist/core/objects/foreign-data-wrapper/server/changes/server.comment.d.ts +26 -0
  194. package/dist/core/objects/foreign-data-wrapper/server/changes/server.comment.js +43 -0
  195. package/dist/core/objects/foreign-data-wrapper/server/changes/server.create.d.ts +24 -0
  196. package/dist/core/objects/foreign-data-wrapper/server/changes/server.create.js +62 -0
  197. package/dist/core/objects/foreign-data-wrapper/server/changes/server.drop.d.ts +22 -0
  198. package/dist/core/objects/foreign-data-wrapper/server/changes/server.drop.js +28 -0
  199. package/dist/core/objects/foreign-data-wrapper/server/changes/server.privilege.d.ts +97 -0
  200. package/dist/core/objects/foreign-data-wrapper/server/changes/server.privilege.js +123 -0
  201. package/dist/core/objects/foreign-data-wrapper/server/changes/server.types.d.ts +6 -0
  202. package/dist/core/objects/foreign-data-wrapper/server/changes/server.types.js +1 -0
  203. package/dist/core/objects/foreign-data-wrapper/server/server.diff.d.ts +18 -0
  204. package/dist/core/objects/foreign-data-wrapper/server/server.diff.js +209 -0
  205. package/dist/core/objects/foreign-data-wrapper/server/server.model.d.ts +62 -0
  206. package/dist/core/objects/foreign-data-wrapper/server/server.model.js +118 -0
  207. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.alter.d.ts +37 -0
  208. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.alter.js +38 -0
  209. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.base.d.ts +17 -0
  210. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.base.js +13 -0
  211. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.create.d.ts +24 -0
  212. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.create.js +52 -0
  213. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.drop.d.ts +23 -0
  214. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.drop.js +34 -0
  215. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.types.d.ts +4 -0
  216. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.types.js +1 -0
  217. package/dist/core/objects/foreign-data-wrapper/user-mapping/user-mapping.diff.d.ts +10 -0
  218. package/dist/core/objects/foreign-data-wrapper/user-mapping/user-mapping.diff.js +77 -0
  219. package/dist/core/objects/foreign-data-wrapper/user-mapping/user-mapping.model.d.ts +36 -0
  220. package/dist/core/objects/foreign-data-wrapper/user-mapping/user-mapping.model.js +85 -0
  221. package/dist/core/objects/index/changes/index.alter.d.ts +76 -0
  222. package/dist/core/objects/index/changes/index.alter.js +94 -0
  223. package/dist/core/objects/index/changes/index.base.d.ts +17 -0
  224. package/dist/core/objects/index/changes/index.base.js +13 -0
  225. package/dist/core/objects/index/changes/index.comment.d.ts +26 -0
  226. package/dist/core/objects/index/changes/index.comment.js +50 -0
  227. package/dist/core/objects/index/changes/index.create.d.ts +30 -0
  228. package/dist/core/objects/index/changes/index.create.js +53 -0
  229. package/dist/core/objects/index/changes/index.drop.d.ts +22 -0
  230. package/dist/core/objects/index/changes/index.drop.js +28 -0
  231. package/dist/core/objects/index/changes/index.types.d.ts +5 -0
  232. package/dist/core/objects/index/changes/index.types.js +1 -0
  233. package/dist/core/objects/index/changes/utils.d.ts +3 -0
  234. package/dist/core/objects/index/changes/utils.js +6 -0
  235. package/dist/core/objects/index/index.diff.d.ts +12 -0
  236. package/dist/core/objects/index/index.diff.js +182 -0
  237. package/dist/core/objects/index/index.model.d.ts +150 -0
  238. package/dist/core/objects/index/index.model.js +340 -0
  239. package/dist/core/objects/language/changes/language.alter.d.ts +32 -0
  240. package/dist/core/objects/language/changes/language.alter.js +30 -0
  241. package/dist/core/objects/language/changes/language.base.d.ts +17 -0
  242. package/dist/core/objects/language/changes/language.base.js +13 -0
  243. package/dist/core/objects/language/changes/language.comment.d.ts +26 -0
  244. package/dist/core/objects/language/changes/language.comment.js +45 -0
  245. package/dist/core/objects/language/changes/language.create.d.ts +25 -0
  246. package/dist/core/objects/language/changes/language.create.js +76 -0
  247. package/dist/core/objects/language/changes/language.drop.d.ts +22 -0
  248. package/dist/core/objects/language/changes/language.drop.js +31 -0
  249. package/dist/core/objects/language/changes/language.privilege.d.ts +97 -0
  250. package/dist/core/objects/language/changes/language.privilege.js +128 -0
  251. package/dist/core/objects/language/changes/language.types.d.ts +6 -0
  252. package/dist/core/objects/language/changes/language.types.js +1 -0
  253. package/dist/core/objects/language/language.diff.d.ts +15 -0
  254. package/dist/core/objects/language/language.diff.js +117 -0
  255. package/dist/core/objects/language/language.model.d.ts +62 -0
  256. package/dist/core/objects/language/language.model.js +128 -0
  257. package/dist/core/objects/materialized-view/changes/materialized-view.alter.d.ts +67 -0
  258. package/dist/core/objects/materialized-view/changes/materialized-view.alter.js +63 -0
  259. package/dist/core/objects/materialized-view/changes/materialized-view.base.d.ts +17 -0
  260. package/dist/core/objects/materialized-view/changes/materialized-view.base.js +13 -0
  261. package/dist/core/objects/materialized-view/changes/materialized-view.comment.d.ts +53 -0
  262. package/dist/core/objects/materialized-view/changes/materialized-view.comment.js +112 -0
  263. package/dist/core/objects/materialized-view/changes/materialized-view.create.d.ts +35 -0
  264. package/dist/core/objects/materialized-view/changes/materialized-view.create.js +71 -0
  265. package/dist/core/objects/materialized-view/changes/materialized-view.drop.d.ts +26 -0
  266. package/dist/core/objects/materialized-view/changes/materialized-view.drop.js +42 -0
  267. package/dist/core/objects/materialized-view/changes/materialized-view.privilege.d.ts +105 -0
  268. package/dist/core/objects/materialized-view/changes/materialized-view.privilege.js +151 -0
  269. package/dist/core/objects/materialized-view/changes/materialized-view.types.d.ts +6 -0
  270. package/dist/core/objects/materialized-view/changes/materialized-view.types.js +1 -0
  271. package/dist/core/objects/materialized-view/materialized-view.diff.d.ts +18 -0
  272. package/dist/core/objects/materialized-view/materialized-view.diff.js +335 -0
  273. package/dist/core/objects/materialized-view/materialized-view.model.d.ts +152 -0
  274. package/dist/core/objects/materialized-view/materialized-view.model.js +228 -0
  275. package/dist/core/objects/procedure/changes/procedure.alter.d.ts +143 -0
  276. package/dist/core/objects/procedure/changes/procedure.alter.js +207 -0
  277. package/dist/core/objects/procedure/changes/procedure.base.d.ts +17 -0
  278. package/dist/core/objects/procedure/changes/procedure.base.js +13 -0
  279. package/dist/core/objects/procedure/changes/procedure.comment.d.ts +26 -0
  280. package/dist/core/objects/procedure/changes/procedure.comment.js +52 -0
  281. package/dist/core/objects/procedure/changes/procedure.create.d.ts +42 -0
  282. package/dist/core/objects/procedure/changes/procedure.create.js +77 -0
  283. package/dist/core/objects/procedure/changes/procedure.drop.d.ts +23 -0
  284. package/dist/core/objects/procedure/changes/procedure.drop.js +37 -0
  285. package/dist/core/objects/procedure/changes/procedure.privilege.d.ts +98 -0
  286. package/dist/core/objects/procedure/changes/procedure.privilege.js +144 -0
  287. package/dist/core/objects/procedure/changes/procedure.types.d.ts +6 -0
  288. package/dist/core/objects/procedure/changes/procedure.types.js +1 -0
  289. package/dist/core/objects/procedure/procedure.diff.d.ts +18 -0
  290. package/dist/core/objects/procedure/procedure.diff.js +282 -0
  291. package/dist/core/objects/procedure/procedure.model.d.ts +132 -0
  292. package/dist/core/objects/procedure/procedure.model.js +244 -0
  293. package/dist/core/objects/procedure/utils.d.ts +14 -0
  294. package/dist/core/objects/procedure/utils.js +55 -0
  295. package/dist/core/objects/publication/changes/publication.alter.d.ts +88 -0
  296. package/dist/core/objects/publication/changes/publication.alter.js +176 -0
  297. package/dist/core/objects/publication/changes/publication.base.d.ts +17 -0
  298. package/dist/core/objects/publication/changes/publication.base.js +13 -0
  299. package/dist/core/objects/publication/changes/publication.comment.d.ts +23 -0
  300. package/dist/core/objects/publication/changes/publication.comment.js +46 -0
  301. package/dist/core/objects/publication/changes/publication.create.d.ts +17 -0
  302. package/dist/core/objects/publication/changes/publication.create.js +61 -0
  303. package/dist/core/objects/publication/changes/publication.drop.d.ts +17 -0
  304. package/dist/core/objects/publication/changes/publication.drop.js +23 -0
  305. package/dist/core/objects/publication/changes/publication.types.d.ts +5 -0
  306. package/dist/core/objects/publication/changes/publication.types.js +1 -0
  307. package/dist/core/objects/publication/publication.diff.d.ts +5 -0
  308. package/dist/core/objects/publication/publication.diff.js +161 -0
  309. package/dist/core/objects/publication/publication.model.d.ts +96 -0
  310. package/dist/core/objects/publication/publication.model.js +186 -0
  311. package/dist/core/objects/publication/utils.d.ts +5 -0
  312. package/dist/core/objects/publication/utils.js +45 -0
  313. package/dist/core/objects/rls-policy/changes/rls-policy.alter.d.ts +62 -0
  314. package/dist/core/objects/rls-policy/changes/rls-policy.alter.js +90 -0
  315. package/dist/core/objects/rls-policy/changes/rls-policy.base.d.ts +17 -0
  316. package/dist/core/objects/rls-policy/changes/rls-policy.base.js +13 -0
  317. package/dist/core/objects/rls-policy/changes/rls-policy.comment.d.ts +23 -0
  318. package/dist/core/objects/rls-policy/changes/rls-policy.comment.js +51 -0
  319. package/dist/core/objects/rls-policy/changes/rls-policy.create.d.ts +27 -0
  320. package/dist/core/objects/rls-policy/changes/rls-policy.create.js +79 -0
  321. package/dist/core/objects/rls-policy/changes/rls-policy.drop.d.ts +22 -0
  322. package/dist/core/objects/rls-policy/changes/rls-policy.drop.js +33 -0
  323. package/dist/core/objects/rls-policy/changes/rls-policy.types.d.ts +5 -0
  324. package/dist/core/objects/rls-policy/changes/rls-policy.types.js +1 -0
  325. package/dist/core/objects/rls-policy/rls-policy.diff.d.ts +10 -0
  326. package/dist/core/objects/rls-policy/rls-policy.diff.js +80 -0
  327. package/dist/core/objects/rls-policy/rls-policy.model.d.ts +52 -0
  328. package/dist/core/objects/rls-policy/rls-policy.model.js +127 -0
  329. package/dist/core/objects/role/changes/role.alter.d.ts +78 -0
  330. package/dist/core/objects/role/changes/role.alter.js +55 -0
  331. package/dist/core/objects/role/changes/role.base.d.ts +17 -0
  332. package/dist/core/objects/role/changes/role.base.js +13 -0
  333. package/dist/core/objects/role/changes/role.comment.d.ts +23 -0
  334. package/dist/core/objects/role/changes/role.comment.js +42 -0
  335. package/dist/core/objects/role/changes/role.create.d.ts +38 -0
  336. package/dist/core/objects/role/changes/role.create.js +83 -0
  337. package/dist/core/objects/role/changes/role.drop.d.ts +22 -0
  338. package/dist/core/objects/role/changes/role.drop.js +28 -0
  339. package/dist/core/objects/role/changes/role.privilege.d.ts +148 -0
  340. package/dist/core/objects/role/changes/role.privilege.js +283 -0
  341. package/dist/core/objects/role/changes/role.types.d.ts +6 -0
  342. package/dist/core/objects/role/changes/role.types.js +1 -0
  343. package/dist/core/objects/role/role.diff.d.ts +13 -0
  344. package/dist/core/objects/role/role.diff.js +386 -0
  345. package/dist/core/objects/role/role.model.d.ts +89 -0
  346. package/dist/core/objects/role/role.model.js +312 -0
  347. package/dist/core/objects/rule/changes/rule.alter.d.ts +22 -0
  348. package/dist/core/objects/rule/changes/rule.alter.js +58 -0
  349. package/dist/core/objects/rule/changes/rule.base.d.ts +17 -0
  350. package/dist/core/objects/rule/changes/rule.base.js +13 -0
  351. package/dist/core/objects/rule/changes/rule.comment.d.ts +22 -0
  352. package/dist/core/objects/rule/changes/rule.comment.js +51 -0
  353. package/dist/core/objects/rule/changes/rule.create.d.ts +14 -0
  354. package/dist/core/objects/rule/changes/rule.create.js +28 -0
  355. package/dist/core/objects/rule/changes/rule.drop.d.ts +12 -0
  356. package/dist/core/objects/rule/changes/rule.drop.js +23 -0
  357. package/dist/core/objects/rule/changes/rule.types.d.ts +5 -0
  358. package/dist/core/objects/rule/changes/rule.types.js +1 -0
  359. package/dist/core/objects/rule/rule.diff.d.ts +3 -0
  360. package/dist/core/objects/rule/rule.diff.js +53 -0
  361. package/dist/core/objects/rule/rule.model.d.ts +72 -0
  362. package/dist/core/objects/rule/rule.model.js +156 -0
  363. package/dist/core/objects/schema/changes/schema.alter.d.ts +32 -0
  364. package/dist/core/objects/schema/changes/schema.alter.js +25 -0
  365. package/dist/core/objects/schema/changes/schema.base.d.ts +17 -0
  366. package/dist/core/objects/schema/changes/schema.base.js +13 -0
  367. package/dist/core/objects/schema/changes/schema.comment.d.ts +23 -0
  368. package/dist/core/objects/schema/changes/schema.comment.js +43 -0
  369. package/dist/core/objects/schema/changes/schema.create.d.ts +27 -0
  370. package/dist/core/objects/schema/changes/schema.create.js +38 -0
  371. package/dist/core/objects/schema/changes/schema.drop.d.ts +22 -0
  372. package/dist/core/objects/schema/changes/schema.drop.js +28 -0
  373. package/dist/core/objects/schema/changes/schema.privilege.d.ts +97 -0
  374. package/dist/core/objects/schema/changes/schema.privilege.js +131 -0
  375. package/dist/core/objects/schema/changes/schema.types.d.ts +6 -0
  376. package/dist/core/objects/schema/changes/schema.types.js +1 -0
  377. package/dist/core/objects/schema/schema.diff.d.ts +18 -0
  378. package/dist/core/objects/schema/schema.diff.js +142 -0
  379. package/dist/core/objects/schema/schema.model.d.ts +47 -0
  380. package/dist/core/objects/schema/schema.model.js +91 -0
  381. package/dist/core/objects/sequence/changes/sequence.alter.d.ts +59 -0
  382. package/dist/core/objects/sequence/changes/sequence.alter.js +75 -0
  383. package/dist/core/objects/sequence/changes/sequence.base.d.ts +17 -0
  384. package/dist/core/objects/sequence/changes/sequence.base.js +13 -0
  385. package/dist/core/objects/sequence/changes/sequence.comment.d.ts +23 -0
  386. package/dist/core/objects/sequence/changes/sequence.comment.js +47 -0
  387. package/dist/core/objects/sequence/changes/sequence.create.d.ts +25 -0
  388. package/dist/core/objects/sequence/changes/sequence.create.js +78 -0
  389. package/dist/core/objects/sequence/changes/sequence.drop.d.ts +22 -0
  390. package/dist/core/objects/sequence/changes/sequence.drop.js +31 -0
  391. package/dist/core/objects/sequence/changes/sequence.privilege.d.ts +101 -0
  392. package/dist/core/objects/sequence/changes/sequence.privilege.js +135 -0
  393. package/dist/core/objects/sequence/changes/sequence.types.d.ts +6 -0
  394. package/dist/core/objects/sequence/changes/sequence.types.js +1 -0
  395. package/dist/core/objects/sequence/sequence.diff.d.ts +20 -0
  396. package/dist/core/objects/sequence/sequence.diff.js +258 -0
  397. package/dist/core/objects/sequence/sequence.model.d.ts +76 -0
  398. package/dist/core/objects/sequence/sequence.model.js +169 -0
  399. package/dist/core/objects/subscription/changes/subscription.alter.d.ts +56 -0
  400. package/dist/core/objects/subscription/changes/subscription.alter.js +82 -0
  401. package/dist/core/objects/subscription/changes/subscription.base.d.ts +17 -0
  402. package/dist/core/objects/subscription/changes/subscription.base.js +13 -0
  403. package/dist/core/objects/subscription/changes/subscription.comment.d.ts +23 -0
  404. package/dist/core/objects/subscription/changes/subscription.comment.js +46 -0
  405. package/dist/core/objects/subscription/changes/subscription.create.d.ts +12 -0
  406. package/dist/core/objects/subscription/changes/subscription.create.js +52 -0
  407. package/dist/core/objects/subscription/changes/subscription.drop.d.ts +11 -0
  408. package/dist/core/objects/subscription/changes/subscription.drop.js +15 -0
  409. package/dist/core/objects/subscription/changes/subscription.types.d.ts +5 -0
  410. package/dist/core/objects/subscription/changes/subscription.types.js +1 -0
  411. package/dist/core/objects/subscription/subscription.diff.d.ts +5 -0
  412. package/dist/core/objects/subscription/subscription.diff.js +167 -0
  413. package/dist/core/objects/subscription/subscription.model.d.ts +80 -0
  414. package/dist/core/objects/subscription/subscription.model.js +166 -0
  415. package/dist/core/objects/subscription/utils.d.ts +37 -0
  416. package/dist/core/objects/subscription/utils.js +112 -0
  417. package/dist/core/objects/table/changes/table.alter.d.ts +357 -0
  418. package/dist/core/objects/table/changes/table.alter.js +607 -0
  419. package/dist/core/objects/table/changes/table.base.d.ts +17 -0
  420. package/dist/core/objects/table/changes/table.base.js +13 -0
  421. package/dist/core/objects/table/changes/table.comment.d.ts +106 -0
  422. package/dist/core/objects/table/changes/table.comment.js +175 -0
  423. package/dist/core/objects/table/changes/table.create.d.ts +33 -0
  424. package/dist/core/objects/table/changes/table.create.js +145 -0
  425. package/dist/core/objects/table/changes/table.drop.d.ts +22 -0
  426. package/dist/core/objects/table/changes/table.drop.js +35 -0
  427. package/dist/core/objects/table/changes/table.privilege.d.ts +107 -0
  428. package/dist/core/objects/table/changes/table.privilege.js +150 -0
  429. package/dist/core/objects/table/changes/table.types.d.ts +6 -0
  430. package/dist/core/objects/table/changes/table.types.js +1 -0
  431. package/dist/core/objects/table/table.diff.d.ts +18 -0
  432. package/dist/core/objects/table/table.diff.js +668 -0
  433. package/dist/core/objects/table/table.model.d.ts +341 -0
  434. package/dist/core/objects/table/table.model.js +426 -0
  435. package/dist/core/objects/trigger/changes/trigger.alter.d.ts +29 -0
  436. package/dist/core/objects/trigger/changes/trigger.alter.js +27 -0
  437. package/dist/core/objects/trigger/changes/trigger.base.d.ts +17 -0
  438. package/dist/core/objects/trigger/changes/trigger.base.js +13 -0
  439. package/dist/core/objects/trigger/changes/trigger.comment.d.ts +23 -0
  440. package/dist/core/objects/trigger/changes/trigger.comment.js +51 -0
  441. package/dist/core/objects/trigger/changes/trigger.create.d.ts +41 -0
  442. package/dist/core/objects/trigger/changes/trigger.create.js +61 -0
  443. package/dist/core/objects/trigger/changes/trigger.drop.d.ts +22 -0
  444. package/dist/core/objects/trigger/changes/trigger.drop.js +33 -0
  445. package/dist/core/objects/trigger/changes/trigger.types.d.ts +5 -0
  446. package/dist/core/objects/trigger/changes/trigger.types.js +1 -0
  447. package/dist/core/objects/trigger/trigger.diff.d.ts +11 -0
  448. package/dist/core/objects/trigger/trigger.diff.js +84 -0
  449. package/dist/core/objects/trigger/trigger.model.d.ts +92 -0
  450. package/dist/core/objects/trigger/trigger.model.js +235 -0
  451. package/dist/core/objects/type/composite-type/changes/composite-type.alter.d.ts +81 -0
  452. package/dist/core/objects/type/composite-type/changes/composite-type.alter.js +123 -0
  453. package/dist/core/objects/type/composite-type/changes/composite-type.base.d.ts +17 -0
  454. package/dist/core/objects/type/composite-type/changes/composite-type.base.js +13 -0
  455. package/dist/core/objects/type/composite-type/changes/composite-type.comment.d.ts +53 -0
  456. package/dist/core/objects/type/composite-type/changes/composite-type.comment.js +108 -0
  457. package/dist/core/objects/type/composite-type/changes/composite-type.create.d.ts +23 -0
  458. package/dist/core/objects/type/composite-type/changes/composite-type.create.js +72 -0
  459. package/dist/core/objects/type/composite-type/changes/composite-type.drop.d.ts +22 -0
  460. package/dist/core/objects/type/composite-type/changes/composite-type.drop.js +31 -0
  461. package/dist/core/objects/type/composite-type/changes/composite-type.privilege.d.ts +97 -0
  462. package/dist/core/objects/type/composite-type/changes/composite-type.privilege.js +131 -0
  463. package/dist/core/objects/type/composite-type/changes/composite-type.types.d.ts +6 -0
  464. package/dist/core/objects/type/composite-type/changes/composite-type.types.js +1 -0
  465. package/dist/core/objects/type/composite-type/composite-type.diff.d.ts +18 -0
  466. package/dist/core/objects/type/composite-type/composite-type.diff.js +250 -0
  467. package/dist/core/objects/type/composite-type/composite-type.model.d.ts +148 -0
  468. package/dist/core/objects/type/composite-type/composite-type.model.js +223 -0
  469. package/dist/core/objects/type/enum/changes/enum.alter.d.ts +52 -0
  470. package/dist/core/objects/type/enum/changes/enum.alter.js +60 -0
  471. package/dist/core/objects/type/enum/changes/enum.base.d.ts +17 -0
  472. package/dist/core/objects/type/enum/changes/enum.base.js +13 -0
  473. package/dist/core/objects/type/enum/changes/enum.comment.d.ts +26 -0
  474. package/dist/core/objects/type/enum/changes/enum.comment.js +47 -0
  475. package/dist/core/objects/type/enum/changes/enum.create.d.ts +22 -0
  476. package/dist/core/objects/type/enum/changes/enum.create.js +43 -0
  477. package/dist/core/objects/type/enum/changes/enum.drop.d.ts +22 -0
  478. package/dist/core/objects/type/enum/changes/enum.drop.js +28 -0
  479. package/dist/core/objects/type/enum/changes/enum.privilege.d.ts +97 -0
  480. package/dist/core/objects/type/enum/changes/enum.privilege.js +131 -0
  481. package/dist/core/objects/type/enum/changes/enum.types.d.ts +6 -0
  482. package/dist/core/objects/type/enum/changes/enum.types.js +1 -0
  483. package/dist/core/objects/type/enum/enum.diff.d.ts +18 -0
  484. package/dist/core/objects/type/enum/enum.diff.js +268 -0
  485. package/dist/core/objects/type/enum/enum.model.d.ts +66 -0
  486. package/dist/core/objects/type/enum/enum.model.js +154 -0
  487. package/dist/core/objects/type/range/changes/range.alter.d.ts +33 -0
  488. package/dist/core/objects/type/range/changes/range.alter.js +30 -0
  489. package/dist/core/objects/type/range/changes/range.base.d.ts +17 -0
  490. package/dist/core/objects/type/range/changes/range.base.js +13 -0
  491. package/dist/core/objects/type/range/changes/range.comment.d.ts +26 -0
  492. package/dist/core/objects/type/range/changes/range.comment.js +47 -0
  493. package/dist/core/objects/type/range/changes/range.create.d.ts +31 -0
  494. package/dist/core/objects/type/range/changes/range.create.js +113 -0
  495. package/dist/core/objects/type/range/changes/range.drop.d.ts +22 -0
  496. package/dist/core/objects/type/range/changes/range.drop.js +28 -0
  497. package/dist/core/objects/type/range/changes/range.privilege.d.ts +97 -0
  498. package/dist/core/objects/type/range/changes/range.privilege.js +131 -0
  499. package/dist/core/objects/type/range/changes/range.types.d.ts +6 -0
  500. package/dist/core/objects/type/range/changes/range.types.js +1 -0
  501. package/dist/core/objects/type/range/range.diff.d.ts +18 -0
  502. package/dist/core/objects/type/range/range.diff.js +172 -0
  503. package/dist/core/objects/type/range/range.model.d.ts +81 -0
  504. package/dist/core/objects/type/range/range.model.js +165 -0
  505. package/dist/core/objects/type/type.types.d.ts +4 -0
  506. package/dist/core/objects/type/type.types.js +1 -0
  507. package/dist/core/objects/utils.d.ts +57 -0
  508. package/dist/core/objects/utils.js +137 -0
  509. package/dist/core/objects/view/changes/view.alter.d.ts +62 -0
  510. package/dist/core/objects/view/changes/view.alter.js +75 -0
  511. package/dist/core/objects/view/changes/view.base.d.ts +17 -0
  512. package/dist/core/objects/view/changes/view.base.js +13 -0
  513. package/dist/core/objects/view/changes/view.comment.d.ts +23 -0
  514. package/dist/core/objects/view/changes/view.comment.js +46 -0
  515. package/dist/core/objects/view/changes/view.create.d.ts +27 -0
  516. package/dist/core/objects/view/changes/view.create.js +57 -0
  517. package/dist/core/objects/view/changes/view.drop.d.ts +17 -0
  518. package/dist/core/objects/view/changes/view.drop.js +30 -0
  519. package/dist/core/objects/view/changes/view.privilege.d.ts +107 -0
  520. package/dist/core/objects/view/changes/view.privilege.js +150 -0
  521. package/dist/core/objects/view/changes/view.types.d.ts +6 -0
  522. package/dist/core/objects/view/changes/view.types.js +1 -0
  523. package/dist/core/objects/view/view.diff.d.ts +18 -0
  524. package/dist/core/objects/view/view.diff.js +270 -0
  525. package/dist/core/objects/view/view.model.d.ts +152 -0
  526. package/dist/core/objects/view/view.model.js +250 -0
  527. package/dist/core/plan/apply.d.ts +33 -0
  528. package/dist/core/plan/apply.js +112 -0
  529. package/dist/core/plan/create.d.ts +22 -0
  530. package/dist/core/plan/create.js +228 -0
  531. package/dist/core/plan/hierarchy.d.ts +19 -0
  532. package/dist/core/plan/hierarchy.js +488 -0
  533. package/dist/core/plan/index.d.ts +18 -0
  534. package/dist/core/plan/index.js +20 -0
  535. package/dist/core/plan/io.d.ts +12 -0
  536. package/dist/core/plan/io.js +17 -0
  537. package/dist/core/plan/risk.d.ts +10 -0
  538. package/dist/core/plan/risk.js +38 -0
  539. package/dist/core/plan/serialize.d.ts +26 -0
  540. package/dist/core/plan/serialize.js +176 -0
  541. package/dist/core/plan/statements.d.ts +8 -0
  542. package/dist/core/plan/statements.js +13 -0
  543. package/dist/core/plan/types.d.ts +142 -0
  544. package/dist/core/plan/types.js +32 -0
  545. package/dist/core/postgres-config.d.ts +8 -0
  546. package/dist/core/postgres-config.js +46 -0
  547. package/dist/core/sort/custom-constraints.d.ts +9 -0
  548. package/dist/core/sort/custom-constraints.js +133 -0
  549. package/dist/core/sort/debug-visualization.d.ts +8 -0
  550. package/dist/core/sort/debug-visualization.js +145 -0
  551. package/dist/core/sort/dependency-filter.d.ts +19 -0
  552. package/dist/core/sort/dependency-filter.js +152 -0
  553. package/dist/core/sort/graph-builder.d.ts +37 -0
  554. package/dist/core/sort/graph-builder.js +172 -0
  555. package/dist/core/sort/graph-utils.d.ts +14 -0
  556. package/dist/core/sort/graph-utils.js +41 -0
  557. package/dist/core/sort/logical-sort.d.ts +26 -0
  558. package/dist/core/sort/logical-sort.js +532 -0
  559. package/dist/core/sort/sort-changes.d.ts +28 -0
  560. package/dist/core/sort/sort-changes.js +147 -0
  561. package/dist/core/sort/topological-sort.d.ts +20 -0
  562. package/dist/core/sort/topological-sort.js +138 -0
  563. package/dist/core/sort/types.d.ts +102 -0
  564. package/dist/core/sort/types.js +1 -0
  565. package/dist/core/sort/utils.d.ts +23 -0
  566. package/dist/core/sort/utils.js +51 -0
  567. package/dist/index.d.ts +9 -0
  568. package/dist/index.js +8 -0
  569. package/package.json +61 -12
@@ -0,0 +1,12 @@
1
+ import type { Change } from "../../change.types.ts";
2
+ /**
3
+ * Property extractor function that extracts a value from a change.
4
+ */
5
+ type PropertyExtractor = (change: Change) => string | null;
6
+ /**
7
+ * Registry of property extractors.
8
+ * Maps property names to extractor functions.
9
+ */
10
+ export declare const PROPERTY_EXTRACTORS: Record<string, PropertyExtractor>;
11
+ export declare function getSchema(change: Change): string | null;
12
+ export {};
@@ -0,0 +1,136 @@
1
+ /**
2
+ * Registry of property extractors.
3
+ * Maps property names to extractor functions.
4
+ */
5
+ export const PROPERTY_EXTRACTORS = {
6
+ schema: getSchema,
7
+ owner: getOwner,
8
+ member: (change) => {
9
+ if (change.scope === "membership") {
10
+ return change.member;
11
+ }
12
+ return null;
13
+ },
14
+ };
15
+ export function getSchema(change) {
16
+ switch (change.objectType) {
17
+ case "aggregate":
18
+ return change.aggregate.schema;
19
+ case "collation":
20
+ return change.collation.schema;
21
+ case "composite_type":
22
+ return change.compositeType.schema;
23
+ case "domain":
24
+ return change.domain.schema;
25
+ case "enum":
26
+ return change.enum.schema;
27
+ case "event_trigger":
28
+ return null;
29
+ case "extension":
30
+ return change.extension.schema;
31
+ case "index":
32
+ return change.index.schema;
33
+ case "language":
34
+ return null;
35
+ case "materialized_view":
36
+ return change.materializedView.schema;
37
+ case "procedure":
38
+ return change.procedure.schema;
39
+ case "publication":
40
+ return null;
41
+ case "range":
42
+ return change.range.schema;
43
+ case "rls_policy":
44
+ return change.policy.schema;
45
+ case "role":
46
+ return null;
47
+ case "rule":
48
+ return change.rule.schema;
49
+ case "schema":
50
+ return change.schema.name;
51
+ case "sequence":
52
+ return change.sequence.schema;
53
+ case "subscription":
54
+ return null;
55
+ case "table":
56
+ return change.table.schema;
57
+ case "trigger":
58
+ return change.trigger.schema;
59
+ case "view":
60
+ return change.view.schema;
61
+ case "foreign_data_wrapper":
62
+ return null;
63
+ case "server":
64
+ return null;
65
+ case "user_mapping":
66
+ return null;
67
+ case "foreign_table":
68
+ return change.foreignTable.schema;
69
+ default: {
70
+ // exhaustiveness check
71
+ const _exhaustive = change;
72
+ return _exhaustive;
73
+ }
74
+ }
75
+ }
76
+ function getOwner(change) {
77
+ switch (change.objectType) {
78
+ case "aggregate":
79
+ return change.aggregate.owner;
80
+ case "collation":
81
+ return change.collation.owner;
82
+ case "composite_type":
83
+ return change.compositeType.owner;
84
+ case "domain":
85
+ return change.domain.owner;
86
+ case "enum":
87
+ return change.enum.owner;
88
+ case "event_trigger":
89
+ return change.eventTrigger.owner;
90
+ case "extension":
91
+ return change.extension.owner;
92
+ case "index":
93
+ return change.index.owner;
94
+ case "language":
95
+ return change.language.owner;
96
+ case "materialized_view":
97
+ return change.materializedView.owner;
98
+ case "procedure":
99
+ return change.procedure.owner;
100
+ case "publication":
101
+ return change.publication.owner;
102
+ case "range":
103
+ return change.range.owner;
104
+ case "rls_policy":
105
+ return change.policy.owner;
106
+ case "role":
107
+ return change.role.name;
108
+ case "rule":
109
+ return change.rule.owner;
110
+ case "schema":
111
+ return change.schema.owner;
112
+ case "sequence":
113
+ return change.sequence.owner;
114
+ case "subscription":
115
+ return change.subscription.owner;
116
+ case "table":
117
+ return change.table.owner;
118
+ case "trigger":
119
+ return change.trigger.owner;
120
+ case "view":
121
+ return change.view.owner;
122
+ case "foreign_data_wrapper":
123
+ return change.foreignDataWrapper.owner;
124
+ case "server":
125
+ return change.server.owner;
126
+ case "user_mapping":
127
+ return null;
128
+ case "foreign_table":
129
+ return change.foreignTable.owner;
130
+ default: {
131
+ // exhaustiveness check
132
+ const _exhaustive = change;
133
+ return _exhaustive;
134
+ }
135
+ }
136
+ }
@@ -0,0 +1,2 @@
1
+ import type { Change } from "../../change.types.ts";
2
+ export type ChangeFilter = (change: Change) => boolean;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Integration DSL - A serializable domain-specific language for integrations.
3
+ *
4
+ * Combines filter and serialization DSLs into a single serializable structure.
5
+ */
6
+ import type { FilterDSL } from "./filter/dsl.ts";
7
+ import type { SerializeDSL } from "./serialize/dsl.ts";
8
+ /**
9
+ * Integration DSL - serializable representation of an integration.
10
+ */
11
+ export type IntegrationDSL = {
12
+ /**
13
+ * Filter DSL - determines which changes to include/exclude.
14
+ * If not provided, all changes are included.
15
+ */
16
+ filter?: FilterDSL;
17
+ /**
18
+ * Serialization DSL - customizes how changes are serialized.
19
+ * If not provided, changes are serialized with default options.
20
+ */
21
+ serialize?: SerializeDSL;
22
+ };
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Integration DSL - A serializable domain-specific language for integrations.
3
+ *
4
+ * Combines filter and serialization DSLs into a single serializable structure.
5
+ */
6
+ export {};
@@ -0,0 +1,6 @@
1
+ import type { ChangeFilter } from "./filter/filter.types.ts";
2
+ import type { ChangeSerializer } from "./serialize/serialize.types.ts";
3
+ export type Integration = {
4
+ filter?: ChangeFilter;
5
+ serialize?: ChangeSerializer;
6
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Serialization DSL - A serializable domain-specific language for customizing change serialization.
3
+ *
4
+ * Reuses the filter pattern matching logic to determine when to apply serialization options.
5
+ */
6
+ import { type FilterPattern } from "../filter/dsl.ts";
7
+ import type { ChangeSerializer } from "./serialize.types.ts";
8
+ /**
9
+ * Serialization options that can be passed to change.serialize().
10
+ */
11
+ type SerializeOptions = {
12
+ skipAuthorization?: boolean;
13
+ [key: string]: unknown;
14
+ };
15
+ /**
16
+ * A serialization rule that applies options when a pattern matches.
17
+ */
18
+ type SerializeRule = {
19
+ /**
20
+ * Pattern to match against changes.
21
+ * Uses the same pattern matching logic as filters.
22
+ */
23
+ when: FilterPattern;
24
+ /**
25
+ * Serialization options to apply when the pattern matches.
26
+ */
27
+ options: SerializeOptions;
28
+ };
29
+ /**
30
+ * Serialization DSL - array of rules evaluated in order.
31
+ * First matching rule's options are applied.
32
+ */
33
+ export type SerializeDSL = SerializeRule[];
34
+ /**
35
+ * Compile a Serialization DSL to a ChangeSerializer function.
36
+ *
37
+ * Rules are evaluated in order, and the first matching rule's options are applied.
38
+ * If no rule matches, the change is serialized with default options.
39
+ *
40
+ * @param dsl - The serialization DSL
41
+ * @returns A ChangeSerializer function that applies the rules
42
+ *
43
+ * @example
44
+ * ```ts
45
+ * const serializer = compileSerializeDSL([
46
+ * {
47
+ * when: {
48
+ * type: "schema",
49
+ * operation: "create",
50
+ * owner: ["service_role"]
51
+ * },
52
+ * options: { skipAuthorization: true }
53
+ * }
54
+ * ]);
55
+ * ```
56
+ */
57
+ export declare function compileSerializeDSL(dsl: SerializeDSL): ChangeSerializer;
58
+ export {};
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Serialization DSL - A serializable domain-specific language for customizing change serialization.
3
+ *
4
+ * Reuses the filter pattern matching logic to determine when to apply serialization options.
5
+ */
6
+ import { evaluatePattern } from "../filter/dsl.js";
7
+ /**
8
+ * Compile a Serialization DSL to a ChangeSerializer function.
9
+ *
10
+ * Rules are evaluated in order, and the first matching rule's options are applied.
11
+ * If no rule matches, the change is serialized with default options.
12
+ *
13
+ * @param dsl - The serialization DSL
14
+ * @returns A ChangeSerializer function that applies the rules
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * const serializer = compileSerializeDSL([
19
+ * {
20
+ * when: {
21
+ * type: "schema",
22
+ * operation: "create",
23
+ * owner: ["service_role"]
24
+ * },
25
+ * options: { skipAuthorization: true }
26
+ * }
27
+ * ]);
28
+ * ```
29
+ */
30
+ export function compileSerializeDSL(dsl) {
31
+ return (change) => {
32
+ // Find first matching rule
33
+ for (const rule of dsl) {
34
+ if (evaluatePattern(rule.when, change)) {
35
+ // Apply this rule's options
36
+ return change.serialize(rule.options);
37
+ }
38
+ }
39
+ // No rule matched - use default serialization
40
+ return change.serialize();
41
+ };
42
+ }
@@ -0,0 +1,2 @@
1
+ import type { Change } from "../../change.types.ts";
2
+ export type ChangeSerializer = (change: Change) => string | undefined;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Supabase integration - filtering and serialization rules for Supabase databases.
3
+ *
4
+ * This integration:
5
+ * - Filters out Supabase system schemas and roles
6
+ * - Includes user schemas and extensions
7
+ * - Skips authorization for schema creates owned by Supabase system roles
8
+ */
9
+ import type { IntegrationDSL } from "./integration-dsl.ts";
10
+ export declare const supabase: IntegrationDSL;
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Supabase integration - filtering and serialization rules for Supabase databases.
3
+ *
4
+ * This integration:
5
+ * - Filters out Supabase system schemas and roles
6
+ * - Includes user schemas and extensions
7
+ * - Skips authorization for schema creates owned by Supabase system roles
8
+ */
9
+ // Supabase system schemas that should be excluded
10
+ const SUPABASE_SYSTEM_SCHEMAS = [
11
+ "_analytics",
12
+ "_realtime",
13
+ "_supavisor",
14
+ "auth",
15
+ "cron",
16
+ "extensions",
17
+ "graphql",
18
+ "graphql_public",
19
+ "information_schema",
20
+ "net",
21
+ "pgbouncer",
22
+ "pgmq",
23
+ "pgmq_public",
24
+ "pgsodium",
25
+ "pgsodium_masks",
26
+ "pgtle",
27
+ "realtime",
28
+ "storage",
29
+ "supabase_functions",
30
+ "supabase_migrations",
31
+ "vault",
32
+ ];
33
+ // Supabase system roles that should be excluded
34
+ const SUPABASE_SYSTEM_ROLES = [
35
+ "anon",
36
+ "authenticated",
37
+ "authenticator",
38
+ "dashboard_user",
39
+ "pgbouncer",
40
+ "pgsodium_keyholder",
41
+ "pgsodium_keyiduser",
42
+ "pgsodium_keymaker",
43
+ "pgtle_admin",
44
+ "service_role",
45
+ "supabase_admin",
46
+ "supabase_auth_admin",
47
+ "supabase_etl_admin",
48
+ "supabase_functions_admin",
49
+ "supabase_read_only_user",
50
+ "supabase_realtime_admin",
51
+ "supabase_replication_admin",
52
+ "supabase_storage_admin",
53
+ ];
54
+ export const supabase = {
55
+ filter: {
56
+ or: [
57
+ {
58
+ and: [
59
+ {
60
+ type: "schema",
61
+ operation: "create",
62
+ scope: "object",
63
+ },
64
+ {
65
+ not: {
66
+ schema: [...SUPABASE_SYSTEM_SCHEMAS],
67
+ },
68
+ },
69
+ ],
70
+ },
71
+ {
72
+ type: "extension",
73
+ operation: "create",
74
+ scope: "object",
75
+ },
76
+ {
77
+ not: {
78
+ or: [
79
+ {
80
+ schema: [...SUPABASE_SYSTEM_SCHEMAS],
81
+ },
82
+ {
83
+ owner: [...SUPABASE_SYSTEM_ROLES],
84
+ },
85
+ {
86
+ and: [
87
+ {
88
+ type: "role",
89
+ scope: "membership",
90
+ },
91
+ {
92
+ member: [...SUPABASE_SYSTEM_ROLES],
93
+ },
94
+ ],
95
+ },
96
+ ],
97
+ },
98
+ },
99
+ ],
100
+ },
101
+ serialize: [
102
+ {
103
+ when: {
104
+ type: "schema",
105
+ operation: "create",
106
+ scope: "object",
107
+ owner: [...SUPABASE_SYSTEM_ROLES],
108
+ },
109
+ options: {
110
+ skipAuthorization: true,
111
+ },
112
+ },
113
+ ],
114
+ };
@@ -0,0 +1,10 @@
1
+ import type { DefaultPrivilegeState } from "../base.default-privileges.ts";
2
+ import type { Role } from "../role/role.model.ts";
3
+ import type { Aggregate } from "./aggregate.model.ts";
4
+ import type { AggregateChange } from "./changes/aggregate.types.ts";
5
+ export declare function diffAggregates(ctx: {
6
+ version: number;
7
+ currentUser: string;
8
+ defaultPrivilegeState: DefaultPrivilegeState;
9
+ mainRoles: Record<string, Role>;
10
+ }, main: Record<string, Aggregate>, branch: Record<string, Aggregate>): AggregateChange[];
@@ -0,0 +1,186 @@
1
+ import { diffObjects } from "../base.diff.js";
2
+ import { diffPrivileges, filterPublicBuiltInDefaults, groupPrivilegesByGrantable, } from "../base.privilege-diff.js";
3
+ import { deepEqual, hasNonAlterableChanges } from "../utils.js";
4
+ import { AlterAggregateChangeOwner } from "./changes/aggregate.alter.js";
5
+ import { CreateCommentOnAggregate, DropCommentOnAggregate, } from "./changes/aggregate.comment.js";
6
+ import { CreateAggregate } from "./changes/aggregate.create.js";
7
+ import { DropAggregate } from "./changes/aggregate.drop.js";
8
+ import { GrantAggregatePrivileges, RevokeAggregatePrivileges, RevokeGrantOptionAggregatePrivileges, } from "./changes/aggregate.privilege.js";
9
+ export function diffAggregates(ctx, main, branch) {
10
+ const { created, dropped, altered } = diffObjects(main, branch);
11
+ const changes = [];
12
+ for (const aggregateId of created) {
13
+ const aggregate = branch[aggregateId];
14
+ changes.push(new CreateAggregate({ aggregate }));
15
+ // OWNER: If the aggregate should be owned by someone other than the current user,
16
+ // emit ALTER AGGREGATE ... OWNER TO after creation
17
+ if (aggregate.owner !== ctx.currentUser) {
18
+ changes.push(new AlterAggregateChangeOwner({
19
+ aggregate,
20
+ owner: aggregate.owner,
21
+ }));
22
+ }
23
+ if (aggregate.comment !== null) {
24
+ changes.push(new CreateCommentOnAggregate({ aggregate }));
25
+ }
26
+ // PRIVILEGES: For created objects, compare against default privileges state
27
+ // The migration script will run ALTER DEFAULT PRIVILEGES before CREATE (via constraint spec),
28
+ // so objects are created with the default privileges state in effect.
29
+ // We compare default privileges against desired privileges to generate REVOKE/GRANT statements
30
+ // needed to reach the final desired state.
31
+ const effectiveDefaults = ctx.defaultPrivilegeState.getEffectiveDefaults(ctx.currentUser, "aggregate", aggregate.schema ?? "");
32
+ // Filter out PUBLIC's built-in default EXECUTE privilege (PostgreSQL grants it automatically)
33
+ // Reference: https://www.postgresql.org/docs/17/ddl-priv.html Table 5.2
34
+ // This prevents generating unnecessary "GRANT EXECUTE TO PUBLIC" statements
35
+ const desiredPrivileges = filterPublicBuiltInDefaults("aggregate", aggregate.privileges);
36
+ // Filter out owner privileges - owner always has ALL privileges implicitly
37
+ // and shouldn't be compared. Use the aggregate owner as the reference.
38
+ const privilegeResults = diffPrivileges(effectiveDefaults, desiredPrivileges, aggregate.owner, ctx.mainRoles);
39
+ // Generate grant changes
40
+ for (const [grantee, result] of privilegeResults) {
41
+ if (result.grants.length > 0) {
42
+ const grantGroups = groupPrivilegesByGrantable(result.grants);
43
+ for (const [, list] of grantGroups) {
44
+ changes.push(new GrantAggregatePrivileges({
45
+ aggregate,
46
+ grantee,
47
+ privileges: list,
48
+ version: ctx.version,
49
+ }));
50
+ }
51
+ }
52
+ // Generate revoke changes
53
+ if (result.revokes.length > 0) {
54
+ const revokeGroups = groupPrivilegesByGrantable(result.revokes);
55
+ for (const [, list] of revokeGroups) {
56
+ changes.push(new RevokeAggregatePrivileges({
57
+ aggregate,
58
+ grantee,
59
+ privileges: list,
60
+ version: ctx.version,
61
+ }));
62
+ }
63
+ }
64
+ // Generate revoke grant option changes
65
+ if (result.revokeGrantOption.length > 0) {
66
+ changes.push(new RevokeGrantOptionAggregatePrivileges({
67
+ aggregate,
68
+ grantee,
69
+ privilegeNames: result.revokeGrantOption,
70
+ version: ctx.version,
71
+ }));
72
+ }
73
+ }
74
+ }
75
+ for (const aggregateId of dropped) {
76
+ changes.push(new DropAggregate({ aggregate: main[aggregateId] }));
77
+ }
78
+ for (const aggregateId of altered) {
79
+ const mainAggregate = main[aggregateId];
80
+ const branchAggregate = branch[aggregateId];
81
+ const NON_ALTERABLE_FIELDS = [
82
+ "kind",
83
+ "aggkind",
84
+ "num_direct_args",
85
+ "return_type",
86
+ "return_type_schema",
87
+ "parallel_safety",
88
+ "is_strict",
89
+ "transition_function",
90
+ "state_data_type",
91
+ "state_data_type_schema",
92
+ "state_data_space",
93
+ "final_function",
94
+ "final_function_extra_args",
95
+ "final_function_modify",
96
+ "combine_function",
97
+ "serial_function",
98
+ "deserial_function",
99
+ "initial_condition",
100
+ "moving_transition_function",
101
+ "moving_inverse_function",
102
+ "moving_state_data_type",
103
+ "moving_state_data_type_schema",
104
+ "moving_state_data_space",
105
+ "moving_final_function",
106
+ "moving_final_function_extra_args",
107
+ "moving_final_function_modify",
108
+ "moving_initial_condition",
109
+ "sort_operator",
110
+ "argument_count",
111
+ "argument_default_count",
112
+ "argument_names",
113
+ "argument_types",
114
+ "all_argument_types",
115
+ "argument_modes",
116
+ "argument_defaults",
117
+ "identityArguments",
118
+ ];
119
+ const nonAlterableChanged = hasNonAlterableChanges(mainAggregate, branchAggregate, NON_ALTERABLE_FIELDS, {
120
+ argument_names: deepEqual,
121
+ argument_types: deepEqual,
122
+ all_argument_types: deepEqual,
123
+ argument_modes: deepEqual,
124
+ });
125
+ if (nonAlterableChanged) {
126
+ changes.push(new CreateAggregate({ aggregate: branchAggregate, orReplace: true }));
127
+ continue;
128
+ }
129
+ if (mainAggregate.owner !== branchAggregate.owner) {
130
+ changes.push(new AlterAggregateChangeOwner({
131
+ aggregate: mainAggregate,
132
+ owner: branchAggregate.owner,
133
+ }));
134
+ }
135
+ if (mainAggregate.comment !== branchAggregate.comment) {
136
+ if (branchAggregate.comment === null) {
137
+ changes.push(new DropCommentOnAggregate({ aggregate: mainAggregate }));
138
+ }
139
+ else {
140
+ changes.push(new CreateCommentOnAggregate({ aggregate: branchAggregate }));
141
+ }
142
+ }
143
+ // PRIVILEGES
144
+ // Filter out PUBLIC's built-in default EXECUTE privilege from main catalog
145
+ // (PostgreSQL grants it automatically, so we shouldn't compare it)
146
+ const mainPrivilegesFiltered = filterPublicBuiltInDefaults("aggregate", mainAggregate.privileges);
147
+ // Filter out PUBLIC's built-in default EXECUTE privilege from branch catalog
148
+ const branchPrivilegesFiltered = filterPublicBuiltInDefaults("aggregate", branchAggregate.privileges);
149
+ // Filter out owner privileges - owner always has ALL privileges implicitly
150
+ // and shouldn't be compared. Use branch owner as the reference.
151
+ const privilegeResults = diffPrivileges(mainPrivilegesFiltered, branchPrivilegesFiltered, branchAggregate.owner, ctx.mainRoles);
152
+ for (const [grantee, result] of privilegeResults) {
153
+ if (result.grants.length > 0) {
154
+ const grantGroups = groupPrivilegesByGrantable(result.grants);
155
+ for (const [, list] of grantGroups) {
156
+ changes.push(new GrantAggregatePrivileges({
157
+ aggregate: branchAggregate,
158
+ grantee,
159
+ privileges: list,
160
+ version: ctx.version,
161
+ }));
162
+ }
163
+ }
164
+ if (result.revokes.length > 0) {
165
+ const revokeGroups = groupPrivilegesByGrantable(result.revokes);
166
+ for (const [, list] of revokeGroups) {
167
+ changes.push(new RevokeAggregatePrivileges({
168
+ aggregate: mainAggregate,
169
+ grantee,
170
+ privileges: list,
171
+ version: ctx.version,
172
+ }));
173
+ }
174
+ }
175
+ if (result.revokeGrantOption.length > 0) {
176
+ changes.push(new RevokeGrantOptionAggregatePrivileges({
177
+ aggregate: mainAggregate,
178
+ grantee,
179
+ privilegeNames: result.revokeGrantOption,
180
+ version: ctx.version,
181
+ }));
182
+ }
183
+ }
184
+ }
185
+ return changes;
186
+ }