@supabase/pg-delta 1.0.0-alpha.10 → 1.0.0-alpha.12

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 (496) hide show
  1. package/dist/cli/commands/declarative-export.js +12 -17
  2. package/dist/cli/commands/plan.js +10 -13
  3. package/dist/cli/commands/sync.js +8 -12
  4. package/dist/cli/utils/integrations.d.ts +30 -6
  5. package/dist/cli/utils/integrations.js +98 -6
  6. package/dist/core/change-utils.d.ts +9 -0
  7. package/dist/core/change-utils.js +71 -0
  8. package/dist/core/change.types.d.ts +22 -0
  9. package/dist/core/change.types.js +37 -1
  10. package/dist/core/depend.js +25 -0
  11. package/dist/core/expand-replace-dependencies.js +23 -0
  12. package/dist/core/export/file-mapper.d.ts +2 -2
  13. package/dist/core/integrations/filter/dsl.d.ts +78 -74
  14. package/dist/core/integrations/filter/dsl.js +127 -79
  15. package/dist/core/integrations/filter/flatten.d.ts +51 -0
  16. package/dist/core/integrations/filter/flatten.js +116 -0
  17. package/dist/core/integrations/integration-dsl.d.ts +17 -1
  18. package/dist/core/integrations/merge.d.ts +20 -0
  19. package/dist/core/integrations/merge.js +60 -0
  20. package/dist/core/integrations/serialize/dsl.d.ts +8 -12
  21. package/dist/core/integrations/serialize/dsl.js +2 -2
  22. package/dist/core/integrations/serialize/serialize.types.d.ts +31 -0
  23. package/dist/core/integrations/supabase.js +42 -8
  24. package/dist/core/objects/aggregate/changes/aggregate.alter.d.ts +2 -1
  25. package/dist/core/objects/aggregate/changes/aggregate.alter.js +1 -1
  26. package/dist/core/objects/aggregate/changes/aggregate.comment.d.ts +3 -2
  27. package/dist/core/objects/aggregate/changes/aggregate.comment.js +2 -2
  28. package/dist/core/objects/aggregate/changes/aggregate.create.d.ts +2 -1
  29. package/dist/core/objects/aggregate/changes/aggregate.create.js +1 -1
  30. package/dist/core/objects/aggregate/changes/aggregate.drop.d.ts +2 -1
  31. package/dist/core/objects/aggregate/changes/aggregate.drop.js +1 -1
  32. package/dist/core/objects/aggregate/changes/aggregate.privilege.d.ts +4 -3
  33. package/dist/core/objects/aggregate/changes/aggregate.privilege.js +3 -3
  34. package/dist/core/objects/aggregate/changes/aggregate.types.d.ts +1 -0
  35. package/dist/core/objects/base.change.d.ts +12 -1
  36. package/dist/core/objects/base.change.js +10 -0
  37. package/dist/core/objects/base.model.d.ts +4 -1
  38. package/dist/core/objects/base.model.js +5 -2
  39. package/dist/core/objects/collation/changes/collation.alter.d.ts +3 -2
  40. package/dist/core/objects/collation/changes/collation.alter.js +2 -2
  41. package/dist/core/objects/collation/changes/collation.comment.d.ts +3 -2
  42. package/dist/core/objects/collation/changes/collation.comment.js +2 -2
  43. package/dist/core/objects/collation/changes/collation.create.d.ts +2 -1
  44. package/dist/core/objects/collation/changes/collation.create.js +1 -1
  45. package/dist/core/objects/collation/changes/collation.drop.d.ts +2 -1
  46. package/dist/core/objects/collation/changes/collation.drop.js +1 -1
  47. package/dist/core/objects/collation/changes/collation.types.d.ts +1 -0
  48. package/dist/core/objects/domain/changes/domain.alter.d.ts +9 -8
  49. package/dist/core/objects/domain/changes/domain.alter.js +8 -8
  50. package/dist/core/objects/domain/changes/domain.comment.d.ts +3 -2
  51. package/dist/core/objects/domain/changes/domain.comment.js +2 -2
  52. package/dist/core/objects/domain/changes/domain.create.d.ts +3 -2
  53. package/dist/core/objects/domain/changes/domain.create.js +8 -2
  54. package/dist/core/objects/domain/changes/domain.drop.d.ts +2 -1
  55. package/dist/core/objects/domain/changes/domain.drop.js +1 -1
  56. package/dist/core/objects/domain/changes/domain.privilege.d.ts +4 -3
  57. package/dist/core/objects/domain/changes/domain.privilege.js +3 -3
  58. package/dist/core/objects/domain/changes/domain.types.d.ts +1 -0
  59. package/dist/core/objects/event-trigger/changes/event-trigger.alter.d.ts +3 -2
  60. package/dist/core/objects/event-trigger/changes/event-trigger.alter.js +2 -2
  61. package/dist/core/objects/event-trigger/changes/event-trigger.comment.d.ts +3 -2
  62. package/dist/core/objects/event-trigger/changes/event-trigger.comment.js +2 -2
  63. package/dist/core/objects/event-trigger/changes/event-trigger.create.d.ts +2 -1
  64. package/dist/core/objects/event-trigger/changes/event-trigger.create.js +1 -1
  65. package/dist/core/objects/event-trigger/changes/event-trigger.drop.d.ts +2 -1
  66. package/dist/core/objects/event-trigger/changes/event-trigger.drop.js +1 -1
  67. package/dist/core/objects/event-trigger/changes/event-trigger.types.d.ts +1 -0
  68. package/dist/core/objects/extension/changes/extension.alter.d.ts +3 -2
  69. package/dist/core/objects/extension/changes/extension.alter.js +2 -2
  70. package/dist/core/objects/extension/changes/extension.comment.d.ts +3 -2
  71. package/dist/core/objects/extension/changes/extension.comment.js +2 -2
  72. package/dist/core/objects/extension/changes/extension.create.d.ts +2 -1
  73. package/dist/core/objects/extension/changes/extension.create.js +4 -2
  74. package/dist/core/objects/extension/changes/extension.drop.d.ts +2 -1
  75. package/dist/core/objects/extension/changes/extension.drop.js +1 -1
  76. package/dist/core/objects/extension/changes/extension.types.d.ts +1 -0
  77. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.alter.d.ts +3 -2
  78. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.alter.js +2 -2
  79. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.comment.d.ts +3 -2
  80. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.comment.js +2 -2
  81. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.create.d.ts +2 -1
  82. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.create.js +1 -1
  83. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.drop.d.ts +2 -1
  84. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.drop.js +1 -1
  85. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.privilege.d.ts +4 -3
  86. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.privilege.js +3 -3
  87. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.types.d.ts +1 -0
  88. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper.types.d.ts +1 -0
  89. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.alter.d.ts +10 -9
  90. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.alter.js +9 -9
  91. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.comment.d.ts +3 -2
  92. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.comment.js +2 -2
  93. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.create.d.ts +2 -1
  94. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.create.js +1 -1
  95. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.drop.d.ts +2 -1
  96. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.drop.js +1 -1
  97. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.privilege.d.ts +4 -3
  98. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.privilege.js +3 -3
  99. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.types.d.ts +1 -0
  100. package/dist/core/objects/foreign-data-wrapper/server/changes/server.alter.d.ts +4 -3
  101. package/dist/core/objects/foreign-data-wrapper/server/changes/server.alter.js +3 -3
  102. package/dist/core/objects/foreign-data-wrapper/server/changes/server.comment.d.ts +3 -2
  103. package/dist/core/objects/foreign-data-wrapper/server/changes/server.comment.js +2 -2
  104. package/dist/core/objects/foreign-data-wrapper/server/changes/server.create.d.ts +2 -1
  105. package/dist/core/objects/foreign-data-wrapper/server/changes/server.create.js +1 -1
  106. package/dist/core/objects/foreign-data-wrapper/server/changes/server.drop.d.ts +2 -1
  107. package/dist/core/objects/foreign-data-wrapper/server/changes/server.drop.js +1 -1
  108. package/dist/core/objects/foreign-data-wrapper/server/changes/server.privilege.d.ts +4 -3
  109. package/dist/core/objects/foreign-data-wrapper/server/changes/server.privilege.js +3 -3
  110. package/dist/core/objects/foreign-data-wrapper/server/changes/server.types.d.ts +1 -0
  111. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.alter.d.ts +2 -1
  112. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.alter.js +1 -1
  113. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.create.d.ts +2 -1
  114. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.create.js +1 -1
  115. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.drop.d.ts +2 -1
  116. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.drop.js +1 -1
  117. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.types.d.ts +1 -0
  118. package/dist/core/objects/index/changes/index.alter.d.ts +4 -3
  119. package/dist/core/objects/index/changes/index.alter.js +3 -3
  120. package/dist/core/objects/index/changes/index.comment.d.ts +3 -2
  121. package/dist/core/objects/index/changes/index.comment.js +2 -2
  122. package/dist/core/objects/index/changes/index.create.d.ts +2 -1
  123. package/dist/core/objects/index/changes/index.create.js +1 -1
  124. package/dist/core/objects/index/changes/index.drop.d.ts +2 -1
  125. package/dist/core/objects/index/changes/index.drop.js +1 -1
  126. package/dist/core/objects/index/changes/index.types.d.ts +1 -0
  127. package/dist/core/objects/language/changes/language.alter.d.ts +2 -1
  128. package/dist/core/objects/language/changes/language.alter.js +1 -1
  129. package/dist/core/objects/language/changes/language.comment.d.ts +3 -2
  130. package/dist/core/objects/language/changes/language.comment.js +2 -2
  131. package/dist/core/objects/language/changes/language.create.d.ts +2 -1
  132. package/dist/core/objects/language/changes/language.create.js +1 -1
  133. package/dist/core/objects/language/changes/language.drop.d.ts +2 -1
  134. package/dist/core/objects/language/changes/language.drop.js +1 -1
  135. package/dist/core/objects/language/changes/language.privilege.d.ts +4 -3
  136. package/dist/core/objects/language/changes/language.privilege.js +3 -3
  137. package/dist/core/objects/language/changes/language.types.d.ts +1 -0
  138. package/dist/core/objects/materialized-view/changes/materialized-view.alter.d.ts +3 -2
  139. package/dist/core/objects/materialized-view/changes/materialized-view.alter.js +2 -2
  140. package/dist/core/objects/materialized-view/changes/materialized-view.comment.d.ts +5 -4
  141. package/dist/core/objects/materialized-view/changes/materialized-view.comment.js +4 -4
  142. package/dist/core/objects/materialized-view/changes/materialized-view.create.d.ts +2 -1
  143. package/dist/core/objects/materialized-view/changes/materialized-view.create.js +1 -1
  144. package/dist/core/objects/materialized-view/changes/materialized-view.drop.d.ts +2 -1
  145. package/dist/core/objects/materialized-view/changes/materialized-view.drop.js +1 -1
  146. package/dist/core/objects/materialized-view/changes/materialized-view.privilege.d.ts +4 -3
  147. package/dist/core/objects/materialized-view/changes/materialized-view.privilege.js +3 -3
  148. package/dist/core/objects/materialized-view/changes/materialized-view.types.d.ts +1 -0
  149. package/dist/core/objects/procedure/changes/procedure.alter.d.ts +8 -7
  150. package/dist/core/objects/procedure/changes/procedure.alter.js +7 -7
  151. package/dist/core/objects/procedure/changes/procedure.comment.d.ts +3 -2
  152. package/dist/core/objects/procedure/changes/procedure.comment.js +2 -2
  153. package/dist/core/objects/procedure/changes/procedure.create.d.ts +2 -1
  154. package/dist/core/objects/procedure/changes/procedure.create.js +1 -1
  155. package/dist/core/objects/procedure/changes/procedure.drop.d.ts +2 -1
  156. package/dist/core/objects/procedure/changes/procedure.drop.js +1 -1
  157. package/dist/core/objects/procedure/changes/procedure.privilege.d.ts +4 -3
  158. package/dist/core/objects/procedure/changes/procedure.privilege.js +3 -3
  159. package/dist/core/objects/procedure/changes/procedure.types.d.ts +1 -0
  160. package/dist/core/objects/publication/changes/publication.alter.d.ts +9 -7
  161. package/dist/core/objects/publication/changes/publication.alter.js +12 -7
  162. package/dist/core/objects/publication/changes/publication.comment.d.ts +3 -2
  163. package/dist/core/objects/publication/changes/publication.comment.js +2 -2
  164. package/dist/core/objects/publication/changes/publication.create.d.ts +2 -1
  165. package/dist/core/objects/publication/changes/publication.create.js +1 -1
  166. package/dist/core/objects/publication/changes/publication.drop.d.ts +2 -1
  167. package/dist/core/objects/publication/changes/publication.drop.js +1 -1
  168. package/dist/core/objects/publication/changes/publication.types.d.ts +1 -0
  169. package/dist/core/objects/rls-policy/changes/rls-policy.alter.d.ts +4 -3
  170. package/dist/core/objects/rls-policy/changes/rls-policy.alter.js +3 -3
  171. package/dist/core/objects/rls-policy/changes/rls-policy.comment.d.ts +3 -2
  172. package/dist/core/objects/rls-policy/changes/rls-policy.comment.js +2 -2
  173. package/dist/core/objects/rls-policy/changes/rls-policy.create.d.ts +2 -1
  174. package/dist/core/objects/rls-policy/changes/rls-policy.create.js +1 -1
  175. package/dist/core/objects/rls-policy/changes/rls-policy.drop.d.ts +2 -1
  176. package/dist/core/objects/rls-policy/changes/rls-policy.drop.js +1 -1
  177. package/dist/core/objects/rls-policy/changes/rls-policy.types.d.ts +1 -0
  178. package/dist/core/objects/role/changes/role.alter.d.ts +3 -2
  179. package/dist/core/objects/role/changes/role.alter.js +2 -2
  180. package/dist/core/objects/role/changes/role.comment.d.ts +3 -2
  181. package/dist/core/objects/role/changes/role.comment.js +2 -2
  182. package/dist/core/objects/role/changes/role.create.d.ts +2 -1
  183. package/dist/core/objects/role/changes/role.create.js +1 -1
  184. package/dist/core/objects/role/changes/role.drop.d.ts +2 -1
  185. package/dist/core/objects/role/changes/role.drop.js +1 -1
  186. package/dist/core/objects/role/changes/role.privilege.d.ts +6 -5
  187. package/dist/core/objects/role/changes/role.privilege.js +5 -5
  188. package/dist/core/objects/role/changes/role.types.d.ts +1 -0
  189. package/dist/core/objects/rule/changes/rule.alter.d.ts +3 -2
  190. package/dist/core/objects/rule/changes/rule.alter.js +2 -2
  191. package/dist/core/objects/rule/changes/rule.comment.d.ts +3 -2
  192. package/dist/core/objects/rule/changes/rule.comment.js +2 -2
  193. package/dist/core/objects/rule/changes/rule.create.d.ts +2 -1
  194. package/dist/core/objects/rule/changes/rule.create.js +1 -1
  195. package/dist/core/objects/rule/changes/rule.drop.d.ts +2 -1
  196. package/dist/core/objects/rule/changes/rule.drop.js +1 -1
  197. package/dist/core/objects/rule/changes/rule.types.d.ts +1 -0
  198. package/dist/core/objects/schema/changes/schema.alter.d.ts +2 -1
  199. package/dist/core/objects/schema/changes/schema.alter.js +1 -1
  200. package/dist/core/objects/schema/changes/schema.comment.d.ts +3 -2
  201. package/dist/core/objects/schema/changes/schema.comment.js +2 -2
  202. package/dist/core/objects/schema/changes/schema.create.d.ts +3 -5
  203. package/dist/core/objects/schema/changes/schema.drop.d.ts +2 -1
  204. package/dist/core/objects/schema/changes/schema.drop.js +1 -1
  205. package/dist/core/objects/schema/changes/schema.privilege.d.ts +4 -3
  206. package/dist/core/objects/schema/changes/schema.privilege.js +3 -3
  207. package/dist/core/objects/schema/changes/schema.types.d.ts +1 -0
  208. package/dist/core/objects/sequence/changes/sequence.alter.d.ts +3 -2
  209. package/dist/core/objects/sequence/changes/sequence.alter.js +2 -2
  210. package/dist/core/objects/sequence/changes/sequence.comment.d.ts +3 -2
  211. package/dist/core/objects/sequence/changes/sequence.comment.js +2 -2
  212. package/dist/core/objects/sequence/changes/sequence.create.d.ts +2 -1
  213. package/dist/core/objects/sequence/changes/sequence.create.js +1 -1
  214. package/dist/core/objects/sequence/changes/sequence.drop.d.ts +2 -1
  215. package/dist/core/objects/sequence/changes/sequence.drop.js +11 -3
  216. package/dist/core/objects/sequence/changes/sequence.privilege.d.ts +4 -3
  217. package/dist/core/objects/sequence/changes/sequence.privilege.js +3 -3
  218. package/dist/core/objects/sequence/changes/sequence.types.d.ts +1 -0
  219. package/dist/core/objects/sequence/sequence.diff.d.ts +4 -1
  220. package/dist/core/objects/sequence/sequence.diff.js +12 -0
  221. package/dist/core/objects/subscription/changes/subscription.alter.d.ts +7 -6
  222. package/dist/core/objects/subscription/changes/subscription.alter.js +6 -6
  223. package/dist/core/objects/subscription/changes/subscription.comment.d.ts +3 -2
  224. package/dist/core/objects/subscription/changes/subscription.comment.js +2 -2
  225. package/dist/core/objects/subscription/changes/subscription.create.d.ts +2 -1
  226. package/dist/core/objects/subscription/changes/subscription.create.js +1 -1
  227. package/dist/core/objects/subscription/changes/subscription.drop.d.ts +2 -1
  228. package/dist/core/objects/subscription/changes/subscription.drop.js +1 -1
  229. package/dist/core/objects/subscription/changes/subscription.types.d.ts +1 -0
  230. package/dist/core/objects/table/changes/table.alter.d.ts +65 -22
  231. package/dist/core/objects/table/changes/table.alter.js +107 -22
  232. package/dist/core/objects/table/changes/table.comment.d.ts +7 -6
  233. package/dist/core/objects/table/changes/table.comment.js +6 -6
  234. package/dist/core/objects/table/changes/table.create.d.ts +2 -1
  235. package/dist/core/objects/table/changes/table.create.js +1 -1
  236. package/dist/core/objects/table/changes/table.drop.d.ts +4 -3
  237. package/dist/core/objects/table/changes/table.drop.js +7 -1
  238. package/dist/core/objects/table/changes/table.privilege.d.ts +4 -3
  239. package/dist/core/objects/table/changes/table.privilege.js +3 -3
  240. package/dist/core/objects/table/changes/table.types.d.ts +1 -0
  241. package/dist/core/objects/table/table.diff.js +46 -1
  242. package/dist/core/objects/trigger/changes/trigger.alter.d.ts +2 -1
  243. package/dist/core/objects/trigger/changes/trigger.alter.js +1 -1
  244. package/dist/core/objects/trigger/changes/trigger.comment.d.ts +3 -2
  245. package/dist/core/objects/trigger/changes/trigger.comment.js +2 -2
  246. package/dist/core/objects/trigger/changes/trigger.create.d.ts +2 -1
  247. package/dist/core/objects/trigger/changes/trigger.create.js +1 -1
  248. package/dist/core/objects/trigger/changes/trigger.drop.d.ts +2 -1
  249. package/dist/core/objects/trigger/changes/trigger.drop.js +1 -1
  250. package/dist/core/objects/trigger/changes/trigger.types.d.ts +1 -0
  251. package/dist/core/objects/type/composite-type/changes/composite-type.alter.d.ts +5 -4
  252. package/dist/core/objects/type/composite-type/changes/composite-type.alter.js +4 -4
  253. package/dist/core/objects/type/composite-type/changes/composite-type.comment.d.ts +5 -4
  254. package/dist/core/objects/type/composite-type/changes/composite-type.comment.js +4 -4
  255. package/dist/core/objects/type/composite-type/changes/composite-type.create.d.ts +2 -1
  256. package/dist/core/objects/type/composite-type/changes/composite-type.create.js +1 -1
  257. package/dist/core/objects/type/composite-type/changes/composite-type.drop.d.ts +2 -1
  258. package/dist/core/objects/type/composite-type/changes/composite-type.drop.js +1 -1
  259. package/dist/core/objects/type/composite-type/changes/composite-type.privilege.d.ts +4 -3
  260. package/dist/core/objects/type/composite-type/changes/composite-type.privilege.js +3 -3
  261. package/dist/core/objects/type/composite-type/changes/composite-type.types.d.ts +1 -0
  262. package/dist/core/objects/type/enum/changes/enum.alter.d.ts +3 -2
  263. package/dist/core/objects/type/enum/changes/enum.alter.js +2 -2
  264. package/dist/core/objects/type/enum/changes/enum.comment.d.ts +3 -2
  265. package/dist/core/objects/type/enum/changes/enum.comment.js +2 -2
  266. package/dist/core/objects/type/enum/changes/enum.create.d.ts +2 -1
  267. package/dist/core/objects/type/enum/changes/enum.create.js +1 -1
  268. package/dist/core/objects/type/enum/changes/enum.drop.d.ts +2 -1
  269. package/dist/core/objects/type/enum/changes/enum.drop.js +1 -1
  270. package/dist/core/objects/type/enum/changes/enum.privilege.d.ts +4 -3
  271. package/dist/core/objects/type/enum/changes/enum.privilege.js +3 -3
  272. package/dist/core/objects/type/enum/changes/enum.types.d.ts +1 -0
  273. package/dist/core/objects/type/range/changes/range.alter.d.ts +2 -1
  274. package/dist/core/objects/type/range/changes/range.alter.js +1 -1
  275. package/dist/core/objects/type/range/changes/range.comment.d.ts +3 -2
  276. package/dist/core/objects/type/range/changes/range.comment.js +2 -2
  277. package/dist/core/objects/type/range/changes/range.create.d.ts +2 -1
  278. package/dist/core/objects/type/range/changes/range.create.js +1 -1
  279. package/dist/core/objects/type/range/changes/range.drop.d.ts +2 -1
  280. package/dist/core/objects/type/range/changes/range.drop.js +1 -1
  281. package/dist/core/objects/type/range/changes/range.privilege.d.ts +4 -3
  282. package/dist/core/objects/type/range/changes/range.privilege.js +3 -3
  283. package/dist/core/objects/type/range/changes/range.types.d.ts +1 -0
  284. package/dist/core/objects/type/type.types.d.ts +1 -0
  285. package/dist/core/objects/view/changes/view.alter.d.ts +4 -3
  286. package/dist/core/objects/view/changes/view.alter.js +3 -3
  287. package/dist/core/objects/view/changes/view.comment.d.ts +3 -2
  288. package/dist/core/objects/view/changes/view.comment.js +2 -2
  289. package/dist/core/objects/view/changes/view.create.d.ts +2 -1
  290. package/dist/core/objects/view/changes/view.create.js +1 -1
  291. package/dist/core/objects/view/changes/view.drop.d.ts +2 -1
  292. package/dist/core/objects/view/changes/view.drop.js +1 -1
  293. package/dist/core/objects/view/changes/view.privilege.d.ts +4 -3
  294. package/dist/core/objects/view/changes/view.privilege.js +3 -3
  295. package/dist/core/objects/view/changes/view.types.d.ts +1 -0
  296. package/dist/core/objects/view/view.diff.js +24 -13
  297. package/dist/core/postgres-config.d.ts +2 -2
  298. package/dist/core/sort/custom-constraints.js +65 -1
  299. package/dist/core/sort/logical-sort.js +3 -24
  300. package/package.json +5 -1
  301. package/src/cli/commands/declarative-export.ts +19 -27
  302. package/src/cli/commands/plan.ts +14 -20
  303. package/src/cli/commands/sync.ts +8 -15
  304. package/src/cli/utils/integrations.test.ts +210 -3
  305. package/src/cli/utils/integrations.ts +134 -6
  306. package/src/core/catalog.snapshot.test.ts +11 -2
  307. package/src/core/change-utils.test.ts +61 -0
  308. package/src/core/change-utils.ts +73 -0
  309. package/src/core/change.types.ts +50 -0
  310. package/src/core/depend.ts +25 -0
  311. package/src/core/expand-replace-dependencies.test.ts +126 -1
  312. package/src/core/expand-replace-dependencies.ts +50 -0
  313. package/src/core/export/file-mapper.ts +7 -2
  314. package/src/core/integrations/filter/dsl.test.ts +299 -60
  315. package/src/core/integrations/filter/dsl.ts +208 -169
  316. package/src/core/integrations/filter/flatten.test.ts +282 -0
  317. package/src/core/integrations/filter/flatten.ts +150 -0
  318. package/src/core/integrations/integration-dsl.ts +17 -1
  319. package/src/core/integrations/merge.test.ts +128 -0
  320. package/src/core/integrations/merge.ts +72 -0
  321. package/src/core/integrations/serialize/dsl.test.ts +26 -7
  322. package/src/core/integrations/serialize/dsl.ts +8 -14
  323. package/src/core/integrations/serialize/serialize.types.ts +37 -0
  324. package/src/core/integrations/supabase.ts +42 -8
  325. package/src/core/objects/aggregate/changes/aggregate.alter.ts +2 -1
  326. package/src/core/objects/aggregate/changes/aggregate.comment.ts +3 -2
  327. package/src/core/objects/aggregate/changes/aggregate.create.ts +2 -1
  328. package/src/core/objects/aggregate/changes/aggregate.drop.ts +2 -1
  329. package/src/core/objects/aggregate/changes/aggregate.privilege.ts +4 -3
  330. package/src/core/objects/aggregate/changes/aggregate.types.ts +1 -0
  331. package/src/core/objects/base.change.ts +13 -1
  332. package/src/core/objects/base.model.test.ts +43 -0
  333. package/src/core/objects/base.model.ts +5 -2
  334. package/src/core/objects/collation/changes/collation.alter.ts +3 -2
  335. package/src/core/objects/collation/changes/collation.comment.ts +3 -2
  336. package/src/core/objects/collation/changes/collation.create.ts +2 -1
  337. package/src/core/objects/collation/changes/collation.drop.ts +2 -1
  338. package/src/core/objects/collation/changes/collation.types.ts +1 -0
  339. package/src/core/objects/domain/changes/domain.alter.ts +9 -8
  340. package/src/core/objects/domain/changes/domain.comment.ts +3 -2
  341. package/src/core/objects/domain/changes/domain.create.ts +19 -2
  342. package/src/core/objects/domain/changes/domain.drop.ts +2 -1
  343. package/src/core/objects/domain/changes/domain.privilege.ts +4 -3
  344. package/src/core/objects/domain/changes/domain.types.ts +1 -0
  345. package/src/core/objects/event-trigger/changes/event-trigger.alter.ts +3 -2
  346. package/src/core/objects/event-trigger/changes/event-trigger.comment.ts +3 -2
  347. package/src/core/objects/event-trigger/changes/event-trigger.create.ts +2 -1
  348. package/src/core/objects/event-trigger/changes/event-trigger.drop.ts +2 -1
  349. package/src/core/objects/event-trigger/changes/event-trigger.types.ts +1 -0
  350. package/src/core/objects/extension/changes/extension.alter.ts +3 -2
  351. package/src/core/objects/extension/changes/extension.comment.ts +3 -2
  352. package/src/core/objects/extension/changes/extension.create.test.ts +22 -0
  353. package/src/core/objects/extension/changes/extension.create.ts +5 -2
  354. package/src/core/objects/extension/changes/extension.drop.ts +2 -1
  355. package/src/core/objects/extension/changes/extension.types.ts +1 -0
  356. package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.alter.ts +3 -2
  357. package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.comment.ts +3 -2
  358. package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.create.ts +2 -1
  359. package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.drop.ts +2 -1
  360. package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.privilege.ts +4 -3
  361. package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.types.ts +1 -0
  362. package/src/core/objects/foreign-data-wrapper/foreign-data-wrapper.types.ts +1 -0
  363. package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.alter.ts +10 -9
  364. package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.comment.ts +3 -2
  365. package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.create.ts +2 -1
  366. package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.drop.ts +2 -1
  367. package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.privilege.ts +4 -3
  368. package/src/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.types.ts +1 -0
  369. package/src/core/objects/foreign-data-wrapper/server/changes/server.alter.ts +4 -3
  370. package/src/core/objects/foreign-data-wrapper/server/changes/server.comment.ts +3 -2
  371. package/src/core/objects/foreign-data-wrapper/server/changes/server.create.ts +2 -1
  372. package/src/core/objects/foreign-data-wrapper/server/changes/server.drop.ts +2 -1
  373. package/src/core/objects/foreign-data-wrapper/server/changes/server.privilege.ts +4 -3
  374. package/src/core/objects/foreign-data-wrapper/server/changes/server.types.ts +1 -0
  375. package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.alter.ts +2 -1
  376. package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.create.ts +2 -1
  377. package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.drop.ts +2 -1
  378. package/src/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.types.ts +1 -0
  379. package/src/core/objects/index/changes/index.alter.ts +4 -3
  380. package/src/core/objects/index/changes/index.comment.ts +3 -2
  381. package/src/core/objects/index/changes/index.create.ts +2 -1
  382. package/src/core/objects/index/changes/index.drop.ts +2 -1
  383. package/src/core/objects/index/changes/index.types.ts +1 -0
  384. package/src/core/objects/language/changes/language.alter.ts +2 -1
  385. package/src/core/objects/language/changes/language.comment.ts +3 -2
  386. package/src/core/objects/language/changes/language.create.ts +2 -1
  387. package/src/core/objects/language/changes/language.drop.ts +2 -1
  388. package/src/core/objects/language/changes/language.privilege.ts +4 -3
  389. package/src/core/objects/language/changes/language.types.ts +1 -0
  390. package/src/core/objects/materialized-view/changes/materialized-view.alter.ts +3 -2
  391. package/src/core/objects/materialized-view/changes/materialized-view.comment.ts +5 -4
  392. package/src/core/objects/materialized-view/changes/materialized-view.create.ts +2 -1
  393. package/src/core/objects/materialized-view/changes/materialized-view.drop.ts +2 -1
  394. package/src/core/objects/materialized-view/changes/materialized-view.privilege.ts +4 -3
  395. package/src/core/objects/materialized-view/changes/materialized-view.types.ts +1 -0
  396. package/src/core/objects/procedure/changes/procedure.alter.ts +8 -7
  397. package/src/core/objects/procedure/changes/procedure.comment.ts +3 -2
  398. package/src/core/objects/procedure/changes/procedure.create.ts +2 -1
  399. package/src/core/objects/procedure/changes/procedure.drop.ts +2 -1
  400. package/src/core/objects/procedure/changes/procedure.privilege.ts +4 -3
  401. package/src/core/objects/procedure/changes/procedure.types.ts +1 -0
  402. package/src/core/objects/publication/changes/publication.alter.test.ts +4 -0
  403. package/src/core/objects/publication/changes/publication.alter.ts +14 -7
  404. package/src/core/objects/publication/changes/publication.comment.ts +3 -2
  405. package/src/core/objects/publication/changes/publication.create.ts +2 -1
  406. package/src/core/objects/publication/changes/publication.drop.ts +2 -1
  407. package/src/core/objects/publication/changes/publication.types.ts +1 -0
  408. package/src/core/objects/rls-policy/changes/rls-policy.alter.ts +4 -3
  409. package/src/core/objects/rls-policy/changes/rls-policy.comment.ts +3 -2
  410. package/src/core/objects/rls-policy/changes/rls-policy.create.ts +2 -1
  411. package/src/core/objects/rls-policy/changes/rls-policy.drop.ts +2 -1
  412. package/src/core/objects/rls-policy/changes/rls-policy.types.ts +1 -0
  413. package/src/core/objects/role/changes/role.alter.ts +3 -2
  414. package/src/core/objects/role/changes/role.comment.ts +3 -2
  415. package/src/core/objects/role/changes/role.create.ts +2 -1
  416. package/src/core/objects/role/changes/role.drop.ts +2 -1
  417. package/src/core/objects/role/changes/role.privilege.ts +6 -5
  418. package/src/core/objects/role/changes/role.types.ts +1 -0
  419. package/src/core/objects/rule/changes/rule.alter.ts +3 -2
  420. package/src/core/objects/rule/changes/rule.comment.ts +3 -2
  421. package/src/core/objects/rule/changes/rule.create.ts +2 -1
  422. package/src/core/objects/rule/changes/rule.drop.ts +2 -1
  423. package/src/core/objects/rule/changes/rule.types.ts +1 -0
  424. package/src/core/objects/schema/changes/schema.alter.ts +2 -1
  425. package/src/core/objects/schema/changes/schema.comment.ts +3 -2
  426. package/src/core/objects/schema/changes/schema.create.ts +3 -3
  427. package/src/core/objects/schema/changes/schema.drop.ts +2 -1
  428. package/src/core/objects/schema/changes/schema.privilege.ts +4 -3
  429. package/src/core/objects/schema/changes/schema.types.ts +1 -0
  430. package/src/core/objects/sequence/changes/sequence.alter.ts +3 -2
  431. package/src/core/objects/sequence/changes/sequence.comment.ts +3 -2
  432. package/src/core/objects/sequence/changes/sequence.create.ts +2 -1
  433. package/src/core/objects/sequence/changes/sequence.drop.ts +16 -3
  434. package/src/core/objects/sequence/changes/sequence.privilege.ts +4 -3
  435. package/src/core/objects/sequence/changes/sequence.types.ts +1 -0
  436. package/src/core/objects/sequence/sequence.diff.test.ts +73 -1
  437. package/src/core/objects/sequence/sequence.diff.ts +24 -2
  438. package/src/core/objects/subscription/changes/subscription.alter.ts +7 -6
  439. package/src/core/objects/subscription/changes/subscription.comment.ts +3 -2
  440. package/src/core/objects/subscription/changes/subscription.create.ts +2 -1
  441. package/src/core/objects/subscription/changes/subscription.drop.ts +2 -1
  442. package/src/core/objects/subscription/changes/subscription.types.ts +1 -0
  443. package/src/core/objects/table/changes/table.alter.test.ts +38 -0
  444. package/src/core/objects/table/changes/table.alter.ts +123 -22
  445. package/src/core/objects/table/changes/table.comment.ts +7 -6
  446. package/src/core/objects/table/changes/table.create.ts +2 -1
  447. package/src/core/objects/table/changes/table.drop.ts +20 -1
  448. package/src/core/objects/table/changes/table.privilege.ts +4 -3
  449. package/src/core/objects/table/changes/table.types.ts +1 -0
  450. package/src/core/objects/table/table.diff.test.ts +121 -0
  451. package/src/core/objects/table/table.diff.ts +64 -1
  452. package/src/core/objects/trigger/changes/trigger.alter.ts +2 -1
  453. package/src/core/objects/trigger/changes/trigger.comment.ts +3 -2
  454. package/src/core/objects/trigger/changes/trigger.create.ts +2 -1
  455. package/src/core/objects/trigger/changes/trigger.drop.ts +2 -1
  456. package/src/core/objects/trigger/changes/trigger.types.ts +1 -0
  457. package/src/core/objects/type/composite-type/changes/composite-type.alter.ts +5 -4
  458. package/src/core/objects/type/composite-type/changes/composite-type.comment.ts +5 -4
  459. package/src/core/objects/type/composite-type/changes/composite-type.create.ts +2 -1
  460. package/src/core/objects/type/composite-type/changes/composite-type.drop.ts +2 -1
  461. package/src/core/objects/type/composite-type/changes/composite-type.privilege.ts +4 -3
  462. package/src/core/objects/type/composite-type/changes/composite-type.types.ts +1 -0
  463. package/src/core/objects/type/enum/changes/enum.alter.ts +3 -2
  464. package/src/core/objects/type/enum/changes/enum.comment.ts +3 -2
  465. package/src/core/objects/type/enum/changes/enum.create.ts +2 -1
  466. package/src/core/objects/type/enum/changes/enum.drop.ts +2 -1
  467. package/src/core/objects/type/enum/changes/enum.privilege.ts +4 -3
  468. package/src/core/objects/type/enum/changes/enum.types.ts +1 -0
  469. package/src/core/objects/type/range/changes/range.alter.ts +2 -1
  470. package/src/core/objects/type/range/changes/range.comment.ts +3 -2
  471. package/src/core/objects/type/range/changes/range.create.ts +2 -1
  472. package/src/core/objects/type/range/changes/range.drop.ts +2 -1
  473. package/src/core/objects/type/range/changes/range.privilege.ts +4 -3
  474. package/src/core/objects/type/range/changes/range.types.ts +1 -0
  475. package/src/core/objects/type/type.types.ts +1 -0
  476. package/src/core/objects/view/changes/view.alter.ts +4 -3
  477. package/src/core/objects/view/changes/view.comment.ts +3 -2
  478. package/src/core/objects/view/changes/view.create.ts +2 -1
  479. package/src/core/objects/view/changes/view.drop.ts +2 -1
  480. package/src/core/objects/view/changes/view.privilege.ts +4 -3
  481. package/src/core/objects/view/changes/view.types.ts +1 -0
  482. package/src/core/objects/view/view.diff.test.ts +96 -0
  483. package/src/core/objects/view/view.diff.ts +30 -15
  484. package/src/core/plan/sql-format/format-off.test.ts +1 -1
  485. package/src/core/plan/sql-format/format-pretty-lower-leading.test.ts +1 -1
  486. package/src/core/plan/sql-format/format-pretty-narrow.test.ts +1 -1
  487. package/src/core/plan/sql-format/format-pretty-preserve.test.ts +1 -1
  488. package/src/core/plan/sql-format/format-pretty-upper.test.ts +1 -1
  489. package/src/core/postgres-config.ts +2 -2
  490. package/src/core/sort/custom-constraints.ts +75 -1
  491. package/src/core/sort/logical-sort.ts +3 -27
  492. package/src/typedoc.ts +253 -0
  493. package/dist/core/integrations/filter/extractors.d.ts +0 -12
  494. package/dist/core/integrations/filter/extractors.js +0 -178
  495. package/src/core/integrations/filter/extractors.test.ts +0 -244
  496. package/src/core/integrations/filter/extractors.ts +0 -187
@@ -15,7 +15,7 @@ export class AlterTableChangeOwner extends AlterTableChange {
15
15
  get requires() {
16
16
  return [this.table.stableId];
17
17
  }
18
- serialize() {
18
+ serialize(_options) {
19
19
  return [
20
20
  "ALTER TABLE",
21
21
  `${this.table.schema}.${this.table.name}`,
@@ -37,7 +37,7 @@ export class AlterTableSetLogged extends AlterTableChange {
37
37
  get requires() {
38
38
  return [this.table.stableId];
39
39
  }
40
- serialize() {
40
+ serialize(_options) {
41
41
  return [
42
42
  "ALTER TABLE",
43
43
  `${this.table.schema}.${this.table.name}`,
@@ -58,7 +58,7 @@ export class AlterTableSetUnlogged extends AlterTableChange {
58
58
  get requires() {
59
59
  return [this.table.stableId];
60
60
  }
61
- serialize() {
61
+ serialize(_options) {
62
62
  return [
63
63
  "ALTER TABLE",
64
64
  `${this.table.schema}.${this.table.name}`,
@@ -79,7 +79,7 @@ export class AlterTableEnableRowLevelSecurity extends AlterTableChange {
79
79
  get requires() {
80
80
  return [this.table.stableId];
81
81
  }
82
- serialize() {
82
+ serialize(_options) {
83
83
  return [
84
84
  "ALTER TABLE",
85
85
  `${this.table.schema}.${this.table.name}`,
@@ -100,7 +100,7 @@ export class AlterTableDisableRowLevelSecurity extends AlterTableChange {
100
100
  get requires() {
101
101
  return [this.table.stableId];
102
102
  }
103
- serialize() {
103
+ serialize(_options) {
104
104
  return [
105
105
  "ALTER TABLE",
106
106
  `${this.table.schema}.${this.table.name}`,
@@ -121,7 +121,7 @@ export class AlterTableForceRowLevelSecurity extends AlterTableChange {
121
121
  get requires() {
122
122
  return [this.table.stableId];
123
123
  }
124
- serialize() {
124
+ serialize(_options) {
125
125
  return [
126
126
  "ALTER TABLE",
127
127
  `${this.table.schema}.${this.table.name}`,
@@ -142,7 +142,7 @@ export class AlterTableNoForceRowLevelSecurity extends AlterTableChange {
142
142
  get requires() {
143
143
  return [this.table.stableId];
144
144
  }
145
- serialize() {
145
+ serialize(_options) {
146
146
  return [
147
147
  "ALTER TABLE",
148
148
  `${this.table.schema}.${this.table.name}`,
@@ -165,7 +165,7 @@ export class AlterTableSetStorageParams extends AlterTableChange {
165
165
  get requires() {
166
166
  return [this.table.stableId];
167
167
  }
168
- serialize() {
168
+ serialize(_options) {
169
169
  const storageParams = this.options.join(", ");
170
170
  return [
171
171
  "ALTER TABLE",
@@ -189,7 +189,7 @@ export class AlterTableResetStorageParams extends AlterTableChange {
189
189
  get requires() {
190
190
  return [this.table.stableId];
191
191
  }
192
- serialize() {
192
+ serialize(_options) {
193
193
  const paramsSql = this.params.join(", ");
194
194
  return [
195
195
  "ALTER TABLE",
@@ -231,7 +231,7 @@ export class AlterTableAddConstraint extends AlterTableChange {
231
231
  }
232
232
  return reqs;
233
233
  }
234
- serialize() {
234
+ serialize(_options) {
235
235
  return [
236
236
  "ALTER TABLE",
237
237
  `${this.table.schema}.${this.table.name}`,
@@ -264,7 +264,7 @@ export class AlterTableDropConstraint extends AlterTableChange {
264
264
  this.table.stableId,
265
265
  ];
266
266
  }
267
- serialize() {
267
+ serialize(_options) {
268
268
  return [
269
269
  "ALTER TABLE",
270
270
  `${this.table.schema}.${this.table.name}`,
@@ -291,7 +291,7 @@ export class AlterTableValidateConstraint extends AlterTableChange {
291
291
  this.table.stableId,
292
292
  ];
293
293
  }
294
- serialize() {
294
+ serialize(_options) {
295
295
  return [
296
296
  "ALTER TABLE",
297
297
  `${this.table.schema}.${this.table.name}`,
@@ -315,7 +315,7 @@ export class AlterTableSetReplicaIdentity extends AlterTableChange {
315
315
  get requires() {
316
316
  return [this.table.stableId];
317
317
  }
318
- serialize() {
318
+ serialize(_options) {
319
319
  const clause = this.mode === "d"
320
320
  ? "DEFAULT"
321
321
  : this.mode === "n"
@@ -351,7 +351,7 @@ export class AlterTableAddColumn extends AlterTableChange {
351
351
  get requires() {
352
352
  return [this.table.stableId];
353
353
  }
354
- serialize() {
354
+ serialize(_options) {
355
355
  const parts = [
356
356
  "ALTER TABLE",
357
357
  `${this.table.schema}.${this.table.name}`,
@@ -402,7 +402,7 @@ export class AlterTableDropColumn extends AlterTableChange {
402
402
  stableId.column(this.table.schema, this.table.name, this.column.name),
403
403
  ];
404
404
  }
405
- serialize() {
405
+ serialize(_options) {
406
406
  return [
407
407
  "ALTER TABLE",
408
408
  `${this.table.schema}.${this.table.name}`,
@@ -428,7 +428,7 @@ export class AlterTableAlterColumnType extends AlterTableChange {
428
428
  stableId.column(this.table.schema, this.table.name, this.column.name),
429
429
  ];
430
430
  }
431
- serialize() {
431
+ serialize(_options) {
432
432
  const parts = [
433
433
  "ALTER TABLE",
434
434
  `${this.table.schema}.${this.table.name}`,
@@ -460,7 +460,7 @@ export class AlterTableAlterColumnSetDefault extends AlterTableChange {
460
460
  stableId.column(this.table.schema, this.table.name, this.column.name),
461
461
  ];
462
462
  }
463
- serialize() {
463
+ serialize(_options) {
464
464
  const set = this.column.is_generated ? "SET EXPRESSION AS" : "SET DEFAULT";
465
465
  return [
466
466
  "ALTER TABLE",
@@ -489,7 +489,7 @@ export class AlterTableAlterColumnDropDefault extends AlterTableChange {
489
489
  stableId.column(this.table.schema, this.table.name, this.column.name),
490
490
  ];
491
491
  }
492
- serialize() {
492
+ serialize(_options) {
493
493
  return [
494
494
  "ALTER TABLE",
495
495
  `${this.table.schema}.${this.table.name}`,
@@ -499,6 +499,91 @@ export class AlterTableAlterColumnDropDefault extends AlterTableChange {
499
499
  ].join(" ");
500
500
  }
501
501
  }
502
+ /**
503
+ * ALTER TABLE ... ALTER COLUMN ... ADD GENERATED ... AS IDENTITY
504
+ */
505
+ export class AlterTableAlterColumnAddIdentity extends AlterTableChange {
506
+ table;
507
+ column;
508
+ scope = "object";
509
+ constructor(props) {
510
+ super();
511
+ this.table = props.table;
512
+ this.column = props.column;
513
+ }
514
+ get requires() {
515
+ return [
516
+ stableId.column(this.table.schema, this.table.name, this.column.name),
517
+ ];
518
+ }
519
+ serialize() {
520
+ return [
521
+ "ALTER TABLE",
522
+ `${this.table.schema}.${this.table.name}`,
523
+ "ALTER COLUMN",
524
+ this.column.name,
525
+ "ADD",
526
+ this.column.is_identity_always
527
+ ? "GENERATED ALWAYS AS IDENTITY"
528
+ : "GENERATED BY DEFAULT AS IDENTITY",
529
+ ].join(" ");
530
+ }
531
+ }
532
+ /**
533
+ * ALTER TABLE ... ALTER COLUMN ... DROP IDENTITY
534
+ */
535
+ export class AlterTableAlterColumnDropIdentity extends AlterTableChange {
536
+ table;
537
+ column;
538
+ scope = "object";
539
+ constructor(props) {
540
+ super();
541
+ this.table = props.table;
542
+ this.column = props.column;
543
+ }
544
+ get requires() {
545
+ return [
546
+ stableId.column(this.table.schema, this.table.name, this.column.name),
547
+ ];
548
+ }
549
+ serialize() {
550
+ return [
551
+ "ALTER TABLE",
552
+ `${this.table.schema}.${this.table.name}`,
553
+ "ALTER COLUMN",
554
+ this.column.name,
555
+ "DROP IDENTITY",
556
+ ].join(" ");
557
+ }
558
+ }
559
+ /**
560
+ * ALTER TABLE ... ALTER COLUMN ... SET GENERATED { ALWAYS | BY DEFAULT }
561
+ */
562
+ export class AlterTableAlterColumnSetGenerated extends AlterTableChange {
563
+ table;
564
+ column;
565
+ scope = "object";
566
+ constructor(props) {
567
+ super();
568
+ this.table = props.table;
569
+ this.column = props.column;
570
+ }
571
+ get requires() {
572
+ return [
573
+ stableId.column(this.table.schema, this.table.name, this.column.name),
574
+ ];
575
+ }
576
+ serialize() {
577
+ return [
578
+ "ALTER TABLE",
579
+ `${this.table.schema}.${this.table.name}`,
580
+ "ALTER COLUMN",
581
+ this.column.name,
582
+ "SET GENERATED",
583
+ this.column.is_identity_always ? "ALWAYS" : "BY DEFAULT",
584
+ ].join(" ");
585
+ }
586
+ }
502
587
  /**
503
588
  * ALTER TABLE ... ALTER COLUMN ... SET NOT NULL
504
589
  */
@@ -516,7 +601,7 @@ export class AlterTableAlterColumnSetNotNull extends AlterTableChange {
516
601
  stableId.column(this.table.schema, this.table.name, this.column.name),
517
602
  ];
518
603
  }
519
- serialize() {
604
+ serialize(_options) {
520
605
  return [
521
606
  "ALTER TABLE",
522
607
  `${this.table.schema}.${this.table.name}`,
@@ -543,7 +628,7 @@ export class AlterTableAlterColumnDropNotNull extends AlterTableChange {
543
628
  stableId.column(this.table.schema, this.table.name, this.column.name),
544
629
  ];
545
630
  }
546
- serialize() {
631
+ serialize(_options) {
547
632
  return [
548
633
  "ALTER TABLE",
549
634
  `${this.table.schema}.${this.table.name}`,
@@ -569,7 +654,7 @@ export class AlterTableAttachPartition extends AlterTableChange {
569
654
  // Depend on the partition child so that it is created before attach
570
655
  return [this.partition.stableId, this.table.stableId];
571
656
  }
572
- serialize() {
657
+ serialize(_options) {
573
658
  const bound = this.partition.partition_bound ?? "DEFAULT";
574
659
  return [
575
660
  "ALTER TABLE",
@@ -596,7 +681,7 @@ export class AlterTableDetachPartition extends AlterTableChange {
596
681
  // Depend on the partition child for consistent ordering with potential drops
597
682
  return [this.table.stableId, this.partition.stableId];
598
683
  }
599
- serialize() {
684
+ serialize(_options) {
600
685
  return [
601
686
  "ALTER TABLE",
602
687
  `${this.table.schema}.${this.table.name}`,
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { ColumnProps } from "../../base.model.ts";
2
3
  import type { Table, TableConstraintProps } from "../table.model.ts";
3
4
  import { CreateTableChange, DropTableChange } from "./table.base.ts";
@@ -29,7 +30,7 @@ export declare class CreateCommentOnTable extends CreateTableChange {
29
30
  });
30
31
  get creates(): `comment:${string}`[];
31
32
  get requires(): `table:${string}`[];
32
- serialize(): string;
33
+ serialize(_options?: SerializeOptions): string;
33
34
  }
34
35
  /**
35
36
  * COMMENT ON TABLE ... IS ...
@@ -42,7 +43,7 @@ export declare class DropCommentOnTable extends DropTableChange {
42
43
  });
43
44
  get drops(): `comment:${string}`[];
44
45
  get requires(): (`comment:${string}` | `table:${string}`)[];
45
- serialize(): string;
46
+ serialize(_options?: SerializeOptions): string;
46
47
  }
47
48
  /**
48
49
  * COMMENT ON COLUMN ... IS ...
@@ -57,7 +58,7 @@ export declare class CreateCommentOnColumn extends CreateTableChange {
57
58
  });
58
59
  get creates(): `comment:${string}`[];
59
60
  get requires(): `column:${string}.${string}.${string}`[];
60
- serialize(): string;
61
+ serialize(_options?: SerializeOptions): string;
61
62
  }
62
63
  /**
63
64
  * COMMENT ON COLUMN ... IS ...
@@ -72,7 +73,7 @@ export declare class DropCommentOnColumn extends DropTableChange {
72
73
  });
73
74
  get drops(): `comment:${string}`[];
74
75
  get requires(): (`column:${string}.${string}.${string}` | `comment:${string}`)[];
75
- serialize(): string;
76
+ serialize(_options?: SerializeOptions): string;
76
77
  }
77
78
  /**
78
79
  * COMMENT ON CONSTRAINT ... IS ...
@@ -87,7 +88,7 @@ export declare class CreateCommentOnConstraint extends CreateTableChange {
87
88
  });
88
89
  get creates(): `comment:${string}`[];
89
90
  get requires(): `constraint:${string}.${string}.${string}`[];
90
- serialize(): string;
91
+ serialize(_options?: SerializeOptions): string;
91
92
  }
92
93
  /**
93
94
  * COMMENT ON CONSTRAINT ... IS ...
@@ -102,5 +103,5 @@ export declare class DropCommentOnConstraint extends DropTableChange {
102
103
  });
103
104
  get drops(): `comment:${string}`[];
104
105
  get requires(): (`constraint:${string}.${string}.${string}` | `comment:${string}`)[];
105
- serialize(): string;
106
+ serialize(_options?: SerializeOptions): string;
106
107
  }
@@ -17,7 +17,7 @@ export class CreateCommentOnTable extends CreateTableChange {
17
17
  get requires() {
18
18
  return [this.table.stableId];
19
19
  }
20
- serialize() {
20
+ serialize(_options) {
21
21
  return [
22
22
  "COMMENT ON TABLE",
23
23
  `${this.table.schema}.${this.table.name}`,
@@ -43,7 +43,7 @@ export class DropCommentOnTable extends DropTableChange {
43
43
  get requires() {
44
44
  return [stableId.comment(this.table.stableId), this.table.stableId];
45
45
  }
46
- serialize() {
46
+ serialize(_options) {
47
47
  return [
48
48
  "COMMENT ON TABLE",
49
49
  `${this.table.schema}.${this.table.name}`,
@@ -72,7 +72,7 @@ export class CreateCommentOnColumn extends CreateTableChange {
72
72
  stableId.column(this.table.schema, this.table.name, this.column.name),
73
73
  ];
74
74
  }
75
- serialize() {
75
+ serialize(_options) {
76
76
  return [
77
77
  "COMMENT ON COLUMN",
78
78
  `${this.table.schema}.${this.table.name}.${this.column.name}`,
@@ -102,7 +102,7 @@ export class DropCommentOnColumn extends DropTableChange {
102
102
  const columnStableId = stableId.column(this.table.schema, this.table.name, this.column.name);
103
103
  return [stableId.comment(columnStableId), columnStableId];
104
104
  }
105
- serialize() {
105
+ serialize(_options) {
106
106
  return [
107
107
  "COMMENT ON COLUMN",
108
108
  `${this.table.schema}.${this.table.name}.${this.column.name}`,
@@ -131,7 +131,7 @@ export class CreateCommentOnConstraint extends CreateTableChange {
131
131
  stableId.constraint(this.table.schema, this.table.name, this.constraint.name),
132
132
  ];
133
133
  }
134
- serialize() {
134
+ serialize(_options) {
135
135
  return [
136
136
  "COMMENT ON CONSTRAINT",
137
137
  this.constraint.name,
@@ -163,7 +163,7 @@ export class DropCommentOnConstraint extends DropTableChange {
163
163
  const constraintStableId = stableId.constraint(this.table.schema, this.table.name, this.constraint.name);
164
164
  return [stableId.comment(constraintStableId), constraintStableId];
165
165
  }
166
- serialize() {
166
+ serialize(_options) {
167
167
  return [
168
168
  "COMMENT ON CONSTRAINT",
169
169
  this.constraint.name,
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { Table } from "../table.model.ts";
2
3
  import { CreateTableChange } from "./table.base.ts";
3
4
  /**
@@ -29,5 +30,5 @@ export declare class CreateTable extends CreateTableChange {
29
30
  });
30
31
  get creates(): (`column:${string}.${string}.${string}` | `table:${string}`)[];
31
32
  get requires(): string[];
32
- serialize(): string;
33
+ serialize(_options?: SerializeOptions): string;
33
34
  }
@@ -70,7 +70,7 @@ export class CreateTable extends CreateTableChange {
70
70
  }
71
71
  return Array.from(dependencies);
72
72
  }
73
- serialize() {
73
+ serialize(_options) {
74
74
  const parts = ["CREATE"];
75
75
  // Add TEMPORARY/UNLOGGED based on persistence
76
76
  if (this.table.persistence === "t") {
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { Table } from "../table.model.ts";
2
3
  import { DropTableChange } from "./table.base.ts";
3
4
  /**
@@ -16,7 +17,7 @@ export declare class DropTable extends DropTableChange {
16
17
  constructor(props: {
17
18
  table: Table;
18
19
  });
19
- get drops(): (`column:${string}.${string}.${string}` | `table:${string}`)[];
20
- get requires(): (`column:${string}.${string}.${string}` | `table:${string}`)[];
21
- serialize(): string;
20
+ get drops(): (`column:${string}.${string}.${string}` | `constraint:${string}.${string}.${string}` | `table:${string}`)[];
21
+ get requires(): (`column:${string}.${string}.${string}` | `constraint:${string}.${string}.${string}` | `table:${string}`)[];
22
+ serialize(_options?: SerializeOptions): string;
22
23
  }
@@ -21,15 +21,21 @@ export class DropTable extends DropTableChange {
21
21
  return [
22
22
  this.table.stableId,
23
23
  ...this.table.columns.map((column) => stableId.column(this.table.schema, this.table.name, column.name)),
24
+ // Include constraint stableIds so FK relationships that only exist at the
25
+ // constraint level still affect whole-table drop ordering.
26
+ ...this.table.constraints.map((constraint) => stableId.constraint(this.table.schema, this.table.name, constraint.name)),
24
27
  ];
25
28
  }
26
29
  get requires() {
27
30
  return [
28
31
  this.table.stableId,
29
32
  ...this.table.columns.map((col) => stableId.column(this.table.schema, this.table.name, col.name)),
33
+ // Mirror the dropped constraint ids in requires so drop-phase graph
34
+ // consumers can connect catalog FK edges back to this table drop.
35
+ ...this.table.constraints.map((constraint) => stableId.constraint(this.table.schema, this.table.name, constraint.name)),
30
36
  ];
31
37
  }
32
- serialize() {
38
+ serialize(_options) {
33
39
  return ["DROP TABLE", `${this.table.schema}.${this.table.name}`].join(" ");
34
40
  }
35
41
  }
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { Table } from "../table.model.ts";
2
3
  import { AlterTableChange } from "./table.base.ts";
3
4
  export type TablePrivilege = GrantTablePrivileges | RevokeTablePrivileges | RevokeGrantOptionTablePrivileges;
@@ -38,7 +39,7 @@ export declare class GrantTablePrivileges extends AlterTableChange {
38
39
  });
39
40
  get creates(): `acl:${string}::grantee:${string}`[];
40
41
  get requires(): (`role:${string}` | `table:${string}`)[];
41
- serialize(): string;
42
+ serialize(_options?: SerializeOptions): string;
42
43
  }
43
44
  /**
44
45
  * Revoke privileges on a table.
@@ -79,7 +80,7 @@ export declare class RevokeTablePrivileges extends AlterTableChange {
79
80
  });
80
81
  get drops(): `acl:${string}::grantee:${string}`[];
81
82
  get requires(): (`acl:${string}::grantee:${string}` | `role:${string}` | `table:${string}`)[];
82
- serialize(): string;
83
+ serialize(_options?: SerializeOptions): string;
83
84
  }
84
85
  /**
85
86
  * Revoke grant option for privileges on a table.
@@ -103,5 +104,5 @@ export declare class RevokeGrantOptionTablePrivileges extends AlterTableChange {
103
104
  version?: number;
104
105
  });
105
106
  get requires(): (`acl:${string}::grantee:${string}` | `role:${string}` | `table:${string}`)[];
106
- serialize(): string;
107
+ serialize(_options?: SerializeOptions): string;
107
108
  }
@@ -37,7 +37,7 @@ export class GrantTablePrivileges extends AlterTableChange {
37
37
  get requires() {
38
38
  return [this.table.stableId, stableId.role(this.grantee)];
39
39
  }
40
- serialize() {
40
+ serialize(_options) {
41
41
  const hasGrantable = this.privileges.some((p) => p.grantable);
42
42
  const hasBase = this.privileges.some((p) => !p.grantable);
43
43
  if (hasGrantable && hasBase) {
@@ -98,7 +98,7 @@ export class RevokeTablePrivileges extends AlterTableChange {
98
98
  stableId.role(this.grantee),
99
99
  ];
100
100
  }
101
- serialize() {
101
+ serialize(_options) {
102
102
  const kindPrefix = getObjectKindPrefix("TABLE");
103
103
  const list = this.privileges.map((p) => p.privilege);
104
104
  const privSql = formatObjectPrivilegeList("TABLE", list, this.version);
@@ -138,7 +138,7 @@ export class RevokeGrantOptionTablePrivileges extends AlterTableChange {
138
138
  stableId.role(this.grantee),
139
139
  ];
140
140
  }
141
- serialize() {
141
+ serialize(_options) {
142
142
  const kindPrefix = getObjectKindPrefix("TABLE");
143
143
  const privSql = formatObjectPrivilegeList("TABLE", this.privilegeNames, this.version);
144
144
  const tableName = `${this.table.schema}.${this.table.name}`;
@@ -3,4 +3,5 @@ import type { CommentTable } from "./table.comment.ts";
3
3
  import type { CreateTable } from "./table.create.ts";
4
4
  import type { DropTable } from "./table.drop.ts";
5
5
  import type { TablePrivilege } from "./table.privilege.ts";
6
+ /** Union of all table-related change variants (`objectType: "table"`). @category Change Types */
6
7
  export type TableChange = AlterTable | CommentTable | CreateTable | DropTable | TablePrivilege;
@@ -1,7 +1,7 @@
1
1
  import { diffObjects } from "../base.diff.js";
2
2
  import { diffPrivileges, emitColumnPrivilegeChanges, } from "../base.privilege-diff.js";
3
3
  import { deepEqual } from "../utils.js";
4
- import { AlterTableAddColumn, AlterTableAddConstraint, AlterTableAlterColumnDropDefault, AlterTableAlterColumnDropNotNull, AlterTableAlterColumnSetDefault, AlterTableAlterColumnSetNotNull, AlterTableAlterColumnType, AlterTableAttachPartition, AlterTableChangeOwner, AlterTableDetachPartition, AlterTableDisableRowLevelSecurity, AlterTableDropColumn, AlterTableDropConstraint, AlterTableEnableRowLevelSecurity, AlterTableForceRowLevelSecurity, AlterTableNoForceRowLevelSecurity, AlterTableResetStorageParams, AlterTableSetLogged, AlterTableSetReplicaIdentity, AlterTableSetStorageParams, AlterTableSetUnlogged, AlterTableValidateConstraint, } from "./changes/table.alter.js";
4
+ import { AlterTableAddColumn, AlterTableAddConstraint, AlterTableAlterColumnAddIdentity, AlterTableAlterColumnDropDefault, AlterTableAlterColumnDropIdentity, AlterTableAlterColumnDropNotNull, AlterTableAlterColumnSetDefault, AlterTableAlterColumnSetGenerated, AlterTableAlterColumnSetNotNull, AlterTableAlterColumnType, AlterTableAttachPartition, AlterTableChangeOwner, AlterTableDetachPartition, AlterTableDisableRowLevelSecurity, AlterTableDropColumn, AlterTableDropConstraint, AlterTableEnableRowLevelSecurity, AlterTableForceRowLevelSecurity, AlterTableNoForceRowLevelSecurity, AlterTableResetStorageParams, AlterTableSetLogged, AlterTableSetReplicaIdentity, AlterTableSetStorageParams, AlterTableSetUnlogged, AlterTableValidateConstraint, } from "./changes/table.alter.js";
5
5
  import { CreateCommentOnColumn, CreateCommentOnConstraint, CreateCommentOnTable, DropCommentOnColumn, DropCommentOnConstraint, DropCommentOnTable, } from "./changes/table.comment.js";
6
6
  import { CreateTable } from "./changes/table.create.js";
7
7
  import { DropTable } from "./changes/table.drop.js";
@@ -381,6 +381,17 @@ export function diffTables(ctx, main, branch) {
381
381
  partitionNotNullChanged &&
382
382
  parentBranchCol.not_null === branchCol.not_null);
383
383
  }
384
+ case "identity": {
385
+ const parentIdentityChanged = parentMainCol.is_identity !== parentBranchCol.is_identity ||
386
+ parentMainCol.is_identity_always !==
387
+ parentBranchCol.is_identity_always;
388
+ const partitionIdentityChanged = mainCol.is_identity !== branchCol.is_identity ||
389
+ mainCol.is_identity_always !== branchCol.is_identity_always;
390
+ return (parentIdentityChanged &&
391
+ partitionIdentityChanged &&
392
+ parentBranchCol.is_identity === branchCol.is_identity &&
393
+ parentBranchCol.is_identity_always === branchCol.is_identity_always);
394
+ }
384
395
  }
385
396
  };
386
397
  // Helper to check if parent has the same column add/drop
@@ -450,6 +461,16 @@ export function diffTables(ctx, main, branch) {
450
461
  }));
451
462
  }
452
463
  }
464
+ // PostgreSQL rejects SET DEFAULT while the column still has identity metadata,
465
+ // so identity removal must lead the IDENTITY -> serial/default transition.
466
+ if (mainCol.is_identity && !branchCol.is_identity) {
467
+ if (!parentHasSameColumnPropertyChange(name, "identity")) {
468
+ changes.push(new AlterTableAlterColumnDropIdentity({
469
+ table: branchTable,
470
+ column: branchCol,
471
+ }));
472
+ }
473
+ }
453
474
  // DEFAULT change
454
475
  if (mainCol.default !== branchCol.default) {
455
476
  // Skip if parent has the same default change
@@ -490,6 +511,30 @@ export function diffTables(ctx, main, branch) {
490
511
  }
491
512
  }
492
513
  }
514
+ // Serial-like defaults have to be cleared before ADD GENERATED AS IDENTITY,
515
+ // while mode-only flips stay in-place on an existing identity column.
516
+ if ((!mainCol.is_identity && branchCol.is_identity) ||
517
+ (mainCol.is_identity &&
518
+ branchCol.is_identity &&
519
+ mainCol.is_identity_always !== branchCol.is_identity_always)) {
520
+ // Skip if parent has the same identity change
521
+ if (!parentHasSameColumnPropertyChange(name, "identity")) {
522
+ if (!mainCol.is_identity && branchCol.is_identity) {
523
+ changes.push(new AlterTableAlterColumnAddIdentity({
524
+ table: branchTable,
525
+ column: branchCol,
526
+ }));
527
+ }
528
+ else if (mainCol.is_identity &&
529
+ branchCol.is_identity &&
530
+ mainCol.is_identity_always !== branchCol.is_identity_always) {
531
+ changes.push(new AlterTableAlterColumnSetGenerated({
532
+ table: branchTable,
533
+ column: branchCol,
534
+ }));
535
+ }
536
+ }
537
+ }
493
538
  // NOT NULL change
494
539
  if (mainCol.not_null !== branchCol.not_null) {
495
540
  // Skip if parent has the same NOT NULL change
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { TableLikeObject } from "../../base.model.ts";
2
3
  import type { Trigger } from "../trigger.model.ts";
3
4
  import { AlterTriggerChange } from "./trigger.base.ts";
@@ -25,5 +26,5 @@ export declare class ReplaceTrigger extends AlterTriggerChange {
25
26
  indexableObject?: TableLikeObject;
26
27
  });
27
28
  get requires(): `trigger:${string}`[];
28
- serialize(): string;
29
+ serialize(_options?: SerializeOptions): string;
29
30
  }
@@ -18,7 +18,7 @@ export class ReplaceTrigger extends AlterTriggerChange {
18
18
  get requires() {
19
19
  return [this.trigger.stableId];
20
20
  }
21
- serialize() {
21
+ serialize(_options) {
22
22
  if (this.trigger.isConstraintTrigger) {
23
23
  const dropChange = new DropTrigger({ trigger: this.trigger });
24
24
  const createChange = new CreateTrigger({
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { Trigger } from "../trigger.model.ts";
2
3
  import { CreateTriggerChange, DropTriggerChange } from "./trigger.base.ts";
3
4
  export type CommentTrigger = CreateCommentOnTrigger | DropCommentOnTrigger;
@@ -9,7 +10,7 @@ export declare class CreateCommentOnTrigger extends CreateTriggerChange {
9
10
  });
10
11
  get creates(): `comment:${string}`[];
11
12
  get requires(): `trigger:${string}`[];
12
- serialize(): string;
13
+ serialize(_options?: SerializeOptions): string;
13
14
  }
14
15
  export declare class DropCommentOnTrigger extends DropTriggerChange {
15
16
  readonly trigger: Trigger;
@@ -19,5 +20,5 @@ export declare class DropCommentOnTrigger extends DropTriggerChange {
19
20
  });
20
21
  get drops(): `comment:${string}`[];
21
22
  get requires(): (`comment:${string}` | `trigger:${string}`)[];
22
- serialize(): string;
23
+ serialize(_options?: SerializeOptions): string;
23
24
  }
@@ -14,7 +14,7 @@ export class CreateCommentOnTrigger extends CreateTriggerChange {
14
14
  get requires() {
15
15
  return [this.trigger.stableId];
16
16
  }
17
- serialize() {
17
+ serialize(_options) {
18
18
  return [
19
19
  "COMMENT ON TRIGGER",
20
20
  this.trigger.name,
@@ -39,7 +39,7 @@ export class DropCommentOnTrigger extends DropTriggerChange {
39
39
  get requires() {
40
40
  return [stableId.comment(this.trigger.stableId), this.trigger.stableId];
41
41
  }
42
- serialize() {
42
+ serialize(_options) {
43
43
  return [
44
44
  "COMMENT ON TRIGGER",
45
45
  this.trigger.name,
@@ -1,3 +1,4 @@
1
+ import type { SerializeOptions } from "../../../integrations/serialize/serialize.types.ts";
1
2
  import type { TableLikeObject } from "../../base.model.ts";
2
3
  import type { Trigger } from "../trigger.model.ts";
3
4
  import { CreateTriggerChange } from "./trigger.base.ts";
@@ -37,5 +38,5 @@ export declare class CreateTrigger extends CreateTriggerChange {
37
38
  });
38
39
  get creates(): `trigger:${string}`[];
39
40
  get requires(): string[];
40
- serialize(): string;
41
+ serialize(_options?: SerializeOptions): string;
41
42
  }