@contember/schema-migrations 2.1.0-rc.3 → 2.2.0-alpha.10

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 (598) hide show
  1. package/CLAUDE.md +16 -0
  2. package/dist/development/index.cjs +3 -0
  3. package/dist/development/index.cjs.map +1 -1
  4. package/dist/development/index.js +3 -0
  5. package/dist/development/index.js.map +1 -1
  6. package/dist/development/src/MigrationDescriber.cjs.map +1 -1
  7. package/dist/development/src/MigrationDescriber.js.map +1 -1
  8. package/dist/development/src/SchemaDiffer.cjs +27 -12
  9. package/dist/development/src/SchemaDiffer.cjs.map +1 -1
  10. package/dist/development/src/SchemaDiffer.js +27 -12
  11. package/dist/development/src/SchemaDiffer.js.map +1 -1
  12. package/dist/development/src/SchemaMigrator.cjs.map +1 -1
  13. package/dist/development/src/SchemaMigrator.js.map +1 -1
  14. package/dist/development/src/modifications/ModificationHandler.cjs.map +1 -1
  15. package/dist/development/src/modifications/ModificationHandler.js.map +1 -1
  16. package/dist/development/src/modifications/ModificationHandlerFactory.cjs +2 -0
  17. package/dist/development/src/modifications/ModificationHandlerFactory.cjs.map +1 -1
  18. package/dist/development/src/modifications/ModificationHandlerFactory.js +2 -0
  19. package/dist/development/src/modifications/ModificationHandlerFactory.js.map +1 -1
  20. package/dist/development/src/modifications/NoopModification.cjs.map +1 -1
  21. package/dist/development/src/modifications/NoopModification.js.map +1 -1
  22. package/dist/development/src/modifications/acl/PatchAclSchemaModification.cjs +4 -6
  23. package/dist/development/src/modifications/acl/PatchAclSchemaModification.cjs.map +1 -1
  24. package/dist/development/src/modifications/acl/PatchAclSchemaModification.js +4 -6
  25. package/dist/development/src/modifications/acl/PatchAclSchemaModification.js.map +1 -1
  26. package/dist/development/src/modifications/acl/UpdateAclSchemaModification.cjs.map +1 -1
  27. package/dist/development/src/modifications/acl/UpdateAclSchemaModification.js.map +1 -1
  28. package/dist/development/src/modifications/actions/CreateTargetModification.cjs.map +1 -1
  29. package/dist/development/src/modifications/actions/CreateTargetModification.js.map +1 -1
  30. package/dist/development/src/modifications/actions/CreateTriggerModification.cjs.map +1 -1
  31. package/dist/development/src/modifications/actions/CreateTriggerModification.js.map +1 -1
  32. package/dist/development/src/modifications/actions/PatchTriggerModification.cjs.map +1 -1
  33. package/dist/development/src/modifications/actions/PatchTriggerModification.js.map +1 -1
  34. package/dist/development/src/modifications/actions/RemoveTargetModification.cjs.map +1 -1
  35. package/dist/development/src/modifications/actions/RemoveTargetModification.js.map +1 -1
  36. package/dist/development/src/modifications/actions/RemoveTriggerModification.cjs.map +1 -1
  37. package/dist/development/src/modifications/actions/RemoveTriggerModification.js.map +1 -1
  38. package/dist/development/src/modifications/actions/UpdateTargetModification.cjs.map +1 -1
  39. package/dist/development/src/modifications/actions/UpdateTargetModification.js.map +1 -1
  40. package/dist/development/src/modifications/actions/UpdateTriggerModification.cjs.map +1 -1
  41. package/dist/development/src/modifications/actions/UpdateTriggerModification.js.map +1 -1
  42. package/dist/development/src/modifications/columns/CreateColumnModification.cjs +2 -1
  43. package/dist/development/src/modifications/columns/CreateColumnModification.cjs.map +1 -1
  44. package/dist/development/src/modifications/columns/CreateColumnModification.js +2 -1
  45. package/dist/development/src/modifications/columns/CreateColumnModification.js.map +1 -1
  46. package/dist/development/src/modifications/columns/UpdateColumnDefinitionModification.cjs.map +1 -1
  47. package/dist/development/src/modifications/columns/UpdateColumnDefinitionModification.js.map +1 -1
  48. package/dist/development/src/modifications/columns/UpdateColumnNameModification.cjs.map +1 -1
  49. package/dist/development/src/modifications/columns/UpdateColumnNameModification.js.map +1 -1
  50. package/dist/development/src/modifications/columns/columnUtils.cjs.map +1 -1
  51. package/dist/development/src/modifications/columns/columnUtils.js.map +1 -1
  52. package/dist/development/src/modifications/constraints/CreateUniqueConstraintModification.cjs.map +1 -1
  53. package/dist/development/src/modifications/constraints/CreateUniqueConstraintModification.js.map +1 -1
  54. package/dist/development/src/modifications/constraints/RemoveUniqueConstraintModification.cjs.map +1 -1
  55. package/dist/development/src/modifications/constraints/RemoveUniqueConstraintModification.js.map +1 -1
  56. package/dist/development/src/modifications/differs/RemoveChangedFieldDiffer.cjs.map +1 -1
  57. package/dist/development/src/modifications/differs/RemoveChangedFieldDiffer.js.map +1 -1
  58. package/dist/development/src/modifications/differs/RemoveViewDiffer.cjs +4 -1
  59. package/dist/development/src/modifications/differs/RemoveViewDiffer.cjs.map +1 -1
  60. package/dist/development/src/modifications/differs/RemoveViewDiffer.js +5 -2
  61. package/dist/development/src/modifications/differs/RemoveViewDiffer.js.map +1 -1
  62. package/dist/development/src/modifications/differs/UpdateViewDiffer.cjs +45 -0
  63. package/dist/development/src/modifications/differs/UpdateViewDiffer.cjs.map +1 -0
  64. package/dist/development/src/modifications/differs/UpdateViewDiffer.js +45 -0
  65. package/dist/development/src/modifications/differs/UpdateViewDiffer.js.map +1 -0
  66. package/dist/development/src/modifications/entities/CreateEntityModification.cjs.map +1 -1
  67. package/dist/development/src/modifications/entities/CreateEntityModification.js.map +1 -1
  68. package/dist/development/src/modifications/entities/CreateViewModification.cjs.map +1 -1
  69. package/dist/development/src/modifications/entities/CreateViewModification.js.map +1 -1
  70. package/dist/development/src/modifications/entities/RemoveEntityModification.cjs.map +1 -1
  71. package/dist/development/src/modifications/entities/RemoveEntityModification.js.map +1 -1
  72. package/dist/development/src/modifications/entities/ToggleEventLogModification.cjs.map +1 -1
  73. package/dist/development/src/modifications/entities/ToggleEventLogModification.js.map +1 -1
  74. package/dist/development/src/modifications/entities/UpdateEntityNameModification.cjs.map +1 -1
  75. package/dist/development/src/modifications/entities/UpdateEntityNameModification.js.map +1 -1
  76. package/dist/development/src/modifications/entities/UpdateEntityOrderByModification.cjs.map +1 -1
  77. package/dist/development/src/modifications/entities/UpdateEntityOrderByModification.js.map +1 -1
  78. package/dist/development/src/modifications/entities/UpdateEntityTableNameModification.cjs.map +1 -1
  79. package/dist/development/src/modifications/entities/UpdateEntityTableNameModification.js.map +1 -1
  80. package/dist/development/src/modifications/entities/UpdateViewModification.cjs.map +1 -1
  81. package/dist/development/src/modifications/entities/UpdateViewModification.js.map +1 -1
  82. package/dist/development/src/modifications/enums/CreateEnumModification.cjs.map +1 -1
  83. package/dist/development/src/modifications/enums/CreateEnumModification.js.map +1 -1
  84. package/dist/development/src/modifications/enums/RemoveEnumModification.cjs.map +1 -1
  85. package/dist/development/src/modifications/enums/RemoveEnumModification.js.map +1 -1
  86. package/dist/development/src/modifications/enums/UpdateEnumModification.cjs.map +1 -1
  87. package/dist/development/src/modifications/enums/UpdateEnumModification.js.map +1 -1
  88. package/dist/development/src/modifications/enums/enumUtils.cjs.map +1 -1
  89. package/dist/development/src/modifications/enums/enumUtils.js.map +1 -1
  90. package/dist/development/src/modifications/fields/RemoveFieldModification.cjs.map +1 -1
  91. package/dist/development/src/modifications/fields/RemoveFieldModification.js.map +1 -1
  92. package/dist/development/src/modifications/fields/UpdateFieldNameModification.cjs +10 -4
  93. package/dist/development/src/modifications/fields/UpdateFieldNameModification.cjs.map +1 -1
  94. package/dist/development/src/modifications/fields/UpdateFieldNameModification.js +10 -4
  95. package/dist/development/src/modifications/fields/UpdateFieldNameModification.js.map +1 -1
  96. package/dist/development/src/modifications/indexes/CreateIndexModification.cjs +23 -7
  97. package/dist/development/src/modifications/indexes/CreateIndexModification.cjs.map +1 -1
  98. package/dist/development/src/modifications/indexes/CreateIndexModification.js +23 -7
  99. package/dist/development/src/modifications/indexes/CreateIndexModification.js.map +1 -1
  100. package/dist/development/src/modifications/indexes/RemoveIndexModification.cjs +52 -17
  101. package/dist/development/src/modifications/indexes/RemoveIndexModification.cjs.map +1 -1
  102. package/dist/development/src/modifications/indexes/RemoveIndexModification.js +52 -17
  103. package/dist/development/src/modifications/indexes/RemoveIndexModification.js.map +1 -1
  104. package/dist/development/src/modifications/relations/ConvertManyHasManyToJoiningEntityModification.cjs +140 -0
  105. package/dist/development/src/modifications/relations/ConvertManyHasManyToJoiningEntityModification.cjs.map +1 -0
  106. package/dist/development/src/modifications/relations/ConvertManyHasManyToJoiningEntityModification.js +140 -0
  107. package/dist/development/src/modifications/relations/ConvertManyHasManyToJoiningEntityModification.js.map +1 -0
  108. package/dist/development/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.cjs.map +1 -1
  109. package/dist/development/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.js.map +1 -1
  110. package/dist/development/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.cjs.map +1 -1
  111. package/dist/development/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.js.map +1 -1
  112. package/dist/development/src/modifications/relations/ConvertOneToManyRelationModification.cjs.map +1 -1
  113. package/dist/development/src/modifications/relations/ConvertOneToManyRelationModification.js.map +1 -1
  114. package/dist/development/src/modifications/relations/CreateRelationInverseSideModification.cjs.map +1 -1
  115. package/dist/development/src/modifications/relations/CreateRelationInverseSideModification.js.map +1 -1
  116. package/dist/development/src/modifications/relations/CreateRelationModification.cjs.map +1 -1
  117. package/dist/development/src/modifications/relations/CreateRelationModification.js.map +1 -1
  118. package/dist/development/src/modifications/relations/DisableOrphanRemovalModification.cjs.map +1 -1
  119. package/dist/development/src/modifications/relations/DisableOrphanRemovalModification.js.map +1 -1
  120. package/dist/development/src/modifications/relations/EnableOrphanRemovalModification.cjs.map +1 -1
  121. package/dist/development/src/modifications/relations/EnableOrphanRemovalModification.js.map +1 -1
  122. package/dist/development/src/modifications/relations/MakeRelationNotNullModification.cjs.map +1 -1
  123. package/dist/development/src/modifications/relations/MakeRelationNotNullModification.js.map +1 -1
  124. package/dist/development/src/modifications/relations/MakeRelationNullableModification.cjs.map +1 -1
  125. package/dist/development/src/modifications/relations/MakeRelationNullableModification.js.map +1 -1
  126. package/dist/development/src/modifications/relations/ToggleJunctionEventLogModification.cjs.map +1 -1
  127. package/dist/development/src/modifications/relations/ToggleJunctionEventLogModification.js.map +1 -1
  128. package/dist/development/src/modifications/relations/UpdateRelationOnDeleteModification.cjs.map +1 -1
  129. package/dist/development/src/modifications/relations/UpdateRelationOnDeleteModification.js.map +1 -1
  130. package/dist/development/src/modifications/relations/UpdateRelationOrderByModification.cjs.map +1 -1
  131. package/dist/development/src/modifications/relations/UpdateRelationOrderByModification.js.map +1 -1
  132. package/dist/development/src/modifications/relations/helpers.cjs.map +1 -1
  133. package/dist/development/src/modifications/relations/helpers.js.map +1 -1
  134. package/dist/development/src/modifications/settings/UpdateSettingsModification.cjs.map +1 -1
  135. package/dist/development/src/modifications/settings/UpdateSettingsModification.js.map +1 -1
  136. package/dist/development/src/modifications/upgrade/RemoveIndexNamesModification.cjs.map +1 -1
  137. package/dist/development/src/modifications/upgrade/RemoveIndexNamesModification.js.map +1 -1
  138. package/dist/development/src/modifications/utils/createJunctionTable.cjs.map +1 -1
  139. package/dist/development/src/modifications/utils/createJunctionTable.js.map +1 -1
  140. package/dist/development/src/modifications/utils/diffUtils.cjs.map +1 -1
  141. package/dist/development/src/modifications/utils/diffUtils.js.map +1 -1
  142. package/dist/development/src/modifications/utils/schemaUpdateUtils.cjs.map +1 -1
  143. package/dist/development/src/modifications/utils/schemaUpdateUtils.js.map +1 -1
  144. package/dist/development/src/modifications/utils/viewDependencies.cjs +15 -1
  145. package/dist/development/src/modifications/utils/viewDependencies.cjs.map +1 -1
  146. package/dist/development/src/modifications/utils/viewDependencies.js +16 -2
  147. package/dist/development/src/modifications/utils/viewDependencies.js.map +1 -1
  148. package/dist/development/src/modifications/validation/PatchValidationSchemaModification.cjs.map +1 -1
  149. package/dist/development/src/modifications/validation/PatchValidationSchemaModification.js.map +1 -1
  150. package/dist/development/src/modifications/validation/UpdateValidationSchemaModification.cjs.map +1 -1
  151. package/dist/development/src/modifications/validation/UpdateValidationSchemaModification.js.map +1 -1
  152. package/dist/development/src/utils/applyPatchCopyOnWrite.cjs +51 -0
  153. package/dist/development/src/utils/applyPatchCopyOnWrite.cjs.map +1 -0
  154. package/dist/development/src/utils/applyPatchCopyOnWrite.js +51 -0
  155. package/dist/development/src/utils/applyPatchCopyOnWrite.js.map +1 -0
  156. package/dist/production/index.cjs +3 -0
  157. package/dist/production/index.cjs.map +1 -1
  158. package/dist/production/index.js +3 -0
  159. package/dist/production/index.js.map +1 -1
  160. package/dist/production/src/MigrationDescriber.cjs.map +1 -1
  161. package/dist/production/src/MigrationDescriber.js.map +1 -1
  162. package/dist/production/src/SchemaDiffer.cjs +27 -12
  163. package/dist/production/src/SchemaDiffer.cjs.map +1 -1
  164. package/dist/production/src/SchemaDiffer.js +27 -12
  165. package/dist/production/src/SchemaDiffer.js.map +1 -1
  166. package/dist/production/src/SchemaMigrator.cjs.map +1 -1
  167. package/dist/production/src/SchemaMigrator.js.map +1 -1
  168. package/dist/production/src/modifications/ModificationHandler.cjs.map +1 -1
  169. package/dist/production/src/modifications/ModificationHandler.js.map +1 -1
  170. package/dist/production/src/modifications/ModificationHandlerFactory.cjs +2 -0
  171. package/dist/production/src/modifications/ModificationHandlerFactory.cjs.map +1 -1
  172. package/dist/production/src/modifications/ModificationHandlerFactory.js +2 -0
  173. package/dist/production/src/modifications/ModificationHandlerFactory.js.map +1 -1
  174. package/dist/production/src/modifications/NoopModification.cjs.map +1 -1
  175. package/dist/production/src/modifications/NoopModification.js.map +1 -1
  176. package/dist/production/src/modifications/acl/PatchAclSchemaModification.cjs +4 -6
  177. package/dist/production/src/modifications/acl/PatchAclSchemaModification.cjs.map +1 -1
  178. package/dist/production/src/modifications/acl/PatchAclSchemaModification.js +4 -6
  179. package/dist/production/src/modifications/acl/PatchAclSchemaModification.js.map +1 -1
  180. package/dist/production/src/modifications/acl/UpdateAclSchemaModification.cjs.map +1 -1
  181. package/dist/production/src/modifications/acl/UpdateAclSchemaModification.js.map +1 -1
  182. package/dist/production/src/modifications/actions/CreateTargetModification.cjs.map +1 -1
  183. package/dist/production/src/modifications/actions/CreateTargetModification.js.map +1 -1
  184. package/dist/production/src/modifications/actions/CreateTriggerModification.cjs.map +1 -1
  185. package/dist/production/src/modifications/actions/CreateTriggerModification.js.map +1 -1
  186. package/dist/production/src/modifications/actions/PatchTriggerModification.cjs.map +1 -1
  187. package/dist/production/src/modifications/actions/PatchTriggerModification.js.map +1 -1
  188. package/dist/production/src/modifications/actions/RemoveTargetModification.cjs.map +1 -1
  189. package/dist/production/src/modifications/actions/RemoveTargetModification.js.map +1 -1
  190. package/dist/production/src/modifications/actions/RemoveTriggerModification.cjs.map +1 -1
  191. package/dist/production/src/modifications/actions/RemoveTriggerModification.js.map +1 -1
  192. package/dist/production/src/modifications/actions/UpdateTargetModification.cjs.map +1 -1
  193. package/dist/production/src/modifications/actions/UpdateTargetModification.js.map +1 -1
  194. package/dist/production/src/modifications/actions/UpdateTriggerModification.cjs.map +1 -1
  195. package/dist/production/src/modifications/actions/UpdateTriggerModification.js.map +1 -1
  196. package/dist/production/src/modifications/columns/CreateColumnModification.cjs +2 -1
  197. package/dist/production/src/modifications/columns/CreateColumnModification.cjs.map +1 -1
  198. package/dist/production/src/modifications/columns/CreateColumnModification.js +2 -1
  199. package/dist/production/src/modifications/columns/CreateColumnModification.js.map +1 -1
  200. package/dist/production/src/modifications/columns/UpdateColumnDefinitionModification.cjs.map +1 -1
  201. package/dist/production/src/modifications/columns/UpdateColumnDefinitionModification.js.map +1 -1
  202. package/dist/production/src/modifications/columns/UpdateColumnNameModification.cjs.map +1 -1
  203. package/dist/production/src/modifications/columns/UpdateColumnNameModification.js.map +1 -1
  204. package/dist/production/src/modifications/columns/columnUtils.cjs.map +1 -1
  205. package/dist/production/src/modifications/columns/columnUtils.js.map +1 -1
  206. package/dist/production/src/modifications/constraints/CreateUniqueConstraintModification.cjs.map +1 -1
  207. package/dist/production/src/modifications/constraints/CreateUniqueConstraintModification.js.map +1 -1
  208. package/dist/production/src/modifications/constraints/RemoveUniqueConstraintModification.cjs.map +1 -1
  209. package/dist/production/src/modifications/constraints/RemoveUniqueConstraintModification.js.map +1 -1
  210. package/dist/production/src/modifications/differs/RemoveChangedFieldDiffer.cjs.map +1 -1
  211. package/dist/production/src/modifications/differs/RemoveChangedFieldDiffer.js.map +1 -1
  212. package/dist/production/src/modifications/differs/RemoveViewDiffer.cjs +4 -1
  213. package/dist/production/src/modifications/differs/RemoveViewDiffer.cjs.map +1 -1
  214. package/dist/production/src/modifications/differs/RemoveViewDiffer.js +5 -2
  215. package/dist/production/src/modifications/differs/RemoveViewDiffer.js.map +1 -1
  216. package/dist/production/src/modifications/differs/UpdateViewDiffer.cjs +45 -0
  217. package/dist/production/src/modifications/differs/UpdateViewDiffer.cjs.map +1 -0
  218. package/dist/production/src/modifications/differs/UpdateViewDiffer.js +45 -0
  219. package/dist/production/src/modifications/differs/UpdateViewDiffer.js.map +1 -0
  220. package/dist/production/src/modifications/entities/CreateEntityModification.cjs.map +1 -1
  221. package/dist/production/src/modifications/entities/CreateEntityModification.js.map +1 -1
  222. package/dist/production/src/modifications/entities/CreateViewModification.cjs.map +1 -1
  223. package/dist/production/src/modifications/entities/CreateViewModification.js.map +1 -1
  224. package/dist/production/src/modifications/entities/RemoveEntityModification.cjs.map +1 -1
  225. package/dist/production/src/modifications/entities/RemoveEntityModification.js.map +1 -1
  226. package/dist/production/src/modifications/entities/ToggleEventLogModification.cjs.map +1 -1
  227. package/dist/production/src/modifications/entities/ToggleEventLogModification.js.map +1 -1
  228. package/dist/production/src/modifications/entities/UpdateEntityNameModification.cjs.map +1 -1
  229. package/dist/production/src/modifications/entities/UpdateEntityNameModification.js.map +1 -1
  230. package/dist/production/src/modifications/entities/UpdateEntityOrderByModification.cjs.map +1 -1
  231. package/dist/production/src/modifications/entities/UpdateEntityOrderByModification.js.map +1 -1
  232. package/dist/production/src/modifications/entities/UpdateEntityTableNameModification.cjs.map +1 -1
  233. package/dist/production/src/modifications/entities/UpdateEntityTableNameModification.js.map +1 -1
  234. package/dist/production/src/modifications/entities/UpdateViewModification.cjs.map +1 -1
  235. package/dist/production/src/modifications/entities/UpdateViewModification.js.map +1 -1
  236. package/dist/production/src/modifications/enums/CreateEnumModification.cjs.map +1 -1
  237. package/dist/production/src/modifications/enums/CreateEnumModification.js.map +1 -1
  238. package/dist/production/src/modifications/enums/RemoveEnumModification.cjs.map +1 -1
  239. package/dist/production/src/modifications/enums/RemoveEnumModification.js.map +1 -1
  240. package/dist/production/src/modifications/enums/UpdateEnumModification.cjs.map +1 -1
  241. package/dist/production/src/modifications/enums/UpdateEnumModification.js.map +1 -1
  242. package/dist/production/src/modifications/enums/enumUtils.cjs.map +1 -1
  243. package/dist/production/src/modifications/enums/enumUtils.js.map +1 -1
  244. package/dist/production/src/modifications/fields/RemoveFieldModification.cjs.map +1 -1
  245. package/dist/production/src/modifications/fields/RemoveFieldModification.js.map +1 -1
  246. package/dist/production/src/modifications/fields/UpdateFieldNameModification.cjs +10 -4
  247. package/dist/production/src/modifications/fields/UpdateFieldNameModification.cjs.map +1 -1
  248. package/dist/production/src/modifications/fields/UpdateFieldNameModification.js +10 -4
  249. package/dist/production/src/modifications/fields/UpdateFieldNameModification.js.map +1 -1
  250. package/dist/production/src/modifications/indexes/CreateIndexModification.cjs +23 -7
  251. package/dist/production/src/modifications/indexes/CreateIndexModification.cjs.map +1 -1
  252. package/dist/production/src/modifications/indexes/CreateIndexModification.js +23 -7
  253. package/dist/production/src/modifications/indexes/CreateIndexModification.js.map +1 -1
  254. package/dist/production/src/modifications/indexes/RemoveIndexModification.cjs +52 -17
  255. package/dist/production/src/modifications/indexes/RemoveIndexModification.cjs.map +1 -1
  256. package/dist/production/src/modifications/indexes/RemoveIndexModification.js +52 -17
  257. package/dist/production/src/modifications/indexes/RemoveIndexModification.js.map +1 -1
  258. package/dist/production/src/modifications/relations/ConvertManyHasManyToJoiningEntityModification.cjs +140 -0
  259. package/dist/production/src/modifications/relations/ConvertManyHasManyToJoiningEntityModification.cjs.map +1 -0
  260. package/dist/production/src/modifications/relations/ConvertManyHasManyToJoiningEntityModification.js +140 -0
  261. package/dist/production/src/modifications/relations/ConvertManyHasManyToJoiningEntityModification.js.map +1 -0
  262. package/dist/production/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.cjs.map +1 -1
  263. package/dist/production/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.js.map +1 -1
  264. package/dist/production/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.cjs.map +1 -1
  265. package/dist/production/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.js.map +1 -1
  266. package/dist/production/src/modifications/relations/ConvertOneToManyRelationModification.cjs.map +1 -1
  267. package/dist/production/src/modifications/relations/ConvertOneToManyRelationModification.js.map +1 -1
  268. package/dist/production/src/modifications/relations/CreateRelationInverseSideModification.cjs.map +1 -1
  269. package/dist/production/src/modifications/relations/CreateRelationInverseSideModification.js.map +1 -1
  270. package/dist/production/src/modifications/relations/CreateRelationModification.cjs.map +1 -1
  271. package/dist/production/src/modifications/relations/CreateRelationModification.js.map +1 -1
  272. package/dist/production/src/modifications/relations/DisableOrphanRemovalModification.cjs.map +1 -1
  273. package/dist/production/src/modifications/relations/DisableOrphanRemovalModification.js.map +1 -1
  274. package/dist/production/src/modifications/relations/EnableOrphanRemovalModification.cjs.map +1 -1
  275. package/dist/production/src/modifications/relations/EnableOrphanRemovalModification.js.map +1 -1
  276. package/dist/production/src/modifications/relations/MakeRelationNotNullModification.cjs.map +1 -1
  277. package/dist/production/src/modifications/relations/MakeRelationNotNullModification.js.map +1 -1
  278. package/dist/production/src/modifications/relations/MakeRelationNullableModification.cjs.map +1 -1
  279. package/dist/production/src/modifications/relations/MakeRelationNullableModification.js.map +1 -1
  280. package/dist/production/src/modifications/relations/ToggleJunctionEventLogModification.cjs.map +1 -1
  281. package/dist/production/src/modifications/relations/ToggleJunctionEventLogModification.js.map +1 -1
  282. package/dist/production/src/modifications/relations/UpdateRelationOnDeleteModification.cjs.map +1 -1
  283. package/dist/production/src/modifications/relations/UpdateRelationOnDeleteModification.js.map +1 -1
  284. package/dist/production/src/modifications/relations/UpdateRelationOrderByModification.cjs.map +1 -1
  285. package/dist/production/src/modifications/relations/UpdateRelationOrderByModification.js.map +1 -1
  286. package/dist/production/src/modifications/relations/helpers.cjs.map +1 -1
  287. package/dist/production/src/modifications/relations/helpers.js.map +1 -1
  288. package/dist/production/src/modifications/settings/UpdateSettingsModification.cjs.map +1 -1
  289. package/dist/production/src/modifications/settings/UpdateSettingsModification.js.map +1 -1
  290. package/dist/production/src/modifications/upgrade/RemoveIndexNamesModification.cjs.map +1 -1
  291. package/dist/production/src/modifications/upgrade/RemoveIndexNamesModification.js.map +1 -1
  292. package/dist/production/src/modifications/utils/createJunctionTable.cjs.map +1 -1
  293. package/dist/production/src/modifications/utils/createJunctionTable.js.map +1 -1
  294. package/dist/production/src/modifications/utils/diffUtils.cjs.map +1 -1
  295. package/dist/production/src/modifications/utils/diffUtils.js.map +1 -1
  296. package/dist/production/src/modifications/utils/schemaUpdateUtils.cjs.map +1 -1
  297. package/dist/production/src/modifications/utils/schemaUpdateUtils.js.map +1 -1
  298. package/dist/production/src/modifications/utils/viewDependencies.cjs +15 -1
  299. package/dist/production/src/modifications/utils/viewDependencies.cjs.map +1 -1
  300. package/dist/production/src/modifications/utils/viewDependencies.js +16 -2
  301. package/dist/production/src/modifications/utils/viewDependencies.js.map +1 -1
  302. package/dist/production/src/modifications/validation/PatchValidationSchemaModification.cjs.map +1 -1
  303. package/dist/production/src/modifications/validation/PatchValidationSchemaModification.js.map +1 -1
  304. package/dist/production/src/modifications/validation/UpdateValidationSchemaModification.cjs.map +1 -1
  305. package/dist/production/src/modifications/validation/UpdateValidationSchemaModification.js.map +1 -1
  306. package/dist/production/src/utils/applyPatchCopyOnWrite.cjs +51 -0
  307. package/dist/production/src/utils/applyPatchCopyOnWrite.cjs.map +1 -0
  308. package/dist/production/src/utils/applyPatchCopyOnWrite.js +51 -0
  309. package/dist/production/src/utils/applyPatchCopyOnWrite.js.map +1 -0
  310. package/dist/tests/cases/integration/convertManyHasManyToJoiningEntity.test.d.ts +2 -0
  311. package/dist/tests/cases/integration/convertManyHasManyToJoiningEntity.test.d.ts.map +1 -0
  312. package/dist/tests/cases/integration/skipNonModelDiffers.test.d.ts +2 -0
  313. package/dist/tests/cases/integration/skipNonModelDiffers.test.d.ts.map +1 -0
  314. package/dist/tests/cases/unit/patchAclSchemaModification.test.d.ts +2 -0
  315. package/dist/tests/cases/unit/patchAclSchemaModification.test.d.ts.map +1 -0
  316. package/dist/tests/src/tags.d.ts.map +1 -1
  317. package/dist/tests/src/tests.d.ts +4 -3
  318. package/dist/tests/src/tests.d.ts.map +1 -1
  319. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  320. package/dist/types/Migration.d.ts.map +1 -1
  321. package/dist/types/MigrationDescriber.d.ts +2 -2
  322. package/dist/types/MigrationDescriber.d.ts.map +1 -1
  323. package/dist/types/SchemaDiffer.d.ts +12 -5
  324. package/dist/types/SchemaDiffer.d.ts.map +1 -1
  325. package/dist/types/SchemaMigrator.d.ts +2 -2
  326. package/dist/types/SchemaMigrator.d.ts.map +1 -1
  327. package/dist/types/index.d.ts +6 -6
  328. package/dist/types/index.d.ts.map +1 -1
  329. package/dist/types/modifications/ModificationHandler.d.ts +2 -2
  330. package/dist/types/modifications/ModificationHandler.d.ts.map +1 -1
  331. package/dist/types/modifications/ModificationHandlerFactory.d.ts +1 -1
  332. package/dist/types/modifications/ModificationHandlerFactory.d.ts.map +1 -1
  333. package/dist/types/modifications/NoopModification.d.ts +2 -2
  334. package/dist/types/modifications/NoopModification.d.ts.map +1 -1
  335. package/dist/types/modifications/acl/PatchAclSchemaModification.d.ts +3 -3
  336. package/dist/types/modifications/acl/PatchAclSchemaModification.d.ts.map +1 -1
  337. package/dist/types/modifications/acl/UpdateAclSchemaModification.d.ts +4 -4
  338. package/dist/types/modifications/acl/UpdateAclSchemaModification.d.ts.map +1 -1
  339. package/dist/types/modifications/acl/index.d.ts +2 -2
  340. package/dist/types/modifications/acl/index.d.ts.map +1 -1
  341. package/dist/types/modifications/actions/CreateTargetModification.d.ts +4 -4
  342. package/dist/types/modifications/actions/CreateTargetModification.d.ts.map +1 -1
  343. package/dist/types/modifications/actions/CreateTriggerModification.d.ts +4 -4
  344. package/dist/types/modifications/actions/CreateTriggerModification.d.ts.map +1 -1
  345. package/dist/types/modifications/actions/PatchTriggerModification.d.ts +3 -3
  346. package/dist/types/modifications/actions/PatchTriggerModification.d.ts.map +1 -1
  347. package/dist/types/modifications/actions/RemoveTargetModification.d.ts +4 -4
  348. package/dist/types/modifications/actions/RemoveTargetModification.d.ts.map +1 -1
  349. package/dist/types/modifications/actions/RemoveTriggerModification.d.ts +4 -4
  350. package/dist/types/modifications/actions/RemoveTriggerModification.d.ts.map +1 -1
  351. package/dist/types/modifications/actions/UpdateTargetModification.d.ts +4 -4
  352. package/dist/types/modifications/actions/UpdateTargetModification.d.ts.map +1 -1
  353. package/dist/types/modifications/actions/UpdateTriggerModification.d.ts +4 -4
  354. package/dist/types/modifications/actions/UpdateTriggerModification.d.ts.map +1 -1
  355. package/dist/types/modifications/actions/index.d.ts +4 -4
  356. package/dist/types/modifications/actions/index.d.ts.map +1 -1
  357. package/dist/types/modifications/columns/CreateColumnModification.d.ts +4 -4
  358. package/dist/types/modifications/columns/CreateColumnModification.d.ts.map +1 -1
  359. package/dist/types/modifications/columns/UpdateColumnDefinitionModification.d.ts +4 -4
  360. package/dist/types/modifications/columns/UpdateColumnDefinitionModification.d.ts.map +1 -1
  361. package/dist/types/modifications/columns/UpdateColumnNameModification.d.ts +4 -4
  362. package/dist/types/modifications/columns/UpdateColumnNameModification.d.ts.map +1 -1
  363. package/dist/types/modifications/columns/columnUtils.d.ts +1 -1
  364. package/dist/types/modifications/columns/columnUtils.d.ts.map +1 -1
  365. package/dist/types/modifications/columns/index.d.ts +3 -3
  366. package/dist/types/modifications/columns/index.d.ts.map +1 -1
  367. package/dist/types/modifications/constraints/CreateUniqueConstraintModification.d.ts +4 -4
  368. package/dist/types/modifications/constraints/CreateUniqueConstraintModification.d.ts.map +1 -1
  369. package/dist/types/modifications/constraints/RemoveUniqueConstraintModification.d.ts +4 -4
  370. package/dist/types/modifications/constraints/RemoveUniqueConstraintModification.d.ts.map +1 -1
  371. package/dist/types/modifications/constraints/index.d.ts +3 -3
  372. package/dist/types/modifications/constraints/index.d.ts.map +1 -1
  373. package/dist/types/modifications/constraints/utils.d.ts.map +1 -1
  374. package/dist/types/modifications/differs/RemoveChangedFieldDiffer.d.ts +2 -2
  375. package/dist/types/modifications/differs/RemoveChangedFieldDiffer.d.ts.map +1 -1
  376. package/dist/types/modifications/differs/RemoveViewDiffer.d.ts +14 -3
  377. package/dist/types/modifications/differs/RemoveViewDiffer.d.ts.map +1 -1
  378. package/dist/types/modifications/differs/UpdateViewDiffer.d.ts +19 -0
  379. package/dist/types/modifications/differs/UpdateViewDiffer.d.ts.map +1 -0
  380. package/dist/types/modifications/differs/index.d.ts +3 -2
  381. package/dist/types/modifications/differs/index.d.ts.map +1 -1
  382. package/dist/types/modifications/entities/CreateEntityModification.d.ts +4 -4
  383. package/dist/types/modifications/entities/CreateEntityModification.d.ts.map +1 -1
  384. package/dist/types/modifications/entities/CreateViewModification.d.ts +4 -4
  385. package/dist/types/modifications/entities/CreateViewModification.d.ts.map +1 -1
  386. package/dist/types/modifications/entities/RemoveEntityModification.d.ts +4 -4
  387. package/dist/types/modifications/entities/RemoveEntityModification.d.ts.map +1 -1
  388. package/dist/types/modifications/entities/ToggleEventLogModification.d.ts +4 -4
  389. package/dist/types/modifications/entities/ToggleEventLogModification.d.ts.map +1 -1
  390. package/dist/types/modifications/entities/UpdateEntityNameModification.d.ts +3 -3
  391. package/dist/types/modifications/entities/UpdateEntityNameModification.d.ts.map +1 -1
  392. package/dist/types/modifications/entities/UpdateEntityOrderByModification.d.ts +4 -4
  393. package/dist/types/modifications/entities/UpdateEntityOrderByModification.d.ts.map +1 -1
  394. package/dist/types/modifications/entities/UpdateEntityTableNameModification.d.ts +4 -4
  395. package/dist/types/modifications/entities/UpdateEntityTableNameModification.d.ts.map +1 -1
  396. package/dist/types/modifications/entities/UpdateViewModification.d.ts +3 -3
  397. package/dist/types/modifications/entities/UpdateViewModification.d.ts.map +1 -1
  398. package/dist/types/modifications/entities/index.d.ts +7 -7
  399. package/dist/types/modifications/entities/index.d.ts.map +1 -1
  400. package/dist/types/modifications/enums/CreateEnumModification.d.ts +4 -4
  401. package/dist/types/modifications/enums/CreateEnumModification.d.ts.map +1 -1
  402. package/dist/types/modifications/enums/RemoveEnumModification.d.ts +4 -4
  403. package/dist/types/modifications/enums/RemoveEnumModification.d.ts.map +1 -1
  404. package/dist/types/modifications/enums/UpdateEnumModification.d.ts +4 -4
  405. package/dist/types/modifications/enums/UpdateEnumModification.d.ts.map +1 -1
  406. package/dist/types/modifications/enums/enumUtils.d.ts.map +1 -1
  407. package/dist/types/modifications/enums/index.d.ts +3 -3
  408. package/dist/types/modifications/enums/index.d.ts.map +1 -1
  409. package/dist/types/modifications/fields/RemoveFieldModification.d.ts +4 -4
  410. package/dist/types/modifications/fields/RemoveFieldModification.d.ts.map +1 -1
  411. package/dist/types/modifications/fields/UpdateFieldNameModification.d.ts +3 -3
  412. package/dist/types/modifications/fields/UpdateFieldNameModification.d.ts.map +1 -1
  413. package/dist/types/modifications/fields/index.d.ts +2 -2
  414. package/dist/types/modifications/fields/index.d.ts.map +1 -1
  415. package/dist/types/modifications/index.d.ts +13 -13
  416. package/dist/types/modifications/index.d.ts.map +1 -1
  417. package/dist/types/modifications/indexes/CreateIndexModification.d.ts +4 -4
  418. package/dist/types/modifications/indexes/CreateIndexModification.d.ts.map +1 -1
  419. package/dist/types/modifications/indexes/RemoveIndexModification.d.ts +18 -6
  420. package/dist/types/modifications/indexes/RemoveIndexModification.d.ts.map +1 -1
  421. package/dist/types/modifications/indexes/index.d.ts +2 -2
  422. package/dist/types/modifications/indexes/index.d.ts.map +1 -1
  423. package/dist/types/modifications/indexes/utils.d.ts.map +1 -1
  424. package/dist/types/modifications/relations/ConvertManyHasManyToJoiningEntityModification.d.ts +52 -0
  425. package/dist/types/modifications/relations/ConvertManyHasManyToJoiningEntityModification.d.ts.map +1 -0
  426. package/dist/types/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.d.ts +5 -5
  427. package/dist/types/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.d.ts.map +1 -1
  428. package/dist/types/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.d.ts +4 -4
  429. package/dist/types/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.d.ts.map +1 -1
  430. package/dist/types/modifications/relations/ConvertOneToManyRelationModification.d.ts +4 -4
  431. package/dist/types/modifications/relations/ConvertOneToManyRelationModification.d.ts.map +1 -1
  432. package/dist/types/modifications/relations/CreateRelationInverseSideModification.d.ts +4 -4
  433. package/dist/types/modifications/relations/CreateRelationInverseSideModification.d.ts.map +1 -1
  434. package/dist/types/modifications/relations/CreateRelationModification.d.ts +5 -5
  435. package/dist/types/modifications/relations/CreateRelationModification.d.ts.map +1 -1
  436. package/dist/types/modifications/relations/DisableOrphanRemovalModification.d.ts +4 -4
  437. package/dist/types/modifications/relations/DisableOrphanRemovalModification.d.ts.map +1 -1
  438. package/dist/types/modifications/relations/EnableOrphanRemovalModification.d.ts +4 -4
  439. package/dist/types/modifications/relations/EnableOrphanRemovalModification.d.ts.map +1 -1
  440. package/dist/types/modifications/relations/MakeRelationNotNullModification.d.ts +4 -4
  441. package/dist/types/modifications/relations/MakeRelationNotNullModification.d.ts.map +1 -1
  442. package/dist/types/modifications/relations/MakeRelationNullableModification.d.ts +4 -4
  443. package/dist/types/modifications/relations/MakeRelationNullableModification.d.ts.map +1 -1
  444. package/dist/types/modifications/relations/ToggleJunctionEventLogModification.d.ts +4 -4
  445. package/dist/types/modifications/relations/ToggleJunctionEventLogModification.d.ts.map +1 -1
  446. package/dist/types/modifications/relations/UpdateRelationOnDeleteModification.d.ts +4 -4
  447. package/dist/types/modifications/relations/UpdateRelationOnDeleteModification.d.ts.map +1 -1
  448. package/dist/types/modifications/relations/UpdateRelationOrderByModification.d.ts +4 -4
  449. package/dist/types/modifications/relations/UpdateRelationOrderByModification.d.ts.map +1 -1
  450. package/dist/types/modifications/relations/helpers.d.ts.map +1 -1
  451. package/dist/types/modifications/relations/index.d.ts +12 -11
  452. package/dist/types/modifications/relations/index.d.ts.map +1 -1
  453. package/dist/types/modifications/relations/normalization.d.ts.map +1 -1
  454. package/dist/types/modifications/settings/UpdateSettingsModification.d.ts +4 -4
  455. package/dist/types/modifications/settings/UpdateSettingsModification.d.ts.map +1 -1
  456. package/dist/types/modifications/settings/index.d.ts +1 -1
  457. package/dist/types/modifications/settings/index.d.ts.map +1 -1
  458. package/dist/types/modifications/upgrade/RemoveIndexNamesModification.d.ts +3 -3
  459. package/dist/types/modifications/upgrade/RemoveIndexNamesModification.d.ts.map +1 -1
  460. package/dist/types/modifications/utils/columnUtils.d.ts +1 -1
  461. package/dist/types/modifications/utils/columnUtils.d.ts.map +1 -1
  462. package/dist/types/modifications/utils/createJunctionTable.d.ts.map +1 -1
  463. package/dist/types/modifications/utils/diffUtils.d.ts +1 -1
  464. package/dist/types/modifications/utils/diffUtils.d.ts.map +1 -1
  465. package/dist/types/modifications/utils/getPrimaryColumnType.d.ts.map +1 -1
  466. package/dist/types/modifications/utils/schemaUpdateUtils.d.ts.map +1 -1
  467. package/dist/types/modifications/utils/sqlUpdateUtils.d.ts.map +1 -1
  468. package/dist/types/modifications/utils/stringArrayEquals.d.ts.map +1 -1
  469. package/dist/types/modifications/utils/valueUtils.d.ts.map +1 -1
  470. package/dist/types/modifications/utils/viewDependencies.d.ts +11 -1
  471. package/dist/types/modifications/utils/viewDependencies.d.ts.map +1 -1
  472. package/dist/types/modifications/validation/PatchValidationSchemaModification.d.ts +3 -3
  473. package/dist/types/modifications/validation/PatchValidationSchemaModification.d.ts.map +1 -1
  474. package/dist/types/modifications/validation/UpdateValidationSchemaModification.d.ts +4 -4
  475. package/dist/types/modifications/validation/UpdateValidationSchemaModification.d.ts.map +1 -1
  476. package/dist/types/modifications/validation/index.d.ts +2 -2
  477. package/dist/types/modifications/validation/index.d.ts.map +1 -1
  478. package/dist/types/tsconfig.tsbuildinfo +1 -1
  479. package/dist/types/utils/applyPatchCopyOnWrite.d.ts +10 -0
  480. package/dist/types/utils/applyPatchCopyOnWrite.d.ts.map +1 -0
  481. package/dist/types/utils/dbHelpers.d.ts.map +1 -1
  482. package/dist/types/utils/isDefined.d.ts.map +1 -1
  483. package/dist/types/utils/isIt.d.ts.map +1 -1
  484. package/package.json +7 -7
  485. package/src/MigrationDescriber.ts +2 -2
  486. package/src/SchemaDiffer.ts +52 -25
  487. package/src/SchemaMigrator.ts +2 -2
  488. package/src/index.ts +6 -6
  489. package/src/modifications/ModificationHandler.ts +2 -2
  490. package/src/modifications/ModificationHandlerFactory.ts +21 -19
  491. package/src/modifications/NoopModification.ts +2 -2
  492. package/src/modifications/acl/PatchAclSchemaModification.ts +7 -8
  493. package/src/modifications/acl/UpdateAclSchemaModification.ts +3 -3
  494. package/src/modifications/acl/index.ts +2 -2
  495. package/src/modifications/actions/CreateTargetModification.ts +2 -2
  496. package/src/modifications/actions/CreateTriggerModification.ts +2 -2
  497. package/src/modifications/actions/PatchTriggerModification.ts +3 -3
  498. package/src/modifications/actions/RemoveTargetModification.ts +2 -2
  499. package/src/modifications/actions/RemoveTriggerModification.ts +2 -2
  500. package/src/modifications/actions/UpdateTargetModification.ts +2 -2
  501. package/src/modifications/actions/UpdateTriggerModification.ts +3 -3
  502. package/src/modifications/actions/index.ts +4 -4
  503. package/src/modifications/columns/CreateColumnModification.ts +7 -6
  504. package/src/modifications/columns/UpdateColumnDefinitionModification.ts +6 -6
  505. package/src/modifications/columns/UpdateColumnNameModification.ts +3 -3
  506. package/src/modifications/columns/columnUtils.ts +1 -1
  507. package/src/modifications/columns/index.ts +3 -3
  508. package/src/modifications/constraints/CreateUniqueConstraintModification.ts +4 -4
  509. package/src/modifications/constraints/RemoveUniqueConstraintModification.ts +4 -4
  510. package/src/modifications/constraints/index.ts +3 -3
  511. package/src/modifications/differs/RemoveChangedFieldDiffer.ts +3 -3
  512. package/src/modifications/differs/RemoveViewDiffer.ts +17 -5
  513. package/src/modifications/differs/UpdateViewDiffer.ts +58 -0
  514. package/src/modifications/differs/index.ts +3 -2
  515. package/src/modifications/entities/CreateEntityModification.ts +5 -5
  516. package/src/modifications/entities/CreateViewModification.ts +3 -3
  517. package/src/modifications/entities/RemoveEntityModification.ts +4 -4
  518. package/src/modifications/entities/ToggleEventLogModification.ts +3 -3
  519. package/src/modifications/entities/UpdateEntityNameModification.ts +12 -7
  520. package/src/modifications/entities/UpdateEntityOrderByModification.ts +2 -2
  521. package/src/modifications/entities/UpdateEntityTableNameModification.ts +2 -2
  522. package/src/modifications/entities/UpdateViewModification.ts +2 -2
  523. package/src/modifications/entities/index.ts +7 -7
  524. package/src/modifications/enums/CreateEnumModification.ts +3 -3
  525. package/src/modifications/enums/RemoveEnumModification.ts +2 -2
  526. package/src/modifications/enums/UpdateEnumModification.ts +4 -4
  527. package/src/modifications/enums/enumUtils.ts +1 -1
  528. package/src/modifications/enums/index.ts +3 -3
  529. package/src/modifications/fields/RemoveFieldModification.ts +3 -3
  530. package/src/modifications/fields/UpdateFieldNameModification.ts +26 -10
  531. package/src/modifications/fields/index.ts +2 -2
  532. package/src/modifications/index.ts +13 -13
  533. package/src/modifications/indexes/CreateIndexModification.ts +47 -11
  534. package/src/modifications/indexes/RemoveIndexModification.ts +92 -23
  535. package/src/modifications/indexes/index.ts +2 -2
  536. package/src/modifications/relations/ConvertManyHasManyToJoiningEntityModification.ts +218 -0
  537. package/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.ts +7 -7
  538. package/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.ts +6 -6
  539. package/src/modifications/relations/ConvertOneToManyRelationModification.ts +6 -6
  540. package/src/modifications/relations/CreateRelationInverseSideModification.ts +3 -3
  541. package/src/modifications/relations/CreateRelationModification.ts +9 -9
  542. package/src/modifications/relations/DisableOrphanRemovalModification.ts +3 -3
  543. package/src/modifications/relations/EnableOrphanRemovalModification.ts +3 -3
  544. package/src/modifications/relations/MakeRelationNotNullModification.ts +4 -4
  545. package/src/modifications/relations/MakeRelationNullableModification.ts +4 -4
  546. package/src/modifications/relations/ToggleJunctionEventLogModification.ts +5 -5
  547. package/src/modifications/relations/UpdateRelationOnDeleteModification.ts +5 -5
  548. package/src/modifications/relations/UpdateRelationOrderByModification.ts +3 -3
  549. package/src/modifications/relations/helpers.ts +1 -1
  550. package/src/modifications/relations/index.ts +12 -11
  551. package/src/modifications/settings/UpdateSettingsModification.ts +2 -2
  552. package/src/modifications/settings/index.ts +1 -1
  553. package/src/modifications/upgrade/RemoveIndexNamesModification.ts +2 -2
  554. package/src/modifications/utils/createJunctionTable.ts +3 -3
  555. package/src/modifications/utils/diffUtils.ts +2 -2
  556. package/src/modifications/utils/schemaUpdateUtils.ts +3 -3
  557. package/src/modifications/utils/viewDependencies.ts +26 -2
  558. package/src/modifications/validation/PatchValidationSchemaModification.ts +3 -3
  559. package/src/modifications/validation/UpdateValidationSchemaModification.ts +3 -3
  560. package/src/modifications/validation/index.ts +2 -2
  561. package/src/utils/applyPatchCopyOnWrite.ts +63 -0
  562. package/tests/cases/integration/convertManyHasManyToJoiningEntity.test.ts +339 -0
  563. package/tests/cases/integration/convertManyHasOneToOneHasOneRelation.test.ts +2 -2
  564. package/tests/cases/integration/convertOneHasManyToManyHasManyRelation.test.ts +2 -2
  565. package/tests/cases/integration/convertOneToManyRelation.test.ts +2 -2
  566. package/tests/cases/integration/createAndDropIndex.test.ts +482 -3
  567. package/tests/cases/integration/createColumn.test.ts +57 -2
  568. package/tests/cases/integration/createEntity.test.ts +2 -2
  569. package/tests/cases/integration/createEnum.test.ts +2 -2
  570. package/tests/cases/integration/createManyHasMany.test.ts +2 -2
  571. package/tests/cases/integration/createManyHasOne.test.ts +2 -2
  572. package/tests/cases/integration/createOneHasMany.test.ts +2 -2
  573. package/tests/cases/integration/createOneHasOne.test.ts +2 -2
  574. package/tests/cases/integration/createRelationInverseSide.test.ts +2 -2
  575. package/tests/cases/integration/createUnique.test.ts +3 -3
  576. package/tests/cases/integration/disableOrphanRemoval.test.ts +2 -2
  577. package/tests/cases/integration/enableOrphanRemoval.test.ts +2 -2
  578. package/tests/cases/integration/makeColumnNotNull.test.ts +2 -2
  579. package/tests/cases/integration/makeRelationNotNull.test.ts +2 -2
  580. package/tests/cases/integration/makeRelationNullable.test.ts +2 -2
  581. package/tests/cases/integration/patchAclSchema.test.ts +2 -2
  582. package/tests/cases/integration/patchTrigger.test.ts +1 -1
  583. package/tests/cases/integration/removeEntity.test.ts +2 -2
  584. package/tests/cases/integration/removeEnum.test.ts +2 -2
  585. package/tests/cases/integration/removeField.test.ts +3 -3
  586. package/tests/cases/integration/skipNonModelDiffers.test.ts +97 -0
  587. package/tests/cases/integration/toggleEventLog.test.ts +2 -2
  588. package/tests/cases/integration/toggleJunctionEventLog.test.ts +2 -2
  589. package/tests/cases/integration/updateColumnDefinition.test.ts +3 -3
  590. package/tests/cases/integration/updateEntityName.test.ts +2 -2
  591. package/tests/cases/integration/updateEntityOrderBy.test.ts +2 -2
  592. package/tests/cases/integration/updateEnum.test.ts +2 -2
  593. package/tests/cases/integration/updateFieldName.test.ts +38 -3
  594. package/tests/cases/integration/updateRelationOnDelete.test.ts +2 -2
  595. package/tests/cases/integration/updateRelationOrderBy.test.ts +2 -2
  596. package/tests/cases/integration/updateView.test.ts +221 -233
  597. package/tests/cases/unit/patchAclSchemaModification.test.ts +144 -0
  598. package/tests/src/tests.ts +6 -4
@@ -1,8 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const ModificationHandler = require("../ModificationHandler.cjs");
4
- const rfc6902 = require("rfc6902");
5
- const deepCopy = require("../../utils/deepCopy.cjs");
4
+ const applyPatchCopyOnWrite = require("../../utils/applyPatchCopyOnWrite.cjs");
6
5
  class PatchAclSchemaModificationHandler {
7
6
  constructor(data) {
8
7
  this.data = data;
@@ -11,10 +10,9 @@ class PatchAclSchemaModificationHandler {
11
10
  }
12
11
  getSchemaUpdater() {
13
12
  return ({ schema }) => {
14
- const acl = deepCopy(schema.acl);
15
- const result = rfc6902.applyPatch(acl, this.data.patch).filter((it) => it !== null);
16
- if (result.length > 0) {
17
- throw result[0];
13
+ const { result: acl, errors } = applyPatchCopyOnWrite.applyPatchCopyOnWrite(schema.acl, this.data.patch);
14
+ if (errors.length > 0) {
15
+ throw errors[0];
18
16
  }
19
17
  return {
20
18
  ...schema,
@@ -1 +1 @@
1
- {"version":3,"file":"PatchAclSchemaModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/acl/PatchAclSchemaModification.ts"],"sourcesContent":["import { SchemaUpdater } from '../utils/schemaUpdateUtils'\nimport { createModificationType, ModificationHandler } from '../ModificationHandler'\nimport { applyPatch, Operation } from 'rfc6902'\nimport deepCopy from '../../utils/deepCopy'\n\nexport class PatchAclSchemaModificationHandler implements ModificationHandler<PatchAclSchemaModificationData> {\n\tconstructor(private readonly data: PatchAclSchemaModificationData) {}\n\n\tpublic createSql(): void {}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\tconst acl = deepCopy(schema.acl)\n\t\t\tconst result = applyPatch(acl, this.data.patch).filter(it => it !== null)\n\t\t\tif (result.length > 0) {\n\t\t\t\tthrow result[0]\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...schema,\n\t\t\t\tacl,\n\t\t\t}\n\t\t}\n\t}\n\n\tdescribe() {\n\t\treturn { message: 'Update ACL schema' }\n\t}\n}\n\nexport const patchAclSchemaModification = createModificationType({\n\tid: 'patchAclSchema',\n\thandler: PatchAclSchemaModificationHandler,\n})\n\nexport interface PatchAclSchemaModificationData {\n\tpatch: Operation[]\n}\n"],"names":["applyPatch","createModificationType"],"mappings":";;;;;AAKO,MAAM,kCAAiG;AAAA,EAC7G,YAA6B,MAAsC;AAAtC,SAAA,OAAA;AAAA,EAAuC;AAAA,EAE7D,YAAkB;AAAA,EAAC;AAAA,EAEnB,mBAAkC;AACxC,WAAO,CAAC,EAAE,aAAa;AACtB,YAAM,MAAM,SAAS,OAAO,GAAG;AAC/B,YAAM,SAASA,QAAAA,WAAW,KAAK,KAAK,KAAK,KAAK,EAAE,OAAO,CAAA,OAAM,OAAO,IAAI;AACxE,UAAI,OAAO,SAAS,GAAG;AACtB,cAAM,OAAO,CAAC;AAAA,MACf;AAEA,aAAO;AAAA,QACN,GAAG;AAAA,QACH;AAAA,MAAA;AAAA,IAEF;AAAA,EACD;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,oBAAA;AAAA,EACnB;AACD;AAEO,MAAM,6BAA6BC,oBAAAA,uBAAuB;AAAA,EAChE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;;;"}
1
+ {"version":3,"file":"PatchAclSchemaModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/acl/PatchAclSchemaModification.ts"],"sourcesContent":["import { SchemaUpdater } from '../utils/schemaUpdateUtils.js'\nimport { createModificationType, ModificationHandler } from '../ModificationHandler.js'\nimport { Operation } from 'rfc6902'\nimport { applyPatchCopyOnWrite } from '../../utils/applyPatchCopyOnWrite.js'\n\nexport class PatchAclSchemaModificationHandler implements ModificationHandler<PatchAclSchemaModificationData> {\n\tconstructor(private readonly data: PatchAclSchemaModificationData) {}\n\n\tpublic createSql(): void {}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\tconst { result: acl, errors } = applyPatchCopyOnWrite(schema.acl, this.data.patch)\n\t\t\tif (errors.length > 0) {\n\t\t\t\tthrow errors[0]\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...schema,\n\t\t\t\tacl,\n\t\t\t}\n\t\t}\n\t}\n\n\tdescribe() {\n\t\treturn { message: 'Update ACL schema' }\n\t}\n}\n\nexport const patchAclSchemaModification = createModificationType({\n\tid: 'patchAclSchema',\n\thandler: PatchAclSchemaModificationHandler,\n})\n\nexport interface PatchAclSchemaModificationData {\n\tpatch: Operation[]\n}\n"],"names":["applyPatchCopyOnWrite","createModificationType"],"mappings":";;;;AAKO,MAAM,kCAAiG;AAAA,EAC7G,YAA6B,MAAsC;AAAtC,SAAA,OAAA;AAAA,EAAuC;AAAA,EAE7D,YAAkB;AAAA,EAAC;AAAA,EAEnB,mBAAkC;AACxC,WAAO,CAAC,EAAE,aAAa;AACtB,YAAM,EAAE,QAAQ,KAAK,WAAWA,sBAAAA,sBAAsB,OAAO,KAAK,KAAK,KAAK,KAAK;AACjF,UAAI,OAAO,SAAS,GAAG;AACtB,cAAM,OAAO,CAAC;AAAA,MACf;AAEA,aAAO;AAAA,QACN,GAAG;AAAA,QACH;AAAA,MAAA;AAAA,IAEF;AAAA,EACD;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,oBAAA;AAAA,EACnB;AACD;AAEO,MAAM,6BAA6BC,oBAAAA,uBAAuB;AAAA,EAChE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;;;"}
@@ -1,6 +1,5 @@
1
1
  import { createModificationType } from "../ModificationHandler.js";
2
- import { applyPatch } from "rfc6902";
3
- import deepCopy from "../../utils/deepCopy.js";
2
+ import { applyPatchCopyOnWrite } from "../../utils/applyPatchCopyOnWrite.js";
4
3
  class PatchAclSchemaModificationHandler {
5
4
  constructor(data) {
6
5
  this.data = data;
@@ -9,10 +8,9 @@ class PatchAclSchemaModificationHandler {
9
8
  }
10
9
  getSchemaUpdater() {
11
10
  return ({ schema }) => {
12
- const acl = deepCopy(schema.acl);
13
- const result = applyPatch(acl, this.data.patch).filter((it) => it !== null);
14
- if (result.length > 0) {
15
- throw result[0];
11
+ const { result: acl, errors } = applyPatchCopyOnWrite(schema.acl, this.data.patch);
12
+ if (errors.length > 0) {
13
+ throw errors[0];
16
14
  }
17
15
  return {
18
16
  ...schema,
@@ -1 +1 @@
1
- {"version":3,"file":"PatchAclSchemaModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/acl/PatchAclSchemaModification.ts"],"sourcesContent":["import { SchemaUpdater } from '../utils/schemaUpdateUtils'\nimport { createModificationType, ModificationHandler } from '../ModificationHandler'\nimport { applyPatch, Operation } from 'rfc6902'\nimport deepCopy from '../../utils/deepCopy'\n\nexport class PatchAclSchemaModificationHandler implements ModificationHandler<PatchAclSchemaModificationData> {\n\tconstructor(private readonly data: PatchAclSchemaModificationData) {}\n\n\tpublic createSql(): void {}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\tconst acl = deepCopy(schema.acl)\n\t\t\tconst result = applyPatch(acl, this.data.patch).filter(it => it !== null)\n\t\t\tif (result.length > 0) {\n\t\t\t\tthrow result[0]\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...schema,\n\t\t\t\tacl,\n\t\t\t}\n\t\t}\n\t}\n\n\tdescribe() {\n\t\treturn { message: 'Update ACL schema' }\n\t}\n}\n\nexport const patchAclSchemaModification = createModificationType({\n\tid: 'patchAclSchema',\n\thandler: PatchAclSchemaModificationHandler,\n})\n\nexport interface PatchAclSchemaModificationData {\n\tpatch: Operation[]\n}\n"],"names":[],"mappings":";;;AAKO,MAAM,kCAAiG;AAAA,EAC7G,YAA6B,MAAsC;AAAtC,SAAA,OAAA;AAAA,EAAuC;AAAA,EAE7D,YAAkB;AAAA,EAAC;AAAA,EAEnB,mBAAkC;AACxC,WAAO,CAAC,EAAE,aAAa;AACtB,YAAM,MAAM,SAAS,OAAO,GAAG;AAC/B,YAAM,SAAS,WAAW,KAAK,KAAK,KAAK,KAAK,EAAE,OAAO,CAAA,OAAM,OAAO,IAAI;AACxE,UAAI,OAAO,SAAS,GAAG;AACtB,cAAM,OAAO,CAAC;AAAA,MACf;AAEA,aAAO;AAAA,QACN,GAAG;AAAA,QACH;AAAA,MAAA;AAAA,IAEF;AAAA,EACD;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,oBAAA;AAAA,EACnB;AACD;AAEO,MAAM,6BAA6B,uBAAuB;AAAA,EAChE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;"}
1
+ {"version":3,"file":"PatchAclSchemaModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/acl/PatchAclSchemaModification.ts"],"sourcesContent":["import { SchemaUpdater } from '../utils/schemaUpdateUtils.js'\nimport { createModificationType, ModificationHandler } from '../ModificationHandler.js'\nimport { Operation } from 'rfc6902'\nimport { applyPatchCopyOnWrite } from '../../utils/applyPatchCopyOnWrite.js'\n\nexport class PatchAclSchemaModificationHandler implements ModificationHandler<PatchAclSchemaModificationData> {\n\tconstructor(private readonly data: PatchAclSchemaModificationData) {}\n\n\tpublic createSql(): void {}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\tconst { result: acl, errors } = applyPatchCopyOnWrite(schema.acl, this.data.patch)\n\t\t\tif (errors.length > 0) {\n\t\t\t\tthrow errors[0]\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...schema,\n\t\t\t\tacl,\n\t\t\t}\n\t\t}\n\t}\n\n\tdescribe() {\n\t\treturn { message: 'Update ACL schema' }\n\t}\n}\n\nexport const patchAclSchemaModification = createModificationType({\n\tid: 'patchAclSchema',\n\thandler: PatchAclSchemaModificationHandler,\n})\n\nexport interface PatchAclSchemaModificationData {\n\tpatch: Operation[]\n}\n"],"names":[],"mappings":";;AAKO,MAAM,kCAAiG;AAAA,EAC7G,YAA6B,MAAsC;AAAtC,SAAA,OAAA;AAAA,EAAuC;AAAA,EAE7D,YAAkB;AAAA,EAAC;AAAA,EAEnB,mBAAkC;AACxC,WAAO,CAAC,EAAE,aAAa;AACtB,YAAM,EAAE,QAAQ,KAAK,WAAW,sBAAsB,OAAO,KAAK,KAAK,KAAK,KAAK;AACjF,UAAI,OAAO,SAAS,GAAG;AACtB,cAAM,OAAO,CAAC;AAAA,MACf;AAEA,aAAO;AAAA,QACN,GAAG;AAAA,QACH;AAAA,MAAA;AAAA,IAEF;AAAA,EACD;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,oBAAA;AAAA,EACnB;AACD;AAEO,MAAM,6BAA6B,uBAAuB;AAAA,EAChE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateAclSchemaModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/acl/UpdateAclSchemaModification.ts"],"sourcesContent":["import { Acl, Schema } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport deepEqual from 'fast-deep-equal'\nimport { createPatch } from 'rfc6902'\nimport { patchAclSchemaModification } from './PatchAclSchemaModification'\n\nexport class UpdateAclSchemaModificationHandler implements ModificationHandler<UpdateAclSchemaModificationData> {\n\tconstructor(private readonly data: UpdateAclSchemaModificationData) {}\n\n\tpublic createSql(): void {}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => ({\n\t\t\t...schema,\n\t\t\tacl: this.data.schema,\n\t\t})\n\t}\n\n\tdescribe() {\n\t\treturn { message: 'Update ACL schema' }\n\t}\n}\n\nexport interface UpdateAclSchemaModificationData {\n\tschema: Acl.Schema\n}\n\nexport const updateAclSchemaModification = createModificationType({\n\tid: 'updateAclSchema',\n\thandler: UpdateAclSchemaModificationHandler,\n})\n\nexport class UpdateAclSchemaDiffer implements Differ {\n\tconstructor(\n\t\tprivate readonly options?: {\n\t\t\tmaxPatchSize?: number\n\t\t},\n\t) {\n\t}\n\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\tif (deepEqual(originalSchema.acl, updatedSchema.acl)) {\n\t\t\treturn []\n\t\t}\n\t\tconst patch = createPatch(originalSchema.acl, updatedSchema.acl)\n\t\tif (patch.length <= (this.options?.maxPatchSize ?? 1000)) {\n\t\t\treturn [patchAclSchemaModification.createModification({ patch })]\n\t\t}\n\t\treturn [updateAclSchemaModification.createModification({ schema: updatedSchema.acl })]\n\t}\n}\n"],"names":["createModificationType","createPatch","patchAclSchemaModification"],"mappings":";;;;;;AAOO,MAAM,mCAAmG;AAAA,EAC/G,YAA6B,MAAuC;AAAvC,SAAA,OAAA;AAAA,EAAwC;AAAA,EAE9D,YAAkB;AAAA,EAAC;AAAA,EAEnB,mBAAkC;AACxC,WAAO,CAAC,EAAE,cAAc;AAAA,MACvB,GAAG;AAAA,MACH,KAAK,KAAK,KAAK;AAAA,IAAA;AAAA,EAEjB;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,oBAAA;AAAA,EACnB;AACD;AAMO,MAAM,8BAA8BA,oBAAAA,uBAAuB;AAAA,EACjE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,sBAAwC;AAAA,EACpD,YACkB,SAGhB;AAHgB,SAAA,UAAA;AAAA,EAIlB;AAAA,EAEA,WAAW,gBAAwB,eAAuB;AACzD,QAAI,UAAU,eAAe,KAAK,cAAc,GAAG,GAAG;AACrD,aAAO,CAAA;AAAA,IACR;AACA,UAAM,QAAQC,QAAAA,YAAY,eAAe,KAAK,cAAc,GAAG;AAC/D,QAAI,MAAM,WAAW,KAAK,SAAS,gBAAgB,MAAO;AACzD,aAAO,CAACC,2BAAAA,2BAA2B,mBAAmB,EAAE,MAAA,CAAO,CAAC;AAAA,IACjE;AACA,WAAO,CAAC,4BAA4B,mBAAmB,EAAE,QAAQ,cAAc,IAAA,CAAK,CAAC;AAAA,EACtF;AACD;;;;"}
1
+ {"version":3,"file":"UpdateAclSchemaModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/acl/UpdateAclSchemaModification.ts"],"sourcesContent":["import { Acl, Schema } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils.js'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler.js'\nimport deepEqual from 'fast-deep-equal'\nimport { createPatch } from 'rfc6902'\nimport { patchAclSchemaModification } from './PatchAclSchemaModification.js'\n\nexport class UpdateAclSchemaModificationHandler implements ModificationHandler<UpdateAclSchemaModificationData> {\n\tconstructor(private readonly data: UpdateAclSchemaModificationData) {}\n\n\tpublic createSql(): void {}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => ({\n\t\t\t...schema,\n\t\t\tacl: this.data.schema,\n\t\t})\n\t}\n\n\tdescribe() {\n\t\treturn { message: 'Update ACL schema' }\n\t}\n}\n\nexport interface UpdateAclSchemaModificationData {\n\tschema: Acl.Schema\n}\n\nexport const updateAclSchemaModification = createModificationType({\n\tid: 'updateAclSchema',\n\thandler: UpdateAclSchemaModificationHandler,\n})\n\nexport class UpdateAclSchemaDiffer implements Differ {\n\tconstructor(\n\t\tprivate readonly options?: {\n\t\t\tmaxPatchSize?: number\n\t\t},\n\t) {\n\t}\n\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\tif (deepEqual(originalSchema.acl, updatedSchema.acl)) {\n\t\t\treturn []\n\t\t}\n\t\tconst patch = createPatch(originalSchema.acl, updatedSchema.acl)\n\t\tif (patch.length <= (this.options?.maxPatchSize ?? 1000)) {\n\t\t\treturn [patchAclSchemaModification.createModification({ patch })]\n\t\t}\n\t\treturn [updateAclSchemaModification.createModification({ schema: updatedSchema.acl })]\n\t}\n}\n"],"names":["createModificationType","createPatch","patchAclSchemaModification"],"mappings":";;;;;;AAOO,MAAM,mCAAmG;AAAA,EAC/G,YAA6B,MAAuC;AAAvC,SAAA,OAAA;AAAA,EAAwC;AAAA,EAE9D,YAAkB;AAAA,EAAC;AAAA,EAEnB,mBAAkC;AACxC,WAAO,CAAC,EAAE,cAAc;AAAA,MACvB,GAAG;AAAA,MACH,KAAK,KAAK,KAAK;AAAA,IAAA;AAAA,EAEjB;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,oBAAA;AAAA,EACnB;AACD;AAMO,MAAM,8BAA8BA,oBAAAA,uBAAuB;AAAA,EACjE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,sBAAwC;AAAA,EACpD,YACkB,SAGhB;AAHgB,SAAA,UAAA;AAAA,EAIlB;AAAA,EAEA,WAAW,gBAAwB,eAAuB;AACzD,QAAI,UAAU,eAAe,KAAK,cAAc,GAAG,GAAG;AACrD,aAAO,CAAA;AAAA,IACR;AACA,UAAM,QAAQC,QAAAA,YAAY,eAAe,KAAK,cAAc,GAAG;AAC/D,QAAI,MAAM,WAAW,KAAK,SAAS,gBAAgB,MAAO;AACzD,aAAO,CAACC,2BAAAA,2BAA2B,mBAAmB,EAAE,MAAA,CAAO,CAAC;AAAA,IACjE;AACA,WAAO,CAAC,4BAA4B,mBAAmB,EAAE,QAAQ,cAAc,IAAA,CAAK,CAAC;AAAA,EACtF;AACD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateAclSchemaModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/acl/UpdateAclSchemaModification.ts"],"sourcesContent":["import { Acl, Schema } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport deepEqual from 'fast-deep-equal'\nimport { createPatch } from 'rfc6902'\nimport { patchAclSchemaModification } from './PatchAclSchemaModification'\n\nexport class UpdateAclSchemaModificationHandler implements ModificationHandler<UpdateAclSchemaModificationData> {\n\tconstructor(private readonly data: UpdateAclSchemaModificationData) {}\n\n\tpublic createSql(): void {}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => ({\n\t\t\t...schema,\n\t\t\tacl: this.data.schema,\n\t\t})\n\t}\n\n\tdescribe() {\n\t\treturn { message: 'Update ACL schema' }\n\t}\n}\n\nexport interface UpdateAclSchemaModificationData {\n\tschema: Acl.Schema\n}\n\nexport const updateAclSchemaModification = createModificationType({\n\tid: 'updateAclSchema',\n\thandler: UpdateAclSchemaModificationHandler,\n})\n\nexport class UpdateAclSchemaDiffer implements Differ {\n\tconstructor(\n\t\tprivate readonly options?: {\n\t\t\tmaxPatchSize?: number\n\t\t},\n\t) {\n\t}\n\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\tif (deepEqual(originalSchema.acl, updatedSchema.acl)) {\n\t\t\treturn []\n\t\t}\n\t\tconst patch = createPatch(originalSchema.acl, updatedSchema.acl)\n\t\tif (patch.length <= (this.options?.maxPatchSize ?? 1000)) {\n\t\t\treturn [patchAclSchemaModification.createModification({ patch })]\n\t\t}\n\t\treturn [updateAclSchemaModification.createModification({ schema: updatedSchema.acl })]\n\t}\n}\n"],"names":[],"mappings":";;;;AAOO,MAAM,mCAAmG;AAAA,EAC/G,YAA6B,MAAuC;AAAvC,SAAA,OAAA;AAAA,EAAwC;AAAA,EAE9D,YAAkB;AAAA,EAAC;AAAA,EAEnB,mBAAkC;AACxC,WAAO,CAAC,EAAE,cAAc;AAAA,MACvB,GAAG;AAAA,MACH,KAAK,KAAK,KAAK;AAAA,IAAA;AAAA,EAEjB;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,oBAAA;AAAA,EACnB;AACD;AAMO,MAAM,8BAA8B,uBAAuB;AAAA,EACjE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,sBAAwC;AAAA,EACpD,YACkB,SAGhB;AAHgB,SAAA,UAAA;AAAA,EAIlB;AAAA,EAEA,WAAW,gBAAwB,eAAuB;AACzD,QAAI,UAAU,eAAe,KAAK,cAAc,GAAG,GAAG;AACrD,aAAO,CAAA;AAAA,IACR;AACA,UAAM,QAAQ,YAAY,eAAe,KAAK,cAAc,GAAG;AAC/D,QAAI,MAAM,WAAW,KAAK,SAAS,gBAAgB,MAAO;AACzD,aAAO,CAAC,2BAA2B,mBAAmB,EAAE,MAAA,CAAO,CAAC;AAAA,IACjE;AACA,WAAO,CAAC,4BAA4B,mBAAmB,EAAE,QAAQ,cAAc,IAAA,CAAK,CAAC;AAAA,EACtF;AACD;"}
1
+ {"version":3,"file":"UpdateAclSchemaModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/acl/UpdateAclSchemaModification.ts"],"sourcesContent":["import { Acl, Schema } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils.js'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler.js'\nimport deepEqual from 'fast-deep-equal'\nimport { createPatch } from 'rfc6902'\nimport { patchAclSchemaModification } from './PatchAclSchemaModification.js'\n\nexport class UpdateAclSchemaModificationHandler implements ModificationHandler<UpdateAclSchemaModificationData> {\n\tconstructor(private readonly data: UpdateAclSchemaModificationData) {}\n\n\tpublic createSql(): void {}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => ({\n\t\t\t...schema,\n\t\t\tacl: this.data.schema,\n\t\t})\n\t}\n\n\tdescribe() {\n\t\treturn { message: 'Update ACL schema' }\n\t}\n}\n\nexport interface UpdateAclSchemaModificationData {\n\tschema: Acl.Schema\n}\n\nexport const updateAclSchemaModification = createModificationType({\n\tid: 'updateAclSchema',\n\thandler: UpdateAclSchemaModificationHandler,\n})\n\nexport class UpdateAclSchemaDiffer implements Differ {\n\tconstructor(\n\t\tprivate readonly options?: {\n\t\t\tmaxPatchSize?: number\n\t\t},\n\t) {\n\t}\n\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\tif (deepEqual(originalSchema.acl, updatedSchema.acl)) {\n\t\t\treturn []\n\t\t}\n\t\tconst patch = createPatch(originalSchema.acl, updatedSchema.acl)\n\t\tif (patch.length <= (this.options?.maxPatchSize ?? 1000)) {\n\t\t\treturn [patchAclSchemaModification.createModification({ patch })]\n\t\t}\n\t\treturn [updateAclSchemaModification.createModification({ schema: updatedSchema.acl })]\n\t}\n}\n"],"names":[],"mappings":";;;;AAOO,MAAM,mCAAmG;AAAA,EAC/G,YAA6B,MAAuC;AAAvC,SAAA,OAAA;AAAA,EAAwC;AAAA,EAE9D,YAAkB;AAAA,EAAC;AAAA,EAEnB,mBAAkC;AACxC,WAAO,CAAC,EAAE,cAAc;AAAA,MACvB,GAAG;AAAA,MACH,KAAK,KAAK,KAAK;AAAA,IAAA;AAAA,EAEjB;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,oBAAA;AAAA,EACnB;AACD;AAMO,MAAM,8BAA8B,uBAAuB;AAAA,EACjE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,sBAAwC;AAAA,EACpD,YACkB,SAGhB;AAHgB,SAAA,UAAA;AAAA,EAIlB;AAAA,EAEA,WAAW,gBAAwB,eAAuB;AACzD,QAAI,UAAU,eAAe,KAAK,cAAc,GAAG,GAAG;AACrD,aAAO,CAAA;AAAA,IACR;AACA,UAAM,QAAQ,YAAY,eAAe,KAAK,cAAc,GAAG;AAC/D,QAAI,MAAM,WAAW,KAAK,SAAS,gBAAgB,MAAO;AACzD,aAAO,CAAC,2BAA2B,mBAAmB,EAAE,MAAA,CAAO,CAAC;AAAA,IACjE;AACA,WAAO,CAAC,4BAA4B,mBAAmB,EAAE,QAAQ,cAAc,IAAA,CAAK,CAAC;AAAA,EACtF;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"CreateTargetModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/actions/CreateTargetModification.ts"],"sourcesContent":["import { Actions, Schema } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\n\nexport class CreateTargetModificationHandler implements ModificationHandler<CreateTargetModificationData> {\n\tconstructor(private readonly data: CreateTargetModificationData) {\n\t}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => ({\n\t\t\t...schema,\n\t\t\tactions: {\n\t\t\t\t...schema.actions,\n\t\t\t\ttargets: {\n\t\t\t\t\t...schema.actions.targets,\n\t\t\t\t\t[this.data.target.name]: this.data.target,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Create target ${this.data.target.name}` }\n\t}\n}\n\nexport interface CreateTargetModificationData {\n\ttarget: Actions.AnyTarget\n}\n\nexport const createTargetModification = createModificationType({\n\tid: 'createTarget',\n\thandler: CreateTargetModificationHandler,\n})\n\nexport class CreateTargetDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn Object.entries(updatedSchema.actions.targets)\n\t\t\t.filter(([name]) => !originalSchema.actions.targets[name])\n\t\t\t.map(([, target]) => createTargetModification.createModification({ target }))\n\t}\n}\n"],"names":["createModificationType"],"mappings":";;;AAIO,MAAM,gCAA6F;AAAA,EACzG,YAA6B,MAAoC;AAApC,SAAA,OAAA;AAAA,EAC7B;AAAA,EAEO,YAAkB;AAAA,EACzB;AAAA,EAEO,mBAAkC;AACxC,WAAO,CAAC,EAAE,cAAc;AAAA,MACvB,GAAG;AAAA,MACH,SAAS;AAAA,QACR,GAAG,OAAO;AAAA,QACV,SAAS;AAAA,UACR,GAAG,OAAO,QAAQ;AAAA,UAClB,CAAC,KAAK,KAAK,OAAO,IAAI,GAAG,KAAK,KAAK;AAAA,QAAA;AAAA,MACpC;AAAA,IACD;AAAA,EAEF;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,iBAAiB,KAAK,KAAK,OAAO,IAAI,GAAA;AAAA,EACzD;AACD;AAMO,MAAM,2BAA2BA,oBAAAA,uBAAuB;AAAA,EAC9D,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,mBAAqC;AAAA,EACjD,WAAW,gBAAwB,eAAuB;AACzD,WAAO,OAAO,QAAQ,cAAc,QAAQ,OAAO,EACjD,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,eAAe,QAAQ,QAAQ,IAAI,CAAC,EACxD,IAAI,CAAC,CAAA,EAAG,MAAM,MAAM,yBAAyB,mBAAmB,EAAE,OAAA,CAAQ,CAAC;AAAA,EAC9E;AACD;;;;"}
1
+ {"version":3,"file":"CreateTargetModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/actions/CreateTargetModification.ts"],"sourcesContent":["import { Actions, Schema } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils.js'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler.js'\n\nexport class CreateTargetModificationHandler implements ModificationHandler<CreateTargetModificationData> {\n\tconstructor(private readonly data: CreateTargetModificationData) {\n\t}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => ({\n\t\t\t...schema,\n\t\t\tactions: {\n\t\t\t\t...schema.actions,\n\t\t\t\ttargets: {\n\t\t\t\t\t...schema.actions.targets,\n\t\t\t\t\t[this.data.target.name]: this.data.target,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Create target ${this.data.target.name}` }\n\t}\n}\n\nexport interface CreateTargetModificationData {\n\ttarget: Actions.AnyTarget\n}\n\nexport const createTargetModification = createModificationType({\n\tid: 'createTarget',\n\thandler: CreateTargetModificationHandler,\n})\n\nexport class CreateTargetDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn Object.entries(updatedSchema.actions.targets)\n\t\t\t.filter(([name]) => !originalSchema.actions.targets[name])\n\t\t\t.map(([, target]) => createTargetModification.createModification({ target }))\n\t}\n}\n"],"names":["createModificationType"],"mappings":";;;AAIO,MAAM,gCAA6F;AAAA,EACzG,YAA6B,MAAoC;AAApC,SAAA,OAAA;AAAA,EAC7B;AAAA,EAEO,YAAkB;AAAA,EACzB;AAAA,EAEO,mBAAkC;AACxC,WAAO,CAAC,EAAE,cAAc;AAAA,MACvB,GAAG;AAAA,MACH,SAAS;AAAA,QACR,GAAG,OAAO;AAAA,QACV,SAAS;AAAA,UACR,GAAG,OAAO,QAAQ;AAAA,UAClB,CAAC,KAAK,KAAK,OAAO,IAAI,GAAG,KAAK,KAAK;AAAA,QAAA;AAAA,MACpC;AAAA,IACD;AAAA,EAEF;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,iBAAiB,KAAK,KAAK,OAAO,IAAI,GAAA;AAAA,EACzD;AACD;AAMO,MAAM,2BAA2BA,oBAAAA,uBAAuB;AAAA,EAC9D,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,mBAAqC;AAAA,EACjD,WAAW,gBAAwB,eAAuB;AACzD,WAAO,OAAO,QAAQ,cAAc,QAAQ,OAAO,EACjD,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,eAAe,QAAQ,QAAQ,IAAI,CAAC,EACxD,IAAI,CAAC,CAAA,EAAG,MAAM,MAAM,yBAAyB,mBAAmB,EAAE,OAAA,CAAQ,CAAC;AAAA,EAC9E;AACD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"CreateTargetModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/actions/CreateTargetModification.ts"],"sourcesContent":["import { Actions, Schema } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\n\nexport class CreateTargetModificationHandler implements ModificationHandler<CreateTargetModificationData> {\n\tconstructor(private readonly data: CreateTargetModificationData) {\n\t}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => ({\n\t\t\t...schema,\n\t\t\tactions: {\n\t\t\t\t...schema.actions,\n\t\t\t\ttargets: {\n\t\t\t\t\t...schema.actions.targets,\n\t\t\t\t\t[this.data.target.name]: this.data.target,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Create target ${this.data.target.name}` }\n\t}\n}\n\nexport interface CreateTargetModificationData {\n\ttarget: Actions.AnyTarget\n}\n\nexport const createTargetModification = createModificationType({\n\tid: 'createTarget',\n\thandler: CreateTargetModificationHandler,\n})\n\nexport class CreateTargetDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn Object.entries(updatedSchema.actions.targets)\n\t\t\t.filter(([name]) => !originalSchema.actions.targets[name])\n\t\t\t.map(([, target]) => createTargetModification.createModification({ target }))\n\t}\n}\n"],"names":[],"mappings":";AAIO,MAAM,gCAA6F;AAAA,EACzG,YAA6B,MAAoC;AAApC,SAAA,OAAA;AAAA,EAC7B;AAAA,EAEO,YAAkB;AAAA,EACzB;AAAA,EAEO,mBAAkC;AACxC,WAAO,CAAC,EAAE,cAAc;AAAA,MACvB,GAAG;AAAA,MACH,SAAS;AAAA,QACR,GAAG,OAAO;AAAA,QACV,SAAS;AAAA,UACR,GAAG,OAAO,QAAQ;AAAA,UAClB,CAAC,KAAK,KAAK,OAAO,IAAI,GAAG,KAAK,KAAK;AAAA,QAAA;AAAA,MACpC;AAAA,IACD;AAAA,EAEF;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,iBAAiB,KAAK,KAAK,OAAO,IAAI,GAAA;AAAA,EACzD;AACD;AAMO,MAAM,2BAA2B,uBAAuB;AAAA,EAC9D,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,mBAAqC;AAAA,EACjD,WAAW,gBAAwB,eAAuB;AACzD,WAAO,OAAO,QAAQ,cAAc,QAAQ,OAAO,EACjD,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,eAAe,QAAQ,QAAQ,IAAI,CAAC,EACxD,IAAI,CAAC,CAAA,EAAG,MAAM,MAAM,yBAAyB,mBAAmB,EAAE,OAAA,CAAQ,CAAC;AAAA,EAC9E;AACD;"}
1
+ {"version":3,"file":"CreateTargetModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/actions/CreateTargetModification.ts"],"sourcesContent":["import { Actions, Schema } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils.js'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler.js'\n\nexport class CreateTargetModificationHandler implements ModificationHandler<CreateTargetModificationData> {\n\tconstructor(private readonly data: CreateTargetModificationData) {\n\t}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => ({\n\t\t\t...schema,\n\t\t\tactions: {\n\t\t\t\t...schema.actions,\n\t\t\t\ttargets: {\n\t\t\t\t\t...schema.actions.targets,\n\t\t\t\t\t[this.data.target.name]: this.data.target,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Create target ${this.data.target.name}` }\n\t}\n}\n\nexport interface CreateTargetModificationData {\n\ttarget: Actions.AnyTarget\n}\n\nexport const createTargetModification = createModificationType({\n\tid: 'createTarget',\n\thandler: CreateTargetModificationHandler,\n})\n\nexport class CreateTargetDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn Object.entries(updatedSchema.actions.targets)\n\t\t\t.filter(([name]) => !originalSchema.actions.targets[name])\n\t\t\t.map(([, target]) => createTargetModification.createModification({ target }))\n\t}\n}\n"],"names":[],"mappings":";AAIO,MAAM,gCAA6F;AAAA,EACzG,YAA6B,MAAoC;AAApC,SAAA,OAAA;AAAA,EAC7B;AAAA,EAEO,YAAkB;AAAA,EACzB;AAAA,EAEO,mBAAkC;AACxC,WAAO,CAAC,EAAE,cAAc;AAAA,MACvB,GAAG;AAAA,MACH,SAAS;AAAA,QACR,GAAG,OAAO;AAAA,QACV,SAAS;AAAA,UACR,GAAG,OAAO,QAAQ;AAAA,UAClB,CAAC,KAAK,KAAK,OAAO,IAAI,GAAG,KAAK,KAAK;AAAA,QAAA;AAAA,MACpC;AAAA,IACD;AAAA,EAEF;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,iBAAiB,KAAK,KAAK,OAAO,IAAI,GAAA;AAAA,EACzD;AACD;AAMO,MAAM,2BAA2B,uBAAuB;AAAA,EAC9D,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,mBAAqC;AAAA,EACjD,WAAW,gBAAwB,eAAuB;AACzD,WAAO,OAAO,QAAQ,cAAc,QAAQ,OAAO,EACjD,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,eAAe,QAAQ,QAAQ,IAAI,CAAC,EACxD,IAAI,CAAC,CAAA,EAAG,MAAM,MAAM,yBAAyB,mBAAmB,EAAE,OAAA,CAAQ,CAAC;AAAA,EAC9E;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"CreateTriggerModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/actions/CreateTriggerModification.ts"],"sourcesContent":["import { Actions, Schema } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\n\nexport class CreateTriggerModificationHandler implements ModificationHandler<CreateTriggerModificationData> {\n\tconstructor(private readonly data: CreateTriggerModificationData) {\n\t}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => ({\n\t\t\t...schema,\n\t\t\tactions: {\n\t\t\t\t...schema.actions,\n\t\t\t\ttriggers: {\n\t\t\t\t\t...schema.actions.triggers,\n\t\t\t\t\t[this.data.trigger.name]: this.data.trigger,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Create trigger ${this.data.trigger.name}` }\n\t}\n}\n\nexport interface CreateTriggerModificationData {\n\ttrigger: Actions.AnyTrigger\n}\n\nexport const createTriggerModification = createModificationType({\n\tid: 'createTrigger',\n\thandler: CreateTriggerModificationHandler,\n})\n\nexport class CreateTriggerDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn Object.entries(updatedSchema.actions.triggers)\n\t\t\t.filter(([name]) => !originalSchema.actions.triggers[name])\n\t\t\t.map(([, trigger]) => createTriggerModification.createModification({ trigger }))\n\t}\n}\n"],"names":["createModificationType"],"mappings":";;;AAIO,MAAM,iCAA+F;AAAA,EAC3G,YAA6B,MAAqC;AAArC,SAAA,OAAA;AAAA,EAC7B;AAAA,EAEO,YAAkB;AAAA,EACzB;AAAA,EAEO,mBAAkC;AACxC,WAAO,CAAC,EAAE,cAAc;AAAA,MACvB,GAAG;AAAA,MACH,SAAS;AAAA,QACR,GAAG,OAAO;AAAA,QACV,UAAU;AAAA,UACT,GAAG,OAAO,QAAQ;AAAA,UAClB,CAAC,KAAK,KAAK,QAAQ,IAAI,GAAG,KAAK,KAAK;AAAA,QAAA;AAAA,MACrC;AAAA,IACD;AAAA,EAEF;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,kBAAkB,KAAK,KAAK,QAAQ,IAAI,GAAA;AAAA,EAC3D;AACD;AAMO,MAAM,4BAA4BA,oBAAAA,uBAAuB;AAAA,EAC/D,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,oBAAsC;AAAA,EAClD,WAAW,gBAAwB,eAAuB;AACzD,WAAO,OAAO,QAAQ,cAAc,QAAQ,QAAQ,EAClD,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,eAAe,QAAQ,SAAS,IAAI,CAAC,EACzD,IAAI,CAAC,CAAA,EAAG,OAAO,MAAM,0BAA0B,mBAAmB,EAAE,QAAA,CAAS,CAAC;AAAA,EACjF;AACD;;;;"}
1
+ {"version":3,"file":"CreateTriggerModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/actions/CreateTriggerModification.ts"],"sourcesContent":["import { Actions, Schema } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils.js'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler.js'\n\nexport class CreateTriggerModificationHandler implements ModificationHandler<CreateTriggerModificationData> {\n\tconstructor(private readonly data: CreateTriggerModificationData) {\n\t}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => ({\n\t\t\t...schema,\n\t\t\tactions: {\n\t\t\t\t...schema.actions,\n\t\t\t\ttriggers: {\n\t\t\t\t\t...schema.actions.triggers,\n\t\t\t\t\t[this.data.trigger.name]: this.data.trigger,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Create trigger ${this.data.trigger.name}` }\n\t}\n}\n\nexport interface CreateTriggerModificationData {\n\ttrigger: Actions.AnyTrigger\n}\n\nexport const createTriggerModification = createModificationType({\n\tid: 'createTrigger',\n\thandler: CreateTriggerModificationHandler,\n})\n\nexport class CreateTriggerDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn Object.entries(updatedSchema.actions.triggers)\n\t\t\t.filter(([name]) => !originalSchema.actions.triggers[name])\n\t\t\t.map(([, trigger]) => createTriggerModification.createModification({ trigger }))\n\t}\n}\n"],"names":["createModificationType"],"mappings":";;;AAIO,MAAM,iCAA+F;AAAA,EAC3G,YAA6B,MAAqC;AAArC,SAAA,OAAA;AAAA,EAC7B;AAAA,EAEO,YAAkB;AAAA,EACzB;AAAA,EAEO,mBAAkC;AACxC,WAAO,CAAC,EAAE,cAAc;AAAA,MACvB,GAAG;AAAA,MACH,SAAS;AAAA,QACR,GAAG,OAAO;AAAA,QACV,UAAU;AAAA,UACT,GAAG,OAAO,QAAQ;AAAA,UAClB,CAAC,KAAK,KAAK,QAAQ,IAAI,GAAG,KAAK,KAAK;AAAA,QAAA;AAAA,MACrC;AAAA,IACD;AAAA,EAEF;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,kBAAkB,KAAK,KAAK,QAAQ,IAAI,GAAA;AAAA,EAC3D;AACD;AAMO,MAAM,4BAA4BA,oBAAAA,uBAAuB;AAAA,EAC/D,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,oBAAsC;AAAA,EAClD,WAAW,gBAAwB,eAAuB;AACzD,WAAO,OAAO,QAAQ,cAAc,QAAQ,QAAQ,EAClD,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,eAAe,QAAQ,SAAS,IAAI,CAAC,EACzD,IAAI,CAAC,CAAA,EAAG,OAAO,MAAM,0BAA0B,mBAAmB,EAAE,QAAA,CAAS,CAAC;AAAA,EACjF;AACD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"CreateTriggerModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/actions/CreateTriggerModification.ts"],"sourcesContent":["import { Actions, Schema } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\n\nexport class CreateTriggerModificationHandler implements ModificationHandler<CreateTriggerModificationData> {\n\tconstructor(private readonly data: CreateTriggerModificationData) {\n\t}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => ({\n\t\t\t...schema,\n\t\t\tactions: {\n\t\t\t\t...schema.actions,\n\t\t\t\ttriggers: {\n\t\t\t\t\t...schema.actions.triggers,\n\t\t\t\t\t[this.data.trigger.name]: this.data.trigger,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Create trigger ${this.data.trigger.name}` }\n\t}\n}\n\nexport interface CreateTriggerModificationData {\n\ttrigger: Actions.AnyTrigger\n}\n\nexport const createTriggerModification = createModificationType({\n\tid: 'createTrigger',\n\thandler: CreateTriggerModificationHandler,\n})\n\nexport class CreateTriggerDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn Object.entries(updatedSchema.actions.triggers)\n\t\t\t.filter(([name]) => !originalSchema.actions.triggers[name])\n\t\t\t.map(([, trigger]) => createTriggerModification.createModification({ trigger }))\n\t}\n}\n"],"names":[],"mappings":";AAIO,MAAM,iCAA+F;AAAA,EAC3G,YAA6B,MAAqC;AAArC,SAAA,OAAA;AAAA,EAC7B;AAAA,EAEO,YAAkB;AAAA,EACzB;AAAA,EAEO,mBAAkC;AACxC,WAAO,CAAC,EAAE,cAAc;AAAA,MACvB,GAAG;AAAA,MACH,SAAS;AAAA,QACR,GAAG,OAAO;AAAA,QACV,UAAU;AAAA,UACT,GAAG,OAAO,QAAQ;AAAA,UAClB,CAAC,KAAK,KAAK,QAAQ,IAAI,GAAG,KAAK,KAAK;AAAA,QAAA;AAAA,MACrC;AAAA,IACD;AAAA,EAEF;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,kBAAkB,KAAK,KAAK,QAAQ,IAAI,GAAA;AAAA,EAC3D;AACD;AAMO,MAAM,4BAA4B,uBAAuB;AAAA,EAC/D,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,oBAAsC;AAAA,EAClD,WAAW,gBAAwB,eAAuB;AACzD,WAAO,OAAO,QAAQ,cAAc,QAAQ,QAAQ,EAClD,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,eAAe,QAAQ,SAAS,IAAI,CAAC,EACzD,IAAI,CAAC,CAAA,EAAG,OAAO,MAAM,0BAA0B,mBAAmB,EAAE,QAAA,CAAS,CAAC;AAAA,EACjF;AACD;"}
1
+ {"version":3,"file":"CreateTriggerModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/actions/CreateTriggerModification.ts"],"sourcesContent":["import { Actions, Schema } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils.js'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler.js'\n\nexport class CreateTriggerModificationHandler implements ModificationHandler<CreateTriggerModificationData> {\n\tconstructor(private readonly data: CreateTriggerModificationData) {\n\t}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => ({\n\t\t\t...schema,\n\t\t\tactions: {\n\t\t\t\t...schema.actions,\n\t\t\t\ttriggers: {\n\t\t\t\t\t...schema.actions.triggers,\n\t\t\t\t\t[this.data.trigger.name]: this.data.trigger,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Create trigger ${this.data.trigger.name}` }\n\t}\n}\n\nexport interface CreateTriggerModificationData {\n\ttrigger: Actions.AnyTrigger\n}\n\nexport const createTriggerModification = createModificationType({\n\tid: 'createTrigger',\n\thandler: CreateTriggerModificationHandler,\n})\n\nexport class CreateTriggerDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn Object.entries(updatedSchema.actions.triggers)\n\t\t\t.filter(([name]) => !originalSchema.actions.triggers[name])\n\t\t\t.map(([, trigger]) => createTriggerModification.createModification({ trigger }))\n\t}\n}\n"],"names":[],"mappings":";AAIO,MAAM,iCAA+F;AAAA,EAC3G,YAA6B,MAAqC;AAArC,SAAA,OAAA;AAAA,EAC7B;AAAA,EAEO,YAAkB;AAAA,EACzB;AAAA,EAEO,mBAAkC;AACxC,WAAO,CAAC,EAAE,cAAc;AAAA,MACvB,GAAG;AAAA,MACH,SAAS;AAAA,QACR,GAAG,OAAO;AAAA,QACV,UAAU;AAAA,UACT,GAAG,OAAO,QAAQ;AAAA,UAClB,CAAC,KAAK,KAAK,QAAQ,IAAI,GAAG,KAAK,KAAK;AAAA,QAAA;AAAA,MACrC;AAAA,IACD;AAAA,EAEF;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,kBAAkB,KAAK,KAAK,QAAQ,IAAI,GAAA;AAAA,EAC3D;AACD;AAMO,MAAM,4BAA4B,uBAAuB;AAAA,EAC/D,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,oBAAsC;AAAA,EAClD,WAAW,gBAAwB,eAAuB;AACzD,WAAO,OAAO,QAAQ,cAAc,QAAQ,QAAQ,EAClD,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,eAAe,QAAQ,SAAS,IAAI,CAAC,EACzD,IAAI,CAAC,CAAA,EAAG,OAAO,MAAM,0BAA0B,mBAAmB,EAAE,QAAA,CAAS,CAAC;AAAA,EACjF;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PatchTriggerModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/actions/PatchTriggerModification.ts"],"sourcesContent":["import { Actions } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils'\nimport { createModificationType, ModificationHandler } from '../ModificationHandler'\nimport { applyPatch, Operation } from 'rfc6902'\nimport deepCopy from '../../utils/deepCopy'\n\nexport class PatchTriggerModificationHandler implements ModificationHandler<PatchTriggerModificationData> {\n\tconstructor(private readonly data: PatchTriggerModificationData) {}\n\n\tpublic createSql(): void {}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\tconst trigger = deepCopy(schema.actions.triggers[this.data.triggerName])\n\n\t\t\tif (!trigger) {\n\t\t\t\tthrow new Error(`Trigger ${this.data.triggerName} not found`)\n\t\t\t}\n\n\t\t\tconst result = applyPatch(trigger, this.data.patch).filter(it => it !== null)\n\t\t\tif (result.length > 0) {\n\t\t\t\tthrow result[0]\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...schema,\n\t\t\t\tactions: {\n\t\t\t\t\t...schema.actions,\n\t\t\t\t\ttriggers: {\n\t\t\t\t\t\t...schema.actions.triggers,\n\t\t\t\t\t\t[this.data.triggerName]: trigger,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Patch trigger ${this.data.triggerName}` }\n\t}\n}\n\nexport interface PatchTriggerModificationData {\n\ttriggerName: string\n\tpatch: Operation[]\n}\n\nexport const patchTriggerModification = createModificationType({\n\tid: 'patchTrigger',\n\thandler: PatchTriggerModificationHandler,\n})\n"],"names":["applyPatch","createModificationType"],"mappings":";;;;;AAMO,MAAM,gCAA6F;AAAA,EACzG,YAA6B,MAAoC;AAApC,SAAA,OAAA;AAAA,EAAqC;AAAA,EAE3D,YAAkB;AAAA,EAAC;AAAA,EAEnB,mBAAkC;AACxC,WAAO,CAAC,EAAE,aAAa;AACtB,YAAM,UAAU,SAAS,OAAO,QAAQ,SAAS,KAAK,KAAK,WAAW,CAAC;AAEvE,UAAI,CAAC,SAAS;AACb,cAAM,IAAI,MAAM,WAAW,KAAK,KAAK,WAAW,YAAY;AAAA,MAC7D;AAEA,YAAM,SAASA,QAAAA,WAAW,SAAS,KAAK,KAAK,KAAK,EAAE,OAAO,CAAA,OAAM,OAAO,IAAI;AAC5E,UAAI,OAAO,SAAS,GAAG;AACtB,cAAM,OAAO,CAAC;AAAA,MACf;AAEA,aAAO;AAAA,QACN,GAAG;AAAA,QACH,SAAS;AAAA,UACR,GAAG,OAAO;AAAA,UACV,UAAU;AAAA,YACT,GAAG,OAAO,QAAQ;AAAA,YAClB,CAAC,KAAK,KAAK,WAAW,GAAG;AAAA,UAAA;AAAA,QAC1B;AAAA,MACD;AAAA,IAEF;AAAA,EACD;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,iBAAiB,KAAK,KAAK,WAAW,GAAA;AAAA,EACzD;AACD;AAOO,MAAM,2BAA2BC,oBAAAA,uBAAuB;AAAA,EAC9D,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;;;"}
1
+ {"version":3,"file":"PatchTriggerModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/actions/PatchTriggerModification.ts"],"sourcesContent":["import { Actions } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils.js'\nimport { createModificationType, ModificationHandler } from '../ModificationHandler.js'\nimport { applyPatch, Operation } from 'rfc6902'\nimport deepCopy from '../../utils/deepCopy.js'\n\nexport class PatchTriggerModificationHandler implements ModificationHandler<PatchTriggerModificationData> {\n\tconstructor(private readonly data: PatchTriggerModificationData) {}\n\n\tpublic createSql(): void {}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\tconst trigger = deepCopy(schema.actions.triggers[this.data.triggerName])\n\n\t\t\tif (!trigger) {\n\t\t\t\tthrow new Error(`Trigger ${this.data.triggerName} not found`)\n\t\t\t}\n\n\t\t\tconst result = applyPatch(trigger, this.data.patch).filter(it => it !== null)\n\t\t\tif (result.length > 0) {\n\t\t\t\tthrow result[0]\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...schema,\n\t\t\t\tactions: {\n\t\t\t\t\t...schema.actions,\n\t\t\t\t\ttriggers: {\n\t\t\t\t\t\t...schema.actions.triggers,\n\t\t\t\t\t\t[this.data.triggerName]: trigger,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Patch trigger ${this.data.triggerName}` }\n\t}\n}\n\nexport interface PatchTriggerModificationData {\n\ttriggerName: string\n\tpatch: Operation[]\n}\n\nexport const patchTriggerModification = createModificationType({\n\tid: 'patchTrigger',\n\thandler: PatchTriggerModificationHandler,\n})\n"],"names":["applyPatch","createModificationType"],"mappings":";;;;;AAMO,MAAM,gCAA6F;AAAA,EACzG,YAA6B,MAAoC;AAApC,SAAA,OAAA;AAAA,EAAqC;AAAA,EAE3D,YAAkB;AAAA,EAAC;AAAA,EAEnB,mBAAkC;AACxC,WAAO,CAAC,EAAE,aAAa;AACtB,YAAM,UAAU,SAAS,OAAO,QAAQ,SAAS,KAAK,KAAK,WAAW,CAAC;AAEvE,UAAI,CAAC,SAAS;AACb,cAAM,IAAI,MAAM,WAAW,KAAK,KAAK,WAAW,YAAY;AAAA,MAC7D;AAEA,YAAM,SAASA,QAAAA,WAAW,SAAS,KAAK,KAAK,KAAK,EAAE,OAAO,CAAA,OAAM,OAAO,IAAI;AAC5E,UAAI,OAAO,SAAS,GAAG;AACtB,cAAM,OAAO,CAAC;AAAA,MACf;AAEA,aAAO;AAAA,QACN,GAAG;AAAA,QACH,SAAS;AAAA,UACR,GAAG,OAAO;AAAA,UACV,UAAU;AAAA,YACT,GAAG,OAAO,QAAQ;AAAA,YAClB,CAAC,KAAK,KAAK,WAAW,GAAG;AAAA,UAAA;AAAA,QAC1B;AAAA,MACD;AAAA,IAEF;AAAA,EACD;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,iBAAiB,KAAK,KAAK,WAAW,GAAA;AAAA,EACzD;AACD;AAOO,MAAM,2BAA2BC,oBAAAA,uBAAuB;AAAA,EAC9D,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PatchTriggerModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/actions/PatchTriggerModification.ts"],"sourcesContent":["import { Actions } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils'\nimport { createModificationType, ModificationHandler } from '../ModificationHandler'\nimport { applyPatch, Operation } from 'rfc6902'\nimport deepCopy from '../../utils/deepCopy'\n\nexport class PatchTriggerModificationHandler implements ModificationHandler<PatchTriggerModificationData> {\n\tconstructor(private readonly data: PatchTriggerModificationData) {}\n\n\tpublic createSql(): void {}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\tconst trigger = deepCopy(schema.actions.triggers[this.data.triggerName])\n\n\t\t\tif (!trigger) {\n\t\t\t\tthrow new Error(`Trigger ${this.data.triggerName} not found`)\n\t\t\t}\n\n\t\t\tconst result = applyPatch(trigger, this.data.patch).filter(it => it !== null)\n\t\t\tif (result.length > 0) {\n\t\t\t\tthrow result[0]\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...schema,\n\t\t\t\tactions: {\n\t\t\t\t\t...schema.actions,\n\t\t\t\t\ttriggers: {\n\t\t\t\t\t\t...schema.actions.triggers,\n\t\t\t\t\t\t[this.data.triggerName]: trigger,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Patch trigger ${this.data.triggerName}` }\n\t}\n}\n\nexport interface PatchTriggerModificationData {\n\ttriggerName: string\n\tpatch: Operation[]\n}\n\nexport const patchTriggerModification = createModificationType({\n\tid: 'patchTrigger',\n\thandler: PatchTriggerModificationHandler,\n})\n"],"names":[],"mappings":";;;AAMO,MAAM,gCAA6F;AAAA,EACzG,YAA6B,MAAoC;AAApC,SAAA,OAAA;AAAA,EAAqC;AAAA,EAE3D,YAAkB;AAAA,EAAC;AAAA,EAEnB,mBAAkC;AACxC,WAAO,CAAC,EAAE,aAAa;AACtB,YAAM,UAAU,SAAS,OAAO,QAAQ,SAAS,KAAK,KAAK,WAAW,CAAC;AAEvE,UAAI,CAAC,SAAS;AACb,cAAM,IAAI,MAAM,WAAW,KAAK,KAAK,WAAW,YAAY;AAAA,MAC7D;AAEA,YAAM,SAAS,WAAW,SAAS,KAAK,KAAK,KAAK,EAAE,OAAO,CAAA,OAAM,OAAO,IAAI;AAC5E,UAAI,OAAO,SAAS,GAAG;AACtB,cAAM,OAAO,CAAC;AAAA,MACf;AAEA,aAAO;AAAA,QACN,GAAG;AAAA,QACH,SAAS;AAAA,UACR,GAAG,OAAO;AAAA,UACV,UAAU;AAAA,YACT,GAAG,OAAO,QAAQ;AAAA,YAClB,CAAC,KAAK,KAAK,WAAW,GAAG;AAAA,UAAA;AAAA,QAC1B;AAAA,MACD;AAAA,IAEF;AAAA,EACD;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,iBAAiB,KAAK,KAAK,WAAW,GAAA;AAAA,EACzD;AACD;AAOO,MAAM,2BAA2B,uBAAuB;AAAA,EAC9D,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;"}
1
+ {"version":3,"file":"PatchTriggerModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/actions/PatchTriggerModification.ts"],"sourcesContent":["import { Actions } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils.js'\nimport { createModificationType, ModificationHandler } from '../ModificationHandler.js'\nimport { applyPatch, Operation } from 'rfc6902'\nimport deepCopy from '../../utils/deepCopy.js'\n\nexport class PatchTriggerModificationHandler implements ModificationHandler<PatchTriggerModificationData> {\n\tconstructor(private readonly data: PatchTriggerModificationData) {}\n\n\tpublic createSql(): void {}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\tconst trigger = deepCopy(schema.actions.triggers[this.data.triggerName])\n\n\t\t\tif (!trigger) {\n\t\t\t\tthrow new Error(`Trigger ${this.data.triggerName} not found`)\n\t\t\t}\n\n\t\t\tconst result = applyPatch(trigger, this.data.patch).filter(it => it !== null)\n\t\t\tif (result.length > 0) {\n\t\t\t\tthrow result[0]\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...schema,\n\t\t\t\tactions: {\n\t\t\t\t\t...schema.actions,\n\t\t\t\t\ttriggers: {\n\t\t\t\t\t\t...schema.actions.triggers,\n\t\t\t\t\t\t[this.data.triggerName]: trigger,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Patch trigger ${this.data.triggerName}` }\n\t}\n}\n\nexport interface PatchTriggerModificationData {\n\ttriggerName: string\n\tpatch: Operation[]\n}\n\nexport const patchTriggerModification = createModificationType({\n\tid: 'patchTrigger',\n\thandler: PatchTriggerModificationHandler,\n})\n"],"names":[],"mappings":";;;AAMO,MAAM,gCAA6F;AAAA,EACzG,YAA6B,MAAoC;AAApC,SAAA,OAAA;AAAA,EAAqC;AAAA,EAE3D,YAAkB;AAAA,EAAC;AAAA,EAEnB,mBAAkC;AACxC,WAAO,CAAC,EAAE,aAAa;AACtB,YAAM,UAAU,SAAS,OAAO,QAAQ,SAAS,KAAK,KAAK,WAAW,CAAC;AAEvE,UAAI,CAAC,SAAS;AACb,cAAM,IAAI,MAAM,WAAW,KAAK,KAAK,WAAW,YAAY;AAAA,MAC7D;AAEA,YAAM,SAAS,WAAW,SAAS,KAAK,KAAK,KAAK,EAAE,OAAO,CAAA,OAAM,OAAO,IAAI;AAC5E,UAAI,OAAO,SAAS,GAAG;AACtB,cAAM,OAAO,CAAC;AAAA,MACf;AAEA,aAAO;AAAA,QACN,GAAG;AAAA,QACH,SAAS;AAAA,UACR,GAAG,OAAO;AAAA,UACV,UAAU;AAAA,YACT,GAAG,OAAO,QAAQ;AAAA,YAClB,CAAC,KAAK,KAAK,WAAW,GAAG;AAAA,UAAA;AAAA,QAC1B;AAAA,MACD;AAAA,IAEF;AAAA,EACD;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,iBAAiB,KAAK,KAAK,WAAW,GAAA;AAAA,EACzD;AACD;AAOO,MAAM,2BAA2B,uBAAuB;AAAA,EAC9D,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"RemoveTargetModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/actions/RemoveTargetModification.ts"],"sourcesContent":["import { Schema } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\n\nexport class RemoveTargetModificationHandler implements ModificationHandler<RemoveTargetModificationData> {\n\tconstructor(private readonly data: RemoveTargetModificationData) {\n\t}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\tconst { [this.data.name]: _, ...targets } = schema.actions.targets\n\t\t\treturn ({\n\t\t\t\t...schema,\n\t\t\t\tactions: {\n\t\t\t\t\t...schema.actions,\n\t\t\t\t\ttargets,\n\t\t\t\t},\n\t\t\t})\n\t\t}\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Remove target ${this.data.name}` }\n\t}\n}\n\nexport interface RemoveTargetModificationData {\n\tname: string\n}\n\nexport const removeTargetModification = createModificationType({\n\tid: 'removeTarget',\n\thandler: RemoveTargetModificationHandler,\n})\n\nexport class RemoveTargetDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn Object.entries(originalSchema.actions.targets)\n\t\t\t.filter(([name]) => !updatedSchema.actions.targets[name])\n\t\t\t.map(([name]) => removeTargetModification.createModification({ name }))\n\t}\n}\n"],"names":["createModificationType"],"mappings":";;;AAIO,MAAM,gCAA6F;AAAA,EACzG,YAA6B,MAAoC;AAApC,SAAA,OAAA;AAAA,EAC7B;AAAA,EAEO,YAAkB;AAAA,EACzB;AAAA,EAEO,mBAAkC;AACxC,WAAO,CAAC,EAAE,aAAa;AACtB,YAAM,EAAE,CAAC,KAAK,KAAK,IAAI,GAAG,GAAG,GAAG,QAAA,IAAY,OAAO,QAAQ;AAC3D,aAAQ;AAAA,QACP,GAAG;AAAA,QACH,SAAS;AAAA,UACR,GAAG,OAAO;AAAA,UACV;AAAA,QAAA;AAAA,MACD;AAAA,IAEF;AAAA,EACD;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,iBAAiB,KAAK,KAAK,IAAI,GAAA;AAAA,EAClD;AACD;AAMO,MAAM,2BAA2BA,oBAAAA,uBAAuB;AAAA,EAC9D,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,mBAAqC;AAAA,EACjD,WAAW,gBAAwB,eAAuB;AACzD,WAAO,OAAO,QAAQ,eAAe,QAAQ,OAAO,EAClD,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,cAAc,QAAQ,QAAQ,IAAI,CAAC,EACvD,IAAI,CAAC,CAAC,IAAI,MAAM,yBAAyB,mBAAmB,EAAE,KAAA,CAAM,CAAC;AAAA,EACxE;AACD;;;;"}
1
+ {"version":3,"file":"RemoveTargetModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/actions/RemoveTargetModification.ts"],"sourcesContent":["import { Schema } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils.js'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler.js'\n\nexport class RemoveTargetModificationHandler implements ModificationHandler<RemoveTargetModificationData> {\n\tconstructor(private readonly data: RemoveTargetModificationData) {\n\t}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\tconst { [this.data.name]: _, ...targets } = schema.actions.targets\n\t\t\treturn ({\n\t\t\t\t...schema,\n\t\t\t\tactions: {\n\t\t\t\t\t...schema.actions,\n\t\t\t\t\ttargets,\n\t\t\t\t},\n\t\t\t})\n\t\t}\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Remove target ${this.data.name}` }\n\t}\n}\n\nexport interface RemoveTargetModificationData {\n\tname: string\n}\n\nexport const removeTargetModification = createModificationType({\n\tid: 'removeTarget',\n\thandler: RemoveTargetModificationHandler,\n})\n\nexport class RemoveTargetDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn Object.entries(originalSchema.actions.targets)\n\t\t\t.filter(([name]) => !updatedSchema.actions.targets[name])\n\t\t\t.map(([name]) => removeTargetModification.createModification({ name }))\n\t}\n}\n"],"names":["createModificationType"],"mappings":";;;AAIO,MAAM,gCAA6F;AAAA,EACzG,YAA6B,MAAoC;AAApC,SAAA,OAAA;AAAA,EAC7B;AAAA,EAEO,YAAkB;AAAA,EACzB;AAAA,EAEO,mBAAkC;AACxC,WAAO,CAAC,EAAE,aAAa;AACtB,YAAM,EAAE,CAAC,KAAK,KAAK,IAAI,GAAG,GAAG,GAAG,QAAA,IAAY,OAAO,QAAQ;AAC3D,aAAQ;AAAA,QACP,GAAG;AAAA,QACH,SAAS;AAAA,UACR,GAAG,OAAO;AAAA,UACV;AAAA,QAAA;AAAA,MACD;AAAA,IAEF;AAAA,EACD;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,iBAAiB,KAAK,KAAK,IAAI,GAAA;AAAA,EAClD;AACD;AAMO,MAAM,2BAA2BA,oBAAAA,uBAAuB;AAAA,EAC9D,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,mBAAqC;AAAA,EACjD,WAAW,gBAAwB,eAAuB;AACzD,WAAO,OAAO,QAAQ,eAAe,QAAQ,OAAO,EAClD,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,cAAc,QAAQ,QAAQ,IAAI,CAAC,EACvD,IAAI,CAAC,CAAC,IAAI,MAAM,yBAAyB,mBAAmB,EAAE,KAAA,CAAM,CAAC;AAAA,EACxE;AACD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"RemoveTargetModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/actions/RemoveTargetModification.ts"],"sourcesContent":["import { Schema } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\n\nexport class RemoveTargetModificationHandler implements ModificationHandler<RemoveTargetModificationData> {\n\tconstructor(private readonly data: RemoveTargetModificationData) {\n\t}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\tconst { [this.data.name]: _, ...targets } = schema.actions.targets\n\t\t\treturn ({\n\t\t\t\t...schema,\n\t\t\t\tactions: {\n\t\t\t\t\t...schema.actions,\n\t\t\t\t\ttargets,\n\t\t\t\t},\n\t\t\t})\n\t\t}\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Remove target ${this.data.name}` }\n\t}\n}\n\nexport interface RemoveTargetModificationData {\n\tname: string\n}\n\nexport const removeTargetModification = createModificationType({\n\tid: 'removeTarget',\n\thandler: RemoveTargetModificationHandler,\n})\n\nexport class RemoveTargetDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn Object.entries(originalSchema.actions.targets)\n\t\t\t.filter(([name]) => !updatedSchema.actions.targets[name])\n\t\t\t.map(([name]) => removeTargetModification.createModification({ name }))\n\t}\n}\n"],"names":[],"mappings":";AAIO,MAAM,gCAA6F;AAAA,EACzG,YAA6B,MAAoC;AAApC,SAAA,OAAA;AAAA,EAC7B;AAAA,EAEO,YAAkB;AAAA,EACzB;AAAA,EAEO,mBAAkC;AACxC,WAAO,CAAC,EAAE,aAAa;AACtB,YAAM,EAAE,CAAC,KAAK,KAAK,IAAI,GAAG,GAAG,GAAG,QAAA,IAAY,OAAO,QAAQ;AAC3D,aAAQ;AAAA,QACP,GAAG;AAAA,QACH,SAAS;AAAA,UACR,GAAG,OAAO;AAAA,UACV;AAAA,QAAA;AAAA,MACD;AAAA,IAEF;AAAA,EACD;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,iBAAiB,KAAK,KAAK,IAAI,GAAA;AAAA,EAClD;AACD;AAMO,MAAM,2BAA2B,uBAAuB;AAAA,EAC9D,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,mBAAqC;AAAA,EACjD,WAAW,gBAAwB,eAAuB;AACzD,WAAO,OAAO,QAAQ,eAAe,QAAQ,OAAO,EAClD,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,cAAc,QAAQ,QAAQ,IAAI,CAAC,EACvD,IAAI,CAAC,CAAC,IAAI,MAAM,yBAAyB,mBAAmB,EAAE,KAAA,CAAM,CAAC;AAAA,EACxE;AACD;"}
1
+ {"version":3,"file":"RemoveTargetModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/actions/RemoveTargetModification.ts"],"sourcesContent":["import { Schema } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils.js'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler.js'\n\nexport class RemoveTargetModificationHandler implements ModificationHandler<RemoveTargetModificationData> {\n\tconstructor(private readonly data: RemoveTargetModificationData) {\n\t}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\tconst { [this.data.name]: _, ...targets } = schema.actions.targets\n\t\t\treturn ({\n\t\t\t\t...schema,\n\t\t\t\tactions: {\n\t\t\t\t\t...schema.actions,\n\t\t\t\t\ttargets,\n\t\t\t\t},\n\t\t\t})\n\t\t}\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Remove target ${this.data.name}` }\n\t}\n}\n\nexport interface RemoveTargetModificationData {\n\tname: string\n}\n\nexport const removeTargetModification = createModificationType({\n\tid: 'removeTarget',\n\thandler: RemoveTargetModificationHandler,\n})\n\nexport class RemoveTargetDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn Object.entries(originalSchema.actions.targets)\n\t\t\t.filter(([name]) => !updatedSchema.actions.targets[name])\n\t\t\t.map(([name]) => removeTargetModification.createModification({ name }))\n\t}\n}\n"],"names":[],"mappings":";AAIO,MAAM,gCAA6F;AAAA,EACzG,YAA6B,MAAoC;AAApC,SAAA,OAAA;AAAA,EAC7B;AAAA,EAEO,YAAkB;AAAA,EACzB;AAAA,EAEO,mBAAkC;AACxC,WAAO,CAAC,EAAE,aAAa;AACtB,YAAM,EAAE,CAAC,KAAK,KAAK,IAAI,GAAG,GAAG,GAAG,QAAA,IAAY,OAAO,QAAQ;AAC3D,aAAQ;AAAA,QACP,GAAG;AAAA,QACH,SAAS;AAAA,UACR,GAAG,OAAO;AAAA,UACV;AAAA,QAAA;AAAA,MACD;AAAA,IAEF;AAAA,EACD;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,iBAAiB,KAAK,KAAK,IAAI,GAAA;AAAA,EAClD;AACD;AAMO,MAAM,2BAA2B,uBAAuB;AAAA,EAC9D,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,mBAAqC;AAAA,EACjD,WAAW,gBAAwB,eAAuB;AACzD,WAAO,OAAO,QAAQ,eAAe,QAAQ,OAAO,EAClD,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,cAAc,QAAQ,QAAQ,IAAI,CAAC,EACvD,IAAI,CAAC,CAAC,IAAI,MAAM,yBAAyB,mBAAmB,EAAE,KAAA,CAAM,CAAC;AAAA,EACxE;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"RemoveTriggerModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/actions/RemoveTriggerModification.ts"],"sourcesContent":["import { Schema } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\n\nexport class RemoveTriggerModificationHandler implements ModificationHandler<RemoveTriggerModificationData> {\n\tconstructor(private readonly data: RemoveTriggerModificationData) {\n\t}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\tconst { [this.data.name]: _, ...triggers } = schema.actions.triggers\n\t\t\treturn ({\n\t\t\t\t...schema,\n\t\t\t\tactions: {\n\t\t\t\t\t...schema.actions,\n\t\t\t\t\ttriggers,\n\t\t\t\t},\n\t\t\t})\n\t\t}\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Remove trigger ${this.data.name}` }\n\t}\n}\n\nexport interface RemoveTriggerModificationData {\n\tname: string\n}\n\nexport const removeTriggerModification = createModificationType({\n\tid: 'removeTrigger',\n\thandler: RemoveTriggerModificationHandler,\n})\n\nexport class RemoveTriggerDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn Object.entries(originalSchema.actions.triggers)\n\t\t\t.filter(([name]) => !updatedSchema.actions.triggers[name])\n\t\t\t.map(([name]) => removeTriggerModification.createModification({ name }))\n\t}\n}\n"],"names":["createModificationType"],"mappings":";;;AAIO,MAAM,iCAA+F;AAAA,EAC3G,YAA6B,MAAqC;AAArC,SAAA,OAAA;AAAA,EAC7B;AAAA,EAEO,YAAkB;AAAA,EACzB;AAAA,EAEO,mBAAkC;AACxC,WAAO,CAAC,EAAE,aAAa;AACtB,YAAM,EAAE,CAAC,KAAK,KAAK,IAAI,GAAG,GAAG,GAAG,SAAA,IAAa,OAAO,QAAQ;AAC5D,aAAQ;AAAA,QACP,GAAG;AAAA,QACH,SAAS;AAAA,UACR,GAAG,OAAO;AAAA,UACV;AAAA,QAAA;AAAA,MACD;AAAA,IAEF;AAAA,EACD;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,kBAAkB,KAAK,KAAK,IAAI,GAAA;AAAA,EACnD;AACD;AAMO,MAAM,4BAA4BA,oBAAAA,uBAAuB;AAAA,EAC/D,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,oBAAsC;AAAA,EAClD,WAAW,gBAAwB,eAAuB;AACzD,WAAO,OAAO,QAAQ,eAAe,QAAQ,QAAQ,EACnD,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,cAAc,QAAQ,SAAS,IAAI,CAAC,EACxD,IAAI,CAAC,CAAC,IAAI,MAAM,0BAA0B,mBAAmB,EAAE,KAAA,CAAM,CAAC;AAAA,EACzE;AACD;;;;"}
1
+ {"version":3,"file":"RemoveTriggerModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/actions/RemoveTriggerModification.ts"],"sourcesContent":["import { Schema } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils.js'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler.js'\n\nexport class RemoveTriggerModificationHandler implements ModificationHandler<RemoveTriggerModificationData> {\n\tconstructor(private readonly data: RemoveTriggerModificationData) {\n\t}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\tconst { [this.data.name]: _, ...triggers } = schema.actions.triggers\n\t\t\treturn ({\n\t\t\t\t...schema,\n\t\t\t\tactions: {\n\t\t\t\t\t...schema.actions,\n\t\t\t\t\ttriggers,\n\t\t\t\t},\n\t\t\t})\n\t\t}\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Remove trigger ${this.data.name}` }\n\t}\n}\n\nexport interface RemoveTriggerModificationData {\n\tname: string\n}\n\nexport const removeTriggerModification = createModificationType({\n\tid: 'removeTrigger',\n\thandler: RemoveTriggerModificationHandler,\n})\n\nexport class RemoveTriggerDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn Object.entries(originalSchema.actions.triggers)\n\t\t\t.filter(([name]) => !updatedSchema.actions.triggers[name])\n\t\t\t.map(([name]) => removeTriggerModification.createModification({ name }))\n\t}\n}\n"],"names":["createModificationType"],"mappings":";;;AAIO,MAAM,iCAA+F;AAAA,EAC3G,YAA6B,MAAqC;AAArC,SAAA,OAAA;AAAA,EAC7B;AAAA,EAEO,YAAkB;AAAA,EACzB;AAAA,EAEO,mBAAkC;AACxC,WAAO,CAAC,EAAE,aAAa;AACtB,YAAM,EAAE,CAAC,KAAK,KAAK,IAAI,GAAG,GAAG,GAAG,SAAA,IAAa,OAAO,QAAQ;AAC5D,aAAQ;AAAA,QACP,GAAG;AAAA,QACH,SAAS;AAAA,UACR,GAAG,OAAO;AAAA,UACV;AAAA,QAAA;AAAA,MACD;AAAA,IAEF;AAAA,EACD;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,kBAAkB,KAAK,KAAK,IAAI,GAAA;AAAA,EACnD;AACD;AAMO,MAAM,4BAA4BA,oBAAAA,uBAAuB;AAAA,EAC/D,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,oBAAsC;AAAA,EAClD,WAAW,gBAAwB,eAAuB;AACzD,WAAO,OAAO,QAAQ,eAAe,QAAQ,QAAQ,EACnD,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,cAAc,QAAQ,SAAS,IAAI,CAAC,EACxD,IAAI,CAAC,CAAC,IAAI,MAAM,0BAA0B,mBAAmB,EAAE,KAAA,CAAM,CAAC;AAAA,EACzE;AACD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"RemoveTriggerModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/actions/RemoveTriggerModification.ts"],"sourcesContent":["import { Schema } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\n\nexport class RemoveTriggerModificationHandler implements ModificationHandler<RemoveTriggerModificationData> {\n\tconstructor(private readonly data: RemoveTriggerModificationData) {\n\t}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\tconst { [this.data.name]: _, ...triggers } = schema.actions.triggers\n\t\t\treturn ({\n\t\t\t\t...schema,\n\t\t\t\tactions: {\n\t\t\t\t\t...schema.actions,\n\t\t\t\t\ttriggers,\n\t\t\t\t},\n\t\t\t})\n\t\t}\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Remove trigger ${this.data.name}` }\n\t}\n}\n\nexport interface RemoveTriggerModificationData {\n\tname: string\n}\n\nexport const removeTriggerModification = createModificationType({\n\tid: 'removeTrigger',\n\thandler: RemoveTriggerModificationHandler,\n})\n\nexport class RemoveTriggerDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn Object.entries(originalSchema.actions.triggers)\n\t\t\t.filter(([name]) => !updatedSchema.actions.triggers[name])\n\t\t\t.map(([name]) => removeTriggerModification.createModification({ name }))\n\t}\n}\n"],"names":[],"mappings":";AAIO,MAAM,iCAA+F;AAAA,EAC3G,YAA6B,MAAqC;AAArC,SAAA,OAAA;AAAA,EAC7B;AAAA,EAEO,YAAkB;AAAA,EACzB;AAAA,EAEO,mBAAkC;AACxC,WAAO,CAAC,EAAE,aAAa;AACtB,YAAM,EAAE,CAAC,KAAK,KAAK,IAAI,GAAG,GAAG,GAAG,SAAA,IAAa,OAAO,QAAQ;AAC5D,aAAQ;AAAA,QACP,GAAG;AAAA,QACH,SAAS;AAAA,UACR,GAAG,OAAO;AAAA,UACV;AAAA,QAAA;AAAA,MACD;AAAA,IAEF;AAAA,EACD;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,kBAAkB,KAAK,KAAK,IAAI,GAAA;AAAA,EACnD;AACD;AAMO,MAAM,4BAA4B,uBAAuB;AAAA,EAC/D,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,oBAAsC;AAAA,EAClD,WAAW,gBAAwB,eAAuB;AACzD,WAAO,OAAO,QAAQ,eAAe,QAAQ,QAAQ,EACnD,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,cAAc,QAAQ,SAAS,IAAI,CAAC,EACxD,IAAI,CAAC,CAAC,IAAI,MAAM,0BAA0B,mBAAmB,EAAE,KAAA,CAAM,CAAC;AAAA,EACzE;AACD;"}
1
+ {"version":3,"file":"RemoveTriggerModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/actions/RemoveTriggerModification.ts"],"sourcesContent":["import { Schema } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils.js'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler.js'\n\nexport class RemoveTriggerModificationHandler implements ModificationHandler<RemoveTriggerModificationData> {\n\tconstructor(private readonly data: RemoveTriggerModificationData) {\n\t}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\tconst { [this.data.name]: _, ...triggers } = schema.actions.triggers\n\t\t\treturn ({\n\t\t\t\t...schema,\n\t\t\t\tactions: {\n\t\t\t\t\t...schema.actions,\n\t\t\t\t\ttriggers,\n\t\t\t\t},\n\t\t\t})\n\t\t}\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Remove trigger ${this.data.name}` }\n\t}\n}\n\nexport interface RemoveTriggerModificationData {\n\tname: string\n}\n\nexport const removeTriggerModification = createModificationType({\n\tid: 'removeTrigger',\n\thandler: RemoveTriggerModificationHandler,\n})\n\nexport class RemoveTriggerDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn Object.entries(originalSchema.actions.triggers)\n\t\t\t.filter(([name]) => !updatedSchema.actions.triggers[name])\n\t\t\t.map(([name]) => removeTriggerModification.createModification({ name }))\n\t}\n}\n"],"names":[],"mappings":";AAIO,MAAM,iCAA+F;AAAA,EAC3G,YAA6B,MAAqC;AAArC,SAAA,OAAA;AAAA,EAC7B;AAAA,EAEO,YAAkB;AAAA,EACzB;AAAA,EAEO,mBAAkC;AACxC,WAAO,CAAC,EAAE,aAAa;AACtB,YAAM,EAAE,CAAC,KAAK,KAAK,IAAI,GAAG,GAAG,GAAG,SAAA,IAAa,OAAO,QAAQ;AAC5D,aAAQ;AAAA,QACP,GAAG;AAAA,QACH,SAAS;AAAA,UACR,GAAG,OAAO;AAAA,UACV;AAAA,QAAA;AAAA,MACD;AAAA,IAEF;AAAA,EACD;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,kBAAkB,KAAK,KAAK,IAAI,GAAA;AAAA,EACnD;AACD;AAMO,MAAM,4BAA4B,uBAAuB;AAAA,EAC/D,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,oBAAsC;AAAA,EAClD,WAAW,gBAAwB,eAAuB;AACzD,WAAO,OAAO,QAAQ,eAAe,QAAQ,QAAQ,EACnD,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,cAAc,QAAQ,SAAS,IAAI,CAAC,EACxD,IAAI,CAAC,CAAC,IAAI,MAAM,0BAA0B,mBAAmB,EAAE,KAAA,CAAM,CAAC;AAAA,EACzE;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateTargetModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/actions/UpdateTargetModification.ts"],"sourcesContent":["import { Actions, Schema } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport deepEqual from 'fast-deep-equal'\n\nexport class UpdateTargetModificationHandler implements ModificationHandler<UpdateTargetModificationData> {\n\tconstructor(private readonly data: UpdateTargetModificationData) {\n\t}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\treturn ({\n\t\t\t\t...schema,\n\t\t\t\tactions: {\n\t\t\t\t\t...schema.actions,\n\t\t\t\t\ttargets: {\n\t\t\t\t\t\t...schema.actions.targets,\n\t\t\t\t\t\t[this.data.name]: this.data.target,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t})\n\t\t}\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Update target ${this.data.name}` }\n\t}\n}\n\nexport interface UpdateTargetModificationData {\n\tname: string\n\ttarget: Actions.AnyTarget\n}\n\nexport const updateTargetModification = createModificationType({\n\tid: 'updateTarget',\n\thandler: UpdateTargetModificationHandler,\n})\n\nexport class UpdateTargetDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn Object.entries(updatedSchema.actions.targets)\n\t\t\t.filter(([name, target]) => originalSchema.actions.targets[name] && !deepEqual(target, originalSchema.actions.targets[name]))\n\t\t\t.map(([name, target]) => updateTargetModification.createModification({ name, target }))\n\t}\n}\n"],"names":["createModificationType"],"mappings":";;;;AAKO,MAAM,gCAA6F;AAAA,EACzG,YAA6B,MAAoC;AAApC,SAAA,OAAA;AAAA,EAC7B;AAAA,EAEO,YAAkB;AAAA,EACzB;AAAA,EAEO,mBAAkC;AACxC,WAAO,CAAC,EAAE,aAAa;AACtB,aAAQ;AAAA,QACP,GAAG;AAAA,QACH,SAAS;AAAA,UACR,GAAG,OAAO;AAAA,UACV,SAAS;AAAA,YACR,GAAG,OAAO,QAAQ;AAAA,YAClB,CAAC,KAAK,KAAK,IAAI,GAAG,KAAK,KAAK;AAAA,UAAA;AAAA,QAC7B;AAAA,MACD;AAAA,IAEF;AAAA,EACD;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,iBAAiB,KAAK,KAAK,IAAI,GAAA;AAAA,EAClD;AACD;AAOO,MAAM,2BAA2BA,oBAAAA,uBAAuB;AAAA,EAC9D,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,mBAAqC;AAAA,EACjD,WAAW,gBAAwB,eAAuB;AACzD,WAAO,OAAO,QAAQ,cAAc,QAAQ,OAAO,EACjD,OAAO,CAAC,CAAC,MAAM,MAAM,MAAM,eAAe,QAAQ,QAAQ,IAAI,KAAK,CAAC,UAAU,QAAQ,eAAe,QAAQ,QAAQ,IAAI,CAAC,CAAC,EAC3H,IAAI,CAAC,CAAC,MAAM,MAAM,MAAM,yBAAyB,mBAAmB,EAAE,MAAM,OAAA,CAAQ,CAAC;AAAA,EACxF;AACD;;;;"}
1
+ {"version":3,"file":"UpdateTargetModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/actions/UpdateTargetModification.ts"],"sourcesContent":["import { Actions, Schema } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils.js'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler.js'\nimport deepEqual from 'fast-deep-equal'\n\nexport class UpdateTargetModificationHandler implements ModificationHandler<UpdateTargetModificationData> {\n\tconstructor(private readonly data: UpdateTargetModificationData) {\n\t}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\treturn ({\n\t\t\t\t...schema,\n\t\t\t\tactions: {\n\t\t\t\t\t...schema.actions,\n\t\t\t\t\ttargets: {\n\t\t\t\t\t\t...schema.actions.targets,\n\t\t\t\t\t\t[this.data.name]: this.data.target,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t})\n\t\t}\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Update target ${this.data.name}` }\n\t}\n}\n\nexport interface UpdateTargetModificationData {\n\tname: string\n\ttarget: Actions.AnyTarget\n}\n\nexport const updateTargetModification = createModificationType({\n\tid: 'updateTarget',\n\thandler: UpdateTargetModificationHandler,\n})\n\nexport class UpdateTargetDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn Object.entries(updatedSchema.actions.targets)\n\t\t\t.filter(([name, target]) => originalSchema.actions.targets[name] && !deepEqual(target, originalSchema.actions.targets[name]))\n\t\t\t.map(([name, target]) => updateTargetModification.createModification({ name, target }))\n\t}\n}\n"],"names":["createModificationType"],"mappings":";;;;AAKO,MAAM,gCAA6F;AAAA,EACzG,YAA6B,MAAoC;AAApC,SAAA,OAAA;AAAA,EAC7B;AAAA,EAEO,YAAkB;AAAA,EACzB;AAAA,EAEO,mBAAkC;AACxC,WAAO,CAAC,EAAE,aAAa;AACtB,aAAQ;AAAA,QACP,GAAG;AAAA,QACH,SAAS;AAAA,UACR,GAAG,OAAO;AAAA,UACV,SAAS;AAAA,YACR,GAAG,OAAO,QAAQ;AAAA,YAClB,CAAC,KAAK,KAAK,IAAI,GAAG,KAAK,KAAK;AAAA,UAAA;AAAA,QAC7B;AAAA,MACD;AAAA,IAEF;AAAA,EACD;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,iBAAiB,KAAK,KAAK,IAAI,GAAA;AAAA,EAClD;AACD;AAOO,MAAM,2BAA2BA,oBAAAA,uBAAuB;AAAA,EAC9D,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,mBAAqC;AAAA,EACjD,WAAW,gBAAwB,eAAuB;AACzD,WAAO,OAAO,QAAQ,cAAc,QAAQ,OAAO,EACjD,OAAO,CAAC,CAAC,MAAM,MAAM,MAAM,eAAe,QAAQ,QAAQ,IAAI,KAAK,CAAC,UAAU,QAAQ,eAAe,QAAQ,QAAQ,IAAI,CAAC,CAAC,EAC3H,IAAI,CAAC,CAAC,MAAM,MAAM,MAAM,yBAAyB,mBAAmB,EAAE,MAAM,OAAA,CAAQ,CAAC;AAAA,EACxF;AACD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateTargetModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/actions/UpdateTargetModification.ts"],"sourcesContent":["import { Actions, Schema } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport deepEqual from 'fast-deep-equal'\n\nexport class UpdateTargetModificationHandler implements ModificationHandler<UpdateTargetModificationData> {\n\tconstructor(private readonly data: UpdateTargetModificationData) {\n\t}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\treturn ({\n\t\t\t\t...schema,\n\t\t\t\tactions: {\n\t\t\t\t\t...schema.actions,\n\t\t\t\t\ttargets: {\n\t\t\t\t\t\t...schema.actions.targets,\n\t\t\t\t\t\t[this.data.name]: this.data.target,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t})\n\t\t}\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Update target ${this.data.name}` }\n\t}\n}\n\nexport interface UpdateTargetModificationData {\n\tname: string\n\ttarget: Actions.AnyTarget\n}\n\nexport const updateTargetModification = createModificationType({\n\tid: 'updateTarget',\n\thandler: UpdateTargetModificationHandler,\n})\n\nexport class UpdateTargetDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn Object.entries(updatedSchema.actions.targets)\n\t\t\t.filter(([name, target]) => originalSchema.actions.targets[name] && !deepEqual(target, originalSchema.actions.targets[name]))\n\t\t\t.map(([name, target]) => updateTargetModification.createModification({ name, target }))\n\t}\n}\n"],"names":[],"mappings":";;AAKO,MAAM,gCAA6F;AAAA,EACzG,YAA6B,MAAoC;AAApC,SAAA,OAAA;AAAA,EAC7B;AAAA,EAEO,YAAkB;AAAA,EACzB;AAAA,EAEO,mBAAkC;AACxC,WAAO,CAAC,EAAE,aAAa;AACtB,aAAQ;AAAA,QACP,GAAG;AAAA,QACH,SAAS;AAAA,UACR,GAAG,OAAO;AAAA,UACV,SAAS;AAAA,YACR,GAAG,OAAO,QAAQ;AAAA,YAClB,CAAC,KAAK,KAAK,IAAI,GAAG,KAAK,KAAK;AAAA,UAAA;AAAA,QAC7B;AAAA,MACD;AAAA,IAEF;AAAA,EACD;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,iBAAiB,KAAK,KAAK,IAAI,GAAA;AAAA,EAClD;AACD;AAOO,MAAM,2BAA2B,uBAAuB;AAAA,EAC9D,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,mBAAqC;AAAA,EACjD,WAAW,gBAAwB,eAAuB;AACzD,WAAO,OAAO,QAAQ,cAAc,QAAQ,OAAO,EACjD,OAAO,CAAC,CAAC,MAAM,MAAM,MAAM,eAAe,QAAQ,QAAQ,IAAI,KAAK,CAAC,UAAU,QAAQ,eAAe,QAAQ,QAAQ,IAAI,CAAC,CAAC,EAC3H,IAAI,CAAC,CAAC,MAAM,MAAM,MAAM,yBAAyB,mBAAmB,EAAE,MAAM,OAAA,CAAQ,CAAC;AAAA,EACxF;AACD;"}
1
+ {"version":3,"file":"UpdateTargetModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/actions/UpdateTargetModification.ts"],"sourcesContent":["import { Actions, Schema } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils.js'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler.js'\nimport deepEqual from 'fast-deep-equal'\n\nexport class UpdateTargetModificationHandler implements ModificationHandler<UpdateTargetModificationData> {\n\tconstructor(private readonly data: UpdateTargetModificationData) {\n\t}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\treturn ({\n\t\t\t\t...schema,\n\t\t\t\tactions: {\n\t\t\t\t\t...schema.actions,\n\t\t\t\t\ttargets: {\n\t\t\t\t\t\t...schema.actions.targets,\n\t\t\t\t\t\t[this.data.name]: this.data.target,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t})\n\t\t}\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Update target ${this.data.name}` }\n\t}\n}\n\nexport interface UpdateTargetModificationData {\n\tname: string\n\ttarget: Actions.AnyTarget\n}\n\nexport const updateTargetModification = createModificationType({\n\tid: 'updateTarget',\n\thandler: UpdateTargetModificationHandler,\n})\n\nexport class UpdateTargetDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn Object.entries(updatedSchema.actions.targets)\n\t\t\t.filter(([name, target]) => originalSchema.actions.targets[name] && !deepEqual(target, originalSchema.actions.targets[name]))\n\t\t\t.map(([name, target]) => updateTargetModification.createModification({ name, target }))\n\t}\n}\n"],"names":[],"mappings":";;AAKO,MAAM,gCAA6F;AAAA,EACzG,YAA6B,MAAoC;AAApC,SAAA,OAAA;AAAA,EAC7B;AAAA,EAEO,YAAkB;AAAA,EACzB;AAAA,EAEO,mBAAkC;AACxC,WAAO,CAAC,EAAE,aAAa;AACtB,aAAQ;AAAA,QACP,GAAG;AAAA,QACH,SAAS;AAAA,UACR,GAAG,OAAO;AAAA,UACV,SAAS;AAAA,YACR,GAAG,OAAO,QAAQ;AAAA,YAClB,CAAC,KAAK,KAAK,IAAI,GAAG,KAAK,KAAK;AAAA,UAAA;AAAA,QAC7B;AAAA,MACD;AAAA,IAEF;AAAA,EACD;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,iBAAiB,KAAK,KAAK,IAAI,GAAA;AAAA,EAClD;AACD;AAOO,MAAM,2BAA2B,uBAAuB;AAAA,EAC9D,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,mBAAqC;AAAA,EACjD,WAAW,gBAAwB,eAAuB;AACzD,WAAO,OAAO,QAAQ,cAAc,QAAQ,OAAO,EACjD,OAAO,CAAC,CAAC,MAAM,MAAM,MAAM,eAAe,QAAQ,QAAQ,IAAI,KAAK,CAAC,UAAU,QAAQ,eAAe,QAAQ,QAAQ,IAAI,CAAC,CAAC,EAC3H,IAAI,CAAC,CAAC,MAAM,MAAM,MAAM,yBAAyB,mBAAmB,EAAE,MAAM,OAAA,CAAQ,CAAC;AAAA,EACxF;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateTriggerModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/actions/UpdateTriggerModification.ts"],"sourcesContent":["import { Actions, Schema } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport deepEqual from 'fast-deep-equal'\nimport { createPatch } from 'rfc6902'\nimport { patchTriggerModification } from './PatchTriggerModification'\n\nexport class UpdateTriggerModificationHandler implements ModificationHandler<UpdateTriggerModificationData> {\n\tconstructor(private readonly data: UpdateTriggerModificationData) {\n\t}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\treturn ({\n\t\t\t\t...schema,\n\t\t\t\tactions: {\n\t\t\t\t\t...schema.actions,\n\t\t\t\t\ttriggers: {\n\t\t\t\t\t\t...schema.actions.triggers,\n\t\t\t\t\t\t[this.data.trigger.name]: this.data.trigger,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t})\n\t\t}\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Update trigger ${this.data.trigger.name}` }\n\t}\n}\n\nexport interface UpdateTriggerModificationData {\n\ttrigger: Actions.AnyTrigger\n}\n\nexport const updateTriggerModification = createModificationType({\n\tid: 'updateTrigger',\n\thandler: UpdateTriggerModificationHandler,\n})\n\nexport class UpdateTriggerDiffer implements Differ {\n\tconstructor(\n\t\tprivate readonly options?: {\n\t\t\tmaxPatchSize?: number\n\t\t},\n\t) {\n\t}\n\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn Object.entries(updatedSchema.actions.triggers)\n\t\t\t.filter(([name, trigger]) => originalSchema.actions.triggers[name] && !deepEqual(trigger, originalSchema.actions.triggers[name]))\n\t\t\t.map(([name, trigger]) => {\n\t\t\t\tconst originalTrigger = originalSchema.actions.triggers[name]\n\n\t\t\t\tconst patch = createPatch(originalTrigger, trigger)\n\t\t\t\tif (patch.length <= (this.options?.maxPatchSize ?? 1000)) {\n\t\t\t\t\treturn patchTriggerModification.createModification({\n\t\t\t\t\t\ttriggerName: name,\n\t\t\t\t\t\tpatch,\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\treturn updateTriggerModification.createModification({ trigger })\n\t\t\t})\n\t}\n}\n"],"names":["createModificationType","createPatch","patchTriggerModification"],"mappings":";;;;;;AAOO,MAAM,iCAA+F;AAAA,EAC3G,YAA6B,MAAqC;AAArC,SAAA,OAAA;AAAA,EAC7B;AAAA,EAEO,YAAkB;AAAA,EACzB;AAAA,EAEO,mBAAkC;AACxC,WAAO,CAAC,EAAE,aAAa;AACtB,aAAQ;AAAA,QACP,GAAG;AAAA,QACH,SAAS;AAAA,UACR,GAAG,OAAO;AAAA,UACV,UAAU;AAAA,YACT,GAAG,OAAO,QAAQ;AAAA,YAClB,CAAC,KAAK,KAAK,QAAQ,IAAI,GAAG,KAAK,KAAK;AAAA,UAAA;AAAA,QACrC;AAAA,MACD;AAAA,IAEF;AAAA,EACD;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,kBAAkB,KAAK,KAAK,QAAQ,IAAI,GAAA;AAAA,EAC3D;AACD;AAMO,MAAM,4BAA4BA,oBAAAA,uBAAuB;AAAA,EAC/D,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,oBAAsC;AAAA,EAClD,YACkB,SAGhB;AAHgB,SAAA,UAAA;AAAA,EAIlB;AAAA,EAEA,WAAW,gBAAwB,eAAuB;AACzD,WAAO,OAAO,QAAQ,cAAc,QAAQ,QAAQ,EAClD,OAAO,CAAC,CAAC,MAAM,OAAO,MAAM,eAAe,QAAQ,SAAS,IAAI,KAAK,CAAC,UAAU,SAAS,eAAe,QAAQ,SAAS,IAAI,CAAC,CAAC,EAC/H,IAAI,CAAC,CAAC,MAAM,OAAO,MAAM;AACzB,YAAM,kBAAkB,eAAe,QAAQ,SAAS,IAAI;AAE5D,YAAM,QAAQC,QAAAA,YAAY,iBAAiB,OAAO;AAClD,UAAI,MAAM,WAAW,KAAK,SAAS,gBAAgB,MAAO;AACzD,eAAOC,yBAAAA,yBAAyB,mBAAmB;AAAA,UAClD,aAAa;AAAA,UACb;AAAA,QAAA,CACA;AAAA,MACF;AAEA,aAAO,0BAA0B,mBAAmB,EAAE,SAAS;AAAA,IAChE,CAAC;AAAA,EACH;AACD;;;;"}
1
+ {"version":3,"file":"UpdateTriggerModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/actions/UpdateTriggerModification.ts"],"sourcesContent":["import { Actions, Schema } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils.js'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler.js'\nimport deepEqual from 'fast-deep-equal'\nimport { createPatch } from 'rfc6902'\nimport { patchTriggerModification } from './PatchTriggerModification.js'\n\nexport class UpdateTriggerModificationHandler implements ModificationHandler<UpdateTriggerModificationData> {\n\tconstructor(private readonly data: UpdateTriggerModificationData) {\n\t}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\treturn ({\n\t\t\t\t...schema,\n\t\t\t\tactions: {\n\t\t\t\t\t...schema.actions,\n\t\t\t\t\ttriggers: {\n\t\t\t\t\t\t...schema.actions.triggers,\n\t\t\t\t\t\t[this.data.trigger.name]: this.data.trigger,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t})\n\t\t}\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Update trigger ${this.data.trigger.name}` }\n\t}\n}\n\nexport interface UpdateTriggerModificationData {\n\ttrigger: Actions.AnyTrigger\n}\n\nexport const updateTriggerModification = createModificationType({\n\tid: 'updateTrigger',\n\thandler: UpdateTriggerModificationHandler,\n})\n\nexport class UpdateTriggerDiffer implements Differ {\n\tconstructor(\n\t\tprivate readonly options?: {\n\t\t\tmaxPatchSize?: number\n\t\t},\n\t) {\n\t}\n\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn Object.entries(updatedSchema.actions.triggers)\n\t\t\t.filter(([name, trigger]) => originalSchema.actions.triggers[name] && !deepEqual(trigger, originalSchema.actions.triggers[name]))\n\t\t\t.map(([name, trigger]) => {\n\t\t\t\tconst originalTrigger = originalSchema.actions.triggers[name]\n\n\t\t\t\tconst patch = createPatch(originalTrigger, trigger)\n\t\t\t\tif (patch.length <= (this.options?.maxPatchSize ?? 1000)) {\n\t\t\t\t\treturn patchTriggerModification.createModification({\n\t\t\t\t\t\ttriggerName: name,\n\t\t\t\t\t\tpatch,\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\treturn updateTriggerModification.createModification({ trigger })\n\t\t\t})\n\t}\n}\n"],"names":["createModificationType","createPatch","patchTriggerModification"],"mappings":";;;;;;AAOO,MAAM,iCAA+F;AAAA,EAC3G,YAA6B,MAAqC;AAArC,SAAA,OAAA;AAAA,EAC7B;AAAA,EAEO,YAAkB;AAAA,EACzB;AAAA,EAEO,mBAAkC;AACxC,WAAO,CAAC,EAAE,aAAa;AACtB,aAAQ;AAAA,QACP,GAAG;AAAA,QACH,SAAS;AAAA,UACR,GAAG,OAAO;AAAA,UACV,UAAU;AAAA,YACT,GAAG,OAAO,QAAQ;AAAA,YAClB,CAAC,KAAK,KAAK,QAAQ,IAAI,GAAG,KAAK,KAAK;AAAA,UAAA;AAAA,QACrC;AAAA,MACD;AAAA,IAEF;AAAA,EACD;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,kBAAkB,KAAK,KAAK,QAAQ,IAAI,GAAA;AAAA,EAC3D;AACD;AAMO,MAAM,4BAA4BA,oBAAAA,uBAAuB;AAAA,EAC/D,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,oBAAsC;AAAA,EAClD,YACkB,SAGhB;AAHgB,SAAA,UAAA;AAAA,EAIlB;AAAA,EAEA,WAAW,gBAAwB,eAAuB;AACzD,WAAO,OAAO,QAAQ,cAAc,QAAQ,QAAQ,EAClD,OAAO,CAAC,CAAC,MAAM,OAAO,MAAM,eAAe,QAAQ,SAAS,IAAI,KAAK,CAAC,UAAU,SAAS,eAAe,QAAQ,SAAS,IAAI,CAAC,CAAC,EAC/H,IAAI,CAAC,CAAC,MAAM,OAAO,MAAM;AACzB,YAAM,kBAAkB,eAAe,QAAQ,SAAS,IAAI;AAE5D,YAAM,QAAQC,QAAAA,YAAY,iBAAiB,OAAO;AAClD,UAAI,MAAM,WAAW,KAAK,SAAS,gBAAgB,MAAO;AACzD,eAAOC,yBAAAA,yBAAyB,mBAAmB;AAAA,UAClD,aAAa;AAAA,UACb;AAAA,QAAA,CACA;AAAA,MACF;AAEA,aAAO,0BAA0B,mBAAmB,EAAE,SAAS;AAAA,IAChE,CAAC;AAAA,EACH;AACD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateTriggerModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/actions/UpdateTriggerModification.ts"],"sourcesContent":["import { Actions, Schema } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport deepEqual from 'fast-deep-equal'\nimport { createPatch } from 'rfc6902'\nimport { patchTriggerModification } from './PatchTriggerModification'\n\nexport class UpdateTriggerModificationHandler implements ModificationHandler<UpdateTriggerModificationData> {\n\tconstructor(private readonly data: UpdateTriggerModificationData) {\n\t}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\treturn ({\n\t\t\t\t...schema,\n\t\t\t\tactions: {\n\t\t\t\t\t...schema.actions,\n\t\t\t\t\ttriggers: {\n\t\t\t\t\t\t...schema.actions.triggers,\n\t\t\t\t\t\t[this.data.trigger.name]: this.data.trigger,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t})\n\t\t}\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Update trigger ${this.data.trigger.name}` }\n\t}\n}\n\nexport interface UpdateTriggerModificationData {\n\ttrigger: Actions.AnyTrigger\n}\n\nexport const updateTriggerModification = createModificationType({\n\tid: 'updateTrigger',\n\thandler: UpdateTriggerModificationHandler,\n})\n\nexport class UpdateTriggerDiffer implements Differ {\n\tconstructor(\n\t\tprivate readonly options?: {\n\t\t\tmaxPatchSize?: number\n\t\t},\n\t) {\n\t}\n\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn Object.entries(updatedSchema.actions.triggers)\n\t\t\t.filter(([name, trigger]) => originalSchema.actions.triggers[name] && !deepEqual(trigger, originalSchema.actions.triggers[name]))\n\t\t\t.map(([name, trigger]) => {\n\t\t\t\tconst originalTrigger = originalSchema.actions.triggers[name]\n\n\t\t\t\tconst patch = createPatch(originalTrigger, trigger)\n\t\t\t\tif (patch.length <= (this.options?.maxPatchSize ?? 1000)) {\n\t\t\t\t\treturn patchTriggerModification.createModification({\n\t\t\t\t\t\ttriggerName: name,\n\t\t\t\t\t\tpatch,\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\treturn updateTriggerModification.createModification({ trigger })\n\t\t\t})\n\t}\n}\n"],"names":[],"mappings":";;;;AAOO,MAAM,iCAA+F;AAAA,EAC3G,YAA6B,MAAqC;AAArC,SAAA,OAAA;AAAA,EAC7B;AAAA,EAEO,YAAkB;AAAA,EACzB;AAAA,EAEO,mBAAkC;AACxC,WAAO,CAAC,EAAE,aAAa;AACtB,aAAQ;AAAA,QACP,GAAG;AAAA,QACH,SAAS;AAAA,UACR,GAAG,OAAO;AAAA,UACV,UAAU;AAAA,YACT,GAAG,OAAO,QAAQ;AAAA,YAClB,CAAC,KAAK,KAAK,QAAQ,IAAI,GAAG,KAAK,KAAK;AAAA,UAAA;AAAA,QACrC;AAAA,MACD;AAAA,IAEF;AAAA,EACD;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,kBAAkB,KAAK,KAAK,QAAQ,IAAI,GAAA;AAAA,EAC3D;AACD;AAMO,MAAM,4BAA4B,uBAAuB;AAAA,EAC/D,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,oBAAsC;AAAA,EAClD,YACkB,SAGhB;AAHgB,SAAA,UAAA;AAAA,EAIlB;AAAA,EAEA,WAAW,gBAAwB,eAAuB;AACzD,WAAO,OAAO,QAAQ,cAAc,QAAQ,QAAQ,EAClD,OAAO,CAAC,CAAC,MAAM,OAAO,MAAM,eAAe,QAAQ,SAAS,IAAI,KAAK,CAAC,UAAU,SAAS,eAAe,QAAQ,SAAS,IAAI,CAAC,CAAC,EAC/H,IAAI,CAAC,CAAC,MAAM,OAAO,MAAM;AACzB,YAAM,kBAAkB,eAAe,QAAQ,SAAS,IAAI;AAE5D,YAAM,QAAQ,YAAY,iBAAiB,OAAO;AAClD,UAAI,MAAM,WAAW,KAAK,SAAS,gBAAgB,MAAO;AACzD,eAAO,yBAAyB,mBAAmB;AAAA,UAClD,aAAa;AAAA,UACb;AAAA,QAAA,CACA;AAAA,MACF;AAEA,aAAO,0BAA0B,mBAAmB,EAAE,SAAS;AAAA,IAChE,CAAC;AAAA,EACH;AACD;"}
1
+ {"version":3,"file":"UpdateTriggerModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/actions/UpdateTriggerModification.ts"],"sourcesContent":["import { Actions, Schema } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils.js'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler.js'\nimport deepEqual from 'fast-deep-equal'\nimport { createPatch } from 'rfc6902'\nimport { patchTriggerModification } from './PatchTriggerModification.js'\n\nexport class UpdateTriggerModificationHandler implements ModificationHandler<UpdateTriggerModificationData> {\n\tconstructor(private readonly data: UpdateTriggerModificationData) {\n\t}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\treturn ({\n\t\t\t\t...schema,\n\t\t\t\tactions: {\n\t\t\t\t\t...schema.actions,\n\t\t\t\t\ttriggers: {\n\t\t\t\t\t\t...schema.actions.triggers,\n\t\t\t\t\t\t[this.data.trigger.name]: this.data.trigger,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t})\n\t\t}\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Update trigger ${this.data.trigger.name}` }\n\t}\n}\n\nexport interface UpdateTriggerModificationData {\n\ttrigger: Actions.AnyTrigger\n}\n\nexport const updateTriggerModification = createModificationType({\n\tid: 'updateTrigger',\n\thandler: UpdateTriggerModificationHandler,\n})\n\nexport class UpdateTriggerDiffer implements Differ {\n\tconstructor(\n\t\tprivate readonly options?: {\n\t\t\tmaxPatchSize?: number\n\t\t},\n\t) {\n\t}\n\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn Object.entries(updatedSchema.actions.triggers)\n\t\t\t.filter(([name, trigger]) => originalSchema.actions.triggers[name] && !deepEqual(trigger, originalSchema.actions.triggers[name]))\n\t\t\t.map(([name, trigger]) => {\n\t\t\t\tconst originalTrigger = originalSchema.actions.triggers[name]\n\n\t\t\t\tconst patch = createPatch(originalTrigger, trigger)\n\t\t\t\tif (patch.length <= (this.options?.maxPatchSize ?? 1000)) {\n\t\t\t\t\treturn patchTriggerModification.createModification({\n\t\t\t\t\t\ttriggerName: name,\n\t\t\t\t\t\tpatch,\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\treturn updateTriggerModification.createModification({ trigger })\n\t\t\t})\n\t}\n}\n"],"names":[],"mappings":";;;;AAOO,MAAM,iCAA+F;AAAA,EAC3G,YAA6B,MAAqC;AAArC,SAAA,OAAA;AAAA,EAC7B;AAAA,EAEO,YAAkB;AAAA,EACzB;AAAA,EAEO,mBAAkC;AACxC,WAAO,CAAC,EAAE,aAAa;AACtB,aAAQ;AAAA,QACP,GAAG;AAAA,QACH,SAAS;AAAA,UACR,GAAG,OAAO;AAAA,UACV,UAAU;AAAA,YACT,GAAG,OAAO,QAAQ;AAAA,YAClB,CAAC,KAAK,KAAK,QAAQ,IAAI,GAAG,KAAK,KAAK;AAAA,UAAA;AAAA,QACrC;AAAA,MACD;AAAA,IAEF;AAAA,EACD;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,kBAAkB,KAAK,KAAK,QAAQ,IAAI,GAAA;AAAA,EAC3D;AACD;AAMO,MAAM,4BAA4B,uBAAuB;AAAA,EAC/D,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,oBAAsC;AAAA,EAClD,YACkB,SAGhB;AAHgB,SAAA,UAAA;AAAA,EAIlB;AAAA,EAEA,WAAW,gBAAwB,eAAuB;AACzD,WAAO,OAAO,QAAQ,cAAc,QAAQ,QAAQ,EAClD,OAAO,CAAC,CAAC,MAAM,OAAO,MAAM,eAAe,QAAQ,SAAS,IAAI,KAAK,CAAC,UAAU,SAAS,eAAe,QAAQ,SAAS,IAAI,CAAC,CAAC,EAC/H,IAAI,CAAC,CAAC,MAAM,OAAO,MAAM;AACzB,YAAM,kBAAkB,eAAe,QAAQ,SAAS,IAAI;AAE5D,YAAM,QAAQ,YAAY,iBAAiB,OAAO;AAClD,UAAI,MAAM,WAAW,KAAK,SAAS,gBAAgB,MAAO;AACzD,eAAO,yBAAyB,mBAAmB;AAAA,UAClD,aAAa;AAAA,UACb;AAAA,QAAA,CACA;AAAA,MACF;AAEA,aAAO,0BAA0B,mBAAmB,EAAE,SAAS;AAAA,IAChE,CAAC;AAAA,EACH;AACD;"}
@@ -6,6 +6,7 @@ const schemaUtils = require("@contember/schema-utils");
6
6
  const diffUtils = require("../utils/diffUtils.cjs");
7
7
  const columnUtils = require("../utils/columnUtils.cjs");
8
8
  const columnUtils$1 = require("./columnUtils.cjs");
9
+ const dbHelpers = require("../../utils/dbHelpers.cjs");
9
10
  class CreateColumnModificationHandler {
10
11
  constructor(data, schema) {
11
12
  this.data = data;
@@ -30,7 +31,7 @@ class CreateColumnModificationHandler {
30
31
  type: columnType,
31
32
  notNull: !column.nullable && seedExpression === null,
32
33
  sequenceGenerated: column.sequence,
33
- collation: column.collation
34
+ collation: column.collation !== void 0 ? dbHelpers.wrapIdentifier(column.collation) : void 0
34
35
  }
35
36
  });
36
37
  if (seedExpression !== null) {
@@ -1 +1 @@
1
- {"version":3,"file":"CreateColumnModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/columns/CreateColumnModification.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { JSONValue, Model, Schema } from '@contember/schema'\nimport { addField, SchemaUpdater, updateEntity, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport { isColumn } from '@contember/schema-utils'\nimport { createFields } from '../utils/diffUtils'\nimport { getColumnSqlType } from '../utils/columnUtils'\nimport { fillSeed, formatSeedExpression } from './columnUtils'\n\nexport class CreateColumnModificationHandler implements ModificationHandler<CreateColumnModificationData> {\n\tconstructor(private readonly data: CreateColumnModificationData, private readonly schema: Schema) {}\n\n\tpublic createSql(builder: MigrationBuilder): void {\n\t\tconst entity = this.schema.model.entities[this.data.entityName]\n\t\tif (entity.view) {\n\t\t\treturn\n\t\t}\n\t\tconst column = this.data.field\n\n\t\tconst columnType = getColumnSqlType(column)\n\n\t\tconst seedExpression = formatSeedExpression({\n\t\t\tmodel: this.schema.model,\n\t\t\tentity,\n\t\t\tcolumnType,\n\t\t\tfillValue: this.data.fillValue,\n\t\t\tcopyValue: this.data.copyValue,\n\t\t})\n\n\t\tbuilder.addColumn(entity.tableName, {\n\t\t\t[column.columnName]: {\n\t\t\t\ttype: columnType,\n\t\t\t\tnotNull: !column.nullable && seedExpression === null,\n\t\t\t\tsequenceGenerated: column.sequence,\n\t\t\t\tcollation: column.collation,\n\t\t\t},\n\t\t})\n\n\t\tif (seedExpression !== null) {\n\t\t\tif (this.data.valueMigrationStrategy === 'using') {\n\t\t\t\tbuilder.alterColumn(entity.tableName, column.columnName, {\n\t\t\t\t\tnotNull: !column.nullable ? true : undefined,\n\t\t\t\t\ttype: columnType,\n\t\t\t\t\tusing: seedExpression,\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tfillSeed({\n\t\t\t\t\tbuilder,\n\t\t\t\t\ttype: 'creating',\n\t\t\t\t\tentity,\n\t\t\t\t\tcolumnName: column.columnName,\n\t\t\t\t\tnullable: column.nullable,\n\t\t\t\t\tseedExpression,\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn updateModel(updateEntity(this.data.entityName, addField(this.data.field)))\n\t}\n\n\tdescribe({ createdEntities }: { createdEntities: string[] }) {\n\t\tconst notNull = !this.data.field.nullable\n\t\tconst hasValue = this.data.fillValue !== undefined || this.data.copyValue !== undefined\n\t\tconst failureWarning = notNull && !hasValue && !createdEntities.includes(this.data.entityName)\n\t\t\t? 'May fail in runtime, because column is not-null. Consider setting fillValue or copyValue'\n\t\t\t: undefined\n\t\treturn { message: `Add field ${this.data.entityName}.${this.data.field.name}`, failureWarning }\n\t}\n}\n\nexport interface CreateColumnModificationData {\n\tentityName: string\n\tfield: Model.AnyColumn\n\tfillValue?: JSONValue\n\tcopyValue?: string\n\tvalueMigrationStrategy?: 'using' | 'update'\n}\n\nexport const createColumnModification = createModificationType({\n\tid: 'createColumn',\n\thandler: CreateColumnModificationHandler,\n})\n\nexport class CreateColumnDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn createFields(originalSchema, updatedSchema, ({ newField, updatedEntity }) => {\n\t\t\tif (!isColumn(newField)) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\treturn createColumnModification.createModification({\n\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\tfield: newField,\n\t\t\t\t...(newField.default !== undefined ? { fillValue: newField.default, valueMigrationStrategy: 'using' } : {}),\n\t\t\t})\n\t\t})\n\t}\n}\n"],"names":["getColumnSqlType","formatSeedExpression","fillSeed","updateModel","updateEntity","addField","createModificationType","createFields","isColumn"],"mappings":";;;;;;;;AASO,MAAM,gCAA6F;AAAA,EACzG,YAA6B,MAAqD,QAAgB;AAArE,SAAA,OAAA;AAAqD,SAAA,SAAA;AAAA,EAAiB;AAAA,EAE5F,UAAU,SAAiC;AACjD,UAAM,SAAS,KAAK,OAAO,MAAM,SAAS,KAAK,KAAK,UAAU;AAC9D,QAAI,OAAO,MAAM;AAChB;AAAA,IACD;AACA,UAAM,SAAS,KAAK,KAAK;AAEzB,UAAM,aAAaA,YAAAA,iBAAiB,MAAM;AAE1C,UAAM,iBAAiBC,cAAAA,qBAAqB;AAAA,MAC3C,OAAO,KAAK,OAAO;AAAA,MACnB;AAAA,MACA;AAAA,MACA,WAAW,KAAK,KAAK;AAAA,MACrB,WAAW,KAAK,KAAK;AAAA,IAAA,CACrB;AAED,YAAQ,UAAU,OAAO,WAAW;AAAA,MACnC,CAAC,OAAO,UAAU,GAAG;AAAA,QACpB,MAAM;AAAA,QACN,SAAS,CAAC,OAAO,YAAY,mBAAmB;AAAA,QAChD,mBAAmB,OAAO;AAAA,QAC1B,WAAW,OAAO;AAAA,MAAA;AAAA,IACnB,CACA;AAED,QAAI,mBAAmB,MAAM;AAC5B,UAAI,KAAK,KAAK,2BAA2B,SAAS;AACjD,gBAAQ,YAAY,OAAO,WAAW,OAAO,YAAY;AAAA,UACxD,SAAS,CAAC,OAAO,WAAW,OAAO;AAAA,UACnC,MAAM;AAAA,UACN,OAAO;AAAA,QAAA,CACP;AAAA,MACF,OAAO;AACNC,+BAAS;AAAA,UACR;AAAA,UACA,MAAM;AAAA,UACN;AAAA,UACA,YAAY,OAAO;AAAA,UACnB,UAAU,OAAO;AAAA,UACjB;AAAA,QAAA,CACA;AAAA,MACF;AAAA,IACD;AAAA,EACD;AAAA,EAEO,mBAAkC;AACxC,WAAOC,8BAAYC,kBAAAA,aAAa,KAAK,KAAK,YAAYC,kBAAAA,SAAS,KAAK,KAAK,KAAK,CAAC,CAAC;AAAA,EACjF;AAAA,EAEA,SAAS,EAAE,mBAAkD;AAC5D,UAAM,UAAU,CAAC,KAAK,KAAK,MAAM;AACjC,UAAM,WAAW,KAAK,KAAK,cAAc,UAAa,KAAK,KAAK,cAAc;AAC9E,UAAM,iBAAiB,WAAW,CAAC,YAAY,CAAC,gBAAgB,SAAS,KAAK,KAAK,UAAU,IAC1F,6FACA;AACH,WAAO,EAAE,SAAS,aAAa,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,MAAM,IAAI,IAAI,eAAA;AAAA,EAChF;AACD;AAUO,MAAM,2BAA2BC,oBAAAA,uBAAuB;AAAA,EAC9D,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,mBAAqC;AAAA,EACjD,WAAW,gBAAwB,eAAuB;AACzD,WAAOC,UAAAA,aAAa,gBAAgB,eAAe,CAAC,EAAE,UAAU,oBAAoB;AACnF,UAAI,CAACC,YAAAA,SAAS,QAAQ,GAAG;AACxB,eAAO;AAAA,MACR;AACA,aAAO,yBAAyB,mBAAmB;AAAA,QAClD,YAAY,cAAc;AAAA,QAC1B,OAAO;AAAA,QACP,GAAI,SAAS,YAAY,SAAY,EAAE,WAAW,SAAS,SAAS,wBAAwB,YAAY,CAAA;AAAA,MAAC,CACzG;AAAA,IACF,CAAC;AAAA,EACF;AACD;;;;"}
1
+ {"version":3,"file":"CreateColumnModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/columns/CreateColumnModification.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { JSONValue, Model, Schema } from '@contember/schema'\nimport { addField, SchemaUpdater, updateEntity, updateModel } from '../utils/schemaUpdateUtils.js'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler.js'\nimport { isColumn } from '@contember/schema-utils'\nimport { createFields } from '../utils/diffUtils.js'\nimport { getColumnSqlType } from '../utils/columnUtils.js'\nimport { fillSeed, formatSeedExpression } from './columnUtils.js'\nimport { wrapIdentifier } from '../../utils/dbHelpers.js'\n\nexport class CreateColumnModificationHandler implements ModificationHandler<CreateColumnModificationData> {\n\tconstructor(private readonly data: CreateColumnModificationData, private readonly schema: Schema) {}\n\n\tpublic createSql(builder: MigrationBuilder): void {\n\t\tconst entity = this.schema.model.entities[this.data.entityName]\n\t\tif (entity.view) {\n\t\t\treturn\n\t\t}\n\t\tconst column = this.data.field\n\n\t\tconst columnType = getColumnSqlType(column)\n\n\t\tconst seedExpression = formatSeedExpression({\n\t\t\tmodel: this.schema.model,\n\t\t\tentity,\n\t\t\tcolumnType,\n\t\t\tfillValue: this.data.fillValue,\n\t\t\tcopyValue: this.data.copyValue,\n\t\t})\n\n\t\tbuilder.addColumn(entity.tableName, {\n\t\t\t[column.columnName]: {\n\t\t\t\ttype: columnType,\n\t\t\t\tnotNull: !column.nullable && seedExpression === null,\n\t\t\t\tsequenceGenerated: column.sequence,\n\t\t\t\tcollation: column.collation !== undefined ? wrapIdentifier(column.collation) : undefined,\n\t\t\t},\n\t\t})\n\n\t\tif (seedExpression !== null) {\n\t\t\tif (this.data.valueMigrationStrategy === 'using') {\n\t\t\t\tbuilder.alterColumn(entity.tableName, column.columnName, {\n\t\t\t\t\tnotNull: !column.nullable ? true : undefined,\n\t\t\t\t\ttype: columnType,\n\t\t\t\t\tusing: seedExpression,\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tfillSeed({\n\t\t\t\t\tbuilder,\n\t\t\t\t\ttype: 'creating',\n\t\t\t\t\tentity,\n\t\t\t\t\tcolumnName: column.columnName,\n\t\t\t\t\tnullable: column.nullable,\n\t\t\t\t\tseedExpression,\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn updateModel(updateEntity(this.data.entityName, addField(this.data.field)))\n\t}\n\n\tdescribe({ createdEntities }: { createdEntities: string[] }) {\n\t\tconst notNull = !this.data.field.nullable\n\t\tconst hasValue = this.data.fillValue !== undefined || this.data.copyValue !== undefined\n\t\tconst failureWarning = notNull && !hasValue && !createdEntities.includes(this.data.entityName)\n\t\t\t? 'May fail in runtime, because column is not-null. Consider setting fillValue or copyValue'\n\t\t\t: undefined\n\t\treturn { message: `Add field ${this.data.entityName}.${this.data.field.name}`, failureWarning }\n\t}\n}\n\nexport interface CreateColumnModificationData {\n\tentityName: string\n\tfield: Model.AnyColumn\n\tfillValue?: JSONValue\n\tcopyValue?: string\n\tvalueMigrationStrategy?: 'using' | 'update'\n}\n\nexport const createColumnModification = createModificationType({\n\tid: 'createColumn',\n\thandler: CreateColumnModificationHandler,\n})\n\nexport class CreateColumnDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn createFields(originalSchema, updatedSchema, ({ newField, updatedEntity }) => {\n\t\t\tif (!isColumn(newField)) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\treturn createColumnModification.createModification({\n\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\tfield: newField,\n\t\t\t\t...(newField.default !== undefined ? { fillValue: newField.default, valueMigrationStrategy: 'using' } : {}),\n\t\t\t})\n\t\t})\n\t}\n}\n"],"names":["getColumnSqlType","formatSeedExpression","wrapIdentifier","fillSeed","updateModel","updateEntity","addField","createModificationType","createFields","isColumn"],"mappings":";;;;;;;;;AAUO,MAAM,gCAA6F;AAAA,EACzG,YAA6B,MAAqD,QAAgB;AAArE,SAAA,OAAA;AAAqD,SAAA,SAAA;AAAA,EAAiB;AAAA,EAE5F,UAAU,SAAiC;AACjD,UAAM,SAAS,KAAK,OAAO,MAAM,SAAS,KAAK,KAAK,UAAU;AAC9D,QAAI,OAAO,MAAM;AAChB;AAAA,IACD;AACA,UAAM,SAAS,KAAK,KAAK;AAEzB,UAAM,aAAaA,YAAAA,iBAAiB,MAAM;AAE1C,UAAM,iBAAiBC,cAAAA,qBAAqB;AAAA,MAC3C,OAAO,KAAK,OAAO;AAAA,MACnB;AAAA,MACA;AAAA,MACA,WAAW,KAAK,KAAK;AAAA,MACrB,WAAW,KAAK,KAAK;AAAA,IAAA,CACrB;AAED,YAAQ,UAAU,OAAO,WAAW;AAAA,MACnC,CAAC,OAAO,UAAU,GAAG;AAAA,QACpB,MAAM;AAAA,QACN,SAAS,CAAC,OAAO,YAAY,mBAAmB;AAAA,QAChD,mBAAmB,OAAO;AAAA,QAC1B,WAAW,OAAO,cAAc,SAAYC,UAAAA,eAAe,OAAO,SAAS,IAAI;AAAA,MAAA;AAAA,IAChF,CACA;AAED,QAAI,mBAAmB,MAAM;AAC5B,UAAI,KAAK,KAAK,2BAA2B,SAAS;AACjD,gBAAQ,YAAY,OAAO,WAAW,OAAO,YAAY;AAAA,UACxD,SAAS,CAAC,OAAO,WAAW,OAAO;AAAA,UACnC,MAAM;AAAA,UACN,OAAO;AAAA,QAAA,CACP;AAAA,MACF,OAAO;AACNC,+BAAS;AAAA,UACR;AAAA,UACA,MAAM;AAAA,UACN;AAAA,UACA,YAAY,OAAO;AAAA,UACnB,UAAU,OAAO;AAAA,UACjB;AAAA,QAAA,CACA;AAAA,MACF;AAAA,IACD;AAAA,EACD;AAAA,EAEO,mBAAkC;AACxC,WAAOC,8BAAYC,kBAAAA,aAAa,KAAK,KAAK,YAAYC,kBAAAA,SAAS,KAAK,KAAK,KAAK,CAAC,CAAC;AAAA,EACjF;AAAA,EAEA,SAAS,EAAE,mBAAkD;AAC5D,UAAM,UAAU,CAAC,KAAK,KAAK,MAAM;AACjC,UAAM,WAAW,KAAK,KAAK,cAAc,UAAa,KAAK,KAAK,cAAc;AAC9E,UAAM,iBAAiB,WAAW,CAAC,YAAY,CAAC,gBAAgB,SAAS,KAAK,KAAK,UAAU,IAC1F,6FACA;AACH,WAAO,EAAE,SAAS,aAAa,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,MAAM,IAAI,IAAI,eAAA;AAAA,EAChF;AACD;AAUO,MAAM,2BAA2BC,oBAAAA,uBAAuB;AAAA,EAC9D,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,mBAAqC;AAAA,EACjD,WAAW,gBAAwB,eAAuB;AACzD,WAAOC,UAAAA,aAAa,gBAAgB,eAAe,CAAC,EAAE,UAAU,oBAAoB;AACnF,UAAI,CAACC,YAAAA,SAAS,QAAQ,GAAG;AACxB,eAAO;AAAA,MACR;AACA,aAAO,yBAAyB,mBAAmB;AAAA,QAClD,YAAY,cAAc;AAAA,QAC1B,OAAO;AAAA,QACP,GAAI,SAAS,YAAY,SAAY,EAAE,WAAW,SAAS,SAAS,wBAAwB,YAAY,CAAA;AAAA,MAAC,CACzG;AAAA,IACF,CAAC;AAAA,EACF;AACD;;;;"}
@@ -4,6 +4,7 @@ import { isColumn } from "@contember/schema-utils";
4
4
  import { createFields } from "../utils/diffUtils.js";
5
5
  import { getColumnSqlType } from "../utils/columnUtils.js";
6
6
  import { formatSeedExpression, fillSeed } from "./columnUtils.js";
7
+ import { wrapIdentifier } from "../../utils/dbHelpers.js";
7
8
  class CreateColumnModificationHandler {
8
9
  constructor(data, schema) {
9
10
  this.data = data;
@@ -28,7 +29,7 @@ class CreateColumnModificationHandler {
28
29
  type: columnType,
29
30
  notNull: !column.nullable && seedExpression === null,
30
31
  sequenceGenerated: column.sequence,
31
- collation: column.collation
32
+ collation: column.collation !== void 0 ? wrapIdentifier(column.collation) : void 0
32
33
  }
33
34
  });
34
35
  if (seedExpression !== null) {
@@ -1 +1 @@
1
- {"version":3,"file":"CreateColumnModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/columns/CreateColumnModification.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { JSONValue, Model, Schema } from '@contember/schema'\nimport { addField, SchemaUpdater, updateEntity, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport { isColumn } from '@contember/schema-utils'\nimport { createFields } from '../utils/diffUtils'\nimport { getColumnSqlType } from '../utils/columnUtils'\nimport { fillSeed, formatSeedExpression } from './columnUtils'\n\nexport class CreateColumnModificationHandler implements ModificationHandler<CreateColumnModificationData> {\n\tconstructor(private readonly data: CreateColumnModificationData, private readonly schema: Schema) {}\n\n\tpublic createSql(builder: MigrationBuilder): void {\n\t\tconst entity = this.schema.model.entities[this.data.entityName]\n\t\tif (entity.view) {\n\t\t\treturn\n\t\t}\n\t\tconst column = this.data.field\n\n\t\tconst columnType = getColumnSqlType(column)\n\n\t\tconst seedExpression = formatSeedExpression({\n\t\t\tmodel: this.schema.model,\n\t\t\tentity,\n\t\t\tcolumnType,\n\t\t\tfillValue: this.data.fillValue,\n\t\t\tcopyValue: this.data.copyValue,\n\t\t})\n\n\t\tbuilder.addColumn(entity.tableName, {\n\t\t\t[column.columnName]: {\n\t\t\t\ttype: columnType,\n\t\t\t\tnotNull: !column.nullable && seedExpression === null,\n\t\t\t\tsequenceGenerated: column.sequence,\n\t\t\t\tcollation: column.collation,\n\t\t\t},\n\t\t})\n\n\t\tif (seedExpression !== null) {\n\t\t\tif (this.data.valueMigrationStrategy === 'using') {\n\t\t\t\tbuilder.alterColumn(entity.tableName, column.columnName, {\n\t\t\t\t\tnotNull: !column.nullable ? true : undefined,\n\t\t\t\t\ttype: columnType,\n\t\t\t\t\tusing: seedExpression,\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tfillSeed({\n\t\t\t\t\tbuilder,\n\t\t\t\t\ttype: 'creating',\n\t\t\t\t\tentity,\n\t\t\t\t\tcolumnName: column.columnName,\n\t\t\t\t\tnullable: column.nullable,\n\t\t\t\t\tseedExpression,\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn updateModel(updateEntity(this.data.entityName, addField(this.data.field)))\n\t}\n\n\tdescribe({ createdEntities }: { createdEntities: string[] }) {\n\t\tconst notNull = !this.data.field.nullable\n\t\tconst hasValue = this.data.fillValue !== undefined || this.data.copyValue !== undefined\n\t\tconst failureWarning = notNull && !hasValue && !createdEntities.includes(this.data.entityName)\n\t\t\t? 'May fail in runtime, because column is not-null. Consider setting fillValue or copyValue'\n\t\t\t: undefined\n\t\treturn { message: `Add field ${this.data.entityName}.${this.data.field.name}`, failureWarning }\n\t}\n}\n\nexport interface CreateColumnModificationData {\n\tentityName: string\n\tfield: Model.AnyColumn\n\tfillValue?: JSONValue\n\tcopyValue?: string\n\tvalueMigrationStrategy?: 'using' | 'update'\n}\n\nexport const createColumnModification = createModificationType({\n\tid: 'createColumn',\n\thandler: CreateColumnModificationHandler,\n})\n\nexport class CreateColumnDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn createFields(originalSchema, updatedSchema, ({ newField, updatedEntity }) => {\n\t\t\tif (!isColumn(newField)) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\treturn createColumnModification.createModification({\n\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\tfield: newField,\n\t\t\t\t...(newField.default !== undefined ? { fillValue: newField.default, valueMigrationStrategy: 'using' } : {}),\n\t\t\t})\n\t\t})\n\t}\n}\n"],"names":[],"mappings":";;;;;;AASO,MAAM,gCAA6F;AAAA,EACzG,YAA6B,MAAqD,QAAgB;AAArE,SAAA,OAAA;AAAqD,SAAA,SAAA;AAAA,EAAiB;AAAA,EAE5F,UAAU,SAAiC;AACjD,UAAM,SAAS,KAAK,OAAO,MAAM,SAAS,KAAK,KAAK,UAAU;AAC9D,QAAI,OAAO,MAAM;AAChB;AAAA,IACD;AACA,UAAM,SAAS,KAAK,KAAK;AAEzB,UAAM,aAAa,iBAAiB,MAAM;AAE1C,UAAM,iBAAiB,qBAAqB;AAAA,MAC3C,OAAO,KAAK,OAAO;AAAA,MACnB;AAAA,MACA;AAAA,MACA,WAAW,KAAK,KAAK;AAAA,MACrB,WAAW,KAAK,KAAK;AAAA,IAAA,CACrB;AAED,YAAQ,UAAU,OAAO,WAAW;AAAA,MACnC,CAAC,OAAO,UAAU,GAAG;AAAA,QACpB,MAAM;AAAA,QACN,SAAS,CAAC,OAAO,YAAY,mBAAmB;AAAA,QAChD,mBAAmB,OAAO;AAAA,QAC1B,WAAW,OAAO;AAAA,MAAA;AAAA,IACnB,CACA;AAED,QAAI,mBAAmB,MAAM;AAC5B,UAAI,KAAK,KAAK,2BAA2B,SAAS;AACjD,gBAAQ,YAAY,OAAO,WAAW,OAAO,YAAY;AAAA,UACxD,SAAS,CAAC,OAAO,WAAW,OAAO;AAAA,UACnC,MAAM;AAAA,UACN,OAAO;AAAA,QAAA,CACP;AAAA,MACF,OAAO;AACN,iBAAS;AAAA,UACR;AAAA,UACA,MAAM;AAAA,UACN;AAAA,UACA,YAAY,OAAO;AAAA,UACnB,UAAU,OAAO;AAAA,UACjB;AAAA,QAAA,CACA;AAAA,MACF;AAAA,IACD;AAAA,EACD;AAAA,EAEO,mBAAkC;AACxC,WAAO,YAAY,aAAa,KAAK,KAAK,YAAY,SAAS,KAAK,KAAK,KAAK,CAAC,CAAC;AAAA,EACjF;AAAA,EAEA,SAAS,EAAE,mBAAkD;AAC5D,UAAM,UAAU,CAAC,KAAK,KAAK,MAAM;AACjC,UAAM,WAAW,KAAK,KAAK,cAAc,UAAa,KAAK,KAAK,cAAc;AAC9E,UAAM,iBAAiB,WAAW,CAAC,YAAY,CAAC,gBAAgB,SAAS,KAAK,KAAK,UAAU,IAC1F,6FACA;AACH,WAAO,EAAE,SAAS,aAAa,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,MAAM,IAAI,IAAI,eAAA;AAAA,EAChF;AACD;AAUO,MAAM,2BAA2B,uBAAuB;AAAA,EAC9D,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,mBAAqC;AAAA,EACjD,WAAW,gBAAwB,eAAuB;AACzD,WAAO,aAAa,gBAAgB,eAAe,CAAC,EAAE,UAAU,oBAAoB;AACnF,UAAI,CAAC,SAAS,QAAQ,GAAG;AACxB,eAAO;AAAA,MACR;AACA,aAAO,yBAAyB,mBAAmB;AAAA,QAClD,YAAY,cAAc;AAAA,QAC1B,OAAO;AAAA,QACP,GAAI,SAAS,YAAY,SAAY,EAAE,WAAW,SAAS,SAAS,wBAAwB,YAAY,CAAA;AAAA,MAAC,CACzG;AAAA,IACF,CAAC;AAAA,EACF;AACD;"}
1
+ {"version":3,"file":"CreateColumnModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/columns/CreateColumnModification.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { JSONValue, Model, Schema } from '@contember/schema'\nimport { addField, SchemaUpdater, updateEntity, updateModel } from '../utils/schemaUpdateUtils.js'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler.js'\nimport { isColumn } from '@contember/schema-utils'\nimport { createFields } from '../utils/diffUtils.js'\nimport { getColumnSqlType } from '../utils/columnUtils.js'\nimport { fillSeed, formatSeedExpression } from './columnUtils.js'\nimport { wrapIdentifier } from '../../utils/dbHelpers.js'\n\nexport class CreateColumnModificationHandler implements ModificationHandler<CreateColumnModificationData> {\n\tconstructor(private readonly data: CreateColumnModificationData, private readonly schema: Schema) {}\n\n\tpublic createSql(builder: MigrationBuilder): void {\n\t\tconst entity = this.schema.model.entities[this.data.entityName]\n\t\tif (entity.view) {\n\t\t\treturn\n\t\t}\n\t\tconst column = this.data.field\n\n\t\tconst columnType = getColumnSqlType(column)\n\n\t\tconst seedExpression = formatSeedExpression({\n\t\t\tmodel: this.schema.model,\n\t\t\tentity,\n\t\t\tcolumnType,\n\t\t\tfillValue: this.data.fillValue,\n\t\t\tcopyValue: this.data.copyValue,\n\t\t})\n\n\t\tbuilder.addColumn(entity.tableName, {\n\t\t\t[column.columnName]: {\n\t\t\t\ttype: columnType,\n\t\t\t\tnotNull: !column.nullable && seedExpression === null,\n\t\t\t\tsequenceGenerated: column.sequence,\n\t\t\t\tcollation: column.collation !== undefined ? wrapIdentifier(column.collation) : undefined,\n\t\t\t},\n\t\t})\n\n\t\tif (seedExpression !== null) {\n\t\t\tif (this.data.valueMigrationStrategy === 'using') {\n\t\t\t\tbuilder.alterColumn(entity.tableName, column.columnName, {\n\t\t\t\t\tnotNull: !column.nullable ? true : undefined,\n\t\t\t\t\ttype: columnType,\n\t\t\t\t\tusing: seedExpression,\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tfillSeed({\n\t\t\t\t\tbuilder,\n\t\t\t\t\ttype: 'creating',\n\t\t\t\t\tentity,\n\t\t\t\t\tcolumnName: column.columnName,\n\t\t\t\t\tnullable: column.nullable,\n\t\t\t\t\tseedExpression,\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn updateModel(updateEntity(this.data.entityName, addField(this.data.field)))\n\t}\n\n\tdescribe({ createdEntities }: { createdEntities: string[] }) {\n\t\tconst notNull = !this.data.field.nullable\n\t\tconst hasValue = this.data.fillValue !== undefined || this.data.copyValue !== undefined\n\t\tconst failureWarning = notNull && !hasValue && !createdEntities.includes(this.data.entityName)\n\t\t\t? 'May fail in runtime, because column is not-null. Consider setting fillValue or copyValue'\n\t\t\t: undefined\n\t\treturn { message: `Add field ${this.data.entityName}.${this.data.field.name}`, failureWarning }\n\t}\n}\n\nexport interface CreateColumnModificationData {\n\tentityName: string\n\tfield: Model.AnyColumn\n\tfillValue?: JSONValue\n\tcopyValue?: string\n\tvalueMigrationStrategy?: 'using' | 'update'\n}\n\nexport const createColumnModification = createModificationType({\n\tid: 'createColumn',\n\thandler: CreateColumnModificationHandler,\n})\n\nexport class CreateColumnDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn createFields(originalSchema, updatedSchema, ({ newField, updatedEntity }) => {\n\t\t\tif (!isColumn(newField)) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\treturn createColumnModification.createModification({\n\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\tfield: newField,\n\t\t\t\t...(newField.default !== undefined ? { fillValue: newField.default, valueMigrationStrategy: 'using' } : {}),\n\t\t\t})\n\t\t})\n\t}\n}\n"],"names":[],"mappings":";;;;;;;AAUO,MAAM,gCAA6F;AAAA,EACzG,YAA6B,MAAqD,QAAgB;AAArE,SAAA,OAAA;AAAqD,SAAA,SAAA;AAAA,EAAiB;AAAA,EAE5F,UAAU,SAAiC;AACjD,UAAM,SAAS,KAAK,OAAO,MAAM,SAAS,KAAK,KAAK,UAAU;AAC9D,QAAI,OAAO,MAAM;AAChB;AAAA,IACD;AACA,UAAM,SAAS,KAAK,KAAK;AAEzB,UAAM,aAAa,iBAAiB,MAAM;AAE1C,UAAM,iBAAiB,qBAAqB;AAAA,MAC3C,OAAO,KAAK,OAAO;AAAA,MACnB;AAAA,MACA;AAAA,MACA,WAAW,KAAK,KAAK;AAAA,MACrB,WAAW,KAAK,KAAK;AAAA,IAAA,CACrB;AAED,YAAQ,UAAU,OAAO,WAAW;AAAA,MACnC,CAAC,OAAO,UAAU,GAAG;AAAA,QACpB,MAAM;AAAA,QACN,SAAS,CAAC,OAAO,YAAY,mBAAmB;AAAA,QAChD,mBAAmB,OAAO;AAAA,QAC1B,WAAW,OAAO,cAAc,SAAY,eAAe,OAAO,SAAS,IAAI;AAAA,MAAA;AAAA,IAChF,CACA;AAED,QAAI,mBAAmB,MAAM;AAC5B,UAAI,KAAK,KAAK,2BAA2B,SAAS;AACjD,gBAAQ,YAAY,OAAO,WAAW,OAAO,YAAY;AAAA,UACxD,SAAS,CAAC,OAAO,WAAW,OAAO;AAAA,UACnC,MAAM;AAAA,UACN,OAAO;AAAA,QAAA,CACP;AAAA,MACF,OAAO;AACN,iBAAS;AAAA,UACR;AAAA,UACA,MAAM;AAAA,UACN;AAAA,UACA,YAAY,OAAO;AAAA,UACnB,UAAU,OAAO;AAAA,UACjB;AAAA,QAAA,CACA;AAAA,MACF;AAAA,IACD;AAAA,EACD;AAAA,EAEO,mBAAkC;AACxC,WAAO,YAAY,aAAa,KAAK,KAAK,YAAY,SAAS,KAAK,KAAK,KAAK,CAAC,CAAC;AAAA,EACjF;AAAA,EAEA,SAAS,EAAE,mBAAkD;AAC5D,UAAM,UAAU,CAAC,KAAK,KAAK,MAAM;AACjC,UAAM,WAAW,KAAK,KAAK,cAAc,UAAa,KAAK,KAAK,cAAc;AAC9E,UAAM,iBAAiB,WAAW,CAAC,YAAY,CAAC,gBAAgB,SAAS,KAAK,KAAK,UAAU,IAC1F,6FACA;AACH,WAAO,EAAE,SAAS,aAAa,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,MAAM,IAAI,IAAI,eAAA;AAAA,EAChF;AACD;AAUO,MAAM,2BAA2B,uBAAuB;AAAA,EAC9D,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,mBAAqC;AAAA,EACjD,WAAW,gBAAwB,eAAuB;AACzD,WAAO,aAAa,gBAAgB,eAAe,CAAC,EAAE,UAAU,oBAAoB;AACnF,UAAI,CAAC,SAAS,QAAQ,GAAG;AACxB,eAAO;AAAA,MACR;AACA,aAAO,yBAAyB,mBAAmB;AAAA,QAClD,YAAY,cAAc;AAAA,QAC1B,OAAO;AAAA,QACP,GAAI,SAAS,YAAY,SAAY,EAAE,WAAW,SAAS,SAAS,wBAAwB,YAAY,CAAA;AAAA,MAAC,CACzG;AAAA,IACF,CAAC;AAAA,EACF;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateColumnDefinitionModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/columns/UpdateColumnDefinitionModification.ts"],"sourcesContent":["import { escapeValue, MigrationBuilder } from '@contember/database-migrations'\nimport { JSONValue, Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport deepEqual from 'fast-deep-equal'\nimport { updateColumns } from '../utils/diffUtils'\nimport { wrapIdentifier } from '../../utils/dbHelpers'\nimport { getColumnSqlType } from '../utils/columnUtils'\nimport { fillSeed, formatSeedExpression } from './columnUtils'\n\nexport class UpdateColumnDefinitionModificationHandler implements ModificationHandler<UpdateColumnDefinitionModificationData> {\n\tconstructor(private readonly data: UpdateColumnDefinitionModificationData, private readonly schema: Schema) {}\n\n\tpublic createSql(builder: MigrationBuilder): void {\n\t\tconst entity = this.schema.model.entities[this.data.entityName]\n\t\tif (entity.view) {\n\t\t\treturn\n\t\t}\n\t\tconst oldColumn = entity.fields[this.data.fieldName] as Model.AnyColumn\n\t\tconst newColumn = this.data.definition\n\n\t\tconst hasNewSequence = !oldColumn.sequence && newColumn.sequence\n\t\tconst oldColumnType = getColumnSqlType(oldColumn)\n\t\tconst columnType = getColumnSqlType(newColumn)\n\t\tconst hasNewType = columnType !== oldColumnType\n\t\tconst hasNullableChanged = oldColumn.nullable !== newColumn.nullable\n\t\tconst hasNewCollation = newColumn.collation !== oldColumn.collation\n\n\t\tconst columnNameWrapped = wrapIdentifier(oldColumn.columnName)\n\t\tconst isChangedToArray = !oldColumn.list && newColumn.list\n\t\tconst usingCast = isChangedToArray\n\t\t\t? `CASE WHEN ${columnNameWrapped} IS NULL THEN ${\n\t\t\t\tnewColumn.nullable ? 'NULL' : `ARRAY[]::${columnType}`\n\t\t\t} ELSE ARRAY[${columnNameWrapped}]::${columnType} END`\n\t\t\t: `${columnNameWrapped}::${columnType}`\n\n\t\tconst seedExpression = formatSeedExpression({\n\t\t\tmodel: this.schema.model,\n\t\t\tentity,\n\t\t\tcolumnType,\n\t\t\tfillValue: this.data.fillValue,\n\t\t\tcopyValue: this.data.copyValue,\n\t\t})\n\t\tconst hasSeed = seedExpression !== null\n\t\tconst migrateWithUsing = hasSeed && this.data.valueMigrationStrategy === 'using'\n\t\tconst migrateWithUpdate = hasSeed && this.data.valueMigrationStrategy !== 'using'\n\n\t\tbuilder.alterColumn(entity.tableName, oldColumn.columnName, {\n\t\t\tcollation: hasNewCollation ? wrapIdentifier(newColumn.collation || 'default') : undefined,\n\t\t\ttype: hasNewCollation || hasNewSequence || hasNewType || migrateWithUsing ? columnType : undefined,\n\t\t\tnotNull: hasNullableChanged && (!migrateWithUpdate || newColumn.nullable) ? !newColumn.nullable : undefined,\n\t\t\tusing: (() => {\n\t\t\t\tif (hasNewSequence) {\n\t\t\t\t\treturn `COALESCE(${usingCast}, nextval(PG_GET_SERIAL_SEQUENCE(${escapeValue(entity.tableName)}, ${escapeValue(oldColumn.columnName)})))`\n\t\t\t\t}\n\t\t\t\tif (migrateWithUsing) {\n\t\t\t\t\treturn `COALESCE(${usingCast}, ${seedExpression})`\n\t\t\t\t}\n\n\t\t\t\tif (hasNewType) {\n\t\t\t\t\treturn usingCast\n\t\t\t\t}\n\t\t\t\treturn undefined\n\t\t\t})(),\n\t\t\tsequenceGenerated: oldColumn.sequence && !newColumn.sequence ? false : (!oldColumn.sequence ? newColumn.sequence : undefined),\n\t\t})\n\n\t\tif (migrateWithUpdate) {\n\t\t\tfillSeed({\n\t\t\t\tbuilder,\n\t\t\t\ttype: 'updating',\n\t\t\t\tentity,\n\t\t\t\tcolumnName: oldColumn.columnName,\n\t\t\t\tnullable: newColumn.nullable,\n\t\t\t\tseedExpression,\n\t\t\t})\n\t\t}\n\n\t\tconst seqAlter = []\n\t\tif (oldColumn.sequence && newColumn.sequence) {\n\t\t\tif (oldColumn.sequence.precedence !== newColumn.sequence.precedence) {\n\t\t\t\tseqAlter.push(`SET GENERATED ${newColumn.sequence.precedence}`)\n\t\t\t}\n\t\t\tif (oldColumn.sequence.start !== newColumn.sequence.start && typeof newColumn.sequence.start === 'number') {\n\t\t\t\tseqAlter.push(`SET START WITH ${newColumn.sequence.start}`)\n\t\t\t}\n\t\t\tif (newColumn.sequence.restart) {\n\t\t\t\tseqAlter.push('RESTART')\n\t\t\t}\n\t\t}\n\t\tif (seqAlter.length > 0) {\n\t\t\tbuilder.sql(`ALTER TABLE ${wrapIdentifier(entity.tableName)} ALTER ${wrapIdentifier(oldColumn.columnName)} ${seqAlter.join(' ')}`)\n\t\t}\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn updateModel(\n\t\t\tupdateEntity(\n\t\t\t\tthis.data.entityName,\n\t\t\t\tupdateField<Model.AnyColumn>(this.data.fieldName, ({ field }) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...this.data.definition,\n\t\t\t\t\t\tname: field.name,\n\t\t\t\t\t\tcolumnName: field.columnName,\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\tconst current = this.schema.model.entities[this.data.entityName].fields[this.data.fieldName] as Model.AnyColumn\n\t\tconst changingToNotNull = current.nullable && !this.data.definition.nullable\n\t\tconst failureWarning = changingToNotNull ? 'Changing to not-null may fail in runtime.' : undefined\n\n\t\treturn {\n\t\t\tmessage: `Update column definition of field ${this.data.entityName}.${this.data.fieldName}`,\n\t\t\tfailureWarning,\n\t\t}\n\t}\n}\n\ntype SequenceDefinitionAlter =\n\t& Model.AnyColumn['sequence']\n\t& {\n\t\trestart?: boolean\n\t}\n\ntype ColumnDefinitionAlter =\n\t& Omit<Model.AnyColumn, 'sequence' | 'columnName' | 'name'>\n\t& {\n\t\tsequence?: SequenceDefinitionAlter\n\t}\n\nexport interface UpdateColumnDefinitionModificationData {\n\tentityName: string\n\tfieldName: string\n\tdefinition: ColumnDefinitionAlter\n\tfillValue?: JSONValue\n\tcopyValue?: string\n\tvalueMigrationStrategy?: 'using' | 'update'\n}\n\nexport const updateColumnDefinitionModification = createModificationType({\n\tid: 'updateColumnDefinition',\n\thandler: UpdateColumnDefinitionModificationHandler,\n})\n\nexport class UpdateColumnDefinitionDiffer implements Differ<UpdateColumnDefinitionModificationData> {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn updateColumns(originalSchema, updatedSchema, ({ originalColumn, updatedColumn, updatedEntity }) => {\n\t\t\tconst {\n\t\t\t\tname: {},\n\t\t\t\tcolumnName: {},\n\t\t\t\t...updatedDefinition\n\t\t\t} = updatedColumn\n\t\t\tconst {\n\t\t\t\tname: {},\n\t\t\t\tcolumnName: {},\n\t\t\t\t...originalDefinition\n\t\t\t} = originalColumn\n\t\t\tif (deepEqual(updatedDefinition, originalDefinition)) {\n\t\t\t\treturn undefined\n\t\t\t}\n\n\t\t\treturn updateColumnDefinitionModification.createModification({\n\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\tfieldName: updatedColumn.name,\n\t\t\t\tdefinition: updatedDefinition,\n\t\t\t})\n\t\t})\n\t}\n}\n"],"names":["getColumnSqlType","wrapIdentifier","formatSeedExpression","escapeValue","fillSeed","updateModel","updateEntity","updateField","createModificationType","updateColumns"],"mappings":"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"}
1
+ {"version":3,"file":"UpdateColumnDefinitionModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/columns/UpdateColumnDefinitionModification.ts"],"sourcesContent":["import { escapeValue, MigrationBuilder } from '@contember/database-migrations'\nimport { JSONValue, Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils.js'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler.js'\nimport deepEqual from 'fast-deep-equal'\nimport { updateColumns } from '../utils/diffUtils.js'\nimport { wrapIdentifier } from '../../utils/dbHelpers.js'\nimport { getColumnSqlType } from '../utils/columnUtils.js'\nimport { fillSeed, formatSeedExpression } from './columnUtils.js'\n\nexport class UpdateColumnDefinitionModificationHandler implements ModificationHandler<UpdateColumnDefinitionModificationData> {\n\tconstructor(private readonly data: UpdateColumnDefinitionModificationData, private readonly schema: Schema) {}\n\n\tpublic createSql(builder: MigrationBuilder): void {\n\t\tconst entity = this.schema.model.entities[this.data.entityName]\n\t\tif (entity.view) {\n\t\t\treturn\n\t\t}\n\t\tconst oldColumn = entity.fields[this.data.fieldName] as Model.AnyColumn\n\t\tconst newColumn = this.data.definition\n\n\t\tconst hasNewSequence = !oldColumn.sequence && newColumn.sequence\n\t\tconst oldColumnType = getColumnSqlType(oldColumn)\n\t\tconst columnType = getColumnSqlType(newColumn)\n\t\tconst hasNewType = columnType !== oldColumnType\n\t\tconst hasNullableChanged = oldColumn.nullable !== newColumn.nullable\n\t\tconst hasNewCollation = newColumn.collation !== oldColumn.collation\n\n\t\tconst columnNameWrapped = wrapIdentifier(oldColumn.columnName)\n\t\tconst isChangedToArray = !oldColumn.list && newColumn.list\n\t\tconst usingCast = isChangedToArray\n\t\t\t? `CASE WHEN ${columnNameWrapped} IS NULL THEN ${\n\t\t\t\tnewColumn.nullable ? 'NULL' : `ARRAY[]::${columnType}`\n\t\t\t} ELSE ARRAY[${columnNameWrapped}]::${columnType} END`\n\t\t\t: `${columnNameWrapped}::${columnType}`\n\n\t\tconst seedExpression = formatSeedExpression({\n\t\t\tmodel: this.schema.model,\n\t\t\tentity,\n\t\t\tcolumnType,\n\t\t\tfillValue: this.data.fillValue,\n\t\t\tcopyValue: this.data.copyValue,\n\t\t})\n\t\tconst hasSeed = seedExpression !== null\n\t\tconst migrateWithUsing = hasSeed && this.data.valueMigrationStrategy === 'using'\n\t\tconst migrateWithUpdate = hasSeed && this.data.valueMigrationStrategy !== 'using'\n\n\t\tbuilder.alterColumn(entity.tableName, oldColumn.columnName, {\n\t\t\tcollation: hasNewCollation ? wrapIdentifier(newColumn.collation || 'default') : undefined,\n\t\t\ttype: hasNewCollation || hasNewSequence || hasNewType || migrateWithUsing ? columnType : undefined,\n\t\t\tnotNull: hasNullableChanged && (!migrateWithUpdate || newColumn.nullable) ? !newColumn.nullable : undefined,\n\t\t\tusing: (() => {\n\t\t\t\tif (hasNewSequence) {\n\t\t\t\t\treturn `COALESCE(${usingCast}, nextval(PG_GET_SERIAL_SEQUENCE(${escapeValue(entity.tableName)}, ${escapeValue(oldColumn.columnName)})))`\n\t\t\t\t}\n\t\t\t\tif (migrateWithUsing) {\n\t\t\t\t\treturn `COALESCE(${usingCast}, ${seedExpression})`\n\t\t\t\t}\n\n\t\t\t\tif (hasNewType) {\n\t\t\t\t\treturn usingCast\n\t\t\t\t}\n\t\t\t\treturn undefined\n\t\t\t})(),\n\t\t\tsequenceGenerated: oldColumn.sequence && !newColumn.sequence ? false : (!oldColumn.sequence ? newColumn.sequence : undefined),\n\t\t})\n\n\t\tif (migrateWithUpdate) {\n\t\t\tfillSeed({\n\t\t\t\tbuilder,\n\t\t\t\ttype: 'updating',\n\t\t\t\tentity,\n\t\t\t\tcolumnName: oldColumn.columnName,\n\t\t\t\tnullable: newColumn.nullable,\n\t\t\t\tseedExpression,\n\t\t\t})\n\t\t}\n\n\t\tconst seqAlter = []\n\t\tif (oldColumn.sequence && newColumn.sequence) {\n\t\t\tif (oldColumn.sequence.precedence !== newColumn.sequence.precedence) {\n\t\t\t\tseqAlter.push(`SET GENERATED ${newColumn.sequence.precedence}`)\n\t\t\t}\n\t\t\tif (oldColumn.sequence.start !== newColumn.sequence.start && typeof newColumn.sequence.start === 'number') {\n\t\t\t\tseqAlter.push(`SET START WITH ${newColumn.sequence.start}`)\n\t\t\t}\n\t\t\tif (newColumn.sequence.restart) {\n\t\t\t\tseqAlter.push('RESTART')\n\t\t\t}\n\t\t}\n\t\tif (seqAlter.length > 0) {\n\t\t\tbuilder.sql(`ALTER TABLE ${wrapIdentifier(entity.tableName)} ALTER ${wrapIdentifier(oldColumn.columnName)} ${seqAlter.join(' ')}`)\n\t\t}\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn updateModel(\n\t\t\tupdateEntity(\n\t\t\t\tthis.data.entityName,\n\t\t\t\tupdateField<Model.AnyColumn>(this.data.fieldName, ({ field }) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...this.data.definition,\n\t\t\t\t\t\tname: field.name,\n\t\t\t\t\t\tcolumnName: field.columnName,\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\tconst current = this.schema.model.entities[this.data.entityName].fields[this.data.fieldName] as Model.AnyColumn\n\t\tconst changingToNotNull = current.nullable && !this.data.definition.nullable\n\t\tconst failureWarning = changingToNotNull ? 'Changing to not-null may fail in runtime.' : undefined\n\n\t\treturn {\n\t\t\tmessage: `Update column definition of field ${this.data.entityName}.${this.data.fieldName}`,\n\t\t\tfailureWarning,\n\t\t}\n\t}\n}\n\ntype SequenceDefinitionAlter =\n\t& Model.AnyColumn['sequence']\n\t& {\n\t\trestart?: boolean\n\t}\n\ntype ColumnDefinitionAlter =\n\t& Omit<Model.AnyColumn, 'sequence' | 'columnName' | 'name'>\n\t& {\n\t\tsequence?: SequenceDefinitionAlter\n\t}\n\nexport interface UpdateColumnDefinitionModificationData {\n\tentityName: string\n\tfieldName: string\n\tdefinition: ColumnDefinitionAlter\n\tfillValue?: JSONValue\n\tcopyValue?: string\n\tvalueMigrationStrategy?: 'using' | 'update'\n}\n\nexport const updateColumnDefinitionModification = createModificationType({\n\tid: 'updateColumnDefinition',\n\thandler: UpdateColumnDefinitionModificationHandler,\n})\n\nexport class UpdateColumnDefinitionDiffer implements Differ<UpdateColumnDefinitionModificationData> {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn updateColumns(originalSchema, updatedSchema, ({ originalColumn, updatedColumn, updatedEntity }) => {\n\t\t\tconst {\n\t\t\t\tname: {},\n\t\t\t\tcolumnName: {},\n\t\t\t\t...updatedDefinition\n\t\t\t} = updatedColumn\n\t\t\tconst {\n\t\t\t\tname: {},\n\t\t\t\tcolumnName: {},\n\t\t\t\t...originalDefinition\n\t\t\t} = originalColumn\n\t\t\tif (deepEqual(updatedDefinition, originalDefinition)) {\n\t\t\t\treturn undefined\n\t\t\t}\n\n\t\t\treturn updateColumnDefinitionModification.createModification({\n\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\tfieldName: updatedColumn.name,\n\t\t\t\tdefinition: updatedDefinition,\n\t\t\t})\n\t\t})\n\t}\n}\n"],"names":["getColumnSqlType","wrapIdentifier","formatSeedExpression","escapeValue","fillSeed","updateModel","updateEntity","updateField","createModificationType","updateColumns"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateColumnDefinitionModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/columns/UpdateColumnDefinitionModification.ts"],"sourcesContent":["import { escapeValue, MigrationBuilder } from '@contember/database-migrations'\nimport { JSONValue, Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport deepEqual from 'fast-deep-equal'\nimport { updateColumns } from '../utils/diffUtils'\nimport { wrapIdentifier } from '../../utils/dbHelpers'\nimport { getColumnSqlType } from '../utils/columnUtils'\nimport { fillSeed, formatSeedExpression } from './columnUtils'\n\nexport class UpdateColumnDefinitionModificationHandler implements ModificationHandler<UpdateColumnDefinitionModificationData> {\n\tconstructor(private readonly data: UpdateColumnDefinitionModificationData, private readonly schema: Schema) {}\n\n\tpublic createSql(builder: MigrationBuilder): void {\n\t\tconst entity = this.schema.model.entities[this.data.entityName]\n\t\tif (entity.view) {\n\t\t\treturn\n\t\t}\n\t\tconst oldColumn = entity.fields[this.data.fieldName] as Model.AnyColumn\n\t\tconst newColumn = this.data.definition\n\n\t\tconst hasNewSequence = !oldColumn.sequence && newColumn.sequence\n\t\tconst oldColumnType = getColumnSqlType(oldColumn)\n\t\tconst columnType = getColumnSqlType(newColumn)\n\t\tconst hasNewType = columnType !== oldColumnType\n\t\tconst hasNullableChanged = oldColumn.nullable !== newColumn.nullable\n\t\tconst hasNewCollation = newColumn.collation !== oldColumn.collation\n\n\t\tconst columnNameWrapped = wrapIdentifier(oldColumn.columnName)\n\t\tconst isChangedToArray = !oldColumn.list && newColumn.list\n\t\tconst usingCast = isChangedToArray\n\t\t\t? `CASE WHEN ${columnNameWrapped} IS NULL THEN ${\n\t\t\t\tnewColumn.nullable ? 'NULL' : `ARRAY[]::${columnType}`\n\t\t\t} ELSE ARRAY[${columnNameWrapped}]::${columnType} END`\n\t\t\t: `${columnNameWrapped}::${columnType}`\n\n\t\tconst seedExpression = formatSeedExpression({\n\t\t\tmodel: this.schema.model,\n\t\t\tentity,\n\t\t\tcolumnType,\n\t\t\tfillValue: this.data.fillValue,\n\t\t\tcopyValue: this.data.copyValue,\n\t\t})\n\t\tconst hasSeed = seedExpression !== null\n\t\tconst migrateWithUsing = hasSeed && this.data.valueMigrationStrategy === 'using'\n\t\tconst migrateWithUpdate = hasSeed && this.data.valueMigrationStrategy !== 'using'\n\n\t\tbuilder.alterColumn(entity.tableName, oldColumn.columnName, {\n\t\t\tcollation: hasNewCollation ? wrapIdentifier(newColumn.collation || 'default') : undefined,\n\t\t\ttype: hasNewCollation || hasNewSequence || hasNewType || migrateWithUsing ? columnType : undefined,\n\t\t\tnotNull: hasNullableChanged && (!migrateWithUpdate || newColumn.nullable) ? !newColumn.nullable : undefined,\n\t\t\tusing: (() => {\n\t\t\t\tif (hasNewSequence) {\n\t\t\t\t\treturn `COALESCE(${usingCast}, nextval(PG_GET_SERIAL_SEQUENCE(${escapeValue(entity.tableName)}, ${escapeValue(oldColumn.columnName)})))`\n\t\t\t\t}\n\t\t\t\tif (migrateWithUsing) {\n\t\t\t\t\treturn `COALESCE(${usingCast}, ${seedExpression})`\n\t\t\t\t}\n\n\t\t\t\tif (hasNewType) {\n\t\t\t\t\treturn usingCast\n\t\t\t\t}\n\t\t\t\treturn undefined\n\t\t\t})(),\n\t\t\tsequenceGenerated: oldColumn.sequence && !newColumn.sequence ? false : (!oldColumn.sequence ? newColumn.sequence : undefined),\n\t\t})\n\n\t\tif (migrateWithUpdate) {\n\t\t\tfillSeed({\n\t\t\t\tbuilder,\n\t\t\t\ttype: 'updating',\n\t\t\t\tentity,\n\t\t\t\tcolumnName: oldColumn.columnName,\n\t\t\t\tnullable: newColumn.nullable,\n\t\t\t\tseedExpression,\n\t\t\t})\n\t\t}\n\n\t\tconst seqAlter = []\n\t\tif (oldColumn.sequence && newColumn.sequence) {\n\t\t\tif (oldColumn.sequence.precedence !== newColumn.sequence.precedence) {\n\t\t\t\tseqAlter.push(`SET GENERATED ${newColumn.sequence.precedence}`)\n\t\t\t}\n\t\t\tif (oldColumn.sequence.start !== newColumn.sequence.start && typeof newColumn.sequence.start === 'number') {\n\t\t\t\tseqAlter.push(`SET START WITH ${newColumn.sequence.start}`)\n\t\t\t}\n\t\t\tif (newColumn.sequence.restart) {\n\t\t\t\tseqAlter.push('RESTART')\n\t\t\t}\n\t\t}\n\t\tif (seqAlter.length > 0) {\n\t\t\tbuilder.sql(`ALTER TABLE ${wrapIdentifier(entity.tableName)} ALTER ${wrapIdentifier(oldColumn.columnName)} ${seqAlter.join(' ')}`)\n\t\t}\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn updateModel(\n\t\t\tupdateEntity(\n\t\t\t\tthis.data.entityName,\n\t\t\t\tupdateField<Model.AnyColumn>(this.data.fieldName, ({ field }) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...this.data.definition,\n\t\t\t\t\t\tname: field.name,\n\t\t\t\t\t\tcolumnName: field.columnName,\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\tconst current = this.schema.model.entities[this.data.entityName].fields[this.data.fieldName] as Model.AnyColumn\n\t\tconst changingToNotNull = current.nullable && !this.data.definition.nullable\n\t\tconst failureWarning = changingToNotNull ? 'Changing to not-null may fail in runtime.' : undefined\n\n\t\treturn {\n\t\t\tmessage: `Update column definition of field ${this.data.entityName}.${this.data.fieldName}`,\n\t\t\tfailureWarning,\n\t\t}\n\t}\n}\n\ntype SequenceDefinitionAlter =\n\t& Model.AnyColumn['sequence']\n\t& {\n\t\trestart?: boolean\n\t}\n\ntype ColumnDefinitionAlter =\n\t& Omit<Model.AnyColumn, 'sequence' | 'columnName' | 'name'>\n\t& {\n\t\tsequence?: SequenceDefinitionAlter\n\t}\n\nexport interface UpdateColumnDefinitionModificationData {\n\tentityName: string\n\tfieldName: string\n\tdefinition: ColumnDefinitionAlter\n\tfillValue?: JSONValue\n\tcopyValue?: string\n\tvalueMigrationStrategy?: 'using' | 'update'\n}\n\nexport const updateColumnDefinitionModification = createModificationType({\n\tid: 'updateColumnDefinition',\n\thandler: UpdateColumnDefinitionModificationHandler,\n})\n\nexport class UpdateColumnDefinitionDiffer implements Differ<UpdateColumnDefinitionModificationData> {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn updateColumns(originalSchema, updatedSchema, ({ originalColumn, updatedColumn, updatedEntity }) => {\n\t\t\tconst {\n\t\t\t\tname: {},\n\t\t\t\tcolumnName: {},\n\t\t\t\t...updatedDefinition\n\t\t\t} = updatedColumn\n\t\t\tconst {\n\t\t\t\tname: {},\n\t\t\t\tcolumnName: {},\n\t\t\t\t...originalDefinition\n\t\t\t} = originalColumn\n\t\t\tif (deepEqual(updatedDefinition, originalDefinition)) {\n\t\t\t\treturn undefined\n\t\t\t}\n\n\t\t\treturn updateColumnDefinitionModification.createModification({\n\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\tfieldName: updatedColumn.name,\n\t\t\t\tdefinition: updatedDefinition,\n\t\t\t})\n\t\t})\n\t}\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UpdateColumnDefinitionModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/columns/UpdateColumnDefinitionModification.ts"],"sourcesContent":["import { escapeValue, MigrationBuilder } from '@contember/database-migrations'\nimport { JSONValue, Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils.js'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler.js'\nimport deepEqual from 'fast-deep-equal'\nimport { updateColumns } from '../utils/diffUtils.js'\nimport { wrapIdentifier } from '../../utils/dbHelpers.js'\nimport { getColumnSqlType } from '../utils/columnUtils.js'\nimport { fillSeed, formatSeedExpression } from './columnUtils.js'\n\nexport class UpdateColumnDefinitionModificationHandler implements ModificationHandler<UpdateColumnDefinitionModificationData> {\n\tconstructor(private readonly data: UpdateColumnDefinitionModificationData, private readonly schema: Schema) {}\n\n\tpublic createSql(builder: MigrationBuilder): void {\n\t\tconst entity = this.schema.model.entities[this.data.entityName]\n\t\tif (entity.view) {\n\t\t\treturn\n\t\t}\n\t\tconst oldColumn = entity.fields[this.data.fieldName] as Model.AnyColumn\n\t\tconst newColumn = this.data.definition\n\n\t\tconst hasNewSequence = !oldColumn.sequence && newColumn.sequence\n\t\tconst oldColumnType = getColumnSqlType(oldColumn)\n\t\tconst columnType = getColumnSqlType(newColumn)\n\t\tconst hasNewType = columnType !== oldColumnType\n\t\tconst hasNullableChanged = oldColumn.nullable !== newColumn.nullable\n\t\tconst hasNewCollation = newColumn.collation !== oldColumn.collation\n\n\t\tconst columnNameWrapped = wrapIdentifier(oldColumn.columnName)\n\t\tconst isChangedToArray = !oldColumn.list && newColumn.list\n\t\tconst usingCast = isChangedToArray\n\t\t\t? `CASE WHEN ${columnNameWrapped} IS NULL THEN ${\n\t\t\t\tnewColumn.nullable ? 'NULL' : `ARRAY[]::${columnType}`\n\t\t\t} ELSE ARRAY[${columnNameWrapped}]::${columnType} END`\n\t\t\t: `${columnNameWrapped}::${columnType}`\n\n\t\tconst seedExpression = formatSeedExpression({\n\t\t\tmodel: this.schema.model,\n\t\t\tentity,\n\t\t\tcolumnType,\n\t\t\tfillValue: this.data.fillValue,\n\t\t\tcopyValue: this.data.copyValue,\n\t\t})\n\t\tconst hasSeed = seedExpression !== null\n\t\tconst migrateWithUsing = hasSeed && this.data.valueMigrationStrategy === 'using'\n\t\tconst migrateWithUpdate = hasSeed && this.data.valueMigrationStrategy !== 'using'\n\n\t\tbuilder.alterColumn(entity.tableName, oldColumn.columnName, {\n\t\t\tcollation: hasNewCollation ? wrapIdentifier(newColumn.collation || 'default') : undefined,\n\t\t\ttype: hasNewCollation || hasNewSequence || hasNewType || migrateWithUsing ? columnType : undefined,\n\t\t\tnotNull: hasNullableChanged && (!migrateWithUpdate || newColumn.nullable) ? !newColumn.nullable : undefined,\n\t\t\tusing: (() => {\n\t\t\t\tif (hasNewSequence) {\n\t\t\t\t\treturn `COALESCE(${usingCast}, nextval(PG_GET_SERIAL_SEQUENCE(${escapeValue(entity.tableName)}, ${escapeValue(oldColumn.columnName)})))`\n\t\t\t\t}\n\t\t\t\tif (migrateWithUsing) {\n\t\t\t\t\treturn `COALESCE(${usingCast}, ${seedExpression})`\n\t\t\t\t}\n\n\t\t\t\tif (hasNewType) {\n\t\t\t\t\treturn usingCast\n\t\t\t\t}\n\t\t\t\treturn undefined\n\t\t\t})(),\n\t\t\tsequenceGenerated: oldColumn.sequence && !newColumn.sequence ? false : (!oldColumn.sequence ? newColumn.sequence : undefined),\n\t\t})\n\n\t\tif (migrateWithUpdate) {\n\t\t\tfillSeed({\n\t\t\t\tbuilder,\n\t\t\t\ttype: 'updating',\n\t\t\t\tentity,\n\t\t\t\tcolumnName: oldColumn.columnName,\n\t\t\t\tnullable: newColumn.nullable,\n\t\t\t\tseedExpression,\n\t\t\t})\n\t\t}\n\n\t\tconst seqAlter = []\n\t\tif (oldColumn.sequence && newColumn.sequence) {\n\t\t\tif (oldColumn.sequence.precedence !== newColumn.sequence.precedence) {\n\t\t\t\tseqAlter.push(`SET GENERATED ${newColumn.sequence.precedence}`)\n\t\t\t}\n\t\t\tif (oldColumn.sequence.start !== newColumn.sequence.start && typeof newColumn.sequence.start === 'number') {\n\t\t\t\tseqAlter.push(`SET START WITH ${newColumn.sequence.start}`)\n\t\t\t}\n\t\t\tif (newColumn.sequence.restart) {\n\t\t\t\tseqAlter.push('RESTART')\n\t\t\t}\n\t\t}\n\t\tif (seqAlter.length > 0) {\n\t\t\tbuilder.sql(`ALTER TABLE ${wrapIdentifier(entity.tableName)} ALTER ${wrapIdentifier(oldColumn.columnName)} ${seqAlter.join(' ')}`)\n\t\t}\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn updateModel(\n\t\t\tupdateEntity(\n\t\t\t\tthis.data.entityName,\n\t\t\t\tupdateField<Model.AnyColumn>(this.data.fieldName, ({ field }) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...this.data.definition,\n\t\t\t\t\t\tname: field.name,\n\t\t\t\t\t\tcolumnName: field.columnName,\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\tconst current = this.schema.model.entities[this.data.entityName].fields[this.data.fieldName] as Model.AnyColumn\n\t\tconst changingToNotNull = current.nullable && !this.data.definition.nullable\n\t\tconst failureWarning = changingToNotNull ? 'Changing to not-null may fail in runtime.' : undefined\n\n\t\treturn {\n\t\t\tmessage: `Update column definition of field ${this.data.entityName}.${this.data.fieldName}`,\n\t\t\tfailureWarning,\n\t\t}\n\t}\n}\n\ntype SequenceDefinitionAlter =\n\t& Model.AnyColumn['sequence']\n\t& {\n\t\trestart?: boolean\n\t}\n\ntype ColumnDefinitionAlter =\n\t& Omit<Model.AnyColumn, 'sequence' | 'columnName' | 'name'>\n\t& {\n\t\tsequence?: SequenceDefinitionAlter\n\t}\n\nexport interface UpdateColumnDefinitionModificationData {\n\tentityName: string\n\tfieldName: string\n\tdefinition: ColumnDefinitionAlter\n\tfillValue?: JSONValue\n\tcopyValue?: string\n\tvalueMigrationStrategy?: 'using' | 'update'\n}\n\nexport const updateColumnDefinitionModification = createModificationType({\n\tid: 'updateColumnDefinition',\n\thandler: UpdateColumnDefinitionModificationHandler,\n})\n\nexport class UpdateColumnDefinitionDiffer implements Differ<UpdateColumnDefinitionModificationData> {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn updateColumns(originalSchema, updatedSchema, ({ originalColumn, updatedColumn, updatedEntity }) => {\n\t\t\tconst {\n\t\t\t\tname: {},\n\t\t\t\tcolumnName: {},\n\t\t\t\t...updatedDefinition\n\t\t\t} = updatedColumn\n\t\t\tconst {\n\t\t\t\tname: {},\n\t\t\t\tcolumnName: {},\n\t\t\t\t...originalDefinition\n\t\t\t} = originalColumn\n\t\t\tif (deepEqual(updatedDefinition, originalDefinition)) {\n\t\t\t\treturn undefined\n\t\t\t}\n\n\t\t\treturn updateColumnDefinitionModification.createModification({\n\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\tfieldName: updatedColumn.name,\n\t\t\t\tdefinition: updatedDefinition,\n\t\t\t})\n\t\t})\n\t}\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateColumnNameModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/columns/UpdateColumnNameModification.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport { updateColumns } from '../utils/diffUtils'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\n\nexport class UpdateColumnNameModificationHandler implements ModificationHandler<UpdateColumnNameModificationData> {\n\tconstructor(private readonly data: UpdateColumnNameModificationData, private readonly schema: Schema) {\n\t}\n\n\tpublic createSql(builder: MigrationBuilder): void {\n\t\tconst entity = this.schema.model.entities[this.data.entityName]\n\t\tif (entity.view) {\n\t\t\treturn\n\t\t}\n\t\tacceptFieldVisitor(this.schema.model, entity, this.data.fieldName, {\n\t\t\tvisitColumn: ({ entity, column }) => {\n\t\t\t\tbuilder.renameColumn(entity.tableName, column.columnName, this.data.columnName)\n\t\t\t},\n\t\t\tvisitManyHasOne: ({ entity, relation }) => {\n\t\t\t\tbuilder.renameColumn(entity.tableName, relation.joiningColumn.columnName, this.data.columnName)\n\t\t\t},\n\t\t\tvisitOneHasOneOwning: ({ entity, relation }) => {\n\t\t\t\tbuilder.renameColumn(entity.tableName, relation.joiningColumn.columnName, this.data.columnName)\n\t\t\t},\n\t\t\tvisitManyHasManyInverse: () => {\n\t\t\t\tthrow new Error('Cannot rename column of many-to-many relation')\n\t\t\t},\n\t\t\tvisitManyHasManyOwning: () => {\n\t\t\t\tthrow new Error('Cannot rename column of many-to-many relation')\n\t\t\t},\n\t\t\tvisitOneHasMany: () => {\n\t\t\t\tthrow new Error('Cannot rename column of one-to-many relation')\n\t\t\t},\n\t\t\tvisitOneHasOneInverse: () => {\n\t\t\t\tthrow new Error('Cannot rename column of one-to-one inverse relation')\n\t\t\t},\n\t\t})\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn updateModel(\n\t\t\tupdateEntity(\n\t\t\t\tthis.data.entityName,\n\t\t\t\tupdateField(this.data.fieldName, ({ field, entity }) =>\n\t\t\t\t\tacceptFieldVisitor<Model.AnyField>(this.schema.model, entity, field, {\n\t\t\t\t\t\tvisitColumn: ({ column }) => {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...column,\n\t\t\t\t\t\t\t\tcolumnName: this.data.columnName,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tvisitManyHasOne: ({ entity, relation }) => {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...relation,\n\t\t\t\t\t\t\t\tjoiningColumn: {\n\t\t\t\t\t\t\t\t\t...relation.joiningColumn,\n\t\t\t\t\t\t\t\t\tcolumnName: this.data.columnName,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tvisitOneHasOneOwning: ({ entity, relation }) => {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...relation,\n\t\t\t\t\t\t\t\tjoiningColumn: {\n\t\t\t\t\t\t\t\t\t...relation.joiningColumn,\n\t\t\t\t\t\t\t\t\tcolumnName: this.data.columnName,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tvisitManyHasManyInverse: () => {\n\t\t\t\t\t\t\tthrow new Error('Cannot rename column of many-to-many relation')\n\t\t\t\t\t\t},\n\t\t\t\t\t\tvisitManyHasManyOwning: () => {\n\t\t\t\t\t\t\tthrow new Error('Cannot rename column of many-to-many relation')\n\t\t\t\t\t\t},\n\t\t\t\t\t\tvisitOneHasMany: () => {\n\t\t\t\t\t\t\tthrow new Error('Cannot rename column of one-to-many relation')\n\t\t\t\t\t\t},\n\t\t\t\t\t\tvisitOneHasOneInverse: () => {\n\t\t\t\t\t\t\tthrow new Error('Cannot rename column of one-to-one inverse relation')\n\t\t\t\t\t\t},\n\t\t\t\t\t})),\n\t\t\t),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Change column name of field ${this.data.entityName}.${this.data.fieldName}` }\n\t}\n}\n\nexport interface UpdateColumnNameModificationData {\n\tentityName: string\n\tfieldName: string\n\tcolumnName: string\n}\n\nexport const updateColumnNameModification = createModificationType({\n\tid: 'updateColumnName',\n\thandler: UpdateColumnNameModificationHandler,\n})\n\nexport class UpdateColumnNameDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn updateColumns(originalSchema, updatedSchema, ({ originalColumn, updatedColumn, updatedEntity }) => {\n\t\t\tif (originalColumn.columnName === updatedColumn.columnName) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\treturn updateColumnNameModification.createModification({\n\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\tfieldName: updatedColumn.name,\n\t\t\t\tcolumnName: updatedColumn.columnName,\n\t\t\t})\n\t\t})\n\t}\n}\n"],"names":["acceptFieldVisitor","entity","updateModel","updateEntity","updateField","createModificationType","updateColumns"],"mappings":"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"}
1
+ {"version":3,"file":"UpdateColumnNameModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/columns/UpdateColumnNameModification.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils.js'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler.js'\nimport { updateColumns } from '../utils/diffUtils.js'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\n\nexport class UpdateColumnNameModificationHandler implements ModificationHandler<UpdateColumnNameModificationData> {\n\tconstructor(private readonly data: UpdateColumnNameModificationData, private readonly schema: Schema) {\n\t}\n\n\tpublic createSql(builder: MigrationBuilder): void {\n\t\tconst entity = this.schema.model.entities[this.data.entityName]\n\t\tif (entity.view) {\n\t\t\treturn\n\t\t}\n\t\tacceptFieldVisitor(this.schema.model, entity, this.data.fieldName, {\n\t\t\tvisitColumn: ({ entity, column }) => {\n\t\t\t\tbuilder.renameColumn(entity.tableName, column.columnName, this.data.columnName)\n\t\t\t},\n\t\t\tvisitManyHasOne: ({ entity, relation }) => {\n\t\t\t\tbuilder.renameColumn(entity.tableName, relation.joiningColumn.columnName, this.data.columnName)\n\t\t\t},\n\t\t\tvisitOneHasOneOwning: ({ entity, relation }) => {\n\t\t\t\tbuilder.renameColumn(entity.tableName, relation.joiningColumn.columnName, this.data.columnName)\n\t\t\t},\n\t\t\tvisitManyHasManyInverse: () => {\n\t\t\t\tthrow new Error('Cannot rename column of many-to-many relation')\n\t\t\t},\n\t\t\tvisitManyHasManyOwning: () => {\n\t\t\t\tthrow new Error('Cannot rename column of many-to-many relation')\n\t\t\t},\n\t\t\tvisitOneHasMany: () => {\n\t\t\t\tthrow new Error('Cannot rename column of one-to-many relation')\n\t\t\t},\n\t\t\tvisitOneHasOneInverse: () => {\n\t\t\t\tthrow new Error('Cannot rename column of one-to-one inverse relation')\n\t\t\t},\n\t\t})\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn updateModel(\n\t\t\tupdateEntity(\n\t\t\t\tthis.data.entityName,\n\t\t\t\tupdateField(this.data.fieldName, ({ field, entity }) =>\n\t\t\t\t\tacceptFieldVisitor<Model.AnyField>(this.schema.model, entity, field, {\n\t\t\t\t\t\tvisitColumn: ({ column }) => {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...column,\n\t\t\t\t\t\t\t\tcolumnName: this.data.columnName,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tvisitManyHasOne: ({ entity, relation }) => {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...relation,\n\t\t\t\t\t\t\t\tjoiningColumn: {\n\t\t\t\t\t\t\t\t\t...relation.joiningColumn,\n\t\t\t\t\t\t\t\t\tcolumnName: this.data.columnName,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tvisitOneHasOneOwning: ({ entity, relation }) => {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...relation,\n\t\t\t\t\t\t\t\tjoiningColumn: {\n\t\t\t\t\t\t\t\t\t...relation.joiningColumn,\n\t\t\t\t\t\t\t\t\tcolumnName: this.data.columnName,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tvisitManyHasManyInverse: () => {\n\t\t\t\t\t\t\tthrow new Error('Cannot rename column of many-to-many relation')\n\t\t\t\t\t\t},\n\t\t\t\t\t\tvisitManyHasManyOwning: () => {\n\t\t\t\t\t\t\tthrow new Error('Cannot rename column of many-to-many relation')\n\t\t\t\t\t\t},\n\t\t\t\t\t\tvisitOneHasMany: () => {\n\t\t\t\t\t\t\tthrow new Error('Cannot rename column of one-to-many relation')\n\t\t\t\t\t\t},\n\t\t\t\t\t\tvisitOneHasOneInverse: () => {\n\t\t\t\t\t\t\tthrow new Error('Cannot rename column of one-to-one inverse relation')\n\t\t\t\t\t\t},\n\t\t\t\t\t})),\n\t\t\t),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Change column name of field ${this.data.entityName}.${this.data.fieldName}` }\n\t}\n}\n\nexport interface UpdateColumnNameModificationData {\n\tentityName: string\n\tfieldName: string\n\tcolumnName: string\n}\n\nexport const updateColumnNameModification = createModificationType({\n\tid: 'updateColumnName',\n\thandler: UpdateColumnNameModificationHandler,\n})\n\nexport class UpdateColumnNameDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn updateColumns(originalSchema, updatedSchema, ({ originalColumn, updatedColumn, updatedEntity }) => {\n\t\t\tif (originalColumn.columnName === updatedColumn.columnName) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\treturn updateColumnNameModification.createModification({\n\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\tfieldName: updatedColumn.name,\n\t\t\t\tcolumnName: updatedColumn.columnName,\n\t\t\t})\n\t\t})\n\t}\n}\n"],"names":["acceptFieldVisitor","entity","updateModel","updateEntity","updateField","createModificationType","updateColumns"],"mappings":"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"}