@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,244 @@
1
+ import { diffObjects } from "../base.diff.js";
2
+ import { diffPrivileges, filterPublicBuiltInDefaults, groupPrivilegesByGrantable, } from "../base.privilege-diff.js";
3
+ import { AlterDomainAddConstraint, AlterDomainChangeOwner, AlterDomainDropConstraint, AlterDomainDropDefault, AlterDomainDropNotNull, AlterDomainSetDefault, AlterDomainSetNotNull, AlterDomainValidateConstraint, } from "./changes/domain.alter.js";
4
+ import { CreateCommentOnDomain, DropCommentOnDomain, } from "./changes/domain.comment.js";
5
+ import { CreateDomain } from "./changes/domain.create.js";
6
+ import { DropDomain } from "./changes/domain.drop.js";
7
+ import { GrantDomainPrivileges, RevokeDomainPrivileges, RevokeGrantOptionDomainPrivileges, } from "./changes/domain.privilege.js";
8
+ /**
9
+ * Diff two sets of domains from main and branch catalogs.
10
+ *
11
+ * @param ctx - Context containing version, currentUser, and defaultPrivilegeState
12
+ * @param main - The domains in the main catalog.
13
+ * @param branch - The domains in the branch catalog.
14
+ * @returns A list of changes to apply to main to make it match branch.
15
+ */
16
+ export function diffDomains(ctx, main, branch) {
17
+ const { created, dropped, altered } = diffObjects(main, branch);
18
+ const changes = [];
19
+ for (const domainId of created) {
20
+ const newDomain = branch[domainId];
21
+ changes.push(new CreateDomain({ domain: newDomain }));
22
+ // OWNER: If the domain should be owned by someone other than the current user,
23
+ // emit ALTER DOMAIN ... OWNER TO after creation
24
+ if (newDomain.owner !== ctx.currentUser) {
25
+ changes.push(new AlterDomainChangeOwner({
26
+ domain: newDomain,
27
+ owner: newDomain.owner,
28
+ }));
29
+ }
30
+ if (newDomain.comment !== null) {
31
+ changes.push(new CreateCommentOnDomain({ domain: newDomain }));
32
+ }
33
+ // For unvalidated constraints, CREATE DOMAIN cannot specify NOT VALID.
34
+ // Add them after creation and validate to match branch state semantics.
35
+ // For already validated constraints, they are emitted inline in CREATE DOMAIN.
36
+ if (newDomain.constraints && newDomain.constraints.length > 0) {
37
+ for (const c of newDomain.constraints) {
38
+ if (c.validated === false) {
39
+ changes.push(new AlterDomainAddConstraint({ domain: newDomain, constraint: c }));
40
+ changes.push(new AlterDomainValidateConstraint({
41
+ domain: newDomain,
42
+ constraint: c,
43
+ }));
44
+ }
45
+ }
46
+ }
47
+ // PRIVILEGES: For created objects, compare against default privileges state
48
+ // The migration script will run ALTER DEFAULT PRIVILEGES before CREATE (via constraint spec),
49
+ // so objects are created with the default privileges state in effect.
50
+ // We compare default privileges against desired privileges to generate REVOKE/GRANT statements
51
+ // needed to reach the final desired state.
52
+ const effectiveDefaults = ctx.defaultPrivilegeState.getEffectiveDefaults(ctx.currentUser, "domain", newDomain.schema ?? "");
53
+ // Filter out PUBLIC's built-in default USAGE privilege (PostgreSQL grants it automatically)
54
+ // Reference: https://www.postgresql.org/docs/17/ddl-priv.html Table 5.2
55
+ // This prevents generating unnecessary "GRANT USAGE TO PUBLIC" statements
56
+ const desiredPrivileges = filterPublicBuiltInDefaults("domain", newDomain.privileges);
57
+ // Filter out owner privileges - owner always has ALL privileges implicitly
58
+ // and shouldn't be compared. Use the domain owner as the reference.
59
+ const privilegeResults = diffPrivileges(effectiveDefaults, desiredPrivileges, newDomain.owner, ctx.mainRoles);
60
+ // Generate grant changes
61
+ for (const [grantee, result] of privilegeResults) {
62
+ if (result.grants.length > 0) {
63
+ const grantGroups = groupPrivilegesByGrantable(result.grants);
64
+ for (const [grantable, list] of grantGroups) {
65
+ void grantable;
66
+ changes.push(new GrantDomainPrivileges({
67
+ domain: newDomain,
68
+ grantee,
69
+ privileges: list,
70
+ version: ctx.version,
71
+ }));
72
+ }
73
+ }
74
+ // Generate revoke changes
75
+ if (result.revokes.length > 0) {
76
+ const revokeGroups = groupPrivilegesByGrantable(result.revokes);
77
+ for (const [grantable, list] of revokeGroups) {
78
+ void grantable;
79
+ changes.push(new RevokeDomainPrivileges({
80
+ domain: newDomain,
81
+ grantee,
82
+ privileges: list,
83
+ version: ctx.version,
84
+ }));
85
+ }
86
+ }
87
+ // Generate revoke grant option changes
88
+ if (result.revokeGrantOption.length > 0) {
89
+ changes.push(new RevokeGrantOptionDomainPrivileges({
90
+ domain: newDomain,
91
+ grantee,
92
+ privilegeNames: result.revokeGrantOption,
93
+ version: ctx.version,
94
+ }));
95
+ }
96
+ }
97
+ }
98
+ for (const domainId of dropped) {
99
+ changes.push(new DropDomain({ domain: main[domainId] }));
100
+ }
101
+ for (const domainId of altered) {
102
+ const mainDomain = main[domainId];
103
+ const branchDomain = branch[domainId];
104
+ // DEFAULT
105
+ if (mainDomain.default_value !== branchDomain.default_value) {
106
+ if (branchDomain.default_value === null) {
107
+ changes.push(new AlterDomainDropDefault({ domain: mainDomain }));
108
+ }
109
+ else {
110
+ changes.push(new AlterDomainSetDefault({
111
+ domain: mainDomain,
112
+ defaultValue: branchDomain.default_value,
113
+ }));
114
+ }
115
+ }
116
+ // NOT NULL
117
+ if (mainDomain.not_null !== branchDomain.not_null) {
118
+ if (branchDomain.not_null) {
119
+ changes.push(new AlterDomainSetNotNull({ domain: mainDomain }));
120
+ }
121
+ else {
122
+ changes.push(new AlterDomainDropNotNull({ domain: mainDomain }));
123
+ }
124
+ }
125
+ // DOMAIN CONSTRAINTS
126
+ const mainByName = new Map(mainDomain.constraints.map((c) => [c.name, c]));
127
+ const branchByName = new Map(branchDomain.constraints.map((c) => [c.name, c]));
128
+ // Note: Constraint renames are modeled as drop+add because name is part
129
+ // of the identity we diff on. No dedicated rename class is generated here.
130
+ // Created
131
+ for (const [name, c] of branchByName) {
132
+ if (!mainByName.has(name)) {
133
+ changes.push(new AlterDomainAddConstraint({
134
+ domain: branchDomain,
135
+ constraint: c,
136
+ }));
137
+ if (!c.validated) {
138
+ changes.push(new AlterDomainValidateConstraint({
139
+ domain: branchDomain,
140
+ constraint: c,
141
+ }));
142
+ }
143
+ }
144
+ }
145
+ // Dropped
146
+ for (const [name, c] of mainByName) {
147
+ if (!branchByName.has(name)) {
148
+ changes.push(new AlterDomainDropConstraint({
149
+ domain: mainDomain,
150
+ constraint: c,
151
+ }));
152
+ }
153
+ }
154
+ // Altered (drop + add for now)
155
+ for (const [name, mainC] of mainByName) {
156
+ const branchC = branchByName.get(name);
157
+ if (!branchC)
158
+ continue;
159
+ const changed = mainC.validated !== branchC.validated ||
160
+ mainC.is_local !== branchC.is_local ||
161
+ mainC.no_inherit !== branchC.no_inherit ||
162
+ mainC.check_expression !== branchC.check_expression;
163
+ if (changed) {
164
+ changes.push(new AlterDomainDropConstraint({
165
+ domain: mainDomain,
166
+ constraint: mainC,
167
+ }));
168
+ changes.push(new AlterDomainAddConstraint({
169
+ domain: branchDomain,
170
+ constraint: branchC,
171
+ }));
172
+ if (!branchC.validated) {
173
+ changes.push(new AlterDomainValidateConstraint({
174
+ domain: branchDomain,
175
+ constraint: branchC,
176
+ }));
177
+ }
178
+ }
179
+ }
180
+ // OWNER
181
+ if (mainDomain.owner !== branchDomain.owner) {
182
+ changes.push(new AlterDomainChangeOwner({
183
+ domain: mainDomain,
184
+ owner: branchDomain.owner,
185
+ }));
186
+ }
187
+ // COMMENT
188
+ if (mainDomain.comment !== branchDomain.comment) {
189
+ if (branchDomain.comment === null) {
190
+ changes.push(new DropCommentOnDomain({ domain: mainDomain }));
191
+ }
192
+ else {
193
+ changes.push(new CreateCommentOnDomain({ domain: branchDomain }));
194
+ }
195
+ }
196
+ // PRIVILEGES
197
+ // Filter out PUBLIC's built-in default USAGE privilege from main catalog
198
+ // (PostgreSQL grants it automatically, so we shouldn't compare it)
199
+ const mainPrivilegesFiltered = filterPublicBuiltInDefaults("domain", mainDomain.privileges);
200
+ // Filter out PUBLIC's built-in default USAGE privilege from branch catalog
201
+ const branchPrivilegesFiltered = filterPublicBuiltInDefaults("domain", branchDomain.privileges);
202
+ // Filter out owner privileges - owner always has ALL privileges implicitly
203
+ // and shouldn't be compared. Use branch owner as the reference.
204
+ const privilegeResults = diffPrivileges(mainPrivilegesFiltered, branchPrivilegesFiltered, branchDomain.owner, ctx.mainRoles);
205
+ for (const [grantee, result] of privilegeResults) {
206
+ // Generate grant changes
207
+ if (result.grants.length > 0) {
208
+ const grantGroups = groupPrivilegesByGrantable(result.grants);
209
+ for (const [grantable, list] of grantGroups) {
210
+ void grantable;
211
+ changes.push(new GrantDomainPrivileges({
212
+ domain: branchDomain,
213
+ grantee,
214
+ privileges: list,
215
+ version: ctx.version,
216
+ }));
217
+ }
218
+ }
219
+ // Generate revoke changes
220
+ if (result.revokes.length > 0) {
221
+ const revokeGroups = groupPrivilegesByGrantable(result.revokes);
222
+ for (const [grantable, list] of revokeGroups) {
223
+ void grantable;
224
+ changes.push(new RevokeDomainPrivileges({
225
+ domain: mainDomain,
226
+ grantee,
227
+ privileges: list,
228
+ version: ctx.version,
229
+ }));
230
+ }
231
+ }
232
+ // Generate revoke grant option changes
233
+ if (result.revokeGrantOption.length > 0) {
234
+ changes.push(new RevokeGrantOptionDomainPrivileges({
235
+ domain: mainDomain,
236
+ grantee,
237
+ privilegeNames: result.revokeGrantOption,
238
+ version: ctx.version,
239
+ }));
240
+ }
241
+ }
242
+ }
243
+ return changes;
244
+ }
@@ -0,0 +1,103 @@
1
+ import type { Sql } from "postgres";
2
+ import z from "zod";
3
+ import { BasePgModel } from "../base.model.ts";
4
+ import { type PrivilegeProps } from "../base.privilege-diff.ts";
5
+ declare const domainConstraintPropsSchema: z.ZodObject<{
6
+ name: z.ZodString;
7
+ validated: z.ZodBoolean;
8
+ is_local: z.ZodBoolean;
9
+ no_inherit: z.ZodBoolean;
10
+ check_expression: z.ZodNullable<z.ZodString>;
11
+ }, z.z.core.$strip>;
12
+ declare const domainPropsSchema: z.ZodObject<{
13
+ schema: z.ZodString;
14
+ name: z.ZodString;
15
+ base_type: z.ZodString;
16
+ base_type_schema: z.ZodString;
17
+ base_type_str: z.ZodOptional<z.ZodString>;
18
+ not_null: z.ZodBoolean;
19
+ type_modifier: z.ZodNullable<z.ZodNumber>;
20
+ array_dimensions: z.ZodNullable<z.ZodNumber>;
21
+ collation: z.ZodNullable<z.ZodString>;
22
+ default_bin: z.ZodNullable<z.ZodString>;
23
+ default_value: z.ZodNullable<z.ZodString>;
24
+ owner: z.ZodString;
25
+ comment: z.ZodNullable<z.ZodString>;
26
+ constraints: z.ZodArray<z.ZodObject<{
27
+ name: z.ZodString;
28
+ validated: z.ZodBoolean;
29
+ is_local: z.ZodBoolean;
30
+ no_inherit: z.ZodBoolean;
31
+ check_expression: z.ZodNullable<z.ZodString>;
32
+ }, z.z.core.$strip>>;
33
+ privileges: z.ZodArray<z.ZodObject<{
34
+ grantee: z.ZodString;
35
+ privilege: z.ZodString;
36
+ grantable: z.ZodBoolean;
37
+ columns: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
38
+ }, z.z.core.$strip>>;
39
+ }, z.z.core.$strip>;
40
+ export type DomainConstraintProps = z.infer<typeof domainConstraintPropsSchema>;
41
+ type DomainPrivilegeProps = PrivilegeProps;
42
+ export type DomainProps = z.infer<typeof domainPropsSchema>;
43
+ /**
44
+ * A domain is a user-defined data type that is based on another underlying type.
45
+ *
46
+ * @see https://www.postgresql.org/docs/17/domains.html
47
+ */
48
+ export declare class Domain extends BasePgModel {
49
+ readonly schema: DomainProps["schema"];
50
+ readonly name: DomainProps["name"];
51
+ readonly base_type: DomainProps["base_type"];
52
+ readonly base_type_schema: DomainProps["base_type_schema"];
53
+ readonly base_type_str?: DomainProps["base_type_str"];
54
+ readonly not_null: DomainProps["not_null"];
55
+ readonly type_modifier: DomainProps["type_modifier"];
56
+ readonly array_dimensions: DomainProps["array_dimensions"];
57
+ readonly collation: DomainProps["collation"];
58
+ readonly default_bin: DomainProps["default_bin"];
59
+ readonly default_value: DomainProps["default_value"];
60
+ readonly owner: DomainProps["owner"];
61
+ readonly comment: DomainProps["comment"];
62
+ readonly constraints: DomainConstraintProps[];
63
+ readonly privileges: DomainPrivilegeProps[];
64
+ constructor(props: DomainProps);
65
+ get stableId(): `domain:${string}`;
66
+ get identityFields(): {
67
+ schema: string;
68
+ name: string;
69
+ };
70
+ get dataFields(): {
71
+ base_type: string;
72
+ base_type_schema: string;
73
+ not_null: boolean;
74
+ type_modifier: number | null;
75
+ array_dimensions: number | null;
76
+ collation: string | null;
77
+ default_bin: string | null;
78
+ default_value: string | null;
79
+ owner: string;
80
+ comment: string | null;
81
+ constraints: {
82
+ name: string;
83
+ validated: boolean;
84
+ is_local: boolean;
85
+ no_inherit: boolean;
86
+ check_expression: string | null;
87
+ }[];
88
+ privileges: {
89
+ grantee: string;
90
+ privilege: string;
91
+ grantable: boolean;
92
+ columns?: string[] | null | undefined;
93
+ }[];
94
+ };
95
+ }
96
+ /**
97
+ * Extract all domains from the database.
98
+ *
99
+ * @param sql - The SQL client.
100
+ * @returns A list of domains.
101
+ */
102
+ export declare function extractDomains(sql: Sql): Promise<Domain[]>;
103
+ export {};
@@ -0,0 +1,172 @@
1
+ import z from "zod";
2
+ import { BasePgModel } from "../base.model.js";
3
+ import { privilegePropsSchema, } from "../base.privilege-diff.js";
4
+ const domainConstraintPropsSchema = z.object({
5
+ name: z.string(),
6
+ validated: z.boolean(),
7
+ is_local: z.boolean(),
8
+ no_inherit: z.boolean(),
9
+ check_expression: z.string().nullable(),
10
+ });
11
+ const domainPropsSchema = z.object({
12
+ schema: z.string(),
13
+ name: z.string(),
14
+ base_type: z.string(),
15
+ base_type_schema: z.string(),
16
+ base_type_str: z.string().optional(),
17
+ not_null: z.boolean(),
18
+ type_modifier: z.number().nullable(),
19
+ array_dimensions: z.number().nullable(),
20
+ collation: z.string().nullable(),
21
+ default_bin: z.string().nullable(),
22
+ default_value: z.string().nullable(),
23
+ owner: z.string(),
24
+ comment: z.string().nullable(),
25
+ constraints: z.array(domainConstraintPropsSchema),
26
+ privileges: z.array(privilegePropsSchema),
27
+ });
28
+ /**
29
+ * A domain is a user-defined data type that is based on another underlying type.
30
+ *
31
+ * @see https://www.postgresql.org/docs/17/domains.html
32
+ */
33
+ export class Domain extends BasePgModel {
34
+ schema;
35
+ name;
36
+ base_type;
37
+ base_type_schema;
38
+ base_type_str;
39
+ not_null;
40
+ type_modifier;
41
+ array_dimensions;
42
+ collation;
43
+ default_bin;
44
+ default_value;
45
+ owner;
46
+ comment;
47
+ constraints;
48
+ privileges;
49
+ constructor(props) {
50
+ super();
51
+ // Identity fields
52
+ this.schema = props.schema;
53
+ this.name = props.name;
54
+ // Data fields
55
+ this.base_type = props.base_type;
56
+ this.base_type_schema = props.base_type_schema;
57
+ this.base_type_str = props.base_type_str;
58
+ this.not_null = props.not_null;
59
+ this.type_modifier = props.type_modifier;
60
+ this.array_dimensions = props.array_dimensions;
61
+ this.collation = props.collation;
62
+ this.default_bin = props.default_bin;
63
+ this.default_value = props.default_value;
64
+ this.owner = props.owner;
65
+ this.comment = props.comment;
66
+ this.constraints = props.constraints;
67
+ this.privileges = props.privileges;
68
+ }
69
+ get stableId() {
70
+ return `domain:${this.schema}.${this.name}`;
71
+ }
72
+ get identityFields() {
73
+ return {
74
+ schema: this.schema,
75
+ name: this.name,
76
+ };
77
+ }
78
+ get dataFields() {
79
+ return {
80
+ base_type: this.base_type,
81
+ base_type_schema: this.base_type_schema,
82
+ not_null: this.not_null,
83
+ type_modifier: this.type_modifier,
84
+ array_dimensions: this.array_dimensions,
85
+ collation: this.collation,
86
+ default_bin: this.default_bin,
87
+ default_value: this.default_value,
88
+ owner: this.owner,
89
+ comment: this.comment,
90
+ constraints: this.constraints,
91
+ privileges: this.privileges,
92
+ };
93
+ }
94
+ }
95
+ /**
96
+ * Extract all domains from the database.
97
+ *
98
+ * @param sql - The SQL client.
99
+ * @returns A list of domains.
100
+ */
101
+ export async function extractDomains(sql) {
102
+ return sql.begin(async (sql) => {
103
+ await sql `set search_path = ''`;
104
+ const domainRows = await sql `
105
+ with extension_oids as (
106
+ select
107
+ objid
108
+ from
109
+ pg_depend d
110
+ where
111
+ d.refclassid = 'pg_extension'::regclass
112
+ and d.classid = 'pg_type'::regclass
113
+ )
114
+ select
115
+ t.typnamespace::regnamespace::text as schema,
116
+ quote_ident(t.typname) as name,
117
+ bt.typname as base_type,
118
+ bt.typnamespace::regnamespace::text as base_type_schema,
119
+ format_type(t.typbasetype, t.typtypmod) as base_type_str,
120
+ t.typnotnull as not_null,
121
+ t.typtypmod as type_modifier,
122
+ t.typndims as array_dimensions,
123
+ case when t.typcollation <> bt.typcollation then quote_ident(c.collname) else null end as collation,
124
+ pg_get_expr(t.typdefaultbin, 0) as default_bin,
125
+ t.typdefault as default_value,
126
+ t.typowner::regrole::text as owner,
127
+ obj_description(t.oid, 'pg_type') as comment,
128
+ coalesce(
129
+ (
130
+ select json_agg(
131
+ json_build_object(
132
+ 'name', quote_ident(con.conname),
133
+ 'validated', con.convalidated,
134
+ 'is_local', con.conislocal,
135
+ 'no_inherit', con.connoinherit,
136
+ 'check_expression', pg_get_expr(con.conbin, 0)
137
+ )
138
+ order by con.conname
139
+ )
140
+ from pg_catalog.pg_constraint con
141
+ where con.contypid = t.oid
142
+ ), '[]'
143
+ ) as constraints,
144
+ coalesce(
145
+ (
146
+ select json_agg(
147
+ json_build_object(
148
+ 'grantee', case when x.grantee = 0 then 'PUBLIC' else x.grantee::regrole::text end,
149
+ 'privilege', x.privilege_type,
150
+ 'grantable', x.is_grantable
151
+ )
152
+ order by x.grantee, x.privilege_type
153
+ )
154
+ from lateral aclexplode(t.typacl) as x(grantor, grantee, privilege_type, is_grantable)
155
+ ), '[]'
156
+ ) as privileges
157
+ from
158
+ pg_catalog.pg_type t
159
+ inner join pg_catalog.pg_type bt on bt.oid = t.typbasetype
160
+ left join pg_catalog.pg_collation c on c.oid = t.typcollation
161
+ left outer join extension_oids e on t.oid = e.objid
162
+ where not t.typnamespace::regnamespace::text like any(array['pg\\_%', 'information\\_schema'])
163
+ and e.objid is null
164
+ and t.typtype = 'd'
165
+ order by
166
+ 1, 2;
167
+ `;
168
+ // Validate and parse each row using the Zod schema
169
+ const validatedRows = domainRows.map((row) => domainPropsSchema.parse(row));
170
+ return validatedRows.map((row) => new Domain(row));
171
+ });
172
+ }
@@ -0,0 +1,44 @@
1
+ import type { EventTrigger } from "../event-trigger.model.ts";
2
+ import { AlterEventTriggerChange } from "./event-trigger.base.ts";
3
+ /**
4
+ * Alter an event trigger.
5
+ *
6
+ * @see https://www.postgresql.org/docs/17/sql-altereventtrigger.html
7
+ *
8
+ * Synopsis
9
+ * ```sql
10
+ * ALTER EVENT TRIGGER name DISABLE
11
+ * ALTER EVENT TRIGGER name ENABLE [ REPLICA | ALWAYS ]
12
+ * ALTER EVENT TRIGGER name OWNER TO { newowner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
13
+ * ALTER EVENT TRIGGER name RENAME TO newname
14
+ * ```
15
+ */
16
+ export type AlterEventTrigger = AlterEventTriggerChangeOwner | AlterEventTriggerSetEnabled;
17
+ /**
18
+ * ALTER EVENT TRIGGER ... OWNER TO ...
19
+ */
20
+ export declare class AlterEventTriggerChangeOwner extends AlterEventTriggerChange {
21
+ readonly eventTrigger: EventTrigger;
22
+ readonly owner: string;
23
+ readonly scope: "object";
24
+ constructor(props: {
25
+ eventTrigger: EventTrigger;
26
+ owner: string;
27
+ });
28
+ get requires(): `eventTrigger:${string}`[];
29
+ serialize(): string;
30
+ }
31
+ /**
32
+ * ALTER EVENT TRIGGER ... ENABLE/DISABLE ...
33
+ */
34
+ export declare class AlterEventTriggerSetEnabled extends AlterEventTriggerChange {
35
+ readonly eventTrigger: EventTrigger;
36
+ readonly enabled: EventTrigger["enabled"];
37
+ readonly scope: "object";
38
+ constructor(props: {
39
+ eventTrigger: EventTrigger;
40
+ enabled: EventTrigger["enabled"];
41
+ });
42
+ get requires(): `eventTrigger:${string}`[];
43
+ serialize(): string;
44
+ }
@@ -0,0 +1,51 @@
1
+ import { AlterEventTriggerChange } from "./event-trigger.base.js";
2
+ /**
3
+ * ALTER EVENT TRIGGER ... OWNER TO ...
4
+ */
5
+ export class AlterEventTriggerChangeOwner extends AlterEventTriggerChange {
6
+ eventTrigger;
7
+ owner;
8
+ scope = "object";
9
+ constructor(props) {
10
+ super();
11
+ this.eventTrigger = props.eventTrigger;
12
+ this.owner = props.owner;
13
+ }
14
+ get requires() {
15
+ return [this.eventTrigger.stableId];
16
+ }
17
+ serialize() {
18
+ return [
19
+ "ALTER EVENT TRIGGER",
20
+ this.eventTrigger.name,
21
+ "OWNER TO",
22
+ this.owner,
23
+ ].join(" ");
24
+ }
25
+ }
26
+ const ENABLED_SQL = {
27
+ O: "ENABLE",
28
+ D: "DISABLE",
29
+ R: "ENABLE REPLICA",
30
+ A: "ENABLE ALWAYS",
31
+ };
32
+ /**
33
+ * ALTER EVENT TRIGGER ... ENABLE/DISABLE ...
34
+ */
35
+ export class AlterEventTriggerSetEnabled extends AlterEventTriggerChange {
36
+ eventTrigger;
37
+ enabled;
38
+ scope = "object";
39
+ constructor(props) {
40
+ super();
41
+ this.eventTrigger = props.eventTrigger;
42
+ this.enabled = props.enabled;
43
+ }
44
+ get requires() {
45
+ return [this.eventTrigger.stableId];
46
+ }
47
+ serialize() {
48
+ const clause = ENABLED_SQL[this.enabled];
49
+ return ["ALTER EVENT TRIGGER", this.eventTrigger.name, clause].join(" ");
50
+ }
51
+ }
@@ -0,0 +1,17 @@
1
+ import { BaseChange } from "../../base.change.ts";
2
+ import type { EventTrigger } from "../event-trigger.model.ts";
3
+ declare abstract class BaseEventTriggerChange extends BaseChange {
4
+ abstract readonly eventTrigger: EventTrigger;
5
+ abstract readonly scope: "object" | "comment";
6
+ readonly objectType: "event_trigger";
7
+ }
8
+ export declare abstract class CreateEventTriggerChange extends BaseEventTriggerChange {
9
+ readonly operation: "create";
10
+ }
11
+ export declare abstract class AlterEventTriggerChange extends BaseEventTriggerChange {
12
+ readonly operation: "alter";
13
+ }
14
+ export declare abstract class DropEventTriggerChange extends BaseEventTriggerChange {
15
+ readonly operation: "drop";
16
+ }
17
+ export {};
@@ -0,0 +1,13 @@
1
+ import { BaseChange } from "../../base.change.js";
2
+ class BaseEventTriggerChange extends BaseChange {
3
+ objectType = "event_trigger";
4
+ }
5
+ export class CreateEventTriggerChange extends BaseEventTriggerChange {
6
+ operation = "create";
7
+ }
8
+ export class AlterEventTriggerChange extends BaseEventTriggerChange {
9
+ operation = "alter";
10
+ }
11
+ export class DropEventTriggerChange extends BaseEventTriggerChange {
12
+ operation = "drop";
13
+ }
@@ -0,0 +1,23 @@
1
+ import type { EventTrigger } from "../event-trigger.model.ts";
2
+ import { CreateEventTriggerChange, DropEventTriggerChange } from "./event-trigger.base.ts";
3
+ export type CommentEventTrigger = CreateCommentOnEventTrigger | DropCommentOnEventTrigger;
4
+ export declare class CreateCommentOnEventTrigger extends CreateEventTriggerChange {
5
+ readonly eventTrigger: EventTrigger;
6
+ readonly scope: "comment";
7
+ constructor(props: {
8
+ eventTrigger: EventTrigger;
9
+ });
10
+ get creates(): `comment:${string}`[];
11
+ get requires(): `eventTrigger:${string}`[];
12
+ serialize(): string;
13
+ }
14
+ export declare class DropCommentOnEventTrigger extends DropEventTriggerChange {
15
+ readonly eventTrigger: EventTrigger;
16
+ readonly scope: "comment";
17
+ constructor(props: {
18
+ eventTrigger: EventTrigger;
19
+ });
20
+ get drops(): `comment:${string}`[];
21
+ get requires(): (`comment:${string}` | `eventTrigger:${string}`)[];
22
+ serialize(): string;
23
+ }