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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (567) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +149 -0
  3. package/dist/cli/app.d.ts +1 -0
  4. package/dist/cli/app.js +26 -0
  5. package/dist/cli/bin/cli.d.ts +2 -0
  6. package/dist/cli/bin/cli.js +7 -0
  7. package/dist/cli/commands/apply.d.ts +5 -0
  8. package/dist/cli/commands/apply.js +85 -0
  9. package/dist/cli/commands/plan.d.ts +5 -0
  10. package/dist/cli/commands/plan.js +137 -0
  11. package/dist/cli/commands/sync.d.ts +5 -0
  12. package/dist/cli/commands/sync.js +141 -0
  13. package/dist/cli/formatters/index.d.ts +4 -0
  14. package/dist/cli/formatters/index.js +4 -0
  15. package/dist/cli/formatters/tree/tree-builder.d.ts +10 -0
  16. package/dist/cli/formatters/tree/tree-builder.js +333 -0
  17. package/dist/cli/formatters/tree/tree-renderer.d.ts +45 -0
  18. package/dist/cli/formatters/tree/tree-renderer.js +303 -0
  19. package/dist/cli/formatters/tree/tree.d.ts +8 -0
  20. package/dist/cli/formatters/tree/tree.js +161 -0
  21. package/dist/cli/utils/integrations.d.ts +13 -0
  22. package/dist/cli/utils/integrations.js +35 -0
  23. package/dist/cli/utils.d.ts +64 -0
  24. package/dist/cli/utils.js +160 -0
  25. package/dist/core/catalog.diff.d.ts +5 -0
  26. package/dist/core/catalog.diff.js +147 -0
  27. package/dist/core/catalog.model.d.ts +93 -0
  28. package/dist/core/catalog.model.js +254 -0
  29. package/dist/core/change.types.d.ts +22 -0
  30. package/dist/core/change.types.js +1 -0
  31. package/dist/core/context.d.ts +11 -0
  32. package/dist/core/context.js +12 -0
  33. package/dist/core/depend.d.ts +31 -0
  34. package/dist/core/depend.js +1833 -0
  35. package/dist/core/expand-replace-dependencies.d.ts +14 -0
  36. package/dist/core/expand-replace-dependencies.js +280 -0
  37. package/dist/core/fingerprint.d.ts +23 -0
  38. package/dist/core/fingerprint.js +174 -0
  39. package/dist/core/index.d.ts +15 -0
  40. package/dist/core/index.js +14 -0
  41. package/dist/core/integrations/filter/dsl.d.ts +97 -0
  42. package/dist/core/integrations/filter/dsl.js +107 -0
  43. package/dist/core/integrations/filter/extractors.d.ts +12 -0
  44. package/dist/core/integrations/filter/extractors.js +136 -0
  45. package/dist/core/integrations/integration-dsl.d.ts +22 -0
  46. package/dist/core/integrations/integration-dsl.js +6 -0
  47. package/dist/core/integrations/integration.types.d.ts +5 -0
  48. package/dist/core/integrations/integration.types.js +1 -0
  49. package/dist/core/integrations/serialize/dsl.d.ts +58 -0
  50. package/dist/core/integrations/serialize/dsl.js +42 -0
  51. package/dist/core/main.d.ts +5 -0
  52. package/dist/core/main.js +44 -0
  53. package/dist/core/objects/aggregate/aggregate.diff.d.ts +10 -0
  54. package/dist/core/objects/aggregate/aggregate.diff.js +186 -0
  55. package/dist/core/objects/aggregate/aggregate.model.d.ts +174 -0
  56. package/dist/core/objects/aggregate/aggregate.model.js +297 -0
  57. package/dist/core/objects/aggregate/changes/aggregate.alter.d.ts +19 -0
  58. package/dist/core/objects/aggregate/changes/aggregate.alter.js +25 -0
  59. package/dist/core/objects/aggregate/changes/aggregate.base.d.ts +17 -0
  60. package/dist/core/objects/aggregate/changes/aggregate.base.js +13 -0
  61. package/dist/core/objects/aggregate/changes/aggregate.comment.d.ts +23 -0
  62. package/dist/core/objects/aggregate/changes/aggregate.comment.js +44 -0
  63. package/dist/core/objects/aggregate/changes/aggregate.create.d.ts +19 -0
  64. package/dist/core/objects/aggregate/changes/aggregate.create.js +228 -0
  65. package/dist/core/objects/aggregate/changes/aggregate.drop.d.ts +17 -0
  66. package/dist/core/objects/aggregate/changes/aggregate.drop.js +26 -0
  67. package/dist/core/objects/aggregate/changes/aggregate.privilege.d.ts +62 -0
  68. package/dist/core/objects/aggregate/changes/aggregate.privilege.js +102 -0
  69. package/dist/core/objects/aggregate/changes/aggregate.types.d.ts +6 -0
  70. package/dist/core/objects/aggregate/changes/aggregate.types.js +1 -0
  71. package/dist/core/objects/base.change.d.ts +46 -0
  72. package/dist/core/objects/base.change.js +38 -0
  73. package/dist/core/objects/base.default-privileges.d.ts +29 -0
  74. package/dist/core/objects/base.default-privileges.js +167 -0
  75. package/dist/core/objects/base.diff.d.ts +6 -0
  76. package/dist/core/objects/base.diff.js +12 -0
  77. package/dist/core/objects/base.model.d.ts +74 -0
  78. package/dist/core/objects/base.model.js +47 -0
  79. package/dist/core/objects/base.privilege-diff.d.ts +54 -0
  80. package/dist/core/objects/base.privilege-diff.js +216 -0
  81. package/dist/core/objects/base.privilege.d.ts +27 -0
  82. package/dist/core/objects/base.privilege.js +169 -0
  83. package/dist/core/objects/collation/changes/collation.alter.d.ts +45 -0
  84. package/dist/core/objects/collation/changes/collation.alter.js +52 -0
  85. package/dist/core/objects/collation/changes/collation.base.d.ts +17 -0
  86. package/dist/core/objects/collation/changes/collation.base.js +13 -0
  87. package/dist/core/objects/collation/changes/collation.comment.d.ts +26 -0
  88. package/dist/core/objects/collation/changes/collation.comment.js +50 -0
  89. package/dist/core/objects/collation/changes/collation.create.d.ts +32 -0
  90. package/dist/core/objects/collation/changes/collation.create.js +86 -0
  91. package/dist/core/objects/collation/changes/collation.drop.d.ts +22 -0
  92. package/dist/core/objects/collation/changes/collation.drop.js +31 -0
  93. package/dist/core/objects/collation/changes/collation.types.d.ts +5 -0
  94. package/dist/core/objects/collation/changes/collation.types.js +1 -0
  95. package/dist/core/objects/collation/collation.diff.d.ts +13 -0
  96. package/dist/core/objects/collation/collation.diff.js +85 -0
  97. package/dist/core/objects/collation/collation.model.d.ts +67 -0
  98. package/dist/core/objects/collation/collation.model.js +207 -0
  99. package/dist/core/objects/domain/changes/domain.alter.d.ts +143 -0
  100. package/dist/core/objects/domain/changes/domain.alter.js +191 -0
  101. package/dist/core/objects/domain/changes/domain.base.d.ts +17 -0
  102. package/dist/core/objects/domain/changes/domain.base.js +13 -0
  103. package/dist/core/objects/domain/changes/domain.comment.d.ts +25 -0
  104. package/dist/core/objects/domain/changes/domain.comment.js +47 -0
  105. package/dist/core/objects/domain/changes/domain.create.d.ts +30 -0
  106. package/dist/core/objects/domain/changes/domain.create.js +92 -0
  107. package/dist/core/objects/domain/changes/domain.drop.d.ts +22 -0
  108. package/dist/core/objects/domain/changes/domain.drop.js +28 -0
  109. package/dist/core/objects/domain/changes/domain.privilege.d.ts +97 -0
  110. package/dist/core/objects/domain/changes/domain.privilege.js +127 -0
  111. package/dist/core/objects/domain/changes/domain.types.d.ts +6 -0
  112. package/dist/core/objects/domain/changes/domain.types.js +1 -0
  113. package/dist/core/objects/domain/domain.diff.d.ts +18 -0
  114. package/dist/core/objects/domain/domain.diff.js +244 -0
  115. package/dist/core/objects/domain/domain.model.d.ts +103 -0
  116. package/dist/core/objects/domain/domain.model.js +172 -0
  117. package/dist/core/objects/event-trigger/changes/event-trigger.alter.d.ts +44 -0
  118. package/dist/core/objects/event-trigger/changes/event-trigger.alter.js +51 -0
  119. package/dist/core/objects/event-trigger/changes/event-trigger.base.d.ts +17 -0
  120. package/dist/core/objects/event-trigger/changes/event-trigger.base.js +13 -0
  121. package/dist/core/objects/event-trigger/changes/event-trigger.comment.d.ts +23 -0
  122. package/dist/core/objects/event-trigger/changes/event-trigger.comment.js +46 -0
  123. package/dist/core/objects/event-trigger/changes/event-trigger.create.d.ts +25 -0
  124. package/dist/core/objects/event-trigger/changes/event-trigger.create.js +55 -0
  125. package/dist/core/objects/event-trigger/changes/event-trigger.drop.d.ts +22 -0
  126. package/dist/core/objects/event-trigger/changes/event-trigger.drop.js +28 -0
  127. package/dist/core/objects/event-trigger/changes/event-trigger.types.d.ts +5 -0
  128. package/dist/core/objects/event-trigger/changes/event-trigger.types.js +1 -0
  129. package/dist/core/objects/event-trigger/event-trigger.diff.d.ts +13 -0
  130. package/dist/core/objects/event-trigger/event-trigger.diff.js +81 -0
  131. package/dist/core/objects/event-trigger/event-trigger.model.d.ts +45 -0
  132. package/dist/core/objects/event-trigger/event-trigger.model.js +89 -0
  133. package/dist/core/objects/extension/changes/extension.alter.d.ts +44 -0
  134. package/dist/core/objects/extension/changes/extension.alter.js +51 -0
  135. package/dist/core/objects/extension/changes/extension.base.d.ts +17 -0
  136. package/dist/core/objects/extension/changes/extension.base.js +13 -0
  137. package/dist/core/objects/extension/changes/extension.comment.d.ts +26 -0
  138. package/dist/core/objects/extension/changes/extension.comment.js +46 -0
  139. package/dist/core/objects/extension/changes/extension.create.d.ts +25 -0
  140. package/dist/core/objects/extension/changes/extension.create.js +49 -0
  141. package/dist/core/objects/extension/changes/extension.drop.d.ts +22 -0
  142. package/dist/core/objects/extension/changes/extension.drop.js +28 -0
  143. package/dist/core/objects/extension/changes/extension.types.d.ts +5 -0
  144. package/dist/core/objects/extension/changes/extension.types.js +1 -0
  145. package/dist/core/objects/extension/extension.diff.d.ts +10 -0
  146. package/dist/core/objects/extension/extension.diff.js +65 -0
  147. package/dist/core/objects/extension/extension.model.d.ts +52 -0
  148. package/dist/core/objects/extension/extension.model.js +268 -0
  149. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.alter.d.ts +51 -0
  150. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.alter.js +61 -0
  151. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.base.d.ts +17 -0
  152. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.base.js +13 -0
  153. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.comment.d.ts +26 -0
  154. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.comment.js +50 -0
  155. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.create.d.ts +25 -0
  156. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.create.js +78 -0
  157. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.drop.d.ts +22 -0
  158. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.drop.js +28 -0
  159. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.privilege.d.ts +97 -0
  160. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.privilege.js +123 -0
  161. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.types.d.ts +6 -0
  162. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/changes/foreign-data-wrapper.types.js +1 -0
  163. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/foreign-data-wrapper.diff.d.ts +18 -0
  164. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/foreign-data-wrapper.diff.js +221 -0
  165. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/foreign-data-wrapper.model.d.ts +59 -0
  166. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper/foreign-data-wrapper.model.js +128 -0
  167. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper.types.d.ts +5 -0
  168. package/dist/core/objects/foreign-data-wrapper/foreign-data-wrapper.types.js +1 -0
  169. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.alter.d.ts +163 -0
  170. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.alter.js +248 -0
  171. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.base.d.ts +17 -0
  172. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.base.js +13 -0
  173. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.comment.d.ts +26 -0
  174. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.comment.js +50 -0
  175. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.create.d.ts +25 -0
  176. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.create.js +64 -0
  177. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.drop.d.ts +22 -0
  178. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.drop.js +31 -0
  179. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.privilege.d.ts +97 -0
  180. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.privilege.js +129 -0
  181. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.types.d.ts +6 -0
  182. package/dist/core/objects/foreign-data-wrapper/foreign-table/changes/foreign-table.types.js +1 -0
  183. package/dist/core/objects/foreign-data-wrapper/foreign-table/foreign-table.diff.d.ts +18 -0
  184. package/dist/core/objects/foreign-data-wrapper/foreign-table/foreign-table.diff.js +268 -0
  185. package/dist/core/objects/foreign-data-wrapper/foreign-table/foreign-table.model.d.ts +117 -0
  186. package/dist/core/objects/foreign-data-wrapper/foreign-table/foreign-table.model.js +215 -0
  187. package/dist/core/objects/foreign-data-wrapper/server/changes/server.alter.d.ts +65 -0
  188. package/dist/core/objects/foreign-data-wrapper/server/changes/server.alter.js +84 -0
  189. package/dist/core/objects/foreign-data-wrapper/server/changes/server.base.d.ts +17 -0
  190. package/dist/core/objects/foreign-data-wrapper/server/changes/server.base.js +13 -0
  191. package/dist/core/objects/foreign-data-wrapper/server/changes/server.comment.d.ts +26 -0
  192. package/dist/core/objects/foreign-data-wrapper/server/changes/server.comment.js +43 -0
  193. package/dist/core/objects/foreign-data-wrapper/server/changes/server.create.d.ts +24 -0
  194. package/dist/core/objects/foreign-data-wrapper/server/changes/server.create.js +62 -0
  195. package/dist/core/objects/foreign-data-wrapper/server/changes/server.drop.d.ts +22 -0
  196. package/dist/core/objects/foreign-data-wrapper/server/changes/server.drop.js +28 -0
  197. package/dist/core/objects/foreign-data-wrapper/server/changes/server.privilege.d.ts +97 -0
  198. package/dist/core/objects/foreign-data-wrapper/server/changes/server.privilege.js +123 -0
  199. package/dist/core/objects/foreign-data-wrapper/server/changes/server.types.d.ts +6 -0
  200. package/dist/core/objects/foreign-data-wrapper/server/changes/server.types.js +1 -0
  201. package/dist/core/objects/foreign-data-wrapper/server/server.diff.d.ts +18 -0
  202. package/dist/core/objects/foreign-data-wrapper/server/server.diff.js +209 -0
  203. package/dist/core/objects/foreign-data-wrapper/server/server.model.d.ts +62 -0
  204. package/dist/core/objects/foreign-data-wrapper/server/server.model.js +118 -0
  205. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.alter.d.ts +37 -0
  206. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.alter.js +38 -0
  207. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.base.d.ts +17 -0
  208. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.base.js +13 -0
  209. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.create.d.ts +24 -0
  210. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.create.js +52 -0
  211. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.drop.d.ts +23 -0
  212. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.drop.js +34 -0
  213. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.types.d.ts +4 -0
  214. package/dist/core/objects/foreign-data-wrapper/user-mapping/changes/user-mapping.types.js +1 -0
  215. package/dist/core/objects/foreign-data-wrapper/user-mapping/user-mapping.diff.d.ts +10 -0
  216. package/dist/core/objects/foreign-data-wrapper/user-mapping/user-mapping.diff.js +77 -0
  217. package/dist/core/objects/foreign-data-wrapper/user-mapping/user-mapping.model.d.ts +36 -0
  218. package/dist/core/objects/foreign-data-wrapper/user-mapping/user-mapping.model.js +85 -0
  219. package/dist/core/objects/index/changes/index.alter.d.ts +76 -0
  220. package/dist/core/objects/index/changes/index.alter.js +94 -0
  221. package/dist/core/objects/index/changes/index.base.d.ts +17 -0
  222. package/dist/core/objects/index/changes/index.base.js +13 -0
  223. package/dist/core/objects/index/changes/index.comment.d.ts +26 -0
  224. package/dist/core/objects/index/changes/index.comment.js +50 -0
  225. package/dist/core/objects/index/changes/index.create.d.ts +30 -0
  226. package/dist/core/objects/index/changes/index.create.js +53 -0
  227. package/dist/core/objects/index/changes/index.drop.d.ts +22 -0
  228. package/dist/core/objects/index/changes/index.drop.js +28 -0
  229. package/dist/core/objects/index/changes/index.types.d.ts +5 -0
  230. package/dist/core/objects/index/changes/index.types.js +1 -0
  231. package/dist/core/objects/index/changes/utils.d.ts +3 -0
  232. package/dist/core/objects/index/changes/utils.js +6 -0
  233. package/dist/core/objects/index/index.diff.d.ts +12 -0
  234. package/dist/core/objects/index/index.diff.js +182 -0
  235. package/dist/core/objects/index/index.model.d.ts +150 -0
  236. package/dist/core/objects/index/index.model.js +340 -0
  237. package/dist/core/objects/language/changes/language.alter.d.ts +32 -0
  238. package/dist/core/objects/language/changes/language.alter.js +30 -0
  239. package/dist/core/objects/language/changes/language.base.d.ts +17 -0
  240. package/dist/core/objects/language/changes/language.base.js +13 -0
  241. package/dist/core/objects/language/changes/language.comment.d.ts +26 -0
  242. package/dist/core/objects/language/changes/language.comment.js +45 -0
  243. package/dist/core/objects/language/changes/language.create.d.ts +25 -0
  244. package/dist/core/objects/language/changes/language.create.js +76 -0
  245. package/dist/core/objects/language/changes/language.drop.d.ts +22 -0
  246. package/dist/core/objects/language/changes/language.drop.js +31 -0
  247. package/dist/core/objects/language/changes/language.privilege.d.ts +97 -0
  248. package/dist/core/objects/language/changes/language.privilege.js +128 -0
  249. package/dist/core/objects/language/changes/language.types.d.ts +6 -0
  250. package/dist/core/objects/language/changes/language.types.js +1 -0
  251. package/dist/core/objects/language/language.diff.d.ts +15 -0
  252. package/dist/core/objects/language/language.diff.js +117 -0
  253. package/dist/core/objects/language/language.model.d.ts +62 -0
  254. package/dist/core/objects/language/language.model.js +128 -0
  255. package/dist/core/objects/materialized-view/changes/materialized-view.alter.d.ts +67 -0
  256. package/dist/core/objects/materialized-view/changes/materialized-view.alter.js +63 -0
  257. package/dist/core/objects/materialized-view/changes/materialized-view.base.d.ts +17 -0
  258. package/dist/core/objects/materialized-view/changes/materialized-view.base.js +13 -0
  259. package/dist/core/objects/materialized-view/changes/materialized-view.comment.d.ts +53 -0
  260. package/dist/core/objects/materialized-view/changes/materialized-view.comment.js +112 -0
  261. package/dist/core/objects/materialized-view/changes/materialized-view.create.d.ts +35 -0
  262. package/dist/core/objects/materialized-view/changes/materialized-view.create.js +71 -0
  263. package/dist/core/objects/materialized-view/changes/materialized-view.drop.d.ts +26 -0
  264. package/dist/core/objects/materialized-view/changes/materialized-view.drop.js +42 -0
  265. package/dist/core/objects/materialized-view/changes/materialized-view.privilege.d.ts +105 -0
  266. package/dist/core/objects/materialized-view/changes/materialized-view.privilege.js +151 -0
  267. package/dist/core/objects/materialized-view/changes/materialized-view.types.d.ts +6 -0
  268. package/dist/core/objects/materialized-view/changes/materialized-view.types.js +1 -0
  269. package/dist/core/objects/materialized-view/materialized-view.diff.d.ts +18 -0
  270. package/dist/core/objects/materialized-view/materialized-view.diff.js +335 -0
  271. package/dist/core/objects/materialized-view/materialized-view.model.d.ts +152 -0
  272. package/dist/core/objects/materialized-view/materialized-view.model.js +228 -0
  273. package/dist/core/objects/procedure/changes/procedure.alter.d.ts +143 -0
  274. package/dist/core/objects/procedure/changes/procedure.alter.js +207 -0
  275. package/dist/core/objects/procedure/changes/procedure.base.d.ts +17 -0
  276. package/dist/core/objects/procedure/changes/procedure.base.js +13 -0
  277. package/dist/core/objects/procedure/changes/procedure.comment.d.ts +26 -0
  278. package/dist/core/objects/procedure/changes/procedure.comment.js +52 -0
  279. package/dist/core/objects/procedure/changes/procedure.create.d.ts +42 -0
  280. package/dist/core/objects/procedure/changes/procedure.create.js +77 -0
  281. package/dist/core/objects/procedure/changes/procedure.drop.d.ts +23 -0
  282. package/dist/core/objects/procedure/changes/procedure.drop.js +37 -0
  283. package/dist/core/objects/procedure/changes/procedure.privilege.d.ts +98 -0
  284. package/dist/core/objects/procedure/changes/procedure.privilege.js +144 -0
  285. package/dist/core/objects/procedure/changes/procedure.types.d.ts +6 -0
  286. package/dist/core/objects/procedure/changes/procedure.types.js +1 -0
  287. package/dist/core/objects/procedure/procedure.diff.d.ts +18 -0
  288. package/dist/core/objects/procedure/procedure.diff.js +282 -0
  289. package/dist/core/objects/procedure/procedure.model.d.ts +132 -0
  290. package/dist/core/objects/procedure/procedure.model.js +244 -0
  291. package/dist/core/objects/procedure/utils.d.ts +14 -0
  292. package/dist/core/objects/procedure/utils.js +55 -0
  293. package/dist/core/objects/publication/changes/publication.alter.d.ts +88 -0
  294. package/dist/core/objects/publication/changes/publication.alter.js +176 -0
  295. package/dist/core/objects/publication/changes/publication.base.d.ts +17 -0
  296. package/dist/core/objects/publication/changes/publication.base.js +13 -0
  297. package/dist/core/objects/publication/changes/publication.comment.d.ts +23 -0
  298. package/dist/core/objects/publication/changes/publication.comment.js +46 -0
  299. package/dist/core/objects/publication/changes/publication.create.d.ts +17 -0
  300. package/dist/core/objects/publication/changes/publication.create.js +61 -0
  301. package/dist/core/objects/publication/changes/publication.drop.d.ts +17 -0
  302. package/dist/core/objects/publication/changes/publication.drop.js +23 -0
  303. package/dist/core/objects/publication/changes/publication.types.d.ts +5 -0
  304. package/dist/core/objects/publication/changes/publication.types.js +1 -0
  305. package/dist/core/objects/publication/publication.diff.d.ts +5 -0
  306. package/dist/core/objects/publication/publication.diff.js +161 -0
  307. package/dist/core/objects/publication/publication.model.d.ts +96 -0
  308. package/dist/core/objects/publication/publication.model.js +186 -0
  309. package/dist/core/objects/publication/utils.d.ts +5 -0
  310. package/dist/core/objects/publication/utils.js +45 -0
  311. package/dist/core/objects/rls-policy/changes/rls-policy.alter.d.ts +62 -0
  312. package/dist/core/objects/rls-policy/changes/rls-policy.alter.js +90 -0
  313. package/dist/core/objects/rls-policy/changes/rls-policy.base.d.ts +17 -0
  314. package/dist/core/objects/rls-policy/changes/rls-policy.base.js +13 -0
  315. package/dist/core/objects/rls-policy/changes/rls-policy.comment.d.ts +23 -0
  316. package/dist/core/objects/rls-policy/changes/rls-policy.comment.js +51 -0
  317. package/dist/core/objects/rls-policy/changes/rls-policy.create.d.ts +27 -0
  318. package/dist/core/objects/rls-policy/changes/rls-policy.create.js +79 -0
  319. package/dist/core/objects/rls-policy/changes/rls-policy.drop.d.ts +22 -0
  320. package/dist/core/objects/rls-policy/changes/rls-policy.drop.js +33 -0
  321. package/dist/core/objects/rls-policy/changes/rls-policy.types.d.ts +5 -0
  322. package/dist/core/objects/rls-policy/changes/rls-policy.types.js +1 -0
  323. package/dist/core/objects/rls-policy/rls-policy.diff.d.ts +10 -0
  324. package/dist/core/objects/rls-policy/rls-policy.diff.js +80 -0
  325. package/dist/core/objects/rls-policy/rls-policy.model.d.ts +52 -0
  326. package/dist/core/objects/rls-policy/rls-policy.model.js +127 -0
  327. package/dist/core/objects/role/changes/role.alter.d.ts +78 -0
  328. package/dist/core/objects/role/changes/role.alter.js +55 -0
  329. package/dist/core/objects/role/changes/role.base.d.ts +17 -0
  330. package/dist/core/objects/role/changes/role.base.js +13 -0
  331. package/dist/core/objects/role/changes/role.comment.d.ts +23 -0
  332. package/dist/core/objects/role/changes/role.comment.js +42 -0
  333. package/dist/core/objects/role/changes/role.create.d.ts +38 -0
  334. package/dist/core/objects/role/changes/role.create.js +83 -0
  335. package/dist/core/objects/role/changes/role.drop.d.ts +22 -0
  336. package/dist/core/objects/role/changes/role.drop.js +28 -0
  337. package/dist/core/objects/role/changes/role.privilege.d.ts +148 -0
  338. package/dist/core/objects/role/changes/role.privilege.js +283 -0
  339. package/dist/core/objects/role/changes/role.types.d.ts +6 -0
  340. package/dist/core/objects/role/changes/role.types.js +1 -0
  341. package/dist/core/objects/role/role.diff.d.ts +13 -0
  342. package/dist/core/objects/role/role.diff.js +386 -0
  343. package/dist/core/objects/role/role.model.d.ts +89 -0
  344. package/dist/core/objects/role/role.model.js +312 -0
  345. package/dist/core/objects/rule/changes/rule.alter.d.ts +22 -0
  346. package/dist/core/objects/rule/changes/rule.alter.js +58 -0
  347. package/dist/core/objects/rule/changes/rule.base.d.ts +17 -0
  348. package/dist/core/objects/rule/changes/rule.base.js +13 -0
  349. package/dist/core/objects/rule/changes/rule.comment.d.ts +22 -0
  350. package/dist/core/objects/rule/changes/rule.comment.js +51 -0
  351. package/dist/core/objects/rule/changes/rule.create.d.ts +14 -0
  352. package/dist/core/objects/rule/changes/rule.create.js +28 -0
  353. package/dist/core/objects/rule/changes/rule.drop.d.ts +12 -0
  354. package/dist/core/objects/rule/changes/rule.drop.js +23 -0
  355. package/dist/core/objects/rule/changes/rule.types.d.ts +5 -0
  356. package/dist/core/objects/rule/changes/rule.types.js +1 -0
  357. package/dist/core/objects/rule/rule.diff.d.ts +3 -0
  358. package/dist/core/objects/rule/rule.diff.js +53 -0
  359. package/dist/core/objects/rule/rule.model.d.ts +72 -0
  360. package/dist/core/objects/rule/rule.model.js +156 -0
  361. package/dist/core/objects/schema/changes/schema.alter.d.ts +32 -0
  362. package/dist/core/objects/schema/changes/schema.alter.js +25 -0
  363. package/dist/core/objects/schema/changes/schema.base.d.ts +17 -0
  364. package/dist/core/objects/schema/changes/schema.base.js +13 -0
  365. package/dist/core/objects/schema/changes/schema.comment.d.ts +23 -0
  366. package/dist/core/objects/schema/changes/schema.comment.js +43 -0
  367. package/dist/core/objects/schema/changes/schema.create.d.ts +27 -0
  368. package/dist/core/objects/schema/changes/schema.create.js +38 -0
  369. package/dist/core/objects/schema/changes/schema.drop.d.ts +22 -0
  370. package/dist/core/objects/schema/changes/schema.drop.js +28 -0
  371. package/dist/core/objects/schema/changes/schema.privilege.d.ts +97 -0
  372. package/dist/core/objects/schema/changes/schema.privilege.js +131 -0
  373. package/dist/core/objects/schema/changes/schema.types.d.ts +6 -0
  374. package/dist/core/objects/schema/changes/schema.types.js +1 -0
  375. package/dist/core/objects/schema/schema.diff.d.ts +18 -0
  376. package/dist/core/objects/schema/schema.diff.js +142 -0
  377. package/dist/core/objects/schema/schema.model.d.ts +47 -0
  378. package/dist/core/objects/schema/schema.model.js +91 -0
  379. package/dist/core/objects/sequence/changes/sequence.alter.d.ts +59 -0
  380. package/dist/core/objects/sequence/changes/sequence.alter.js +75 -0
  381. package/dist/core/objects/sequence/changes/sequence.base.d.ts +17 -0
  382. package/dist/core/objects/sequence/changes/sequence.base.js +13 -0
  383. package/dist/core/objects/sequence/changes/sequence.comment.d.ts +23 -0
  384. package/dist/core/objects/sequence/changes/sequence.comment.js +47 -0
  385. package/dist/core/objects/sequence/changes/sequence.create.d.ts +25 -0
  386. package/dist/core/objects/sequence/changes/sequence.create.js +78 -0
  387. package/dist/core/objects/sequence/changes/sequence.drop.d.ts +22 -0
  388. package/dist/core/objects/sequence/changes/sequence.drop.js +31 -0
  389. package/dist/core/objects/sequence/changes/sequence.privilege.d.ts +101 -0
  390. package/dist/core/objects/sequence/changes/sequence.privilege.js +135 -0
  391. package/dist/core/objects/sequence/changes/sequence.types.d.ts +6 -0
  392. package/dist/core/objects/sequence/changes/sequence.types.js +1 -0
  393. package/dist/core/objects/sequence/sequence.diff.d.ts +20 -0
  394. package/dist/core/objects/sequence/sequence.diff.js +258 -0
  395. package/dist/core/objects/sequence/sequence.model.d.ts +76 -0
  396. package/dist/core/objects/sequence/sequence.model.js +169 -0
  397. package/dist/core/objects/subscription/changes/subscription.alter.d.ts +56 -0
  398. package/dist/core/objects/subscription/changes/subscription.alter.js +82 -0
  399. package/dist/core/objects/subscription/changes/subscription.base.d.ts +17 -0
  400. package/dist/core/objects/subscription/changes/subscription.base.js +13 -0
  401. package/dist/core/objects/subscription/changes/subscription.comment.d.ts +23 -0
  402. package/dist/core/objects/subscription/changes/subscription.comment.js +46 -0
  403. package/dist/core/objects/subscription/changes/subscription.create.d.ts +12 -0
  404. package/dist/core/objects/subscription/changes/subscription.create.js +52 -0
  405. package/dist/core/objects/subscription/changes/subscription.drop.d.ts +11 -0
  406. package/dist/core/objects/subscription/changes/subscription.drop.js +15 -0
  407. package/dist/core/objects/subscription/changes/subscription.types.d.ts +5 -0
  408. package/dist/core/objects/subscription/changes/subscription.types.js +1 -0
  409. package/dist/core/objects/subscription/subscription.diff.d.ts +5 -0
  410. package/dist/core/objects/subscription/subscription.diff.js +167 -0
  411. package/dist/core/objects/subscription/subscription.model.d.ts +80 -0
  412. package/dist/core/objects/subscription/subscription.model.js +166 -0
  413. package/dist/core/objects/subscription/utils.d.ts +37 -0
  414. package/dist/core/objects/subscription/utils.js +112 -0
  415. package/dist/core/objects/table/changes/table.alter.d.ts +357 -0
  416. package/dist/core/objects/table/changes/table.alter.js +607 -0
  417. package/dist/core/objects/table/changes/table.base.d.ts +17 -0
  418. package/dist/core/objects/table/changes/table.base.js +13 -0
  419. package/dist/core/objects/table/changes/table.comment.d.ts +106 -0
  420. package/dist/core/objects/table/changes/table.comment.js +175 -0
  421. package/dist/core/objects/table/changes/table.create.d.ts +33 -0
  422. package/dist/core/objects/table/changes/table.create.js +145 -0
  423. package/dist/core/objects/table/changes/table.drop.d.ts +22 -0
  424. package/dist/core/objects/table/changes/table.drop.js +35 -0
  425. package/dist/core/objects/table/changes/table.privilege.d.ts +107 -0
  426. package/dist/core/objects/table/changes/table.privilege.js +150 -0
  427. package/dist/core/objects/table/changes/table.types.d.ts +6 -0
  428. package/dist/core/objects/table/changes/table.types.js +1 -0
  429. package/dist/core/objects/table/table.diff.d.ts +18 -0
  430. package/dist/core/objects/table/table.diff.js +668 -0
  431. package/dist/core/objects/table/table.model.d.ts +341 -0
  432. package/dist/core/objects/table/table.model.js +426 -0
  433. package/dist/core/objects/trigger/changes/trigger.alter.d.ts +29 -0
  434. package/dist/core/objects/trigger/changes/trigger.alter.js +27 -0
  435. package/dist/core/objects/trigger/changes/trigger.base.d.ts +17 -0
  436. package/dist/core/objects/trigger/changes/trigger.base.js +13 -0
  437. package/dist/core/objects/trigger/changes/trigger.comment.d.ts +23 -0
  438. package/dist/core/objects/trigger/changes/trigger.comment.js +51 -0
  439. package/dist/core/objects/trigger/changes/trigger.create.d.ts +41 -0
  440. package/dist/core/objects/trigger/changes/trigger.create.js +61 -0
  441. package/dist/core/objects/trigger/changes/trigger.drop.d.ts +22 -0
  442. package/dist/core/objects/trigger/changes/trigger.drop.js +33 -0
  443. package/dist/core/objects/trigger/changes/trigger.types.d.ts +5 -0
  444. package/dist/core/objects/trigger/changes/trigger.types.js +1 -0
  445. package/dist/core/objects/trigger/trigger.diff.d.ts +11 -0
  446. package/dist/core/objects/trigger/trigger.diff.js +84 -0
  447. package/dist/core/objects/trigger/trigger.model.d.ts +92 -0
  448. package/dist/core/objects/trigger/trigger.model.js +235 -0
  449. package/dist/core/objects/type/composite-type/changes/composite-type.alter.d.ts +81 -0
  450. package/dist/core/objects/type/composite-type/changes/composite-type.alter.js +123 -0
  451. package/dist/core/objects/type/composite-type/changes/composite-type.base.d.ts +17 -0
  452. package/dist/core/objects/type/composite-type/changes/composite-type.base.js +13 -0
  453. package/dist/core/objects/type/composite-type/changes/composite-type.comment.d.ts +53 -0
  454. package/dist/core/objects/type/composite-type/changes/composite-type.comment.js +108 -0
  455. package/dist/core/objects/type/composite-type/changes/composite-type.create.d.ts +23 -0
  456. package/dist/core/objects/type/composite-type/changes/composite-type.create.js +72 -0
  457. package/dist/core/objects/type/composite-type/changes/composite-type.drop.d.ts +22 -0
  458. package/dist/core/objects/type/composite-type/changes/composite-type.drop.js +31 -0
  459. package/dist/core/objects/type/composite-type/changes/composite-type.privilege.d.ts +97 -0
  460. package/dist/core/objects/type/composite-type/changes/composite-type.privilege.js +131 -0
  461. package/dist/core/objects/type/composite-type/changes/composite-type.types.d.ts +6 -0
  462. package/dist/core/objects/type/composite-type/changes/composite-type.types.js +1 -0
  463. package/dist/core/objects/type/composite-type/composite-type.diff.d.ts +18 -0
  464. package/dist/core/objects/type/composite-type/composite-type.diff.js +250 -0
  465. package/dist/core/objects/type/composite-type/composite-type.model.d.ts +148 -0
  466. package/dist/core/objects/type/composite-type/composite-type.model.js +223 -0
  467. package/dist/core/objects/type/enum/changes/enum.alter.d.ts +52 -0
  468. package/dist/core/objects/type/enum/changes/enum.alter.js +60 -0
  469. package/dist/core/objects/type/enum/changes/enum.base.d.ts +17 -0
  470. package/dist/core/objects/type/enum/changes/enum.base.js +13 -0
  471. package/dist/core/objects/type/enum/changes/enum.comment.d.ts +26 -0
  472. package/dist/core/objects/type/enum/changes/enum.comment.js +47 -0
  473. package/dist/core/objects/type/enum/changes/enum.create.d.ts +22 -0
  474. package/dist/core/objects/type/enum/changes/enum.create.js +43 -0
  475. package/dist/core/objects/type/enum/changes/enum.drop.d.ts +22 -0
  476. package/dist/core/objects/type/enum/changes/enum.drop.js +28 -0
  477. package/dist/core/objects/type/enum/changes/enum.privilege.d.ts +97 -0
  478. package/dist/core/objects/type/enum/changes/enum.privilege.js +131 -0
  479. package/dist/core/objects/type/enum/changes/enum.types.d.ts +6 -0
  480. package/dist/core/objects/type/enum/changes/enum.types.js +1 -0
  481. package/dist/core/objects/type/enum/enum.diff.d.ts +18 -0
  482. package/dist/core/objects/type/enum/enum.diff.js +268 -0
  483. package/dist/core/objects/type/enum/enum.model.d.ts +66 -0
  484. package/dist/core/objects/type/enum/enum.model.js +154 -0
  485. package/dist/core/objects/type/range/changes/range.alter.d.ts +33 -0
  486. package/dist/core/objects/type/range/changes/range.alter.js +30 -0
  487. package/dist/core/objects/type/range/changes/range.base.d.ts +17 -0
  488. package/dist/core/objects/type/range/changes/range.base.js +13 -0
  489. package/dist/core/objects/type/range/changes/range.comment.d.ts +26 -0
  490. package/dist/core/objects/type/range/changes/range.comment.js +47 -0
  491. package/dist/core/objects/type/range/changes/range.create.d.ts +31 -0
  492. package/dist/core/objects/type/range/changes/range.create.js +113 -0
  493. package/dist/core/objects/type/range/changes/range.drop.d.ts +22 -0
  494. package/dist/core/objects/type/range/changes/range.drop.js +28 -0
  495. package/dist/core/objects/type/range/changes/range.privilege.d.ts +97 -0
  496. package/dist/core/objects/type/range/changes/range.privilege.js +131 -0
  497. package/dist/core/objects/type/range/changes/range.types.d.ts +6 -0
  498. package/dist/core/objects/type/range/changes/range.types.js +1 -0
  499. package/dist/core/objects/type/range/range.diff.d.ts +18 -0
  500. package/dist/core/objects/type/range/range.diff.js +172 -0
  501. package/dist/core/objects/type/range/range.model.d.ts +81 -0
  502. package/dist/core/objects/type/range/range.model.js +165 -0
  503. package/dist/core/objects/type/type.types.d.ts +4 -0
  504. package/dist/core/objects/type/type.types.js +1 -0
  505. package/dist/core/objects/utils.d.ts +57 -0
  506. package/dist/core/objects/utils.js +137 -0
  507. package/dist/core/objects/view/changes/view.alter.d.ts +62 -0
  508. package/dist/core/objects/view/changes/view.alter.js +75 -0
  509. package/dist/core/objects/view/changes/view.base.d.ts +17 -0
  510. package/dist/core/objects/view/changes/view.base.js +13 -0
  511. package/dist/core/objects/view/changes/view.comment.d.ts +23 -0
  512. package/dist/core/objects/view/changes/view.comment.js +46 -0
  513. package/dist/core/objects/view/changes/view.create.d.ts +27 -0
  514. package/dist/core/objects/view/changes/view.create.js +57 -0
  515. package/dist/core/objects/view/changes/view.drop.d.ts +17 -0
  516. package/dist/core/objects/view/changes/view.drop.js +30 -0
  517. package/dist/core/objects/view/changes/view.privilege.d.ts +107 -0
  518. package/dist/core/objects/view/changes/view.privilege.js +150 -0
  519. package/dist/core/objects/view/changes/view.types.d.ts +6 -0
  520. package/dist/core/objects/view/changes/view.types.js +1 -0
  521. package/dist/core/objects/view/view.diff.d.ts +18 -0
  522. package/dist/core/objects/view/view.diff.js +270 -0
  523. package/dist/core/objects/view/view.model.d.ts +152 -0
  524. package/dist/core/objects/view/view.model.js +250 -0
  525. package/dist/core/plan/apply.d.ts +33 -0
  526. package/dist/core/plan/apply.js +112 -0
  527. package/dist/core/plan/create.d.ts +22 -0
  528. package/dist/core/plan/create.js +228 -0
  529. package/dist/core/plan/hierarchy.d.ts +19 -0
  530. package/dist/core/plan/hierarchy.js +488 -0
  531. package/dist/core/plan/index.d.ts +19 -0
  532. package/dist/core/plan/index.js +21 -0
  533. package/dist/core/plan/io.d.ts +12 -0
  534. package/dist/core/plan/io.js +17 -0
  535. package/dist/core/plan/risk.d.ts +10 -0
  536. package/dist/core/plan/risk.js +38 -0
  537. package/dist/core/plan/serialize.d.ts +26 -0
  538. package/dist/core/plan/serialize.js +176 -0
  539. package/dist/core/plan/statements.d.ts +8 -0
  540. package/dist/core/plan/statements.js +13 -0
  541. package/dist/core/plan/types.d.ts +153 -0
  542. package/dist/core/plan/types.js +32 -0
  543. package/dist/core/postgres-config.d.ts +8 -0
  544. package/dist/core/postgres-config.js +46 -0
  545. package/dist/core/sort/custom-constraints.d.ts +9 -0
  546. package/dist/core/sort/custom-constraints.js +133 -0
  547. package/dist/core/sort/debug-visualization.d.ts +8 -0
  548. package/dist/core/sort/debug-visualization.js +145 -0
  549. package/dist/core/sort/dependency-filter.d.ts +19 -0
  550. package/dist/core/sort/dependency-filter.js +152 -0
  551. package/dist/core/sort/graph-builder.d.ts +37 -0
  552. package/dist/core/sort/graph-builder.js +172 -0
  553. package/dist/core/sort/graph-utils.d.ts +14 -0
  554. package/dist/core/sort/graph-utils.js +41 -0
  555. package/dist/core/sort/logical-sort.d.ts +26 -0
  556. package/dist/core/sort/logical-sort.js +532 -0
  557. package/dist/core/sort/sort-changes.d.ts +28 -0
  558. package/dist/core/sort/sort-changes.js +147 -0
  559. package/dist/core/sort/topological-sort.d.ts +20 -0
  560. package/dist/core/sort/topological-sort.js +138 -0
  561. package/dist/core/sort/types.d.ts +102 -0
  562. package/dist/core/sort/types.js +1 -0
  563. package/dist/core/sort/utils.d.ts +23 -0
  564. package/dist/core/sort/utils.js +51 -0
  565. package/dist/index.d.ts +1 -0
  566. package/dist/index.js +1 -0
  567. package/package.json +58 -12
@@ -0,0 +1,67 @@
1
+ import type { Sql } from "postgres";
2
+ import z from "zod";
3
+ import { BasePgModel } from "../base.model.ts";
4
+ /**
5
+ * All properties exposed by CREATE COLLATION statement are included in diff output.
6
+ * https://www.postgresql.org/docs/current/sql-createcollation.html
7
+ *
8
+ * ALTER COLLATION statement can only be generated for a subset of properties:
9
+ * - version, name, owner, schema
10
+ * https://www.postgresql.org/docs/current/sql-altercollation.html
11
+ *
12
+ * Other properties require dropping and creating a new collation.
13
+ */
14
+ declare const collationPropsSchema: z.ZodObject<{
15
+ schema: z.ZodString;
16
+ name: z.ZodString;
17
+ provider: z.ZodEnum<{
18
+ i: "i";
19
+ b: "b";
20
+ d: "d";
21
+ c: "c";
22
+ }>;
23
+ is_deterministic: z.ZodBoolean;
24
+ encoding: z.ZodNumber;
25
+ collate: z.ZodString;
26
+ ctype: z.ZodString;
27
+ locale: z.ZodNullable<z.ZodString>;
28
+ icu_rules: z.ZodNullable<z.ZodString>;
29
+ version: z.ZodNullable<z.ZodString>;
30
+ owner: z.ZodString;
31
+ comment: z.ZodNullable<z.ZodString>;
32
+ }, z.z.core.$strip>;
33
+ export type CollationProps = z.infer<typeof collationPropsSchema>;
34
+ export declare class Collation extends BasePgModel {
35
+ readonly schema: CollationProps["schema"];
36
+ readonly name: CollationProps["name"];
37
+ readonly provider: CollationProps["provider"];
38
+ readonly is_deterministic: CollationProps["is_deterministic"];
39
+ readonly encoding: CollationProps["encoding"];
40
+ readonly collate: CollationProps["collate"];
41
+ readonly ctype: CollationProps["ctype"];
42
+ readonly locale: CollationProps["locale"];
43
+ readonly icu_rules: CollationProps["icu_rules"];
44
+ readonly version: CollationProps["version"];
45
+ readonly owner: CollationProps["owner"];
46
+ readonly comment: CollationProps["comment"];
47
+ constructor(props: CollationProps);
48
+ get stableId(): `collation:${string}`;
49
+ get identityFields(): {
50
+ schema: string;
51
+ name: string;
52
+ };
53
+ get dataFields(): {
54
+ provider: "i" | "b" | "d" | "c";
55
+ is_deterministic: boolean;
56
+ encoding: number;
57
+ collate: string;
58
+ ctype: string;
59
+ locale: string | null;
60
+ icu_rules: string | null;
61
+ version: string | null;
62
+ owner: string;
63
+ comment: string | null;
64
+ };
65
+ }
66
+ export declare function extractCollations(sql: Sql): Promise<Collation[]>;
67
+ export {};
@@ -0,0 +1,207 @@
1
+ import z from "zod";
2
+ import { extractVersion } from "../../context.js";
3
+ import { BasePgModel } from "../base.model.js";
4
+ /**
5
+ * Collation provider codes as stored in pg_collation.collprovider
6
+ */
7
+ const CollationProviderSchema = z.enum([
8
+ "d", // database default provider (omit PROVIDER clause)
9
+ "b", // builtin
10
+ "c", // libc
11
+ "i", // icu
12
+ ]);
13
+ /**
14
+ * All properties exposed by CREATE COLLATION statement are included in diff output.
15
+ * https://www.postgresql.org/docs/current/sql-createcollation.html
16
+ *
17
+ * ALTER COLLATION statement can only be generated for a subset of properties:
18
+ * - version, name, owner, schema
19
+ * https://www.postgresql.org/docs/current/sql-altercollation.html
20
+ *
21
+ * Other properties require dropping and creating a new collation.
22
+ */
23
+ const collationPropsSchema = z.object({
24
+ schema: z.string(),
25
+ name: z.string(),
26
+ provider: CollationProviderSchema,
27
+ is_deterministic: z.boolean(),
28
+ encoding: z.number(),
29
+ collate: z.string(),
30
+ ctype: z.string(),
31
+ locale: z.string().nullable(),
32
+ icu_rules: z.string().nullable(),
33
+ version: z.string().nullable(),
34
+ owner: z.string(),
35
+ comment: z.string().nullable(),
36
+ });
37
+ export class Collation extends BasePgModel {
38
+ schema;
39
+ name;
40
+ provider;
41
+ is_deterministic;
42
+ encoding;
43
+ collate;
44
+ ctype;
45
+ locale;
46
+ icu_rules;
47
+ version;
48
+ owner;
49
+ comment;
50
+ constructor(props) {
51
+ super();
52
+ // Identity fields
53
+ this.schema = props.schema;
54
+ this.name = props.name;
55
+ // Data fields
56
+ this.provider = props.provider;
57
+ this.is_deterministic = props.is_deterministic;
58
+ this.encoding = props.encoding;
59
+ this.collate = props.collate;
60
+ this.ctype = props.ctype;
61
+ this.locale = props.locale;
62
+ this.icu_rules = props.icu_rules;
63
+ this.version = props.version;
64
+ this.owner = props.owner;
65
+ this.comment = props.comment;
66
+ }
67
+ get stableId() {
68
+ return `collation:${this.schema}.${this.name}`;
69
+ }
70
+ get identityFields() {
71
+ return {
72
+ schema: this.schema,
73
+ name: this.name,
74
+ };
75
+ }
76
+ get dataFields() {
77
+ return {
78
+ provider: this.provider,
79
+ is_deterministic: this.is_deterministic,
80
+ encoding: this.encoding,
81
+ collate: this.collate,
82
+ ctype: this.ctype,
83
+ locale: this.locale,
84
+ icu_rules: this.icu_rules,
85
+ version: this.version,
86
+ owner: this.owner,
87
+ comment: this.comment,
88
+ };
89
+ }
90
+ }
91
+ export async function extractCollations(sql) {
92
+ return sql.begin(async (sql) => {
93
+ await sql `set search_path = ''`;
94
+ const version = await extractVersion(sql);
95
+ const isPostgres17OrGreater = version >= 170000;
96
+ const isPostgres16OrGreater = version >= 160000;
97
+ let collations;
98
+ if (isPostgres17OrGreater) {
99
+ collations = await sql `
100
+ with extension_oids as (
101
+ select
102
+ objid
103
+ from
104
+ pg_depend d
105
+ where
106
+ d.refclassid = 'pg_extension'::regclass
107
+ and d.classid = 'pg_collation'::regclass
108
+ )
109
+ select
110
+ c.collnamespace::regnamespace::text as schema,
111
+ quote_ident(c.collname) as name,
112
+ c.collprovider as provider,
113
+ c.collisdeterministic as is_deterministic,
114
+ c.collencoding as encoding,
115
+ c.collcollate as collate,
116
+ c.collctype as ctype,
117
+ c.colllocale as locale,
118
+ c.collicurules as icu_rules,
119
+ c.collversion as version,
120
+ c.collowner::regrole::text as owner,
121
+ obj_description(c.oid, 'pg_collation') as comment
122
+ from
123
+ pg_catalog.pg_collation c
124
+ left outer join extension_oids e on c.oid = e.objid
125
+ where not c.collnamespace::regnamespace::text like any(array['pg\\_%', 'information\\_schema'])
126
+ and e.objid is null
127
+ order by
128
+ 1, 2;
129
+ `;
130
+ }
131
+ else if (isPostgres16OrGreater) {
132
+ // On postgres 16 there colllocale column was named colliculocale
133
+ collations = await sql `
134
+ with extension_oids as (
135
+ select
136
+ objid
137
+ from
138
+ pg_depend d
139
+ where
140
+ d.refclassid = 'pg_extension'::regclass
141
+ and d.classid = 'pg_collation'::regclass
142
+ )
143
+ select
144
+ c.collnamespace::regnamespace::text as schema,
145
+ quote_ident(c.collname) as name,
146
+ c.collprovider as provider,
147
+ c.collisdeterministic as is_deterministic,
148
+ c.collencoding as encoding,
149
+ c.collcollate as collate,
150
+ c.collctype as ctype,
151
+ colliculocale as locale,
152
+ c.collicurules as icu_rules,
153
+ c.collversion as version,
154
+ c.collowner::regrole::text as owner,
155
+ obj_description(c.oid, 'pg_collation') as comment
156
+ from
157
+ pg_catalog.pg_collation c
158
+ left outer join extension_oids e on c.oid = e.objid
159
+ -- <EXCLUDE_INTERNAL>
160
+ where not c.collnamespace::regnamespace::text like any(array['pg\\_%', 'information\\_schema'])
161
+ and e.objid is null
162
+ -- </EXCLUDE_INTERNAL>
163
+ order by
164
+ 1, 2;
165
+ `;
166
+ }
167
+ else {
168
+ // On postgres 15 icu_rules does not exist
169
+ collations = await sql `
170
+ with extension_oids as (
171
+ select
172
+ objid
173
+ from
174
+ pg_depend d
175
+ where
176
+ d.refclassid = 'pg_extension'::regclass
177
+ and d.classid = 'pg_collation'::regclass
178
+ )
179
+ select
180
+ c.collnamespace::regnamespace::text as schema,
181
+ quote_ident(c.collname) as name,
182
+ c.collprovider as provider,
183
+ c.collisdeterministic as is_deterministic,
184
+ c.collencoding as encoding,
185
+ c.collcollate as collate,
186
+ c.collctype as ctype,
187
+ colliculocale as locale,
188
+ null as icu_rules,
189
+ c.collversion as version,
190
+ c.collowner::regrole::text as owner,
191
+ obj_description(c.oid, 'pg_collation') as comment
192
+ from
193
+ pg_catalog.pg_collation c
194
+ left outer join extension_oids e on c.oid = e.objid
195
+ -- <EXCLUDE_INTERNAL>
196
+ where not c.collnamespace::regnamespace::text like any(array['pg\\_%', 'information\\_schema'])
197
+ and e.objid is null
198
+ -- </EXCLUDE_INTERNAL>
199
+ order by
200
+ 1, 2;
201
+ `;
202
+ }
203
+ // Validate and parse each row using the Zod schema
204
+ const validatedRows = collations.map((row) => collationPropsSchema.parse(row));
205
+ return validatedRows.map((row) => new Collation(row));
206
+ });
207
+ }
@@ -0,0 +1,143 @@
1
+ import type { Domain, DomainConstraintProps } from "../domain.model.ts";
2
+ import { AlterDomainChange, DropDomainChange } from "./domain.base.ts";
3
+ /**
4
+ * Alter a domain.
5
+ *
6
+ * @see https://www.postgresql.org/docs/17/sql-alterdomain.html
7
+ *
8
+ * Synopsis
9
+ * ```sql
10
+ * ALTER DOMAIN name
11
+ * { SET DEFAULT expression | DROP DEFAULT }
12
+ * ALTER DOMAIN name
13
+ * { SET | DROP } NOT NULL
14
+ * ALTER DOMAIN name
15
+ * ADD domain_constraint [ NOT VALID ]
16
+ * ALTER DOMAIN name
17
+ * DROP CONSTRAINT [ IF EXISTS ] constraint_name [ RESTRICT | CASCADE ]
18
+ * ALTER DOMAIN name
19
+ * RENAME CONSTRAINT constraint_name TO new_constraint_name
20
+ * ALTER DOMAIN name
21
+ * VALIDATE CONSTRAINT constraint_name
22
+ * ALTER DOMAIN name
23
+ * OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
24
+ * ALTER DOMAIN name
25
+ * RENAME TO new_name
26
+ * ALTER DOMAIN name
27
+ * SET SCHEMA new_schema
28
+ *
29
+ * where domain_constraint is:
30
+ *
31
+ * [ CONSTRAINT constraint_name ]
32
+ * { NOT NULL | CHECK (expression) }
33
+ * ```
34
+ */
35
+ export type AlterDomain = AlterDomainAddConstraint | AlterDomainChangeOwner | AlterDomainDropConstraint | AlterDomainDropDefault | AlterDomainDropNotNull | AlterDomainSetDefault | AlterDomainSetNotNull | AlterDomainValidateConstraint;
36
+ /**
37
+ * ALTER DOMAIN ... SET DEFAULT ...
38
+ */
39
+ export declare class AlterDomainSetDefault extends AlterDomainChange {
40
+ readonly domain: Domain;
41
+ readonly defaultValue: string;
42
+ readonly scope: "object";
43
+ constructor(props: {
44
+ domain: Domain;
45
+ defaultValue: string;
46
+ });
47
+ get requires(): `domain:${string}`[];
48
+ serialize(): string;
49
+ }
50
+ /**
51
+ * ALTER DOMAIN ... DROP DEFAULT
52
+ */
53
+ export declare class AlterDomainDropDefault extends AlterDomainChange {
54
+ readonly domain: Domain;
55
+ readonly scope: "object";
56
+ constructor(props: {
57
+ domain: Domain;
58
+ });
59
+ get requires(): `domain:${string}`[];
60
+ serialize(): string;
61
+ }
62
+ /**
63
+ * ALTER DOMAIN ... SET NOT NULL
64
+ */
65
+ export declare class AlterDomainSetNotNull extends AlterDomainChange {
66
+ readonly domain: Domain;
67
+ readonly scope: "object";
68
+ constructor(props: {
69
+ domain: Domain;
70
+ });
71
+ get requires(): `domain:${string}`[];
72
+ serialize(): string;
73
+ }
74
+ /**
75
+ * ALTER DOMAIN ... DROP NOT NULL
76
+ */
77
+ export declare class AlterDomainDropNotNull extends AlterDomainChange {
78
+ readonly domain: Domain;
79
+ readonly scope: "object";
80
+ constructor(props: {
81
+ domain: Domain;
82
+ });
83
+ get requires(): `domain:${string}`[];
84
+ serialize(): string;
85
+ }
86
+ /**
87
+ * ALTER DOMAIN ... OWNER TO ...
88
+ */
89
+ export declare class AlterDomainChangeOwner extends AlterDomainChange {
90
+ readonly domain: Domain;
91
+ readonly owner: string;
92
+ readonly scope: "object";
93
+ constructor(props: {
94
+ domain: Domain;
95
+ owner: string;
96
+ });
97
+ get requires(): (`role:${string}` | `domain:${string}`)[];
98
+ serialize(): string;
99
+ }
100
+ /**
101
+ * ALTER DOMAIN ... ADD CONSTRAINT ... [ NOT VALID ]
102
+ */
103
+ export declare class AlterDomainAddConstraint extends AlterDomainChange {
104
+ readonly domain: Domain;
105
+ readonly constraint: DomainConstraintProps;
106
+ readonly scope: "object";
107
+ constructor(props: {
108
+ domain: Domain;
109
+ constraint: DomainConstraintProps;
110
+ });
111
+ get creates(): `constraint:${string}.${string}.${string}`[];
112
+ get requires(): `domain:${string}`[];
113
+ serialize(): string;
114
+ }
115
+ /**
116
+ * ALTER DOMAIN ... DROP CONSTRAINT ...
117
+ */
118
+ export declare class AlterDomainDropConstraint extends DropDomainChange {
119
+ readonly domain: Domain;
120
+ readonly constraint: DomainConstraintProps;
121
+ readonly scope: "object";
122
+ constructor(props: {
123
+ domain: Domain;
124
+ constraint: DomainConstraintProps;
125
+ });
126
+ get requires(): (`constraint:${string}.${string}.${string}` | `domain:${string}`)[];
127
+ get drops(): `constraint:${string}.${string}.${string}`[];
128
+ serialize(): string;
129
+ }
130
+ /**
131
+ * ALTER DOMAIN ... VALIDATE CONSTRAINT ...
132
+ */
133
+ export declare class AlterDomainValidateConstraint extends AlterDomainChange {
134
+ readonly domain: Domain;
135
+ readonly constraint: DomainConstraintProps;
136
+ readonly scope: "object";
137
+ constructor(props: {
138
+ domain: Domain;
139
+ constraint: DomainConstraintProps;
140
+ });
141
+ get requires(): (`constraint:${string}.${string}.${string}` | `domain:${string}`)[];
142
+ serialize(): string;
143
+ }
@@ -0,0 +1,191 @@
1
+ import { stableId } from "../../utils.js";
2
+ import { AlterDomainChange, DropDomainChange } from "./domain.base.js";
3
+ /**
4
+ * ALTER DOMAIN ... SET DEFAULT ...
5
+ */
6
+ export class AlterDomainSetDefault extends AlterDomainChange {
7
+ domain;
8
+ defaultValue;
9
+ scope = "object";
10
+ constructor(props) {
11
+ super();
12
+ this.domain = props.domain;
13
+ this.defaultValue = props.defaultValue;
14
+ }
15
+ get requires() {
16
+ return [this.domain.stableId];
17
+ }
18
+ serialize() {
19
+ return `ALTER DOMAIN ${this.domain.schema}.${this.domain.name} SET DEFAULT ${this.defaultValue}`;
20
+ }
21
+ }
22
+ /**
23
+ * ALTER DOMAIN ... DROP DEFAULT
24
+ */
25
+ export class AlterDomainDropDefault extends AlterDomainChange {
26
+ domain;
27
+ scope = "object";
28
+ constructor(props) {
29
+ super();
30
+ this.domain = props.domain;
31
+ }
32
+ get requires() {
33
+ return [this.domain.stableId];
34
+ }
35
+ serialize() {
36
+ return `ALTER DOMAIN ${this.domain.schema}.${this.domain.name} DROP DEFAULT`;
37
+ }
38
+ }
39
+ /**
40
+ * ALTER DOMAIN ... SET NOT NULL
41
+ */
42
+ export class AlterDomainSetNotNull extends AlterDomainChange {
43
+ domain;
44
+ scope = "object";
45
+ constructor(props) {
46
+ super();
47
+ this.domain = props.domain;
48
+ }
49
+ get requires() {
50
+ return [this.domain.stableId];
51
+ }
52
+ serialize() {
53
+ return `ALTER DOMAIN ${this.domain.schema}.${this.domain.name} SET NOT NULL`;
54
+ }
55
+ }
56
+ /**
57
+ * ALTER DOMAIN ... DROP NOT NULL
58
+ */
59
+ export class AlterDomainDropNotNull extends AlterDomainChange {
60
+ domain;
61
+ scope = "object";
62
+ constructor(props) {
63
+ super();
64
+ this.domain = props.domain;
65
+ }
66
+ get requires() {
67
+ return [this.domain.stableId];
68
+ }
69
+ serialize() {
70
+ return `ALTER DOMAIN ${this.domain.schema}.${this.domain.name} DROP NOT NULL`;
71
+ }
72
+ }
73
+ /**
74
+ * ALTER DOMAIN ... OWNER TO ...
75
+ */
76
+ export class AlterDomainChangeOwner extends AlterDomainChange {
77
+ domain;
78
+ owner;
79
+ scope = "object";
80
+ constructor(props) {
81
+ super();
82
+ this.domain = props.domain;
83
+ this.owner = props.owner;
84
+ }
85
+ get requires() {
86
+ return [this.domain.stableId, stableId.role(this.owner)];
87
+ }
88
+ serialize() {
89
+ return `ALTER DOMAIN ${this.domain.schema}.${this.domain.name} OWNER TO ${this.owner}`;
90
+ }
91
+ }
92
+ /**
93
+ * ALTER DOMAIN ... ADD CONSTRAINT ... [ NOT VALID ]
94
+ */
95
+ export class AlterDomainAddConstraint extends AlterDomainChange {
96
+ domain;
97
+ constraint;
98
+ scope = "object";
99
+ constructor(props) {
100
+ super();
101
+ this.domain = props.domain;
102
+ this.constraint = props.constraint;
103
+ }
104
+ get creates() {
105
+ return [
106
+ stableId.constraint(this.domain.schema, this.domain.name, this.constraint.name),
107
+ ];
108
+ }
109
+ get requires() {
110
+ return [this.domain.stableId];
111
+ }
112
+ serialize() {
113
+ const domainName = `${this.domain.schema}.${this.domain.name}`;
114
+ const parts = [
115
+ "ALTER DOMAIN",
116
+ domainName,
117
+ "ADD CONSTRAINT",
118
+ this.constraint.name,
119
+ ];
120
+ if (this.constraint.check_expression) {
121
+ parts.push(`CHECK (${this.constraint.check_expression})`);
122
+ }
123
+ if (!this.constraint.validated) {
124
+ parts.push("NOT VALID");
125
+ }
126
+ return parts.join(" ");
127
+ }
128
+ }
129
+ /**
130
+ * ALTER DOMAIN ... DROP CONSTRAINT ...
131
+ */
132
+ export class AlterDomainDropConstraint extends DropDomainChange {
133
+ domain;
134
+ constraint;
135
+ scope = "object";
136
+ constructor(props) {
137
+ super();
138
+ this.domain = props.domain;
139
+ this.constraint = props.constraint;
140
+ }
141
+ get requires() {
142
+ return [
143
+ this.domain.stableId,
144
+ stableId.constraint(this.domain.schema, this.domain.name, this.constraint.name),
145
+ ];
146
+ }
147
+ get drops() {
148
+ return [
149
+ stableId.constraint(this.domain.schema, this.domain.name, this.constraint.name),
150
+ ];
151
+ }
152
+ serialize() {
153
+ const domainName = `${this.domain.schema}.${this.domain.name}`;
154
+ return [
155
+ "ALTER DOMAIN",
156
+ domainName,
157
+ "DROP CONSTRAINT",
158
+ this.constraint.name,
159
+ ].join(" ");
160
+ }
161
+ }
162
+ // Constraint renames are modeled as drop+add because the constraint name
163
+ // is part of the identity used in diffing and dependency resolution.
164
+ /**
165
+ * ALTER DOMAIN ... VALIDATE CONSTRAINT ...
166
+ */
167
+ export class AlterDomainValidateConstraint extends AlterDomainChange {
168
+ domain;
169
+ constraint;
170
+ scope = "object";
171
+ constructor(props) {
172
+ super();
173
+ this.domain = props.domain;
174
+ this.constraint = props.constraint;
175
+ }
176
+ get requires() {
177
+ return [
178
+ this.domain.stableId,
179
+ stableId.constraint(this.domain.schema, this.domain.name, this.constraint.name),
180
+ ];
181
+ }
182
+ serialize() {
183
+ const domainName = `${this.domain.schema}.${this.domain.name}`;
184
+ return [
185
+ "ALTER DOMAIN",
186
+ domainName,
187
+ "VALIDATE CONSTRAINT",
188
+ this.constraint.name,
189
+ ].join(" ");
190
+ }
191
+ }
@@ -0,0 +1,17 @@
1
+ import { BaseChange } from "../../base.change.ts";
2
+ import type { Domain } from "../domain.model.ts";
3
+ declare abstract class BaseDomainChange extends BaseChange {
4
+ abstract readonly domain: Domain;
5
+ abstract readonly scope: "object" | "comment" | "privilege";
6
+ readonly objectType: "domain";
7
+ }
8
+ export declare abstract class CreateDomainChange extends BaseDomainChange {
9
+ readonly operation: "create";
10
+ }
11
+ export declare abstract class AlterDomainChange extends BaseDomainChange {
12
+ readonly operation: "alter";
13
+ }
14
+ export declare abstract class DropDomainChange extends BaseDomainChange {
15
+ readonly operation: "drop";
16
+ }
17
+ export {};
@@ -0,0 +1,13 @@
1
+ import { BaseChange } from "../../base.change.js";
2
+ class BaseDomainChange extends BaseChange {
3
+ objectType = "domain";
4
+ }
5
+ export class CreateDomainChange extends BaseDomainChange {
6
+ operation = "create";
7
+ }
8
+ export class AlterDomainChange extends BaseDomainChange {
9
+ operation = "alter";
10
+ }
11
+ export class DropDomainChange extends BaseDomainChange {
12
+ operation = "drop";
13
+ }
@@ -0,0 +1,25 @@
1
+ import type { Domain } from "../domain.model.ts";
2
+ import { CreateDomainChange, DropDomainChange } from "./domain.base.ts";
3
+ export type CommentDomain = CreateCommentOnDomain | DropCommentOnDomain;
4
+ /**
5
+ * Create/drop comments on domains.
6
+ */
7
+ export declare class CreateCommentOnDomain extends CreateDomainChange {
8
+ readonly domain: Domain;
9
+ readonly scope: "comment";
10
+ constructor(props: {
11
+ domain: Domain;
12
+ });
13
+ get creates(): `comment:${string}`[];
14
+ get requires(): `domain:${string}`[];
15
+ serialize(): string;
16
+ }
17
+ export declare class DropCommentOnDomain extends DropDomainChange {
18
+ readonly domain: Domain;
19
+ readonly scope: "comment";
20
+ constructor(props: {
21
+ domain: Domain;
22
+ });
23
+ get requires(): (`comment:${string}` | `domain:${string}`)[];
24
+ serialize(): string;
25
+ }