@supabase/pg-delta 1.0.0-alpha.11 → 1.0.0-alpha.13

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 (397) hide show
  1. package/dist/core/expand-replace-dependencies.js +23 -0
  2. package/dist/core/export/index.d.ts +2 -2
  3. package/dist/core/export/index.js +4 -1
  4. package/dist/core/integrations/integration.types.d.ts +26 -1
  5. package/dist/core/integrations/integration.types.js +31 -1
  6. package/dist/core/integrations/serialize/dsl.d.ts +1 -8
  7. package/dist/core/integrations/serialize/serialize.types.d.ts +31 -0
  8. package/dist/core/integrations/supabase.js +19 -0
  9. package/dist/core/objects/aggregate/changes/aggregate.alter.d.ts +2 -1
  10. package/dist/core/objects/aggregate/changes/aggregate.alter.js +1 -1
  11. package/dist/core/objects/aggregate/changes/aggregate.comment.d.ts +3 -2
  12. package/dist/core/objects/aggregate/changes/aggregate.comment.js +2 -2
  13. package/dist/core/objects/aggregate/changes/aggregate.create.d.ts +2 -1
  14. package/dist/core/objects/aggregate/changes/aggregate.create.js +1 -1
  15. package/dist/core/objects/aggregate/changes/aggregate.drop.d.ts +2 -1
  16. package/dist/core/objects/aggregate/changes/aggregate.drop.js +1 -1
  17. package/dist/core/objects/aggregate/changes/aggregate.privilege.d.ts +4 -3
  18. package/dist/core/objects/aggregate/changes/aggregate.privilege.js +3 -3
  19. package/dist/core/objects/base.change.d.ts +2 -1
  20. package/dist/core/objects/collation/changes/collation.alter.d.ts +3 -2
  21. package/dist/core/objects/collation/changes/collation.alter.js +2 -2
  22. package/dist/core/objects/collation/changes/collation.comment.d.ts +3 -2
  23. package/dist/core/objects/collation/changes/collation.comment.js +2 -2
  24. package/dist/core/objects/collation/changes/collation.create.d.ts +2 -1
  25. package/dist/core/objects/collation/changes/collation.create.js +1 -1
  26. package/dist/core/objects/collation/changes/collation.drop.d.ts +2 -1
  27. package/dist/core/objects/collation/changes/collation.drop.js +1 -1
  28. package/dist/core/objects/domain/changes/domain.alter.d.ts +9 -8
  29. package/dist/core/objects/domain/changes/domain.alter.js +8 -8
  30. package/dist/core/objects/domain/changes/domain.comment.d.ts +3 -2
  31. package/dist/core/objects/domain/changes/domain.comment.js +2 -2
  32. package/dist/core/objects/domain/changes/domain.create.d.ts +2 -1
  33. package/dist/core/objects/domain/changes/domain.create.js +1 -1
  34. package/dist/core/objects/domain/changes/domain.drop.d.ts +2 -1
  35. package/dist/core/objects/domain/changes/domain.drop.js +1 -1
  36. package/dist/core/objects/domain/changes/domain.privilege.d.ts +4 -3
  37. package/dist/core/objects/domain/changes/domain.privilege.js +3 -3
  38. package/dist/core/objects/event-trigger/changes/event-trigger.alter.d.ts +3 -2
  39. package/dist/core/objects/event-trigger/changes/event-trigger.alter.js +2 -2
  40. package/dist/core/objects/event-trigger/changes/event-trigger.comment.d.ts +3 -2
  41. package/dist/core/objects/event-trigger/changes/event-trigger.comment.js +2 -2
  42. package/dist/core/objects/event-trigger/changes/event-trigger.create.d.ts +2 -1
  43. package/dist/core/objects/event-trigger/changes/event-trigger.create.js +1 -1
  44. package/dist/core/objects/event-trigger/changes/event-trigger.drop.d.ts +2 -1
  45. package/dist/core/objects/event-trigger/changes/event-trigger.drop.js +1 -1
  46. package/dist/core/objects/extension/changes/extension.alter.d.ts +3 -2
  47. package/dist/core/objects/extension/changes/extension.alter.js +2 -2
  48. package/dist/core/objects/extension/changes/extension.comment.d.ts +3 -2
  49. package/dist/core/objects/extension/changes/extension.comment.js +2 -2
  50. package/dist/core/objects/extension/changes/extension.create.d.ts +2 -1
  51. package/dist/core/objects/extension/changes/extension.create.js +4 -2
  52. package/dist/core/objects/extension/changes/extension.drop.d.ts +2 -1
  53. package/dist/core/objects/extension/changes/extension.drop.js +1 -1
  54. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.alter.d.ts +3 -2
  55. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.alter.js +2 -2
  56. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.comment.d.ts +3 -2
  57. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.comment.js +2 -2
  58. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.create.d.ts +2 -1
  59. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.create.js +1 -1
  60. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.drop.d.ts +2 -1
  61. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.drop.js +1 -1
  62. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.privilege.d.ts +4 -3
  63. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.privilege.js +3 -3
  64. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.alter.d.ts +10 -9
  65. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.alter.js +9 -9
  66. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.comment.d.ts +3 -2
  67. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.comment.js +2 -2
  68. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.create.d.ts +2 -1
  69. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.create.js +1 -1
  70. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.drop.d.ts +2 -1
  71. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.drop.js +1 -1
  72. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.privilege.d.ts +4 -3
  73. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.privilege.js +3 -3
  74. package/dist/core/objects/foreign-data-wrapper/server/changes/server.alter.d.ts +4 -3
  75. package/dist/core/objects/foreign-data-wrapper/server/changes/server.alter.js +3 -3
  76. package/dist/core/objects/foreign-data-wrapper/server/changes/server.comment.d.ts +3 -2
  77. package/dist/core/objects/foreign-data-wrapper/server/changes/server.comment.js +2 -2
  78. package/dist/core/objects/foreign-data-wrapper/server/changes/server.create.d.ts +2 -1
  79. package/dist/core/objects/foreign-data-wrapper/server/changes/server.create.js +1 -1
  80. package/dist/core/objects/foreign-data-wrapper/server/changes/server.drop.d.ts +2 -1
  81. package/dist/core/objects/foreign-data-wrapper/server/changes/server.drop.js +1 -1
  82. package/dist/core/objects/foreign-data-wrapper/server/changes/server.privilege.d.ts +4 -3
  83. package/dist/core/objects/foreign-data-wrapper/server/changes/server.privilege.js +3 -3
  84. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.alter.d.ts +2 -1
  85. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.alter.js +1 -1
  86. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.create.d.ts +2 -1
  87. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.create.js +1 -1
  88. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.drop.d.ts +2 -1
  89. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.drop.js +1 -1
  90. package/dist/core/objects/index/changes/index.alter.d.ts +4 -3
  91. package/dist/core/objects/index/changes/index.alter.js +3 -3
  92. package/dist/core/objects/index/changes/index.comment.d.ts +3 -2
  93. package/dist/core/objects/index/changes/index.comment.js +2 -2
  94. package/dist/core/objects/index/changes/index.create.d.ts +2 -1
  95. package/dist/core/objects/index/changes/index.create.js +1 -1
  96. package/dist/core/objects/index/changes/index.drop.d.ts +2 -1
  97. package/dist/core/objects/index/changes/index.drop.js +1 -1
  98. package/dist/core/objects/language/changes/language.alter.d.ts +2 -1
  99. package/dist/core/objects/language/changes/language.alter.js +1 -1
  100. package/dist/core/objects/language/changes/language.comment.d.ts +3 -2
  101. package/dist/core/objects/language/changes/language.comment.js +2 -2
  102. package/dist/core/objects/language/changes/language.create.d.ts +2 -1
  103. package/dist/core/objects/language/changes/language.create.js +1 -1
  104. package/dist/core/objects/language/changes/language.drop.d.ts +2 -1
  105. package/dist/core/objects/language/changes/language.drop.js +1 -1
  106. package/dist/core/objects/language/changes/language.privilege.d.ts +4 -3
  107. package/dist/core/objects/language/changes/language.privilege.js +3 -3
  108. package/dist/core/objects/materialized-view/changes/materialized-view.alter.d.ts +3 -2
  109. package/dist/core/objects/materialized-view/changes/materialized-view.alter.js +2 -2
  110. package/dist/core/objects/materialized-view/changes/materialized-view.comment.d.ts +5 -4
  111. package/dist/core/objects/materialized-view/changes/materialized-view.comment.js +4 -4
  112. package/dist/core/objects/materialized-view/changes/materialized-view.create.d.ts +2 -1
  113. package/dist/core/objects/materialized-view/changes/materialized-view.create.js +1 -1
  114. package/dist/core/objects/materialized-view/changes/materialized-view.drop.d.ts +2 -1
  115. package/dist/core/objects/materialized-view/changes/materialized-view.drop.js +1 -1
  116. package/dist/core/objects/materialized-view/changes/materialized-view.privilege.d.ts +4 -3
  117. package/dist/core/objects/materialized-view/changes/materialized-view.privilege.js +3 -3
  118. package/dist/core/objects/procedure/changes/procedure.alter.d.ts +8 -7
  119. package/dist/core/objects/procedure/changes/procedure.alter.js +7 -7
  120. package/dist/core/objects/procedure/changes/procedure.comment.d.ts +3 -2
  121. package/dist/core/objects/procedure/changes/procedure.comment.js +2 -2
  122. package/dist/core/objects/procedure/changes/procedure.create.d.ts +2 -1
  123. package/dist/core/objects/procedure/changes/procedure.create.js +1 -1
  124. package/dist/core/objects/procedure/changes/procedure.drop.d.ts +2 -1
  125. package/dist/core/objects/procedure/changes/procedure.drop.js +1 -1
  126. package/dist/core/objects/procedure/changes/procedure.privilege.d.ts +4 -3
  127. package/dist/core/objects/procedure/changes/procedure.privilege.js +3 -3
  128. package/dist/core/objects/publication/changes/publication.alter.d.ts +9 -7
  129. package/dist/core/objects/publication/changes/publication.alter.js +12 -7
  130. package/dist/core/objects/publication/changes/publication.comment.d.ts +3 -2
  131. package/dist/core/objects/publication/changes/publication.comment.js +2 -2
  132. package/dist/core/objects/publication/changes/publication.create.d.ts +2 -1
  133. package/dist/core/objects/publication/changes/publication.create.js +1 -1
  134. package/dist/core/objects/publication/changes/publication.drop.d.ts +2 -1
  135. package/dist/core/objects/publication/changes/publication.drop.js +1 -1
  136. package/dist/core/objects/rls-policy/changes/rls-policy.alter.d.ts +4 -3
  137. package/dist/core/objects/rls-policy/changes/rls-policy.alter.js +3 -3
  138. package/dist/core/objects/rls-policy/changes/rls-policy.comment.d.ts +3 -2
  139. package/dist/core/objects/rls-policy/changes/rls-policy.comment.js +2 -2
  140. package/dist/core/objects/rls-policy/changes/rls-policy.create.d.ts +2 -1
  141. package/dist/core/objects/rls-policy/changes/rls-policy.create.js +1 -1
  142. package/dist/core/objects/rls-policy/changes/rls-policy.drop.d.ts +2 -1
  143. package/dist/core/objects/rls-policy/changes/rls-policy.drop.js +1 -1
  144. package/dist/core/objects/role/changes/role.alter.d.ts +3 -2
  145. package/dist/core/objects/role/changes/role.alter.js +2 -2
  146. package/dist/core/objects/role/changes/role.comment.d.ts +3 -2
  147. package/dist/core/objects/role/changes/role.comment.js +2 -2
  148. package/dist/core/objects/role/changes/role.create.d.ts +2 -1
  149. package/dist/core/objects/role/changes/role.create.js +1 -1
  150. package/dist/core/objects/role/changes/role.drop.d.ts +2 -1
  151. package/dist/core/objects/role/changes/role.drop.js +1 -1
  152. package/dist/core/objects/role/changes/role.privilege.d.ts +6 -5
  153. package/dist/core/objects/role/changes/role.privilege.js +5 -5
  154. package/dist/core/objects/rule/changes/rule.alter.d.ts +3 -2
  155. package/dist/core/objects/rule/changes/rule.alter.js +2 -2
  156. package/dist/core/objects/rule/changes/rule.comment.d.ts +3 -2
  157. package/dist/core/objects/rule/changes/rule.comment.js +2 -2
  158. package/dist/core/objects/rule/changes/rule.create.d.ts +2 -1
  159. package/dist/core/objects/rule/changes/rule.create.js +1 -1
  160. package/dist/core/objects/rule/changes/rule.drop.d.ts +2 -1
  161. package/dist/core/objects/rule/changes/rule.drop.js +1 -1
  162. package/dist/core/objects/schema/changes/schema.alter.d.ts +2 -1
  163. package/dist/core/objects/schema/changes/schema.alter.js +1 -1
  164. package/dist/core/objects/schema/changes/schema.comment.d.ts +3 -2
  165. package/dist/core/objects/schema/changes/schema.comment.js +2 -2
  166. package/dist/core/objects/schema/changes/schema.create.d.ts +3 -5
  167. package/dist/core/objects/schema/changes/schema.drop.d.ts +2 -1
  168. package/dist/core/objects/schema/changes/schema.drop.js +1 -1
  169. package/dist/core/objects/schema/changes/schema.privilege.d.ts +4 -3
  170. package/dist/core/objects/schema/changes/schema.privilege.js +3 -3
  171. package/dist/core/objects/sequence/changes/sequence.alter.d.ts +3 -2
  172. package/dist/core/objects/sequence/changes/sequence.alter.js +2 -2
  173. package/dist/core/objects/sequence/changes/sequence.comment.d.ts +3 -2
  174. package/dist/core/objects/sequence/changes/sequence.comment.js +2 -2
  175. package/dist/core/objects/sequence/changes/sequence.create.d.ts +2 -1
  176. package/dist/core/objects/sequence/changes/sequence.create.js +1 -1
  177. package/dist/core/objects/sequence/changes/sequence.drop.d.ts +2 -1
  178. package/dist/core/objects/sequence/changes/sequence.drop.js +11 -3
  179. package/dist/core/objects/sequence/changes/sequence.privilege.d.ts +4 -3
  180. package/dist/core/objects/sequence/changes/sequence.privilege.js +3 -3
  181. package/dist/core/objects/sequence/sequence.diff.d.ts +4 -1
  182. package/dist/core/objects/sequence/sequence.diff.js +12 -0
  183. package/dist/core/objects/subscription/changes/subscription.alter.d.ts +7 -6
  184. package/dist/core/objects/subscription/changes/subscription.alter.js +6 -6
  185. package/dist/core/objects/subscription/changes/subscription.comment.d.ts +3 -2
  186. package/dist/core/objects/subscription/changes/subscription.comment.js +2 -2
  187. package/dist/core/objects/subscription/changes/subscription.create.d.ts +2 -1
  188. package/dist/core/objects/subscription/changes/subscription.create.js +1 -1
  189. package/dist/core/objects/subscription/changes/subscription.drop.d.ts +2 -1
  190. package/dist/core/objects/subscription/changes/subscription.drop.js +1 -1
  191. package/dist/core/objects/table/changes/table.alter.d.ts +65 -22
  192. package/dist/core/objects/table/changes/table.alter.js +107 -22
  193. package/dist/core/objects/table/changes/table.comment.d.ts +7 -6
  194. package/dist/core/objects/table/changes/table.comment.js +6 -6
  195. package/dist/core/objects/table/changes/table.create.d.ts +2 -1
  196. package/dist/core/objects/table/changes/table.create.js +1 -1
  197. package/dist/core/objects/table/changes/table.drop.d.ts +4 -3
  198. package/dist/core/objects/table/changes/table.drop.js +7 -1
  199. package/dist/core/objects/table/changes/table.privilege.d.ts +4 -3
  200. package/dist/core/objects/table/changes/table.privilege.js +3 -3
  201. package/dist/core/objects/table/table.diff.js +46 -1
  202. package/dist/core/objects/trigger/changes/trigger.alter.d.ts +2 -1
  203. package/dist/core/objects/trigger/changes/trigger.alter.js +1 -1
  204. package/dist/core/objects/trigger/changes/trigger.comment.d.ts +3 -2
  205. package/dist/core/objects/trigger/changes/trigger.comment.js +2 -2
  206. package/dist/core/objects/trigger/changes/trigger.create.d.ts +2 -1
  207. package/dist/core/objects/trigger/changes/trigger.create.js +1 -1
  208. package/dist/core/objects/trigger/changes/trigger.drop.d.ts +2 -1
  209. package/dist/core/objects/trigger/changes/trigger.drop.js +1 -1
  210. package/dist/core/objects/type/composite-type/changes/composite-type.alter.d.ts +5 -4
  211. package/dist/core/objects/type/composite-type/changes/composite-type.alter.js +4 -4
  212. package/dist/core/objects/type/composite-type/changes/composite-type.comment.d.ts +5 -4
  213. package/dist/core/objects/type/composite-type/changes/composite-type.comment.js +4 -4
  214. package/dist/core/objects/type/composite-type/changes/composite-type.create.d.ts +2 -1
  215. package/dist/core/objects/type/composite-type/changes/composite-type.create.js +1 -1
  216. package/dist/core/objects/type/composite-type/changes/composite-type.drop.d.ts +2 -1
  217. package/dist/core/objects/type/composite-type/changes/composite-type.drop.js +1 -1
  218. package/dist/core/objects/type/composite-type/changes/composite-type.privilege.d.ts +4 -3
  219. package/dist/core/objects/type/composite-type/changes/composite-type.privilege.js +3 -3
  220. package/dist/core/objects/type/enum/changes/enum.alter.d.ts +3 -2
  221. package/dist/core/objects/type/enum/changes/enum.alter.js +2 -2
  222. package/dist/core/objects/type/enum/changes/enum.comment.d.ts +3 -2
  223. package/dist/core/objects/type/enum/changes/enum.comment.js +2 -2
  224. package/dist/core/objects/type/enum/changes/enum.create.d.ts +2 -1
  225. package/dist/core/objects/type/enum/changes/enum.create.js +1 -1
  226. package/dist/core/objects/type/enum/changes/enum.drop.d.ts +2 -1
  227. package/dist/core/objects/type/enum/changes/enum.drop.js +1 -1
  228. package/dist/core/objects/type/enum/changes/enum.privilege.d.ts +4 -3
  229. package/dist/core/objects/type/enum/changes/enum.privilege.js +3 -3
  230. package/dist/core/objects/type/range/changes/range.alter.d.ts +2 -1
  231. package/dist/core/objects/type/range/changes/range.alter.js +1 -1
  232. package/dist/core/objects/type/range/changes/range.comment.d.ts +3 -2
  233. package/dist/core/objects/type/range/changes/range.comment.js +2 -2
  234. package/dist/core/objects/type/range/changes/range.create.d.ts +2 -1
  235. package/dist/core/objects/type/range/changes/range.create.js +1 -1
  236. package/dist/core/objects/type/range/changes/range.drop.d.ts +2 -1
  237. package/dist/core/objects/type/range/changes/range.drop.js +1 -1
  238. package/dist/core/objects/type/range/changes/range.privilege.d.ts +4 -3
  239. package/dist/core/objects/type/range/changes/range.privilege.js +3 -3
  240. package/dist/core/objects/view/changes/view.alter.d.ts +4 -3
  241. package/dist/core/objects/view/changes/view.alter.js +3 -3
  242. package/dist/core/objects/view/changes/view.comment.d.ts +3 -2
  243. package/dist/core/objects/view/changes/view.comment.js +2 -2
  244. package/dist/core/objects/view/changes/view.create.d.ts +2 -1
  245. package/dist/core/objects/view/changes/view.create.js +1 -1
  246. package/dist/core/objects/view/changes/view.drop.d.ts +2 -1
  247. package/dist/core/objects/view/changes/view.drop.js +1 -1
  248. package/dist/core/objects/view/changes/view.privilege.d.ts +4 -3
  249. package/dist/core/objects/view/changes/view.privilege.js +3 -3
  250. package/dist/core/plan/create.js +5 -17
  251. package/dist/core/plan/types.d.ts +3 -6
  252. package/dist/core/sort/custom-constraints.js +64 -0
  253. package/package.json +1 -1
  254. package/src/core/expand-replace-dependencies.test.ts +126 -1
  255. package/src/core/expand-replace-dependencies.ts +50 -0
  256. package/src/core/export/index.ts +13 -4
  257. package/src/core/integrations/integration.types.ts +59 -1
  258. package/src/core/integrations/serialize/dsl.test.ts +20 -1
  259. package/src/core/integrations/serialize/dsl.ts +1 -10
  260. package/src/core/integrations/serialize/serialize.types.ts +37 -0
  261. package/src/core/integrations/supabase.ts +19 -0
  262. package/src/core/objects/aggregate/changes/aggregate.alter.ts +2 -1
  263. package/src/core/objects/aggregate/changes/aggregate.comment.ts +3 -2
  264. package/src/core/objects/aggregate/changes/aggregate.create.ts +2 -1
  265. package/src/core/objects/aggregate/changes/aggregate.drop.ts +2 -1
  266. package/src/core/objects/aggregate/changes/aggregate.privilege.ts +4 -3
  267. package/src/core/objects/base.change.ts +3 -1
  268. package/src/core/objects/collation/changes/collation.alter.ts +3 -2
  269. package/src/core/objects/collation/changes/collation.comment.ts +3 -2
  270. package/src/core/objects/collation/changes/collation.create.ts +2 -1
  271. package/src/core/objects/collation/changes/collation.drop.ts +2 -1
  272. package/src/core/objects/domain/changes/domain.alter.ts +9 -8
  273. package/src/core/objects/domain/changes/domain.comment.ts +3 -2
  274. package/src/core/objects/domain/changes/domain.create.ts +2 -1
  275. package/src/core/objects/domain/changes/domain.drop.ts +2 -1
  276. package/src/core/objects/domain/changes/domain.privilege.ts +4 -3
  277. package/src/core/objects/event-trigger/changes/event-trigger.alter.ts +3 -2
  278. package/src/core/objects/event-trigger/changes/event-trigger.comment.ts +3 -2
  279. package/src/core/objects/event-trigger/changes/event-trigger.create.ts +2 -1
  280. package/src/core/objects/event-trigger/changes/event-trigger.drop.ts +2 -1
  281. package/src/core/objects/extension/changes/extension.alter.ts +3 -2
  282. package/src/core/objects/extension/changes/extension.comment.ts +3 -2
  283. package/src/core/objects/extension/changes/extension.create.test.ts +22 -0
  284. package/src/core/objects/extension/changes/extension.create.ts +5 -2
  285. package/src/core/objects/extension/changes/extension.drop.ts +2 -1
  286. package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.alter.ts +3 -2
  287. package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.comment.ts +3 -2
  288. package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.create.ts +2 -1
  289. package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.drop.ts +2 -1
  290. package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.privilege.ts +4 -3
  291. package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.alter.ts +10 -9
  292. package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.comment.ts +3 -2
  293. package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.create.ts +2 -1
  294. package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.drop.ts +2 -1
  295. package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.privilege.ts +4 -3
  296. package/src/core/objects/foreign-data-wrapper/server/changes/server.alter.ts +4 -3
  297. package/src/core/objects/foreign-data-wrapper/server/changes/server.comment.ts +3 -2
  298. package/src/core/objects/foreign-data-wrapper/server/changes/server.create.ts +2 -1
  299. package/src/core/objects/foreign-data-wrapper/server/changes/server.drop.ts +2 -1
  300. package/src/core/objects/foreign-data-wrapper/server/changes/server.privilege.ts +4 -3
  301. package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.alter.ts +2 -1
  302. package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.create.ts +2 -1
  303. package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.drop.ts +2 -1
  304. package/src/core/objects/index/changes/index.alter.ts +4 -3
  305. package/src/core/objects/index/changes/index.comment.ts +3 -2
  306. package/src/core/objects/index/changes/index.create.ts +2 -1
  307. package/src/core/objects/index/changes/index.drop.ts +2 -1
  308. package/src/core/objects/language/changes/language.alter.ts +2 -1
  309. package/src/core/objects/language/changes/language.comment.ts +3 -2
  310. package/src/core/objects/language/changes/language.create.ts +2 -1
  311. package/src/core/objects/language/changes/language.drop.ts +2 -1
  312. package/src/core/objects/language/changes/language.privilege.ts +4 -3
  313. package/src/core/objects/materialized-view/changes/materialized-view.alter.ts +3 -2
  314. package/src/core/objects/materialized-view/changes/materialized-view.comment.ts +5 -4
  315. package/src/core/objects/materialized-view/changes/materialized-view.create.ts +2 -1
  316. package/src/core/objects/materialized-view/changes/materialized-view.drop.ts +2 -1
  317. package/src/core/objects/materialized-view/changes/materialized-view.privilege.ts +4 -3
  318. package/src/core/objects/procedure/changes/procedure.alter.ts +8 -7
  319. package/src/core/objects/procedure/changes/procedure.comment.ts +3 -2
  320. package/src/core/objects/procedure/changes/procedure.create.ts +2 -1
  321. package/src/core/objects/procedure/changes/procedure.drop.ts +2 -1
  322. package/src/core/objects/procedure/changes/procedure.privilege.ts +4 -3
  323. package/src/core/objects/publication/changes/publication.alter.test.ts +4 -0
  324. package/src/core/objects/publication/changes/publication.alter.ts +14 -7
  325. package/src/core/objects/publication/changes/publication.comment.ts +3 -2
  326. package/src/core/objects/publication/changes/publication.create.ts +2 -1
  327. package/src/core/objects/publication/changes/publication.drop.ts +2 -1
  328. package/src/core/objects/rls-policy/changes/rls-policy.alter.ts +4 -3
  329. package/src/core/objects/rls-policy/changes/rls-policy.comment.ts +3 -2
  330. package/src/core/objects/rls-policy/changes/rls-policy.create.ts +2 -1
  331. package/src/core/objects/rls-policy/changes/rls-policy.drop.ts +2 -1
  332. package/src/core/objects/role/changes/role.alter.ts +3 -2
  333. package/src/core/objects/role/changes/role.comment.ts +3 -2
  334. package/src/core/objects/role/changes/role.create.ts +2 -1
  335. package/src/core/objects/role/changes/role.drop.ts +2 -1
  336. package/src/core/objects/role/changes/role.privilege.ts +6 -5
  337. package/src/core/objects/rule/changes/rule.alter.ts +3 -2
  338. package/src/core/objects/rule/changes/rule.comment.ts +3 -2
  339. package/src/core/objects/rule/changes/rule.create.ts +2 -1
  340. package/src/core/objects/rule/changes/rule.drop.ts +2 -1
  341. package/src/core/objects/schema/changes/schema.alter.ts +2 -1
  342. package/src/core/objects/schema/changes/schema.comment.ts +3 -2
  343. package/src/core/objects/schema/changes/schema.create.ts +3 -3
  344. package/src/core/objects/schema/changes/schema.drop.ts +2 -1
  345. package/src/core/objects/schema/changes/schema.privilege.ts +4 -3
  346. package/src/core/objects/sequence/changes/sequence.alter.ts +3 -2
  347. package/src/core/objects/sequence/changes/sequence.comment.ts +3 -2
  348. package/src/core/objects/sequence/changes/sequence.create.ts +2 -1
  349. package/src/core/objects/sequence/changes/sequence.drop.ts +16 -3
  350. package/src/core/objects/sequence/changes/sequence.privilege.ts +4 -3
  351. package/src/core/objects/sequence/sequence.diff.test.ts +73 -1
  352. package/src/core/objects/sequence/sequence.diff.ts +24 -2
  353. package/src/core/objects/subscription/changes/subscription.alter.ts +7 -6
  354. package/src/core/objects/subscription/changes/subscription.comment.ts +3 -2
  355. package/src/core/objects/subscription/changes/subscription.create.ts +2 -1
  356. package/src/core/objects/subscription/changes/subscription.drop.ts +2 -1
  357. package/src/core/objects/table/changes/table.alter.test.ts +38 -0
  358. package/src/core/objects/table/changes/table.alter.ts +123 -22
  359. package/src/core/objects/table/changes/table.comment.ts +7 -6
  360. package/src/core/objects/table/changes/table.create.ts +2 -1
  361. package/src/core/objects/table/changes/table.drop.ts +20 -1
  362. package/src/core/objects/table/changes/table.privilege.ts +4 -3
  363. package/src/core/objects/table/table.diff.test.ts +121 -0
  364. package/src/core/objects/table/table.diff.ts +64 -1
  365. package/src/core/objects/trigger/changes/trigger.alter.ts +2 -1
  366. package/src/core/objects/trigger/changes/trigger.comment.ts +3 -2
  367. package/src/core/objects/trigger/changes/trigger.create.ts +2 -1
  368. package/src/core/objects/trigger/changes/trigger.drop.ts +2 -1
  369. package/src/core/objects/type/composite-type/changes/composite-type.alter.ts +5 -4
  370. package/src/core/objects/type/composite-type/changes/composite-type.comment.ts +5 -4
  371. package/src/core/objects/type/composite-type/changes/composite-type.create.ts +2 -1
  372. package/src/core/objects/type/composite-type/changes/composite-type.drop.ts +2 -1
  373. package/src/core/objects/type/composite-type/changes/composite-type.privilege.ts +4 -3
  374. package/src/core/objects/type/enum/changes/enum.alter.ts +3 -2
  375. package/src/core/objects/type/enum/changes/enum.comment.ts +3 -2
  376. package/src/core/objects/type/enum/changes/enum.create.ts +2 -1
  377. package/src/core/objects/type/enum/changes/enum.drop.ts +2 -1
  378. package/src/core/objects/type/enum/changes/enum.privilege.ts +4 -3
  379. package/src/core/objects/type/range/changes/range.alter.ts +2 -1
  380. package/src/core/objects/type/range/changes/range.comment.ts +3 -2
  381. package/src/core/objects/type/range/changes/range.create.ts +2 -1
  382. package/src/core/objects/type/range/changes/range.drop.ts +2 -1
  383. package/src/core/objects/type/range/changes/range.privilege.ts +4 -3
  384. package/src/core/objects/view/changes/view.alter.ts +4 -3
  385. package/src/core/objects/view/changes/view.comment.ts +3 -2
  386. package/src/core/objects/view/changes/view.create.ts +2 -1
  387. package/src/core/objects/view/changes/view.drop.ts +2 -1
  388. package/src/core/objects/view/changes/view.privilege.ts +4 -3
  389. package/src/core/plan/create.ts +11 -27
  390. package/src/core/plan/sql-format/format-off.test.ts +1 -1
  391. package/src/core/plan/sql-format/format-pretty-lower-leading.test.ts +1 -1
  392. package/src/core/plan/sql-format/format-pretty-narrow.test.ts +1 -1
  393. package/src/core/plan/sql-format/format-pretty-preserve.test.ts +1 -1
  394. package/src/core/plan/sql-format/format-pretty-upper.test.ts +1 -1
  395. package/src/core/plan/types.ts +3 -6
  396. package/src/core/sort/custom-constraints.ts +74 -0
  397. package/src/typedoc.ts +5 -0
@@ -14,6 +14,7 @@ import { CreateEnum } from "./objects/type/enum/changes/enum.create.js";
14
14
  import { DropEnum } from "./objects/type/enum/changes/enum.drop.js";
15
15
  import { CreateRange } from "./objects/type/range/changes/range.create.js";
16
16
  import { DropRange } from "./objects/type/range/changes/range.drop.js";
17
+ import { stableId } from "./objects/utils.js";
17
18
  import { CreateView } from "./objects/view/changes/view.create.js";
18
19
  import { DropView } from "./objects/view/changes/view.drop.js";
19
20
  /**
@@ -61,6 +62,9 @@ export function expandReplaceDependencies({ changes, mainCatalog, branchCatalog,
61
62
  if (!dependents)
62
63
  continue;
63
64
  for (const dependentRaw of dependents) {
65
+ if (isOwnedSequenceColumnDependency(refId, dependentRaw, mainCatalog, branchCatalog)) {
66
+ continue;
67
+ }
64
68
  // Continue traversing the dependency graph from the raw dependent id.
65
69
  if (!visitedRefs.has(dependentRaw)) {
66
70
  visitedRefs.add(dependentRaw);
@@ -112,6 +116,25 @@ export function expandReplaceDependencies({ changes, mainCatalog, branchCatalog,
112
116
  }
113
117
  return [...changes, ...additions];
114
118
  }
119
+ function isOwnedSequenceColumnDependency(referencedId, dependentId, mainCatalog, branchCatalog) {
120
+ // When a sequence replace root is still OWNED BY the same column, the
121
+ // sequence->column pg_depend edge is bookkeeping for ownership, not a signal
122
+ // that the whole owning table needs to be replaced. Skipping that edge keeps
123
+ // expandReplaceDependencies focused on recreating the sequence itself.
124
+ if (!referencedId.startsWith("sequence:") ||
125
+ !dependentId.startsWith("column:")) {
126
+ return false;
127
+ }
128
+ const sequence = branchCatalog.sequences[referencedId] ??
129
+ mainCatalog.sequences[referencedId];
130
+ if (!sequence?.owned_by_schema ||
131
+ !sequence.owned_by_table ||
132
+ !sequence.owned_by_column) {
133
+ return false;
134
+ }
135
+ return (dependentId ===
136
+ stableId.column(sequence.owned_by_schema, sequence.owned_by_table, sequence.owned_by_column));
137
+ }
115
138
  function normalizeDependentId(dependentId) {
116
139
  let id = dependentId;
117
140
  while (id.startsWith("comment:")) {
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Declarative schema export.
3
3
  */
4
- import type { Integration } from "../integrations/integration.types.ts";
4
+ import { type Integration } from "../integrations/integration.types.ts";
5
5
  import type { createPlan } from "../plan/create.ts";
6
6
  import type { SqlFormatOptions } from "../plan/sql-format/types.ts";
7
7
  import type { DeclarativeSchemaOutput, Grouping } from "./types.ts";
@@ -12,7 +12,7 @@ import type { DeclarativeSchemaOutput, Grouping } from "./types.ts";
12
12
  type PlanResult = NonNullable<Awaited<ReturnType<typeof createPlan>>>;
13
13
  export interface ExportOptions {
14
14
  /** Integration for custom serialization */
15
- integration?: Integration;
15
+ integration?: Pick<Integration, "serialize">;
16
16
  /**
17
17
  * SQL formatter options to control the output style.
18
18
  * Merged on top of the default export options (maxWidth: 180, keywordCase: "upper").
@@ -2,6 +2,7 @@
2
2
  * Declarative schema export.
3
3
  */
4
4
  import { buildPlanScopeFingerprint, hashStableIds } from "../fingerprint.js";
5
+ import { resolveIntegration, } from "../integrations/integration.types.js";
5
6
  import { DEFAULT_OPTIONS } from "../plan/sql-format/constants.js";
6
7
  import { formatSqlScript } from "../plan/statements.js";
7
8
  import { createFileMapper } from "./file-mapper.js";
@@ -22,7 +23,9 @@ import { groupChangesByFile } from "./grouper.js";
22
23
  */
23
24
  export function exportDeclarativeSchema(planResult, options) {
24
25
  const { ctx, sortedChanges } = planResult;
25
- const integration = options?.integration;
26
+ const integration = options?.integration
27
+ ? resolveIntegration(options?.integration)
28
+ : {};
26
29
  const formatOptions = options?.formatOptions === null
27
30
  ? undefined
28
31
  : {
@@ -1,6 +1,31 @@
1
+ import { type FilterDSL } from "./filter/dsl.ts";
1
2
  import type { ChangeFilter } from "./filter/filter.types.ts";
3
+ import { type SerializeDSL } from "./serialize/dsl.ts";
2
4
  import type { ChangeSerializer } from "./serialize/serialize.types.ts";
3
- export type Integration = {
5
+ /**
6
+ * A resolved integration is an integration that has been compiled to a function.
7
+ */
8
+ export type ResolvedIntegration = {
4
9
  filter?: ChangeFilter;
5
10
  serialize?: ChangeSerializer;
6
11
  };
12
+ /**
13
+ * A raw integration is an integration that has not been compiled to a function.
14
+ */
15
+ export type IntegrationDSL = {
16
+ filter?: FilterDSL;
17
+ serialize?: SerializeDSL;
18
+ };
19
+ /**
20
+ * An integration is a raw integration that has not been compiled to a function.
21
+ */
22
+ export type Integration = {
23
+ filter?: ResolvedIntegration["filter"] | IntegrationDSL["filter"];
24
+ serialize?: ResolvedIntegration["serialize"] | IntegrationDSL["serialize"];
25
+ };
26
+ /**
27
+ * Resolve an integration either DSL or already resovled into a ResolvedIntegration.
28
+ * @param integration - The integration to resolve.
29
+ * @returns The resolved integration.
30
+ */
31
+ export declare function resolveIntegration(integration: Integration): ResolvedIntegration | undefined;
@@ -1 +1,31 @@
1
- export {};
1
+ import { compileFilterDSL } from "./filter/dsl.js";
2
+ import { compileSerializeDSL } from "./serialize/dsl.js";
3
+ /**
4
+ * Resolve an integration either DSL or already resovled into a ResolvedIntegration.
5
+ * @param integration - The integration to resolve.
6
+ * @returns The resolved integration.
7
+ */
8
+ export function resolveIntegration(integration) {
9
+ // Determine if filter/serialize are DSL or functions, and extract DSL for storage
10
+ const isFilterDSL = integration.filter && typeof integration.filter !== "function";
11
+ const isSerializeDSL = integration.serialize && typeof integration.serialize !== "function";
12
+ const filterDSL = isFilterDSL ? integration.filter : undefined;
13
+ const serializeDSL = isSerializeDSL
14
+ ? integration.serialize
15
+ : undefined;
16
+ // Build final integration: compile DSL if needed, use functions directly otherwise
17
+ if (integration.filter || integration.serialize) {
18
+ return {
19
+ filter: typeof integration.filter === "function"
20
+ ? integration.filter
21
+ : filterDSL
22
+ ? compileFilterDSL(filterDSL)
23
+ : undefined,
24
+ serialize: typeof integration.serialize === "function"
25
+ ? integration.serialize
26
+ : serializeDSL
27
+ ? compileSerializeDSL(serializeDSL)
28
+ : undefined,
29
+ };
30
+ }
31
+ }
@@ -4,14 +4,7 @@
4
4
  * Reuses the filter pattern matching logic to determine when to apply serialization options.
5
5
  */
6
6
  import { type FilterPattern } from "../filter/dsl.ts";
7
- import type { ChangeSerializer } from "./serialize.types.ts";
8
- /**
9
- * Serialization options that can be passed to change.serialize().
10
- */
11
- type SerializeOptions = {
12
- skipAuthorization?: boolean;
13
- [key: string]: unknown;
14
- };
7
+ import type { ChangeSerializer, SerializeOptions } from "./serialize.types.ts";
15
8
  /**
16
9
  * A serialization rule that applies options when a pattern matches.
17
10
  */
@@ -1,2 +1,33 @@
1
1
  import type { Change } from "../../change.types.ts";
2
+ /**
3
+ * Shared serialization options passed to `change.serialize(options)`.
4
+ *
5
+ * This is the global source of truth for serialize-option flags used by the
6
+ * integration serialization DSL and concrete change serializers.
7
+ *
8
+ * @category Integration
9
+ */
10
+ export type SerializeOptions = {
11
+ /** Skip `AUTHORIZATION` when serializing schema creation. */
12
+ skipAuthorization?: boolean;
13
+ /** Skip `WITH SCHEMA ...` when serializing extension creation. */
14
+ skipSchema?: boolean;
15
+ };
16
+ /**
17
+ * Schema-specific view of {@link SerializeOptions}.
18
+ *
19
+ * @category Integration
20
+ */
21
+ export type SchemaSerializeOptions = Pick<SerializeOptions, "skipAuthorization">;
22
+ /**
23
+ * Extension-specific view of {@link SerializeOptions}.
24
+ *
25
+ * @category Integration
26
+ */
27
+ export type ExtensionSerializeOptions = Pick<SerializeOptions, "skipSchema">;
28
+ /**
29
+ * Compiled serializer function used during plan/declarative export rendering.
30
+ *
31
+ * @category Integration
32
+ */
2
33
  export type ChangeSerializer = (change: Change) => string | undefined;
@@ -87,6 +87,12 @@ export const supabase = {
87
87
  operation: "create",
88
88
  scope: "object",
89
89
  },
90
+ // Include extension DROPs used to disable some extensions (eg: pg-net)
91
+ {
92
+ objectType: "extension",
93
+ operation: "drop",
94
+ scope: "object",
95
+ },
90
96
  // Exclude system objects
91
97
  {
92
98
  not: {
@@ -136,5 +142,18 @@ export const supabase = {
136
142
  skipAuthorization: true,
137
143
  },
138
144
  },
145
+ // pgmq extensions creates it's own schema on install doing a `CREATE EXTENSION pgmq WITH SCHEMA pgmq;`
146
+ // will cause an error because the schema will create extension and extension refer to unexisting schema
147
+ {
148
+ when: {
149
+ objectType: "extension",
150
+ operation: "create",
151
+ scope: "object",
152
+ "extension/schema": ["pgmq"],
153
+ },
154
+ options: {
155
+ skipSchema: true,
156
+ },
157
+ },
139
158
  ],
140
159
  };
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { Aggregate } from "../aggregate.model.ts";
2
3
  import { AlterAggregateChange } from "./aggregate.base.ts";
3
4
  export type AlterAggregate = AlterAggregateChangeOwner;
@@ -15,5 +16,5 @@ export declare class AlterAggregateChangeOwner extends AlterAggregateChange {
15
16
  owner: string;
16
17
  });
17
18
  get requires(): `aggregate:${string}`[];
18
- serialize(): string;
19
+ serialize(_options?: SerializeOptions): string;
19
20
  }
@@ -16,7 +16,7 @@ export class AlterAggregateChangeOwner extends AlterAggregateChange {
16
16
  get requires() {
17
17
  return [this.aggregate.stableId];
18
18
  }
19
- serialize() {
19
+ serialize(_options) {
20
20
  const signature = this.aggregate.identityArguments;
21
21
  const qualifiedName = `${this.aggregate.schema}.${this.aggregate.name}`;
22
22
  const withArgs = signature.length > 0 ? `(${signature})` : "()";
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { Aggregate } from "../aggregate.model.ts";
2
3
  import { CreateAggregateChange, DropAggregateChange } from "./aggregate.base.ts";
3
4
  export type CommentAggregate = CreateCommentOnAggregate | DropCommentOnAggregate;
@@ -9,7 +10,7 @@ export declare class CreateCommentOnAggregate extends CreateAggregateChange {
9
10
  });
10
11
  get creates(): `comment:${string}`[];
11
12
  get requires(): `aggregate:${string}`[];
12
- serialize(): string;
13
+ serialize(_options?: SerializeOptions): string;
13
14
  }
14
15
  export declare class DropCommentOnAggregate extends DropAggregateChange {
15
16
  readonly aggregate: Aggregate;
@@ -19,5 +20,5 @@ export declare class DropCommentOnAggregate extends DropAggregateChange {
19
20
  });
20
21
  get drops(): `comment:${string}`[];
21
22
  get requires(): (`comment:${string}` | `aggregate:${string}`)[];
22
- serialize(): string;
23
+ serialize(_options?: SerializeOptions): string;
23
24
  }
@@ -14,7 +14,7 @@ export class CreateCommentOnAggregate extends CreateAggregateChange {
14
14
  get requires() {
15
15
  return [this.aggregate.stableId];
16
16
  }
17
- serialize() {
17
+ serialize(_options) {
18
18
  const signature = this.aggregate.identityArguments;
19
19
  const qualifiedName = `${this.aggregate.schema}.${this.aggregate.name}`;
20
20
  const withArgs = signature.length > 0 ? `(${signature})` : "()";
@@ -35,7 +35,7 @@ export class DropCommentOnAggregate extends DropAggregateChange {
35
35
  get requires() {
36
36
  return [stableId.comment(this.aggregate.stableId), this.aggregate.stableId];
37
37
  }
38
- serialize() {
38
+ serialize(_options) {
39
39
  const signature = this.aggregate.identityArguments;
40
40
  const qualifiedName = `${this.aggregate.schema}.${this.aggregate.name}`;
41
41
  const withArgs = signature.length > 0 ? `(${signature})` : "()";
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { Aggregate } from "../aggregate.model.ts";
2
3
  import { CreateAggregateChange } from "./aggregate.base.ts";
3
4
  /**
@@ -15,5 +16,5 @@ export declare class CreateAggregate extends CreateAggregateChange {
15
16
  });
16
17
  get creates(): `aggregate:${string}`[];
17
18
  get requires(): string[];
18
- serialize(): string;
19
+ serialize(_options?: SerializeOptions): string;
19
20
  }
@@ -110,7 +110,7 @@ export class CreateAggregate extends CreateAggregateChange {
110
110
  // may reference types/functions). For now, we rely on pg_depend for these.
111
111
  return Array.from(dependencies);
112
112
  }
113
- serialize() {
113
+ serialize(_options) {
114
114
  const signature = this.aggregate.identityArguments;
115
115
  const qualifiedName = `${this.aggregate.schema}.${this.aggregate.name}`;
116
116
  const head = [
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { Aggregate } from "../aggregate.model.ts";
2
3
  import { DropAggregateChange } from "./aggregate.base.ts";
3
4
  /**
@@ -13,5 +14,5 @@ export declare class DropAggregate extends DropAggregateChange {
13
14
  });
14
15
  get drops(): `aggregate:${string}`[];
15
16
  get requires(): `aggregate:${string}`[];
16
- serialize(): string;
17
+ serialize(_options?: SerializeOptions): string;
17
18
  }
@@ -17,7 +17,7 @@ export class DropAggregate extends DropAggregateChange {
17
17
  get requires() {
18
18
  return [this.aggregate.stableId];
19
19
  }
20
- serialize() {
20
+ serialize(_options) {
21
21
  const signature = this.aggregate.identityArguments;
22
22
  const qualifiedName = `${this.aggregate.schema}.${this.aggregate.name}`;
23
23
  const withArgs = signature.length > 0 ? `(${signature})` : "(*)";
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { Aggregate } from "../aggregate.model.ts";
2
3
  import { AlterAggregateChange } from "./aggregate.base.ts";
3
4
  export type AggregatePrivilege = GrantAggregatePrivileges | RevokeAggregatePrivileges | RevokeGrantOptionAggregatePrivileges;
@@ -21,7 +22,7 @@ export declare class GrantAggregatePrivileges extends AlterAggregateChange {
21
22
  });
22
23
  get creates(): `acl:${string}::grantee:${string}`[];
23
24
  get requires(): (`role:${string}` | `aggregate:${string}`)[];
24
- serialize(): string;
25
+ serialize(_options?: SerializeOptions): string;
25
26
  }
26
27
  export declare class RevokeAggregatePrivileges extends AlterAggregateChange {
27
28
  readonly aggregate: Aggregate;
@@ -43,7 +44,7 @@ export declare class RevokeAggregatePrivileges extends AlterAggregateChange {
43
44
  });
44
45
  get drops(): `acl:${string}::grantee:${string}`[];
45
46
  get requires(): (`acl:${string}::grantee:${string}` | `role:${string}` | `aggregate:${string}`)[];
46
- serialize(): string;
47
+ serialize(_options?: SerializeOptions): string;
47
48
  }
48
49
  export declare class RevokeGrantOptionAggregatePrivileges extends AlterAggregateChange {
49
50
  readonly aggregate: Aggregate;
@@ -58,5 +59,5 @@ export declare class RevokeGrantOptionAggregatePrivileges extends AlterAggregate
58
59
  version?: number;
59
60
  });
60
61
  get requires(): (`acl:${string}::grantee:${string}` | `role:${string}` | `aggregate:${string}`)[];
61
- serialize(): string;
62
+ serialize(_options?: SerializeOptions): string;
62
63
  }
@@ -20,7 +20,7 @@ export class GrantAggregatePrivileges extends AlterAggregateChange {
20
20
  get requires() {
21
21
  return [this.aggregate.stableId, stableId.role(this.grantee)];
22
22
  }
23
- serialize() {
23
+ serialize(_options) {
24
24
  const hasGrantable = this.privileges.some((p) => p.grantable);
25
25
  const hasBase = this.privileges.some((p) => !p.grantable);
26
26
  if (hasGrantable && hasBase) {
@@ -61,7 +61,7 @@ export class RevokeAggregatePrivileges extends AlterAggregateChange {
61
61
  stableId.role(this.grantee),
62
62
  ];
63
63
  }
64
- serialize() {
64
+ serialize(_options) {
65
65
  const kindPrefix = getObjectKindPrefix("FUNCTION");
66
66
  const list = this.privileges.map((p) => p.privilege);
67
67
  const privSql = formatObjectPrivilegeList("FUNCTION", list, this.version);
@@ -91,7 +91,7 @@ export class RevokeGrantOptionAggregatePrivileges extends AlterAggregateChange {
91
91
  stableId.role(this.grantee),
92
92
  ];
93
93
  }
94
- serialize() {
94
+ serialize(_options) {
95
95
  const kindPrefix = getObjectKindPrefix("FUNCTION");
96
96
  const privSql = formatObjectPrivilegeList("FUNCTION", this.privilegeNames, this.version);
97
97
  const aggregateName = `${this.aggregate.schema}.${this.aggregate.name}`;
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../integrations/serialize/serialize.types.ts";
1
2
  type ChangeOperation = "create" | "alter" | "drop";
2
3
  /**
3
4
  * Abstract base class for all change objects.
@@ -47,7 +48,7 @@ export declare abstract class BaseChange {
47
48
  /**
48
49
  * Serialize the change into a single SQL statement.
49
50
  */
50
- abstract serialize(options?: Record<string, unknown>): string;
51
+ abstract serialize(options?: SerializeOptions): string;
51
52
  }
52
53
  /**
53
54
  * Port of string literal quoting: doubles single quotes inside and wraps with single quotes
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { Collation } from "../collation.model.ts";
2
3
  import { AlterCollationChange } from "./collation.base.ts";
3
4
  /**
@@ -25,7 +26,7 @@ export declare class AlterCollationChangeOwner extends AlterCollationChange {
25
26
  owner: string;
26
27
  });
27
28
  get requires(): `collation:${string}`[];
28
- serialize(): string;
29
+ serialize(_options?: SerializeOptions): string;
29
30
  }
30
31
  /**
31
32
  * ALTER COLLATION ... REFRESH VERSION
@@ -37,7 +38,7 @@ export declare class AlterCollationRefreshVersion extends AlterCollationChange {
37
38
  collation: Collation;
38
39
  });
39
40
  get requires(): `collation:${string}`[];
40
- serialize(): string;
41
+ serialize(_options?: SerializeOptions): string;
41
42
  }
42
43
  /**
43
44
  * Replace a collation by dropping and recreating it.
@@ -14,7 +14,7 @@ export class AlterCollationChangeOwner extends AlterCollationChange {
14
14
  get requires() {
15
15
  return [this.collation.stableId];
16
16
  }
17
- serialize() {
17
+ serialize(_options) {
18
18
  return [
19
19
  "ALTER COLLATION",
20
20
  `${this.collation.schema}.${this.collation.name}`,
@@ -36,7 +36,7 @@ export class AlterCollationRefreshVersion extends AlterCollationChange {
36
36
  get requires() {
37
37
  return [this.collation.stableId];
38
38
  }
39
- serialize() {
39
+ serialize(_options) {
40
40
  return [
41
41
  "ALTER COLLATION",
42
42
  `${this.collation.schema}.${this.collation.name}`,
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { Collation } from "../collation.model.ts";
2
3
  import { CreateCollationChange, DropCollationChange } from "./collation.base.ts";
3
4
  export type CommentCollation = CreateCommentOnCollation | DropCommentOnCollation;
@@ -12,7 +13,7 @@ export declare class CreateCommentOnCollation extends CreateCollationChange {
12
13
  });
13
14
  get creates(): `comment:${string}`[];
14
15
  get requires(): `collation:${string}`[];
15
- serialize(): string;
16
+ serialize(_options?: SerializeOptions): string;
16
17
  }
17
18
  export declare class DropCommentOnCollation extends DropCollationChange {
18
19
  readonly collation: Collation;
@@ -22,5 +23,5 @@ export declare class DropCommentOnCollation extends DropCollationChange {
22
23
  });
23
24
  get requires(): (`comment:${string}` | `collation:${string}`)[];
24
25
  get drops(): `comment:${string}`[];
25
- serialize(): string;
26
+ serialize(_options?: SerializeOptions): string;
26
27
  }
@@ -17,7 +17,7 @@ export class CreateCommentOnCollation extends CreateCollationChange {
17
17
  get requires() {
18
18
  return [this.collation.stableId];
19
19
  }
20
- serialize() {
20
+ serialize(_options) {
21
21
  return [
22
22
  "COMMENT ON COLLATION",
23
23
  `${this.collation.schema}.${this.collation.name}`,
@@ -40,7 +40,7 @@ export class DropCommentOnCollation extends DropCollationChange {
40
40
  get drops() {
41
41
  return [stableId.comment(this.collation.stableId)];
42
42
  }
43
- serialize() {
43
+ serialize(_options) {
44
44
  return [
45
45
  "COMMENT ON COLLATION",
46
46
  `${this.collation.schema}.${this.collation.name}`,
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { Collation } from "../collation.model.ts";
2
3
  import { CreateCollationChange } from "./collation.base.ts";
3
4
  /**
@@ -28,5 +29,5 @@ export declare class CreateCollation extends CreateCollationChange {
28
29
  });
29
30
  get creates(): `collation:${string}`[];
30
31
  get requires(): string[];
31
- serialize(): string;
32
+ serialize(_options?: SerializeOptions): string;
32
33
  }
@@ -39,7 +39,7 @@ export class CreateCollation extends CreateCollationChange {
39
39
  dependencies.add(stableId.role(this.collation.owner));
40
40
  return Array.from(dependencies);
41
41
  }
42
- serialize() {
42
+ serialize(_options) {
43
43
  const parts = ["CREATE COLLATION"];
44
44
  // Add schema and name (already quoted in model extraction)
45
45
  parts.push(`${this.collation.schema}.${this.collation.name}`);
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { Collation } from "../collation.model.ts";
2
3
  import { DropCollationChange } from "./collation.base.ts";
3
4
  /**
@@ -18,5 +19,5 @@ export declare class DropCollation extends DropCollationChange {
18
19
  });
19
20
  get requires(): `collation:${string}`[];
20
21
  get drops(): `collation:${string}`[];
21
- serialize(): string;
22
+ serialize(_options?: SerializeOptions): string;
22
23
  }
@@ -22,7 +22,7 @@ export class DropCollation extends DropCollationChange {
22
22
  get drops() {
23
23
  return [this.collation.stableId];
24
24
  }
25
- serialize() {
25
+ serialize(_options) {
26
26
  return [
27
27
  "DROP COLLATION",
28
28
  `${this.collation.schema}.${this.collation.name}`,
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { Domain, DomainConstraintProps } from "../domain.model.ts";
2
3
  import { AlterDomainChange, DropDomainChange } from "./domain.base.ts";
3
4
  /**
@@ -45,7 +46,7 @@ export declare class AlterDomainSetDefault extends AlterDomainChange {
45
46
  defaultValue: string;
46
47
  });
47
48
  get requires(): `domain:${string}`[];
48
- serialize(): string;
49
+ serialize(_options?: SerializeOptions): string;
49
50
  }
50
51
  /**
51
52
  * ALTER DOMAIN ... DROP DEFAULT
@@ -57,7 +58,7 @@ export declare class AlterDomainDropDefault extends AlterDomainChange {
57
58
  domain: Domain;
58
59
  });
59
60
  get requires(): `domain:${string}`[];
60
- serialize(): string;
61
+ serialize(_options?: SerializeOptions): string;
61
62
  }
62
63
  /**
63
64
  * ALTER DOMAIN ... SET NOT NULL
@@ -69,7 +70,7 @@ export declare class AlterDomainSetNotNull extends AlterDomainChange {
69
70
  domain: Domain;
70
71
  });
71
72
  get requires(): `domain:${string}`[];
72
- serialize(): string;
73
+ serialize(_options?: SerializeOptions): string;
73
74
  }
74
75
  /**
75
76
  * ALTER DOMAIN ... DROP NOT NULL
@@ -81,7 +82,7 @@ export declare class AlterDomainDropNotNull extends AlterDomainChange {
81
82
  domain: Domain;
82
83
  });
83
84
  get requires(): `domain:${string}`[];
84
- serialize(): string;
85
+ serialize(_options?: SerializeOptions): string;
85
86
  }
86
87
  /**
87
88
  * ALTER DOMAIN ... OWNER TO ...
@@ -95,7 +96,7 @@ export declare class AlterDomainChangeOwner extends AlterDomainChange {
95
96
  owner: string;
96
97
  });
97
98
  get requires(): (`role:${string}` | `domain:${string}`)[];
98
- serialize(): string;
99
+ serialize(_options?: SerializeOptions): string;
99
100
  }
100
101
  /**
101
102
  * ALTER DOMAIN ... ADD CONSTRAINT ... [ NOT VALID ]
@@ -110,7 +111,7 @@ export declare class AlterDomainAddConstraint extends AlterDomainChange {
110
111
  });
111
112
  get creates(): `constraint:${string}.${string}.${string}`[];
112
113
  get requires(): `domain:${string}`[];
113
- serialize(): string;
114
+ serialize(_options?: SerializeOptions): string;
114
115
  }
115
116
  /**
116
117
  * ALTER DOMAIN ... DROP CONSTRAINT ...
@@ -125,7 +126,7 @@ export declare class AlterDomainDropConstraint extends DropDomainChange {
125
126
  });
126
127
  get requires(): (`constraint:${string}.${string}.${string}` | `domain:${string}`)[];
127
128
  get drops(): `constraint:${string}.${string}.${string}`[];
128
- serialize(): string;
129
+ serialize(_options?: SerializeOptions): string;
129
130
  }
130
131
  /**
131
132
  * ALTER DOMAIN ... VALIDATE CONSTRAINT ...
@@ -139,5 +140,5 @@ export declare class AlterDomainValidateConstraint extends AlterDomainChange {
139
140
  constraint: DomainConstraintProps;
140
141
  });
141
142
  get requires(): (`constraint:${string}.${string}.${string}` | `domain:${string}`)[];
142
- serialize(): string;
143
+ serialize(_options?: SerializeOptions): string;
143
144
  }