@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,46 @@
1
+ import { quoteLiteral } from "../../base.change.js";
2
+ import { stableId } from "../../utils.js";
3
+ import { CreateEventTriggerChange, DropEventTriggerChange, } from "./event-trigger.base.js";
4
+ export class CreateCommentOnEventTrigger extends CreateEventTriggerChange {
5
+ eventTrigger;
6
+ scope = "comment";
7
+ constructor(props) {
8
+ super();
9
+ this.eventTrigger = props.eventTrigger;
10
+ }
11
+ get creates() {
12
+ return [stableId.comment(this.eventTrigger.stableId)];
13
+ }
14
+ get requires() {
15
+ return [this.eventTrigger.stableId];
16
+ }
17
+ serialize() {
18
+ return [
19
+ "COMMENT ON EVENT TRIGGER",
20
+ this.eventTrigger.name,
21
+ "IS",
22
+ // biome-ignore lint/style/noNonNullAssertion: comment creation implies non-null
23
+ quoteLiteral(this.eventTrigger.comment),
24
+ ].join(" ");
25
+ }
26
+ }
27
+ export class DropCommentOnEventTrigger extends DropEventTriggerChange {
28
+ eventTrigger;
29
+ scope = "comment";
30
+ constructor(props) {
31
+ super();
32
+ this.eventTrigger = props.eventTrigger;
33
+ }
34
+ get drops() {
35
+ return [stableId.comment(this.eventTrigger.stableId)];
36
+ }
37
+ get requires() {
38
+ return [
39
+ stableId.comment(this.eventTrigger.stableId),
40
+ this.eventTrigger.stableId,
41
+ ];
42
+ }
43
+ serialize() {
44
+ return ["COMMENT ON EVENT TRIGGER", this.eventTrigger.name, "IS NULL"].join(" ");
45
+ }
46
+ }
@@ -0,0 +1,25 @@
1
+ import type { EventTrigger } from "../event-trigger.model.ts";
2
+ import { CreateEventTriggerChange } from "./event-trigger.base.ts";
3
+ /**
4
+ * Create an event trigger.
5
+ *
6
+ * @see https://www.postgresql.org/docs/17/sql-createeventtrigger.html
7
+ *
8
+ * Synopsis
9
+ * ```sql
10
+ * CREATE EVENT TRIGGER name
11
+ * ON event
12
+ * [ WHEN TAG IN (tag [, ...]) [ AND ... ] ]
13
+ * EXECUTE { FUNCTION | PROCEDURE } function_name()
14
+ * ```
15
+ */
16
+ export declare class CreateEventTrigger extends CreateEventTriggerChange {
17
+ readonly eventTrigger: EventTrigger;
18
+ readonly scope: "object";
19
+ constructor(props: {
20
+ eventTrigger: EventTrigger;
21
+ });
22
+ get creates(): `eventTrigger:${string}`[];
23
+ get requires(): string[];
24
+ serialize(): string;
25
+ }
@@ -0,0 +1,55 @@
1
+ import { quoteLiteral } from "../../base.change.js";
2
+ import { parseProcedureReference, stableId } from "../../utils.js";
3
+ import { CreateEventTriggerChange } from "./event-trigger.base.js";
4
+ /**
5
+ * Create an event trigger.
6
+ *
7
+ * @see https://www.postgresql.org/docs/17/sql-createeventtrigger.html
8
+ *
9
+ * Synopsis
10
+ * ```sql
11
+ * CREATE EVENT TRIGGER name
12
+ * ON event
13
+ * [ WHEN TAG IN (tag [, ...]) [ AND ... ] ]
14
+ * EXECUTE { FUNCTION | PROCEDURE } function_name()
15
+ * ```
16
+ */
17
+ export class CreateEventTrigger extends CreateEventTriggerChange {
18
+ eventTrigger;
19
+ scope = "object";
20
+ constructor(props) {
21
+ super();
22
+ this.eventTrigger = props.eventTrigger;
23
+ }
24
+ get creates() {
25
+ return [this.eventTrigger.stableId];
26
+ }
27
+ get requires() {
28
+ const dependencies = new Set();
29
+ // Owner dependency
30
+ dependencies.add(stableId.role(this.eventTrigger.owner));
31
+ // Function dependency
32
+ // Note: Event triggers call functions with no arguments, so we can build the stableId
33
+ const procRef = parseProcedureReference(`${this.eventTrigger.function_schema}.${this.eventTrigger.function_name}()`);
34
+ if (procRef) {
35
+ // Event trigger functions have no arguments, so stableId is procedure:schema.name()
36
+ dependencies.add(stableId.procedure(procRef.schema, procRef.name));
37
+ }
38
+ return Array.from(dependencies);
39
+ }
40
+ serialize() {
41
+ const parts = [
42
+ "CREATE EVENT TRIGGER",
43
+ this.eventTrigger.name,
44
+ "ON",
45
+ this.eventTrigger.event,
46
+ ];
47
+ const tags = this.eventTrigger.tags;
48
+ if (tags && tags.length > 0) {
49
+ const tagList = tags.map((tag) => quoteLiteral(tag)).join(", ");
50
+ parts.push("WHEN TAG IN", `(${tagList})`);
51
+ }
52
+ parts.push("EXECUTE FUNCTION", `${this.eventTrigger.function_schema}.${this.eventTrigger.function_name}()`);
53
+ return parts.join(" ");
54
+ }
55
+ }
@@ -0,0 +1,22 @@
1
+ import type { EventTrigger } from "../event-trigger.model.ts";
2
+ import { DropEventTriggerChange } from "./event-trigger.base.ts";
3
+ /**
4
+ * Drop an event trigger.
5
+ *
6
+ * @see https://www.postgresql.org/docs/17/sql-dropeventtrigger.html
7
+ *
8
+ * Synopsis
9
+ * ```sql
10
+ * DROP EVENT TRIGGER [ IF EXISTS ] name [ CASCADE | RESTRICT ]
11
+ * ```
12
+ */
13
+ export declare class DropEventTrigger extends DropEventTriggerChange {
14
+ readonly eventTrigger: EventTrigger;
15
+ readonly scope: "object";
16
+ constructor(props: {
17
+ eventTrigger: EventTrigger;
18
+ });
19
+ get drops(): `eventTrigger:${string}`[];
20
+ get requires(): `eventTrigger:${string}`[];
21
+ serialize(): string;
22
+ }
@@ -0,0 +1,28 @@
1
+ import { DropEventTriggerChange } from "./event-trigger.base.js";
2
+ /**
3
+ * Drop an event trigger.
4
+ *
5
+ * @see https://www.postgresql.org/docs/17/sql-dropeventtrigger.html
6
+ *
7
+ * Synopsis
8
+ * ```sql
9
+ * DROP EVENT TRIGGER [ IF EXISTS ] name [ CASCADE | RESTRICT ]
10
+ * ```
11
+ */
12
+ export class DropEventTrigger extends DropEventTriggerChange {
13
+ eventTrigger;
14
+ scope = "object";
15
+ constructor(props) {
16
+ super();
17
+ this.eventTrigger = props.eventTrigger;
18
+ }
19
+ get drops() {
20
+ return [this.eventTrigger.stableId];
21
+ }
22
+ get requires() {
23
+ return [this.eventTrigger.stableId];
24
+ }
25
+ serialize() {
26
+ return ["DROP EVENT TRIGGER", this.eventTrigger.name].join(" ");
27
+ }
28
+ }
@@ -0,0 +1,5 @@
1
+ import type { AlterEventTrigger } from "./event-trigger.alter.ts";
2
+ import type { CommentEventTrigger } from "./event-trigger.comment.ts";
3
+ import type { CreateEventTrigger } from "./event-trigger.create.ts";
4
+ import type { DropEventTrigger } from "./event-trigger.drop.ts";
5
+ export type EventTriggerChange = AlterEventTrigger | CommentEventTrigger | CreateEventTrigger | DropEventTrigger;
@@ -0,0 +1,13 @@
1
+ import type { EventTriggerChange } from "./changes/event-trigger.types.ts";
2
+ import type { EventTrigger } from "./event-trigger.model.ts";
3
+ /**
4
+ * Diff two sets of event triggers from main and branch catalogs.
5
+ *
6
+ * @param ctx - Context containing currentUser
7
+ * @param main - The event triggers in the main catalog.
8
+ * @param branch - The event triggers in the branch catalog.
9
+ * @returns A list of changes to apply to main to make it match branch.
10
+ */
11
+ export declare function diffEventTriggers(ctx: {
12
+ currentUser: string;
13
+ }, main: Record<string, EventTrigger>, branch: Record<string, EventTrigger>): EventTriggerChange[];
@@ -0,0 +1,81 @@
1
+ import { diffObjects } from "../base.diff.js";
2
+ import { deepEqual, hasNonAlterableChanges } from "../utils.js";
3
+ import { AlterEventTriggerChangeOwner, AlterEventTriggerSetEnabled, } from "./changes/event-trigger.alter.js";
4
+ import { CreateCommentOnEventTrigger, DropCommentOnEventTrigger, } from "./changes/event-trigger.comment.js";
5
+ import { CreateEventTrigger } from "./changes/event-trigger.create.js";
6
+ import { DropEventTrigger } from "./changes/event-trigger.drop.js";
7
+ /**
8
+ * Diff two sets of event triggers from main and branch catalogs.
9
+ *
10
+ * @param ctx - Context containing currentUser
11
+ * @param main - The event triggers in the main catalog.
12
+ * @param branch - The event triggers in the branch catalog.
13
+ * @returns A list of changes to apply to main to make it match branch.
14
+ */
15
+ export function diffEventTriggers(ctx, main, branch) {
16
+ const { created, dropped, altered } = diffObjects(main, branch);
17
+ const changes = [];
18
+ for (const eventTriggerId of created) {
19
+ const eventTrigger = branch[eventTriggerId];
20
+ changes.push(new CreateEventTrigger({ eventTrigger }));
21
+ // OWNER: If the event trigger should be owned by someone other than the current user,
22
+ // emit ALTER EVENT TRIGGER ... OWNER TO after creation
23
+ if (eventTrigger.owner !== ctx.currentUser) {
24
+ changes.push(new AlterEventTriggerChangeOwner({
25
+ eventTrigger,
26
+ owner: eventTrigger.owner,
27
+ }));
28
+ }
29
+ if (eventTrigger.comment !== null) {
30
+ changes.push(new CreateCommentOnEventTrigger({ eventTrigger }));
31
+ }
32
+ }
33
+ for (const eventTriggerId of dropped) {
34
+ changes.push(new DropEventTrigger({ eventTrigger: main[eventTriggerId] }));
35
+ }
36
+ for (const eventTriggerId of altered) {
37
+ const mainEventTrigger = main[eventTriggerId];
38
+ const branchEventTrigger = branch[eventTriggerId];
39
+ const NON_ALTERABLE_FIELDS = [
40
+ "event",
41
+ "function_schema",
42
+ "function_name",
43
+ "tags",
44
+ ];
45
+ const shouldReplace = hasNonAlterableChanges(mainEventTrigger, branchEventTrigger, NON_ALTERABLE_FIELDS, { tags: deepEqual });
46
+ if (shouldReplace) {
47
+ changes.push(new DropEventTrigger({ eventTrigger: mainEventTrigger }), new CreateEventTrigger({ eventTrigger: branchEventTrigger }));
48
+ if (branchEventTrigger.comment !== null) {
49
+ changes.push(new CreateCommentOnEventTrigger({
50
+ eventTrigger: branchEventTrigger,
51
+ }));
52
+ }
53
+ continue;
54
+ }
55
+ if (mainEventTrigger.enabled !== branchEventTrigger.enabled) {
56
+ changes.push(new AlterEventTriggerSetEnabled({
57
+ eventTrigger: mainEventTrigger,
58
+ enabled: branchEventTrigger.enabled,
59
+ }));
60
+ }
61
+ if (mainEventTrigger.owner !== branchEventTrigger.owner) {
62
+ changes.push(new AlterEventTriggerChangeOwner({
63
+ eventTrigger: mainEventTrigger,
64
+ owner: branchEventTrigger.owner,
65
+ }));
66
+ }
67
+ if (mainEventTrigger.comment !== branchEventTrigger.comment) {
68
+ if (branchEventTrigger.comment === null) {
69
+ changes.push(new DropCommentOnEventTrigger({
70
+ eventTrigger: mainEventTrigger,
71
+ }));
72
+ }
73
+ else {
74
+ changes.push(new CreateCommentOnEventTrigger({
75
+ eventTrigger: branchEventTrigger,
76
+ }));
77
+ }
78
+ }
79
+ }
80
+ return changes;
81
+ }
@@ -0,0 +1,45 @@
1
+ import type { Sql } from "postgres";
2
+ import z from "zod";
3
+ import { BasePgModel } from "../base.model.ts";
4
+ declare const eventTriggerPropsSchema: z.ZodObject<{
5
+ name: z.ZodString;
6
+ event: z.ZodString;
7
+ function_schema: z.ZodString;
8
+ function_name: z.ZodString;
9
+ enabled: z.ZodEnum<{
10
+ O: "O";
11
+ D: "D";
12
+ R: "R";
13
+ A: "A";
14
+ }>;
15
+ tags: z.ZodNullable<z.ZodArray<z.ZodString>>;
16
+ owner: z.ZodString;
17
+ comment: z.ZodNullable<z.ZodString>;
18
+ }, z.z.core.$strip>;
19
+ export type EventTriggerProps = z.infer<typeof eventTriggerPropsSchema>;
20
+ export declare class EventTrigger extends BasePgModel {
21
+ readonly name: EventTriggerProps["name"];
22
+ readonly event: EventTriggerProps["event"];
23
+ readonly function_schema: EventTriggerProps["function_schema"];
24
+ readonly function_name: EventTriggerProps["function_name"];
25
+ readonly enabled: EventTriggerProps["enabled"];
26
+ readonly tags: EventTriggerProps["tags"];
27
+ readonly owner: EventTriggerProps["owner"];
28
+ readonly comment: EventTriggerProps["comment"];
29
+ constructor(props: EventTriggerProps);
30
+ get stableId(): `eventTrigger:${string}`;
31
+ get identityFields(): {
32
+ name: string;
33
+ };
34
+ get dataFields(): {
35
+ event: string;
36
+ function_schema: string;
37
+ function_name: string;
38
+ enabled: "O" | "D" | "R" | "A";
39
+ tags: string[] | null;
40
+ owner: string;
41
+ comment: string | null;
42
+ };
43
+ }
44
+ export declare function extractEventTriggers(sql: Sql): Promise<EventTrigger[]>;
45
+ export {};
@@ -0,0 +1,89 @@
1
+ import z from "zod";
2
+ import { BasePgModel } from "../base.model.js";
3
+ const EventTriggerEnabledSchema = z.enum([
4
+ "O", // ORIGIN - trigger fires in origin mode
5
+ "D", // DISABLED - trigger does not fire
6
+ "R", // REPLICA - trigger fires only in replica session
7
+ "A", // ALWAYS - trigger fires regardless of replication mode
8
+ ]);
9
+ const eventTriggerPropsSchema = z.object({
10
+ name: z.string(),
11
+ event: z.string(),
12
+ function_schema: z.string(),
13
+ function_name: z.string(),
14
+ enabled: EventTriggerEnabledSchema,
15
+ tags: z.array(z.string()).nullable(),
16
+ owner: z.string(),
17
+ comment: z.string().nullable(),
18
+ });
19
+ export class EventTrigger extends BasePgModel {
20
+ name;
21
+ event;
22
+ function_schema;
23
+ function_name;
24
+ enabled;
25
+ tags;
26
+ owner;
27
+ comment;
28
+ constructor(props) {
29
+ super();
30
+ // Identity fields
31
+ this.name = props.name;
32
+ // Data fields
33
+ this.event = props.event;
34
+ this.function_schema = props.function_schema;
35
+ this.function_name = props.function_name;
36
+ this.enabled = props.enabled;
37
+ this.tags = props.tags;
38
+ this.owner = props.owner;
39
+ this.comment = props.comment;
40
+ }
41
+ get stableId() {
42
+ return `eventTrigger:${this.name}`;
43
+ }
44
+ get identityFields() {
45
+ return {
46
+ name: this.name,
47
+ };
48
+ }
49
+ get dataFields() {
50
+ return {
51
+ event: this.event,
52
+ function_schema: this.function_schema,
53
+ function_name: this.function_name,
54
+ enabled: this.enabled,
55
+ tags: this.tags,
56
+ owner: this.owner,
57
+ comment: this.comment,
58
+ };
59
+ }
60
+ }
61
+ export async function extractEventTriggers(sql) {
62
+ return sql.begin(async (sql) => {
63
+ await sql `set search_path = ''`;
64
+ const rows = await sql `
65
+ with extension_oids as (
66
+ select objid
67
+ from pg_depend d
68
+ where d.refclassid = 'pg_extension'::regclass
69
+ and d.classid = 'pg_event_trigger'::regclass
70
+ )
71
+ select
72
+ quote_ident(et.evtname) as name,
73
+ et.evtevent as event,
74
+ p.pronamespace::regnamespace::text as function_schema,
75
+ quote_ident(p.proname) as function_name,
76
+ et.evtenabled as enabled,
77
+ et.evttags as tags,
78
+ et.evtowner::regrole::text as owner,
79
+ obj_description(et.oid, 'pg_event_trigger') as comment
80
+ from pg_catalog.pg_event_trigger et
81
+ join pg_catalog.pg_proc p on p.oid = et.evtfoid
82
+ left join extension_oids e on e.objid = et.oid
83
+ where e.objid is null
84
+ order by 1;
85
+ `;
86
+ const validatedRows = rows.map((row) => eventTriggerPropsSchema.parse(row));
87
+ return validatedRows.map((row) => new EventTrigger(row));
88
+ });
89
+ }
@@ -0,0 +1,44 @@
1
+ import type { Extension } from "../extension.model.ts";
2
+ import { AlterExtensionChange } from "./extension.base.ts";
3
+ /**
4
+ * Alter an extension.
5
+ *
6
+ * @see https://www.postgresql.org/docs/17/sql-alterextension.html
7
+ *
8
+ * Synopsis
9
+ * ```sql
10
+ * ALTER EXTENSION name UPDATE [ TO new_version ]
11
+ * ALTER EXTENSION name SET SCHEMA new_schema
12
+ * ALTER EXTENSION name ADD member_object
13
+ * ALTER EXTENSION name DROP member_object
14
+ * ```
15
+ */
16
+ export type AlterExtension = AlterExtensionSetSchema | AlterExtensionUpdateVersion;
17
+ /**
18
+ * ALTER EXTENSION ... UPDATE TO ...
19
+ */
20
+ export declare class AlterExtensionUpdateVersion extends AlterExtensionChange {
21
+ readonly extension: Extension;
22
+ readonly version: string;
23
+ readonly scope: "object";
24
+ constructor(props: {
25
+ extension: Extension;
26
+ version: string;
27
+ });
28
+ get requires(): `extension:${string}`[];
29
+ serialize(): string;
30
+ }
31
+ /**
32
+ * ALTER EXTENSION ... SET SCHEMA ...
33
+ */
34
+ export declare class AlterExtensionSetSchema extends AlterExtensionChange {
35
+ readonly extension: Extension;
36
+ readonly schema: string;
37
+ readonly scope: "object";
38
+ constructor(props: {
39
+ extension: Extension;
40
+ schema: string;
41
+ });
42
+ get requires(): (`schema:${string}` | `extension:${string}`)[];
43
+ serialize(): string;
44
+ }
@@ -0,0 +1,51 @@
1
+ import { quoteLiteral } from "../../base.change.js";
2
+ import { stableId } from "../../utils.js";
3
+ import { AlterExtensionChange } from "./extension.base.js";
4
+ /**
5
+ * ALTER EXTENSION ... UPDATE TO ...
6
+ */
7
+ export class AlterExtensionUpdateVersion extends AlterExtensionChange {
8
+ extension;
9
+ version;
10
+ scope = "object";
11
+ constructor(props) {
12
+ super();
13
+ this.extension = props.extension;
14
+ this.version = props.version;
15
+ }
16
+ get requires() {
17
+ return [this.extension.stableId];
18
+ }
19
+ serialize() {
20
+ return [
21
+ "ALTER EXTENSION",
22
+ this.extension.name,
23
+ "UPDATE TO",
24
+ quoteLiteral(this.version),
25
+ ].join(" ");
26
+ }
27
+ }
28
+ /**
29
+ * ALTER EXTENSION ... SET SCHEMA ...
30
+ */
31
+ export class AlterExtensionSetSchema extends AlterExtensionChange {
32
+ extension;
33
+ schema;
34
+ scope = "object";
35
+ constructor(props) {
36
+ super();
37
+ this.extension = props.extension;
38
+ this.schema = props.schema;
39
+ }
40
+ get requires() {
41
+ return [this.extension.stableId, stableId.schema(this.schema)];
42
+ }
43
+ serialize() {
44
+ return [
45
+ "ALTER EXTENSION",
46
+ this.extension.name,
47
+ "SET SCHEMA",
48
+ this.schema,
49
+ ].join(" ");
50
+ }
51
+ }
@@ -0,0 +1,17 @@
1
+ import { BaseChange } from "../../base.change.ts";
2
+ import type { Extension } from "../extension.model.ts";
3
+ declare abstract class BaseExtensionChange extends BaseChange {
4
+ abstract readonly extension: Extension;
5
+ abstract readonly scope: "object" | "comment";
6
+ readonly objectType: "extension";
7
+ }
8
+ export declare abstract class CreateExtensionChange extends BaseExtensionChange {
9
+ readonly operation: "create";
10
+ }
11
+ export declare abstract class AlterExtensionChange extends BaseExtensionChange {
12
+ readonly operation: "alter";
13
+ }
14
+ export declare abstract class DropExtensionChange extends BaseExtensionChange {
15
+ readonly operation: "drop";
16
+ }
17
+ export {};
@@ -0,0 +1,13 @@
1
+ import { BaseChange } from "../../base.change.js";
2
+ class BaseExtensionChange extends BaseChange {
3
+ objectType = "extension";
4
+ }
5
+ export class CreateExtensionChange extends BaseExtensionChange {
6
+ operation = "create";
7
+ }
8
+ export class AlterExtensionChange extends BaseExtensionChange {
9
+ operation = "alter";
10
+ }
11
+ export class DropExtensionChange extends BaseExtensionChange {
12
+ operation = "drop";
13
+ }
@@ -0,0 +1,26 @@
1
+ import type { Extension } from "../extension.model.ts";
2
+ import { CreateExtensionChange, DropExtensionChange } from "./extension.base.ts";
3
+ export type CommentExtension = CreateCommentOnExtension | DropCommentOnExtension;
4
+ /**
5
+ * Create/drop comments on extensions.
6
+ */
7
+ export declare class CreateCommentOnExtension extends CreateExtensionChange {
8
+ readonly extension: Extension;
9
+ readonly scope: "comment";
10
+ constructor(props: {
11
+ extension: Extension;
12
+ });
13
+ get creates(): `comment:${string}`[];
14
+ get requires(): `extension:${string}`[];
15
+ serialize(): string;
16
+ }
17
+ export declare class DropCommentOnExtension extends DropExtensionChange {
18
+ readonly extension: Extension;
19
+ readonly scope: "comment";
20
+ constructor(props: {
21
+ extension: Extension;
22
+ });
23
+ get drops(): `comment:${string}`[];
24
+ get requires(): (`comment:${string}` | `extension:${string}`)[];
25
+ serialize(): string;
26
+ }
@@ -0,0 +1,46 @@
1
+ import { quoteLiteral } from "../../base.change.js";
2
+ import { stableId } from "../../utils.js";
3
+ import { CreateExtensionChange, DropExtensionChange, } from "./extension.base.js";
4
+ /**
5
+ * Create/drop comments on extensions.
6
+ */
7
+ export class CreateCommentOnExtension extends CreateExtensionChange {
8
+ extension;
9
+ scope = "comment";
10
+ constructor(props) {
11
+ super();
12
+ this.extension = props.extension;
13
+ }
14
+ get creates() {
15
+ return [stableId.comment(this.extension.stableId)];
16
+ }
17
+ get requires() {
18
+ return [this.extension.stableId];
19
+ }
20
+ serialize() {
21
+ return [
22
+ "COMMENT ON EXTENSION",
23
+ this.extension.name,
24
+ "IS",
25
+ // biome-ignore lint/style/noNonNullAssertion: extension comment is not nullable here
26
+ quoteLiteral(this.extension.comment),
27
+ ].join(" ");
28
+ }
29
+ }
30
+ export class DropCommentOnExtension extends DropExtensionChange {
31
+ extension;
32
+ scope = "comment";
33
+ constructor(props) {
34
+ super();
35
+ this.extension = props.extension;
36
+ }
37
+ get drops() {
38
+ return [stableId.comment(this.extension.stableId)];
39
+ }
40
+ get requires() {
41
+ return [stableId.comment(this.extension.stableId), this.extension.stableId];
42
+ }
43
+ serialize() {
44
+ return ["COMMENT ON EXTENSION", this.extension.name, "IS NULL"].join(" ");
45
+ }
46
+ }
@@ -0,0 +1,25 @@
1
+ import type { Extension } from "../extension.model.ts";
2
+ import { CreateExtensionChange } from "./extension.base.ts";
3
+ /**
4
+ * Create an extension.
5
+ *
6
+ * @see https://www.postgresql.org/docs/17/sql-createextension.html
7
+ *
8
+ * Synopsis
9
+ * ```sql
10
+ * CREATE EXTENSION [ IF NOT EXISTS ] extension_name
11
+ * [ WITH ] [ SCHEMA schema_name ]
12
+ * [ VERSION version ]
13
+ * [ CASCADE ]
14
+ * ```
15
+ */
16
+ export declare class CreateExtension extends CreateExtensionChange {
17
+ readonly extension: Extension;
18
+ readonly scope: "object";
19
+ constructor(props: {
20
+ extension: Extension;
21
+ });
22
+ get creates(): string[];
23
+ get requires(): string[];
24
+ serialize(): string;
25
+ }