@contember/schema-migrations 2.1.0-beta.2 → 2.2.0-alpha.2

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 (555) hide show
  1. package/dist/development/index.cjs +3 -0
  2. package/dist/development/index.cjs.map +1 -1
  3. package/dist/development/index.js +3 -0
  4. package/dist/development/index.js.map +1 -1
  5. package/dist/development/src/MigrationDescriber.cjs.map +1 -1
  6. package/dist/development/src/MigrationDescriber.js.map +1 -1
  7. package/dist/development/src/SchemaDiffer.cjs +27 -12
  8. package/dist/development/src/SchemaDiffer.cjs.map +1 -1
  9. package/dist/development/src/SchemaDiffer.js +27 -12
  10. package/dist/development/src/SchemaDiffer.js.map +1 -1
  11. package/dist/development/src/SchemaMigrator.cjs.map +1 -1
  12. package/dist/development/src/SchemaMigrator.js.map +1 -1
  13. package/dist/development/src/modifications/ModificationHandler.cjs.map +1 -1
  14. package/dist/development/src/modifications/ModificationHandler.js.map +1 -1
  15. package/dist/development/src/modifications/ModificationHandlerFactory.cjs +2 -0
  16. package/dist/development/src/modifications/ModificationHandlerFactory.cjs.map +1 -1
  17. package/dist/development/src/modifications/ModificationHandlerFactory.js +2 -0
  18. package/dist/development/src/modifications/ModificationHandlerFactory.js.map +1 -1
  19. package/dist/development/src/modifications/NoopModification.cjs.map +1 -1
  20. package/dist/development/src/modifications/NoopModification.js.map +1 -1
  21. package/dist/development/src/modifications/acl/PatchAclSchemaModification.cjs.map +1 -1
  22. package/dist/development/src/modifications/acl/PatchAclSchemaModification.js.map +1 -1
  23. package/dist/development/src/modifications/acl/UpdateAclSchemaModification.cjs.map +1 -1
  24. package/dist/development/src/modifications/acl/UpdateAclSchemaModification.js.map +1 -1
  25. package/dist/development/src/modifications/actions/CreateTargetModification.cjs.map +1 -1
  26. package/dist/development/src/modifications/actions/CreateTargetModification.js.map +1 -1
  27. package/dist/development/src/modifications/actions/CreateTriggerModification.cjs.map +1 -1
  28. package/dist/development/src/modifications/actions/CreateTriggerModification.js.map +1 -1
  29. package/dist/development/src/modifications/actions/PatchTriggerModification.cjs.map +1 -1
  30. package/dist/development/src/modifications/actions/PatchTriggerModification.js.map +1 -1
  31. package/dist/development/src/modifications/actions/RemoveTargetModification.cjs.map +1 -1
  32. package/dist/development/src/modifications/actions/RemoveTargetModification.js.map +1 -1
  33. package/dist/development/src/modifications/actions/RemoveTriggerModification.cjs.map +1 -1
  34. package/dist/development/src/modifications/actions/RemoveTriggerModification.js.map +1 -1
  35. package/dist/development/src/modifications/actions/UpdateTargetModification.cjs.map +1 -1
  36. package/dist/development/src/modifications/actions/UpdateTargetModification.js.map +1 -1
  37. package/dist/development/src/modifications/actions/UpdateTriggerModification.cjs.map +1 -1
  38. package/dist/development/src/modifications/actions/UpdateTriggerModification.js.map +1 -1
  39. package/dist/development/src/modifications/columns/CreateColumnModification.cjs.map +1 -1
  40. package/dist/development/src/modifications/columns/CreateColumnModification.js.map +1 -1
  41. package/dist/development/src/modifications/columns/UpdateColumnDefinitionModification.cjs.map +1 -1
  42. package/dist/development/src/modifications/columns/UpdateColumnDefinitionModification.js.map +1 -1
  43. package/dist/development/src/modifications/columns/UpdateColumnNameModification.cjs.map +1 -1
  44. package/dist/development/src/modifications/columns/UpdateColumnNameModification.js.map +1 -1
  45. package/dist/development/src/modifications/columns/columnUtils.cjs.map +1 -1
  46. package/dist/development/src/modifications/columns/columnUtils.js.map +1 -1
  47. package/dist/development/src/modifications/constraints/CreateUniqueConstraintModification.cjs.map +1 -1
  48. package/dist/development/src/modifications/constraints/CreateUniqueConstraintModification.js.map +1 -1
  49. package/dist/development/src/modifications/constraints/RemoveUniqueConstraintModification.cjs.map +1 -1
  50. package/dist/development/src/modifications/constraints/RemoveUniqueConstraintModification.js.map +1 -1
  51. package/dist/development/src/modifications/differs/RemoveChangedFieldDiffer.cjs.map +1 -1
  52. package/dist/development/src/modifications/differs/RemoveChangedFieldDiffer.js.map +1 -1
  53. package/dist/development/src/modifications/differs/RemoveViewDiffer.cjs +4 -1
  54. package/dist/development/src/modifications/differs/RemoveViewDiffer.cjs.map +1 -1
  55. package/dist/development/src/modifications/differs/RemoveViewDiffer.js +5 -2
  56. package/dist/development/src/modifications/differs/RemoveViewDiffer.js.map +1 -1
  57. package/dist/development/src/modifications/differs/UpdateViewDiffer.cjs +45 -0
  58. package/dist/development/src/modifications/differs/UpdateViewDiffer.cjs.map +1 -0
  59. package/dist/development/src/modifications/differs/UpdateViewDiffer.js +45 -0
  60. package/dist/development/src/modifications/differs/UpdateViewDiffer.js.map +1 -0
  61. package/dist/development/src/modifications/entities/CreateEntityModification.cjs.map +1 -1
  62. package/dist/development/src/modifications/entities/CreateEntityModification.js.map +1 -1
  63. package/dist/development/src/modifications/entities/CreateViewModification.cjs.map +1 -1
  64. package/dist/development/src/modifications/entities/CreateViewModification.js.map +1 -1
  65. package/dist/development/src/modifications/entities/RemoveEntityModification.cjs.map +1 -1
  66. package/dist/development/src/modifications/entities/RemoveEntityModification.js.map +1 -1
  67. package/dist/development/src/modifications/entities/ToggleEventLogModification.cjs.map +1 -1
  68. package/dist/development/src/modifications/entities/ToggleEventLogModification.js.map +1 -1
  69. package/dist/development/src/modifications/entities/UpdateEntityNameModification.cjs.map +1 -1
  70. package/dist/development/src/modifications/entities/UpdateEntityNameModification.js.map +1 -1
  71. package/dist/development/src/modifications/entities/UpdateEntityOrderByModification.cjs.map +1 -1
  72. package/dist/development/src/modifications/entities/UpdateEntityOrderByModification.js.map +1 -1
  73. package/dist/development/src/modifications/entities/UpdateEntityTableNameModification.cjs.map +1 -1
  74. package/dist/development/src/modifications/entities/UpdateEntityTableNameModification.js.map +1 -1
  75. package/dist/development/src/modifications/entities/UpdateViewModification.cjs.map +1 -1
  76. package/dist/development/src/modifications/entities/UpdateViewModification.js.map +1 -1
  77. package/dist/development/src/modifications/enums/CreateEnumModification.cjs.map +1 -1
  78. package/dist/development/src/modifications/enums/CreateEnumModification.js.map +1 -1
  79. package/dist/development/src/modifications/enums/RemoveEnumModification.cjs.map +1 -1
  80. package/dist/development/src/modifications/enums/RemoveEnumModification.js.map +1 -1
  81. package/dist/development/src/modifications/enums/UpdateEnumModification.cjs.map +1 -1
  82. package/dist/development/src/modifications/enums/UpdateEnumModification.js.map +1 -1
  83. package/dist/development/src/modifications/enums/enumUtils.cjs.map +1 -1
  84. package/dist/development/src/modifications/enums/enumUtils.js.map +1 -1
  85. package/dist/development/src/modifications/fields/RemoveFieldModification.cjs.map +1 -1
  86. package/dist/development/src/modifications/fields/RemoveFieldModification.js.map +1 -1
  87. package/dist/development/src/modifications/fields/UpdateFieldNameModification.cjs +10 -4
  88. package/dist/development/src/modifications/fields/UpdateFieldNameModification.cjs.map +1 -1
  89. package/dist/development/src/modifications/fields/UpdateFieldNameModification.js +10 -4
  90. package/dist/development/src/modifications/fields/UpdateFieldNameModification.js.map +1 -1
  91. package/dist/development/src/modifications/indexes/CreateIndexModification.cjs +23 -7
  92. package/dist/development/src/modifications/indexes/CreateIndexModification.cjs.map +1 -1
  93. package/dist/development/src/modifications/indexes/CreateIndexModification.js +23 -7
  94. package/dist/development/src/modifications/indexes/CreateIndexModification.js.map +1 -1
  95. package/dist/development/src/modifications/indexes/RemoveIndexModification.cjs +52 -17
  96. package/dist/development/src/modifications/indexes/RemoveIndexModification.cjs.map +1 -1
  97. package/dist/development/src/modifications/indexes/RemoveIndexModification.js +52 -17
  98. package/dist/development/src/modifications/indexes/RemoveIndexModification.js.map +1 -1
  99. package/dist/development/src/modifications/relations/ConvertManyHasManyToJoiningEntityModification.cjs +140 -0
  100. package/dist/development/src/modifications/relations/ConvertManyHasManyToJoiningEntityModification.cjs.map +1 -0
  101. package/dist/development/src/modifications/relations/ConvertManyHasManyToJoiningEntityModification.js +140 -0
  102. package/dist/development/src/modifications/relations/ConvertManyHasManyToJoiningEntityModification.js.map +1 -0
  103. package/dist/development/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.cjs.map +1 -1
  104. package/dist/development/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.js.map +1 -1
  105. package/dist/development/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.cjs.map +1 -1
  106. package/dist/development/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.js.map +1 -1
  107. package/dist/development/src/modifications/relations/ConvertOneToManyRelationModification.cjs.map +1 -1
  108. package/dist/development/src/modifications/relations/ConvertOneToManyRelationModification.js.map +1 -1
  109. package/dist/development/src/modifications/relations/CreateRelationInverseSideModification.cjs.map +1 -1
  110. package/dist/development/src/modifications/relations/CreateRelationInverseSideModification.js.map +1 -1
  111. package/dist/development/src/modifications/relations/CreateRelationModification.cjs.map +1 -1
  112. package/dist/development/src/modifications/relations/CreateRelationModification.js.map +1 -1
  113. package/dist/development/src/modifications/relations/DisableOrphanRemovalModification.cjs.map +1 -1
  114. package/dist/development/src/modifications/relations/DisableOrphanRemovalModification.js.map +1 -1
  115. package/dist/development/src/modifications/relations/EnableOrphanRemovalModification.cjs.map +1 -1
  116. package/dist/development/src/modifications/relations/EnableOrphanRemovalModification.js.map +1 -1
  117. package/dist/development/src/modifications/relations/MakeRelationNotNullModification.cjs.map +1 -1
  118. package/dist/development/src/modifications/relations/MakeRelationNotNullModification.js.map +1 -1
  119. package/dist/development/src/modifications/relations/MakeRelationNullableModification.cjs.map +1 -1
  120. package/dist/development/src/modifications/relations/MakeRelationNullableModification.js.map +1 -1
  121. package/dist/development/src/modifications/relations/ToggleJunctionEventLogModification.cjs.map +1 -1
  122. package/dist/development/src/modifications/relations/ToggleJunctionEventLogModification.js.map +1 -1
  123. package/dist/development/src/modifications/relations/UpdateRelationOnDeleteModification.cjs.map +1 -1
  124. package/dist/development/src/modifications/relations/UpdateRelationOnDeleteModification.js.map +1 -1
  125. package/dist/development/src/modifications/relations/UpdateRelationOrderByModification.cjs.map +1 -1
  126. package/dist/development/src/modifications/relations/UpdateRelationOrderByModification.js.map +1 -1
  127. package/dist/development/src/modifications/relations/helpers.cjs.map +1 -1
  128. package/dist/development/src/modifications/relations/helpers.js.map +1 -1
  129. package/dist/development/src/modifications/settings/UpdateSettingsModification.cjs.map +1 -1
  130. package/dist/development/src/modifications/settings/UpdateSettingsModification.js.map +1 -1
  131. package/dist/development/src/modifications/upgrade/RemoveIndexNamesModification.cjs.map +1 -1
  132. package/dist/development/src/modifications/upgrade/RemoveIndexNamesModification.js.map +1 -1
  133. package/dist/development/src/modifications/utils/createJunctionTable.cjs.map +1 -1
  134. package/dist/development/src/modifications/utils/createJunctionTable.js.map +1 -1
  135. package/dist/development/src/modifications/utils/diffUtils.cjs.map +1 -1
  136. package/dist/development/src/modifications/utils/diffUtils.js.map +1 -1
  137. package/dist/development/src/modifications/utils/schemaUpdateUtils.cjs.map +1 -1
  138. package/dist/development/src/modifications/utils/schemaUpdateUtils.js.map +1 -1
  139. package/dist/development/src/modifications/utils/viewDependencies.cjs +15 -1
  140. package/dist/development/src/modifications/utils/viewDependencies.cjs.map +1 -1
  141. package/dist/development/src/modifications/utils/viewDependencies.js +16 -2
  142. package/dist/development/src/modifications/utils/viewDependencies.js.map +1 -1
  143. package/dist/development/src/modifications/validation/PatchValidationSchemaModification.cjs.map +1 -1
  144. package/dist/development/src/modifications/validation/PatchValidationSchemaModification.js.map +1 -1
  145. package/dist/development/src/modifications/validation/UpdateValidationSchemaModification.cjs.map +1 -1
  146. package/dist/development/src/modifications/validation/UpdateValidationSchemaModification.js.map +1 -1
  147. package/dist/production/index.cjs +3 -0
  148. package/dist/production/index.cjs.map +1 -1
  149. package/dist/production/index.js +3 -0
  150. package/dist/production/index.js.map +1 -1
  151. package/dist/production/src/MigrationDescriber.cjs.map +1 -1
  152. package/dist/production/src/MigrationDescriber.js.map +1 -1
  153. package/dist/production/src/SchemaDiffer.cjs +27 -12
  154. package/dist/production/src/SchemaDiffer.cjs.map +1 -1
  155. package/dist/production/src/SchemaDiffer.js +27 -12
  156. package/dist/production/src/SchemaDiffer.js.map +1 -1
  157. package/dist/production/src/SchemaMigrator.cjs.map +1 -1
  158. package/dist/production/src/SchemaMigrator.js.map +1 -1
  159. package/dist/production/src/modifications/ModificationHandler.cjs.map +1 -1
  160. package/dist/production/src/modifications/ModificationHandler.js.map +1 -1
  161. package/dist/production/src/modifications/ModificationHandlerFactory.cjs +2 -0
  162. package/dist/production/src/modifications/ModificationHandlerFactory.cjs.map +1 -1
  163. package/dist/production/src/modifications/ModificationHandlerFactory.js +2 -0
  164. package/dist/production/src/modifications/ModificationHandlerFactory.js.map +1 -1
  165. package/dist/production/src/modifications/NoopModification.cjs.map +1 -1
  166. package/dist/production/src/modifications/NoopModification.js.map +1 -1
  167. package/dist/production/src/modifications/acl/PatchAclSchemaModification.cjs.map +1 -1
  168. package/dist/production/src/modifications/acl/PatchAclSchemaModification.js.map +1 -1
  169. package/dist/production/src/modifications/acl/UpdateAclSchemaModification.cjs.map +1 -1
  170. package/dist/production/src/modifications/acl/UpdateAclSchemaModification.js.map +1 -1
  171. package/dist/production/src/modifications/actions/CreateTargetModification.cjs.map +1 -1
  172. package/dist/production/src/modifications/actions/CreateTargetModification.js.map +1 -1
  173. package/dist/production/src/modifications/actions/CreateTriggerModification.cjs.map +1 -1
  174. package/dist/production/src/modifications/actions/CreateTriggerModification.js.map +1 -1
  175. package/dist/production/src/modifications/actions/PatchTriggerModification.cjs.map +1 -1
  176. package/dist/production/src/modifications/actions/PatchTriggerModification.js.map +1 -1
  177. package/dist/production/src/modifications/actions/RemoveTargetModification.cjs.map +1 -1
  178. package/dist/production/src/modifications/actions/RemoveTargetModification.js.map +1 -1
  179. package/dist/production/src/modifications/actions/RemoveTriggerModification.cjs.map +1 -1
  180. package/dist/production/src/modifications/actions/RemoveTriggerModification.js.map +1 -1
  181. package/dist/production/src/modifications/actions/UpdateTargetModification.cjs.map +1 -1
  182. package/dist/production/src/modifications/actions/UpdateTargetModification.js.map +1 -1
  183. package/dist/production/src/modifications/actions/UpdateTriggerModification.cjs.map +1 -1
  184. package/dist/production/src/modifications/actions/UpdateTriggerModification.js.map +1 -1
  185. package/dist/production/src/modifications/columns/CreateColumnModification.cjs.map +1 -1
  186. package/dist/production/src/modifications/columns/CreateColumnModification.js.map +1 -1
  187. package/dist/production/src/modifications/columns/UpdateColumnDefinitionModification.cjs.map +1 -1
  188. package/dist/production/src/modifications/columns/UpdateColumnDefinitionModification.js.map +1 -1
  189. package/dist/production/src/modifications/columns/UpdateColumnNameModification.cjs.map +1 -1
  190. package/dist/production/src/modifications/columns/UpdateColumnNameModification.js.map +1 -1
  191. package/dist/production/src/modifications/columns/columnUtils.cjs.map +1 -1
  192. package/dist/production/src/modifications/columns/columnUtils.js.map +1 -1
  193. package/dist/production/src/modifications/constraints/CreateUniqueConstraintModification.cjs.map +1 -1
  194. package/dist/production/src/modifications/constraints/CreateUniqueConstraintModification.js.map +1 -1
  195. package/dist/production/src/modifications/constraints/RemoveUniqueConstraintModification.cjs.map +1 -1
  196. package/dist/production/src/modifications/constraints/RemoveUniqueConstraintModification.js.map +1 -1
  197. package/dist/production/src/modifications/differs/RemoveChangedFieldDiffer.cjs.map +1 -1
  198. package/dist/production/src/modifications/differs/RemoveChangedFieldDiffer.js.map +1 -1
  199. package/dist/production/src/modifications/differs/RemoveViewDiffer.cjs +4 -1
  200. package/dist/production/src/modifications/differs/RemoveViewDiffer.cjs.map +1 -1
  201. package/dist/production/src/modifications/differs/RemoveViewDiffer.js +5 -2
  202. package/dist/production/src/modifications/differs/RemoveViewDiffer.js.map +1 -1
  203. package/dist/production/src/modifications/differs/UpdateViewDiffer.cjs +45 -0
  204. package/dist/production/src/modifications/differs/UpdateViewDiffer.cjs.map +1 -0
  205. package/dist/production/src/modifications/differs/UpdateViewDiffer.js +45 -0
  206. package/dist/production/src/modifications/differs/UpdateViewDiffer.js.map +1 -0
  207. package/dist/production/src/modifications/entities/CreateEntityModification.cjs.map +1 -1
  208. package/dist/production/src/modifications/entities/CreateEntityModification.js.map +1 -1
  209. package/dist/production/src/modifications/entities/CreateViewModification.cjs.map +1 -1
  210. package/dist/production/src/modifications/entities/CreateViewModification.js.map +1 -1
  211. package/dist/production/src/modifications/entities/RemoveEntityModification.cjs.map +1 -1
  212. package/dist/production/src/modifications/entities/RemoveEntityModification.js.map +1 -1
  213. package/dist/production/src/modifications/entities/ToggleEventLogModification.cjs.map +1 -1
  214. package/dist/production/src/modifications/entities/ToggleEventLogModification.js.map +1 -1
  215. package/dist/production/src/modifications/entities/UpdateEntityNameModification.cjs.map +1 -1
  216. package/dist/production/src/modifications/entities/UpdateEntityNameModification.js.map +1 -1
  217. package/dist/production/src/modifications/entities/UpdateEntityOrderByModification.cjs.map +1 -1
  218. package/dist/production/src/modifications/entities/UpdateEntityOrderByModification.js.map +1 -1
  219. package/dist/production/src/modifications/entities/UpdateEntityTableNameModification.cjs.map +1 -1
  220. package/dist/production/src/modifications/entities/UpdateEntityTableNameModification.js.map +1 -1
  221. package/dist/production/src/modifications/entities/UpdateViewModification.cjs.map +1 -1
  222. package/dist/production/src/modifications/entities/UpdateViewModification.js.map +1 -1
  223. package/dist/production/src/modifications/enums/CreateEnumModification.cjs.map +1 -1
  224. package/dist/production/src/modifications/enums/CreateEnumModification.js.map +1 -1
  225. package/dist/production/src/modifications/enums/RemoveEnumModification.cjs.map +1 -1
  226. package/dist/production/src/modifications/enums/RemoveEnumModification.js.map +1 -1
  227. package/dist/production/src/modifications/enums/UpdateEnumModification.cjs.map +1 -1
  228. package/dist/production/src/modifications/enums/UpdateEnumModification.js.map +1 -1
  229. package/dist/production/src/modifications/enums/enumUtils.cjs.map +1 -1
  230. package/dist/production/src/modifications/enums/enumUtils.js.map +1 -1
  231. package/dist/production/src/modifications/fields/RemoveFieldModification.cjs.map +1 -1
  232. package/dist/production/src/modifications/fields/RemoveFieldModification.js.map +1 -1
  233. package/dist/production/src/modifications/fields/UpdateFieldNameModification.cjs +10 -4
  234. package/dist/production/src/modifications/fields/UpdateFieldNameModification.cjs.map +1 -1
  235. package/dist/production/src/modifications/fields/UpdateFieldNameModification.js +10 -4
  236. package/dist/production/src/modifications/fields/UpdateFieldNameModification.js.map +1 -1
  237. package/dist/production/src/modifications/indexes/CreateIndexModification.cjs +23 -7
  238. package/dist/production/src/modifications/indexes/CreateIndexModification.cjs.map +1 -1
  239. package/dist/production/src/modifications/indexes/CreateIndexModification.js +23 -7
  240. package/dist/production/src/modifications/indexes/CreateIndexModification.js.map +1 -1
  241. package/dist/production/src/modifications/indexes/RemoveIndexModification.cjs +52 -17
  242. package/dist/production/src/modifications/indexes/RemoveIndexModification.cjs.map +1 -1
  243. package/dist/production/src/modifications/indexes/RemoveIndexModification.js +52 -17
  244. package/dist/production/src/modifications/indexes/RemoveIndexModification.js.map +1 -1
  245. package/dist/production/src/modifications/relations/ConvertManyHasManyToJoiningEntityModification.cjs +140 -0
  246. package/dist/production/src/modifications/relations/ConvertManyHasManyToJoiningEntityModification.cjs.map +1 -0
  247. package/dist/production/src/modifications/relations/ConvertManyHasManyToJoiningEntityModification.js +140 -0
  248. package/dist/production/src/modifications/relations/ConvertManyHasManyToJoiningEntityModification.js.map +1 -0
  249. package/dist/production/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.cjs.map +1 -1
  250. package/dist/production/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.js.map +1 -1
  251. package/dist/production/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.cjs.map +1 -1
  252. package/dist/production/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.js.map +1 -1
  253. package/dist/production/src/modifications/relations/ConvertOneToManyRelationModification.cjs.map +1 -1
  254. package/dist/production/src/modifications/relations/ConvertOneToManyRelationModification.js.map +1 -1
  255. package/dist/production/src/modifications/relations/CreateRelationInverseSideModification.cjs.map +1 -1
  256. package/dist/production/src/modifications/relations/CreateRelationInverseSideModification.js.map +1 -1
  257. package/dist/production/src/modifications/relations/CreateRelationModification.cjs.map +1 -1
  258. package/dist/production/src/modifications/relations/CreateRelationModification.js.map +1 -1
  259. package/dist/production/src/modifications/relations/DisableOrphanRemovalModification.cjs.map +1 -1
  260. package/dist/production/src/modifications/relations/DisableOrphanRemovalModification.js.map +1 -1
  261. package/dist/production/src/modifications/relations/EnableOrphanRemovalModification.cjs.map +1 -1
  262. package/dist/production/src/modifications/relations/EnableOrphanRemovalModification.js.map +1 -1
  263. package/dist/production/src/modifications/relations/MakeRelationNotNullModification.cjs.map +1 -1
  264. package/dist/production/src/modifications/relations/MakeRelationNotNullModification.js.map +1 -1
  265. package/dist/production/src/modifications/relations/MakeRelationNullableModification.cjs.map +1 -1
  266. package/dist/production/src/modifications/relations/MakeRelationNullableModification.js.map +1 -1
  267. package/dist/production/src/modifications/relations/ToggleJunctionEventLogModification.cjs.map +1 -1
  268. package/dist/production/src/modifications/relations/ToggleJunctionEventLogModification.js.map +1 -1
  269. package/dist/production/src/modifications/relations/UpdateRelationOnDeleteModification.cjs.map +1 -1
  270. package/dist/production/src/modifications/relations/UpdateRelationOnDeleteModification.js.map +1 -1
  271. package/dist/production/src/modifications/relations/UpdateRelationOrderByModification.cjs.map +1 -1
  272. package/dist/production/src/modifications/relations/UpdateRelationOrderByModification.js.map +1 -1
  273. package/dist/production/src/modifications/relations/helpers.cjs.map +1 -1
  274. package/dist/production/src/modifications/relations/helpers.js.map +1 -1
  275. package/dist/production/src/modifications/settings/UpdateSettingsModification.cjs.map +1 -1
  276. package/dist/production/src/modifications/settings/UpdateSettingsModification.js.map +1 -1
  277. package/dist/production/src/modifications/upgrade/RemoveIndexNamesModification.cjs.map +1 -1
  278. package/dist/production/src/modifications/upgrade/RemoveIndexNamesModification.js.map +1 -1
  279. package/dist/production/src/modifications/utils/createJunctionTable.cjs.map +1 -1
  280. package/dist/production/src/modifications/utils/createJunctionTable.js.map +1 -1
  281. package/dist/production/src/modifications/utils/diffUtils.cjs.map +1 -1
  282. package/dist/production/src/modifications/utils/diffUtils.js.map +1 -1
  283. package/dist/production/src/modifications/utils/schemaUpdateUtils.cjs.map +1 -1
  284. package/dist/production/src/modifications/utils/schemaUpdateUtils.js.map +1 -1
  285. package/dist/production/src/modifications/utils/viewDependencies.cjs +15 -1
  286. package/dist/production/src/modifications/utils/viewDependencies.cjs.map +1 -1
  287. package/dist/production/src/modifications/utils/viewDependencies.js +16 -2
  288. package/dist/production/src/modifications/utils/viewDependencies.js.map +1 -1
  289. package/dist/production/src/modifications/validation/PatchValidationSchemaModification.cjs.map +1 -1
  290. package/dist/production/src/modifications/validation/PatchValidationSchemaModification.js.map +1 -1
  291. package/dist/production/src/modifications/validation/UpdateValidationSchemaModification.cjs.map +1 -1
  292. package/dist/production/src/modifications/validation/UpdateValidationSchemaModification.js.map +1 -1
  293. package/dist/tests/cases/integration/convertManyHasManyToJoiningEntity.test.d.ts +2 -0
  294. package/dist/tests/cases/integration/convertManyHasManyToJoiningEntity.test.d.ts.map +1 -0
  295. package/dist/tests/cases/integration/skipNonModelDiffers.test.d.ts +2 -0
  296. package/dist/tests/cases/integration/skipNonModelDiffers.test.d.ts.map +1 -0
  297. package/dist/tests/src/tests.d.ts +4 -3
  298. package/dist/tests/src/tests.d.ts.map +1 -1
  299. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  300. package/dist/types/MigrationDescriber.d.ts +2 -2
  301. package/dist/types/MigrationDescriber.d.ts.map +1 -1
  302. package/dist/types/SchemaDiffer.d.ts +12 -5
  303. package/dist/types/SchemaDiffer.d.ts.map +1 -1
  304. package/dist/types/SchemaMigrator.d.ts +2 -2
  305. package/dist/types/SchemaMigrator.d.ts.map +1 -1
  306. package/dist/types/index.d.ts +6 -6
  307. package/dist/types/index.d.ts.map +1 -1
  308. package/dist/types/modifications/ModificationHandler.d.ts +2 -2
  309. package/dist/types/modifications/ModificationHandler.d.ts.map +1 -1
  310. package/dist/types/modifications/ModificationHandlerFactory.d.ts +1 -1
  311. package/dist/types/modifications/ModificationHandlerFactory.d.ts.map +1 -1
  312. package/dist/types/modifications/NoopModification.d.ts +2 -2
  313. package/dist/types/modifications/NoopModification.d.ts.map +1 -1
  314. package/dist/types/modifications/acl/PatchAclSchemaModification.d.ts +3 -3
  315. package/dist/types/modifications/acl/PatchAclSchemaModification.d.ts.map +1 -1
  316. package/dist/types/modifications/acl/UpdateAclSchemaModification.d.ts +4 -4
  317. package/dist/types/modifications/acl/UpdateAclSchemaModification.d.ts.map +1 -1
  318. package/dist/types/modifications/acl/index.d.ts +2 -2
  319. package/dist/types/modifications/acl/index.d.ts.map +1 -1
  320. package/dist/types/modifications/actions/CreateTargetModification.d.ts +4 -4
  321. package/dist/types/modifications/actions/CreateTargetModification.d.ts.map +1 -1
  322. package/dist/types/modifications/actions/CreateTriggerModification.d.ts +4 -4
  323. package/dist/types/modifications/actions/CreateTriggerModification.d.ts.map +1 -1
  324. package/dist/types/modifications/actions/PatchTriggerModification.d.ts +3 -3
  325. package/dist/types/modifications/actions/PatchTriggerModification.d.ts.map +1 -1
  326. package/dist/types/modifications/actions/RemoveTargetModification.d.ts +4 -4
  327. package/dist/types/modifications/actions/RemoveTargetModification.d.ts.map +1 -1
  328. package/dist/types/modifications/actions/RemoveTriggerModification.d.ts +4 -4
  329. package/dist/types/modifications/actions/RemoveTriggerModification.d.ts.map +1 -1
  330. package/dist/types/modifications/actions/UpdateTargetModification.d.ts +4 -4
  331. package/dist/types/modifications/actions/UpdateTargetModification.d.ts.map +1 -1
  332. package/dist/types/modifications/actions/UpdateTriggerModification.d.ts +4 -4
  333. package/dist/types/modifications/actions/UpdateTriggerModification.d.ts.map +1 -1
  334. package/dist/types/modifications/actions/index.d.ts +4 -4
  335. package/dist/types/modifications/actions/index.d.ts.map +1 -1
  336. package/dist/types/modifications/columns/CreateColumnModification.d.ts +4 -4
  337. package/dist/types/modifications/columns/CreateColumnModification.d.ts.map +1 -1
  338. package/dist/types/modifications/columns/UpdateColumnDefinitionModification.d.ts +4 -4
  339. package/dist/types/modifications/columns/UpdateColumnDefinitionModification.d.ts.map +1 -1
  340. package/dist/types/modifications/columns/UpdateColumnNameModification.d.ts +4 -4
  341. package/dist/types/modifications/columns/UpdateColumnNameModification.d.ts.map +1 -1
  342. package/dist/types/modifications/columns/index.d.ts +3 -3
  343. package/dist/types/modifications/columns/index.d.ts.map +1 -1
  344. package/dist/types/modifications/constraints/CreateUniqueConstraintModification.d.ts +4 -4
  345. package/dist/types/modifications/constraints/CreateUniqueConstraintModification.d.ts.map +1 -1
  346. package/dist/types/modifications/constraints/RemoveUniqueConstraintModification.d.ts +4 -4
  347. package/dist/types/modifications/constraints/RemoveUniqueConstraintModification.d.ts.map +1 -1
  348. package/dist/types/modifications/constraints/index.d.ts +3 -3
  349. package/dist/types/modifications/constraints/index.d.ts.map +1 -1
  350. package/dist/types/modifications/differs/RemoveChangedFieldDiffer.d.ts +2 -2
  351. package/dist/types/modifications/differs/RemoveChangedFieldDiffer.d.ts.map +1 -1
  352. package/dist/types/modifications/differs/RemoveViewDiffer.d.ts +14 -3
  353. package/dist/types/modifications/differs/RemoveViewDiffer.d.ts.map +1 -1
  354. package/dist/types/modifications/differs/UpdateViewDiffer.d.ts +19 -0
  355. package/dist/types/modifications/differs/UpdateViewDiffer.d.ts.map +1 -0
  356. package/dist/types/modifications/differs/index.d.ts +3 -2
  357. package/dist/types/modifications/differs/index.d.ts.map +1 -1
  358. package/dist/types/modifications/entities/CreateEntityModification.d.ts +4 -4
  359. package/dist/types/modifications/entities/CreateEntityModification.d.ts.map +1 -1
  360. package/dist/types/modifications/entities/CreateViewModification.d.ts +4 -4
  361. package/dist/types/modifications/entities/CreateViewModification.d.ts.map +1 -1
  362. package/dist/types/modifications/entities/RemoveEntityModification.d.ts +4 -4
  363. package/dist/types/modifications/entities/RemoveEntityModification.d.ts.map +1 -1
  364. package/dist/types/modifications/entities/ToggleEventLogModification.d.ts +4 -4
  365. package/dist/types/modifications/entities/ToggleEventLogModification.d.ts.map +1 -1
  366. package/dist/types/modifications/entities/UpdateEntityNameModification.d.ts +3 -3
  367. package/dist/types/modifications/entities/UpdateEntityNameModification.d.ts.map +1 -1
  368. package/dist/types/modifications/entities/UpdateEntityOrderByModification.d.ts +4 -4
  369. package/dist/types/modifications/entities/UpdateEntityOrderByModification.d.ts.map +1 -1
  370. package/dist/types/modifications/entities/UpdateEntityTableNameModification.d.ts +4 -4
  371. package/dist/types/modifications/entities/UpdateEntityTableNameModification.d.ts.map +1 -1
  372. package/dist/types/modifications/entities/UpdateViewModification.d.ts +3 -3
  373. package/dist/types/modifications/entities/UpdateViewModification.d.ts.map +1 -1
  374. package/dist/types/modifications/entities/index.d.ts +7 -7
  375. package/dist/types/modifications/entities/index.d.ts.map +1 -1
  376. package/dist/types/modifications/enums/CreateEnumModification.d.ts +4 -4
  377. package/dist/types/modifications/enums/CreateEnumModification.d.ts.map +1 -1
  378. package/dist/types/modifications/enums/RemoveEnumModification.d.ts +4 -4
  379. package/dist/types/modifications/enums/RemoveEnumModification.d.ts.map +1 -1
  380. package/dist/types/modifications/enums/UpdateEnumModification.d.ts +4 -4
  381. package/dist/types/modifications/enums/UpdateEnumModification.d.ts.map +1 -1
  382. package/dist/types/modifications/enums/index.d.ts +3 -3
  383. package/dist/types/modifications/enums/index.d.ts.map +1 -1
  384. package/dist/types/modifications/fields/RemoveFieldModification.d.ts +4 -4
  385. package/dist/types/modifications/fields/RemoveFieldModification.d.ts.map +1 -1
  386. package/dist/types/modifications/fields/UpdateFieldNameModification.d.ts +3 -3
  387. package/dist/types/modifications/fields/UpdateFieldNameModification.d.ts.map +1 -1
  388. package/dist/types/modifications/fields/index.d.ts +2 -2
  389. package/dist/types/modifications/fields/index.d.ts.map +1 -1
  390. package/dist/types/modifications/index.d.ts +13 -13
  391. package/dist/types/modifications/index.d.ts.map +1 -1
  392. package/dist/types/modifications/indexes/CreateIndexModification.d.ts +4 -4
  393. package/dist/types/modifications/indexes/CreateIndexModification.d.ts.map +1 -1
  394. package/dist/types/modifications/indexes/RemoveIndexModification.d.ts +18 -6
  395. package/dist/types/modifications/indexes/RemoveIndexModification.d.ts.map +1 -1
  396. package/dist/types/modifications/indexes/index.d.ts +2 -2
  397. package/dist/types/modifications/indexes/index.d.ts.map +1 -1
  398. package/dist/types/modifications/relations/ConvertManyHasManyToJoiningEntityModification.d.ts +52 -0
  399. package/dist/types/modifications/relations/ConvertManyHasManyToJoiningEntityModification.d.ts.map +1 -0
  400. package/dist/types/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.d.ts +5 -5
  401. package/dist/types/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.d.ts.map +1 -1
  402. package/dist/types/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.d.ts +4 -4
  403. package/dist/types/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.d.ts.map +1 -1
  404. package/dist/types/modifications/relations/ConvertOneToManyRelationModification.d.ts +4 -4
  405. package/dist/types/modifications/relations/ConvertOneToManyRelationModification.d.ts.map +1 -1
  406. package/dist/types/modifications/relations/CreateRelationInverseSideModification.d.ts +4 -4
  407. package/dist/types/modifications/relations/CreateRelationInverseSideModification.d.ts.map +1 -1
  408. package/dist/types/modifications/relations/CreateRelationModification.d.ts +5 -5
  409. package/dist/types/modifications/relations/CreateRelationModification.d.ts.map +1 -1
  410. package/dist/types/modifications/relations/DisableOrphanRemovalModification.d.ts +4 -4
  411. package/dist/types/modifications/relations/DisableOrphanRemovalModification.d.ts.map +1 -1
  412. package/dist/types/modifications/relations/EnableOrphanRemovalModification.d.ts +4 -4
  413. package/dist/types/modifications/relations/EnableOrphanRemovalModification.d.ts.map +1 -1
  414. package/dist/types/modifications/relations/MakeRelationNotNullModification.d.ts +4 -4
  415. package/dist/types/modifications/relations/MakeRelationNotNullModification.d.ts.map +1 -1
  416. package/dist/types/modifications/relations/MakeRelationNullableModification.d.ts +4 -4
  417. package/dist/types/modifications/relations/MakeRelationNullableModification.d.ts.map +1 -1
  418. package/dist/types/modifications/relations/ToggleJunctionEventLogModification.d.ts +4 -4
  419. package/dist/types/modifications/relations/ToggleJunctionEventLogModification.d.ts.map +1 -1
  420. package/dist/types/modifications/relations/UpdateRelationOnDeleteModification.d.ts +4 -4
  421. package/dist/types/modifications/relations/UpdateRelationOnDeleteModification.d.ts.map +1 -1
  422. package/dist/types/modifications/relations/UpdateRelationOrderByModification.d.ts +4 -4
  423. package/dist/types/modifications/relations/UpdateRelationOrderByModification.d.ts.map +1 -1
  424. package/dist/types/modifications/relations/index.d.ts +12 -11
  425. package/dist/types/modifications/relations/index.d.ts.map +1 -1
  426. package/dist/types/modifications/settings/UpdateSettingsModification.d.ts +4 -4
  427. package/dist/types/modifications/settings/UpdateSettingsModification.d.ts.map +1 -1
  428. package/dist/types/modifications/settings/index.d.ts +1 -1
  429. package/dist/types/modifications/settings/index.d.ts.map +1 -1
  430. package/dist/types/modifications/upgrade/RemoveIndexNamesModification.d.ts +3 -3
  431. package/dist/types/modifications/upgrade/RemoveIndexNamesModification.d.ts.map +1 -1
  432. package/dist/types/modifications/utils/diffUtils.d.ts +1 -1
  433. package/dist/types/modifications/utils/diffUtils.d.ts.map +1 -1
  434. package/dist/types/modifications/utils/viewDependencies.d.ts +11 -1
  435. package/dist/types/modifications/utils/viewDependencies.d.ts.map +1 -1
  436. package/dist/types/modifications/validation/PatchValidationSchemaModification.d.ts +3 -3
  437. package/dist/types/modifications/validation/PatchValidationSchemaModification.d.ts.map +1 -1
  438. package/dist/types/modifications/validation/UpdateValidationSchemaModification.d.ts +4 -4
  439. package/dist/types/modifications/validation/UpdateValidationSchemaModification.d.ts.map +1 -1
  440. package/dist/types/modifications/validation/index.d.ts +2 -2
  441. package/dist/types/modifications/validation/index.d.ts.map +1 -1
  442. package/dist/types/tsconfig.tsbuildinfo +1 -1
  443. package/package.json +7 -7
  444. package/src/MigrationDescriber.ts +2 -2
  445. package/src/SchemaDiffer.ts +52 -25
  446. package/src/SchemaMigrator.ts +2 -2
  447. package/src/index.ts +6 -6
  448. package/src/modifications/ModificationHandler.ts +2 -2
  449. package/src/modifications/ModificationHandlerFactory.ts +21 -19
  450. package/src/modifications/NoopModification.ts +2 -2
  451. package/src/modifications/acl/PatchAclSchemaModification.ts +3 -3
  452. package/src/modifications/acl/UpdateAclSchemaModification.ts +3 -3
  453. package/src/modifications/acl/index.ts +2 -2
  454. package/src/modifications/actions/CreateTargetModification.ts +2 -2
  455. package/src/modifications/actions/CreateTriggerModification.ts +2 -2
  456. package/src/modifications/actions/PatchTriggerModification.ts +3 -3
  457. package/src/modifications/actions/RemoveTargetModification.ts +2 -2
  458. package/src/modifications/actions/RemoveTriggerModification.ts +2 -2
  459. package/src/modifications/actions/UpdateTargetModification.ts +2 -2
  460. package/src/modifications/actions/UpdateTriggerModification.ts +3 -3
  461. package/src/modifications/actions/index.ts +4 -4
  462. package/src/modifications/columns/CreateColumnModification.ts +5 -5
  463. package/src/modifications/columns/UpdateColumnDefinitionModification.ts +6 -6
  464. package/src/modifications/columns/UpdateColumnNameModification.ts +3 -3
  465. package/src/modifications/columns/columnUtils.ts +1 -1
  466. package/src/modifications/columns/index.ts +3 -3
  467. package/src/modifications/constraints/CreateUniqueConstraintModification.ts +4 -4
  468. package/src/modifications/constraints/RemoveUniqueConstraintModification.ts +4 -4
  469. package/src/modifications/constraints/index.ts +3 -3
  470. package/src/modifications/differs/RemoveChangedFieldDiffer.ts +3 -3
  471. package/src/modifications/differs/RemoveViewDiffer.ts +17 -5
  472. package/src/modifications/differs/UpdateViewDiffer.ts +58 -0
  473. package/src/modifications/differs/index.ts +3 -2
  474. package/src/modifications/entities/CreateEntityModification.ts +5 -5
  475. package/src/modifications/entities/CreateViewModification.ts +3 -3
  476. package/src/modifications/entities/RemoveEntityModification.ts +4 -4
  477. package/src/modifications/entities/ToggleEventLogModification.ts +3 -3
  478. package/src/modifications/entities/UpdateEntityNameModification.ts +12 -7
  479. package/src/modifications/entities/UpdateEntityOrderByModification.ts +2 -2
  480. package/src/modifications/entities/UpdateEntityTableNameModification.ts +2 -2
  481. package/src/modifications/entities/UpdateViewModification.ts +2 -2
  482. package/src/modifications/entities/index.ts +7 -7
  483. package/src/modifications/enums/CreateEnumModification.ts +3 -3
  484. package/src/modifications/enums/RemoveEnumModification.ts +2 -2
  485. package/src/modifications/enums/UpdateEnumModification.ts +4 -4
  486. package/src/modifications/enums/enumUtils.ts +1 -1
  487. package/src/modifications/enums/index.ts +3 -3
  488. package/src/modifications/fields/RemoveFieldModification.ts +3 -3
  489. package/src/modifications/fields/UpdateFieldNameModification.ts +26 -10
  490. package/src/modifications/fields/index.ts +2 -2
  491. package/src/modifications/index.ts +13 -13
  492. package/src/modifications/indexes/CreateIndexModification.ts +47 -11
  493. package/src/modifications/indexes/RemoveIndexModification.ts +92 -23
  494. package/src/modifications/indexes/index.ts +2 -2
  495. package/src/modifications/relations/ConvertManyHasManyToJoiningEntityModification.ts +218 -0
  496. package/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.ts +7 -7
  497. package/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.ts +6 -6
  498. package/src/modifications/relations/ConvertOneToManyRelationModification.ts +6 -6
  499. package/src/modifications/relations/CreateRelationInverseSideModification.ts +3 -3
  500. package/src/modifications/relations/CreateRelationModification.ts +9 -9
  501. package/src/modifications/relations/DisableOrphanRemovalModification.ts +3 -3
  502. package/src/modifications/relations/EnableOrphanRemovalModification.ts +3 -3
  503. package/src/modifications/relations/MakeRelationNotNullModification.ts +4 -4
  504. package/src/modifications/relations/MakeRelationNullableModification.ts +4 -4
  505. package/src/modifications/relations/ToggleJunctionEventLogModification.ts +5 -5
  506. package/src/modifications/relations/UpdateRelationOnDeleteModification.ts +5 -5
  507. package/src/modifications/relations/UpdateRelationOrderByModification.ts +3 -3
  508. package/src/modifications/relations/helpers.ts +1 -1
  509. package/src/modifications/relations/index.ts +12 -11
  510. package/src/modifications/settings/UpdateSettingsModification.ts +2 -2
  511. package/src/modifications/settings/index.ts +1 -1
  512. package/src/modifications/upgrade/RemoveIndexNamesModification.ts +2 -2
  513. package/src/modifications/utils/createJunctionTable.ts +3 -3
  514. package/src/modifications/utils/diffUtils.ts +2 -2
  515. package/src/modifications/utils/schemaUpdateUtils.ts +3 -3
  516. package/src/modifications/utils/viewDependencies.ts +26 -2
  517. package/src/modifications/validation/PatchValidationSchemaModification.ts +3 -3
  518. package/src/modifications/validation/UpdateValidationSchemaModification.ts +3 -3
  519. package/src/modifications/validation/index.ts +2 -2
  520. package/tests/cases/integration/convertManyHasManyToJoiningEntity.test.ts +339 -0
  521. package/tests/cases/integration/convertManyHasOneToOneHasOneRelation.test.ts +2 -2
  522. package/tests/cases/integration/convertOneHasManyToManyHasManyRelation.test.ts +2 -2
  523. package/tests/cases/integration/convertOneToManyRelation.test.ts +2 -2
  524. package/tests/cases/integration/createAndDropIndex.test.ts +482 -3
  525. package/tests/cases/integration/createColumn.test.ts +29 -2
  526. package/tests/cases/integration/createEntity.test.ts +2 -2
  527. package/tests/cases/integration/createEnum.test.ts +2 -2
  528. package/tests/cases/integration/createManyHasMany.test.ts +2 -2
  529. package/tests/cases/integration/createManyHasOne.test.ts +2 -2
  530. package/tests/cases/integration/createOneHasMany.test.ts +2 -2
  531. package/tests/cases/integration/createOneHasOne.test.ts +2 -2
  532. package/tests/cases/integration/createRelationInverseSide.test.ts +2 -2
  533. package/tests/cases/integration/createUnique.test.ts +3 -3
  534. package/tests/cases/integration/disableOrphanRemoval.test.ts +2 -2
  535. package/tests/cases/integration/enableOrphanRemoval.test.ts +2 -2
  536. package/tests/cases/integration/makeColumnNotNull.test.ts +2 -2
  537. package/tests/cases/integration/makeRelationNotNull.test.ts +2 -2
  538. package/tests/cases/integration/makeRelationNullable.test.ts +2 -2
  539. package/tests/cases/integration/patchAclSchema.test.ts +2 -2
  540. package/tests/cases/integration/patchTrigger.test.ts +1 -1
  541. package/tests/cases/integration/removeEntity.test.ts +2 -2
  542. package/tests/cases/integration/removeEnum.test.ts +2 -2
  543. package/tests/cases/integration/removeField.test.ts +3 -3
  544. package/tests/cases/integration/skipNonModelDiffers.test.ts +97 -0
  545. package/tests/cases/integration/toggleEventLog.test.ts +2 -2
  546. package/tests/cases/integration/toggleJunctionEventLog.test.ts +2 -2
  547. package/tests/cases/integration/updateColumnDefinition.test.ts +3 -3
  548. package/tests/cases/integration/updateEntityName.test.ts +2 -2
  549. package/tests/cases/integration/updateEntityOrderBy.test.ts +2 -2
  550. package/tests/cases/integration/updateEnum.test.ts +2 -2
  551. package/tests/cases/integration/updateFieldName.test.ts +38 -3
  552. package/tests/cases/integration/updateRelationOnDelete.test.ts +2 -2
  553. package/tests/cases/integration/updateRelationOrderBy.test.ts +2 -2
  554. package/tests/cases/integration/updateView.test.ts +221 -233
  555. package/tests/src/tests.ts +6 -4
@@ -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;"}
@@ -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'\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 +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'\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 +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":";;;;;;;;;;AAUO,MAAM,0CAAiH;AAAA,EAC7H,YAA6B,MAA+D,QAAgB;AAA/E,SAAA,OAAA;AAA+D,SAAA,SAAA;AAAA,EAAiB;AAAA,EAEtG,UAAU,SAAiC;AACjD,UAAM,SAAS,KAAK,OAAO,MAAM,SAAS,KAAK,KAAK,UAAU;AAC9D,QAAI,OAAO,MAAM;AAChB;AAAA,IACD;AACA,UAAM,YAAY,OAAO,OAAO,KAAK,KAAK,SAAS;AACnD,UAAM,YAAY,KAAK,KAAK;AAE5B,UAAM,iBAAiB,CAAC,UAAU,YAAY,UAAU;AACxD,UAAM,gBAAgBA,YAAAA,iBAAiB,SAAS;AAChD,UAAM,aAAaA,YAAAA,iBAAiB,SAAS;AAC7C,UAAM,aAAa,eAAe;AAClC,UAAM,qBAAqB,UAAU,aAAa,UAAU;AAC5D,UAAM,kBAAkB,UAAU,cAAc,UAAU;AAE1D,UAAM,oBAAoBC,UAAAA,eAAe,UAAU,UAAU;AAC7D,UAAM,mBAAmB,CAAC,UAAU,QAAQ,UAAU;AACtD,UAAM,YAAY,mBACf,aAAa,iBAAiB,iBAC/B,UAAU,WAAW,SAAS,YAAY,UAAU,EACrD,eAAe,iBAAiB,MAAM,UAAU,SAC9C,GAAG,iBAAiB,KAAK,UAAU;AAEtC,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;AACD,UAAM,UAAU,mBAAmB;AACnC,UAAM,mBAAmB,WAAW,KAAK,KAAK,2BAA2B;AACzE,UAAM,oBAAoB,WAAW,KAAK,KAAK,2BAA2B;AAE1E,YAAQ,YAAY,OAAO,WAAW,UAAU,YAAY;AAAA,MAC3D,WAAW,kBAAkBD,UAAAA,eAAe,UAAU,aAAa,SAAS,IAAI;AAAA,MAChF,MAAM,mBAAmB,kBAAkB,cAAc,mBAAmB,aAAa;AAAA,MACzF,SAAS,uBAAuB,CAAC,qBAAqB,UAAU,YAAY,CAAC,UAAU,WAAW;AAAA,MAClG,QAAQ,MAAM;AACb,YAAI,gBAAgB;AACnB,iBAAO,YAAY,SAAS,oCAAoCE,mBAAAA,YAAY,OAAO,SAAS,CAAC,KAAKA,mBAAAA,YAAY,UAAU,UAAU,CAAC;AAAA,QACpI;AACA,YAAI,kBAAkB;AACrB,iBAAO,YAAY,SAAS,KAAK,cAAc;AAAA,QAChD;AAEA,YAAI,YAAY;AACf,iBAAO;AAAA,QACR;AACA,eAAO;AAAA,MACR,GAAA;AAAA,MACA,mBAAmB,UAAU,YAAY,CAAC,UAAU,WAAW,QAAS,CAAC,UAAU,WAAW,UAAU,WAAW;AAAA,IAAA,CACnH;AAED,QAAI,mBAAmB;AACtBC,6BAAS;AAAA,QACR;AAAA,QACA,MAAM;AAAA,QACN;AAAA,QACA,YAAY,UAAU;AAAA,QACtB,UAAU,UAAU;AAAA,QACpB;AAAA,MAAA,CACA;AAAA,IACF;AAEA,UAAM,WAAW,CAAA;AACjB,QAAI,UAAU,YAAY,UAAU,UAAU;AAC7C,UAAI,UAAU,SAAS,eAAe,UAAU,SAAS,YAAY;AACpE,iBAAS,KAAK,iBAAiB,UAAU,SAAS,UAAU,EAAE;AAAA,MAC/D;AACA,UAAI,UAAU,SAAS,UAAU,UAAU,SAAS,SAAS,OAAO,UAAU,SAAS,UAAU,UAAU;AAC1G,iBAAS,KAAK,kBAAkB,UAAU,SAAS,KAAK,EAAE;AAAA,MAC3D;AACA,UAAI,UAAU,SAAS,SAAS;AAC/B,iBAAS,KAAK,SAAS;AAAA,MACxB;AAAA,IACD;AACA,QAAI,SAAS,SAAS,GAAG;AACxB,cAAQ,IAAI,eAAeH,UAAAA,eAAe,OAAO,SAAS,CAAC,UAAUA,UAAAA,eAAe,UAAU,UAAU,CAAC,IAAI,SAAS,KAAK,GAAG,CAAC,EAAE;AAAA,IAClI;AAAA,EACD;AAAA,EAEO,mBAAkC;AACxC,WAAOI,kBAAAA;AAAAA,MACNC,kBAAAA;AAAAA,QACC,KAAK,KAAK;AAAA,QACVC,kBAAAA,YAA6B,KAAK,KAAK,WAAW,CAAC,EAAE,YAAY;AAChE,iBAAO;AAAA,YACN,GAAG,KAAK,KAAK;AAAA,YACb,MAAM,MAAM;AAAA,YACZ,YAAY,MAAM;AAAA,UAAA;AAAA,QAEpB,CAAC;AAAA,MAAA;AAAA,IACF;AAAA,EAEF;AAAA,EAEA,WAAW;AACV,UAAM,UAAU,KAAK,OAAO,MAAM,SAAS,KAAK,KAAK,UAAU,EAAE,OAAO,KAAK,KAAK,SAAS;AAC3F,UAAM,oBAAoB,QAAQ,YAAY,CAAC,KAAK,KAAK,WAAW;AACpE,UAAM,iBAAiB,oBAAoB,8CAA8C;AAEzF,WAAO;AAAA,MACN,SAAS,qCAAqC,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS;AAAA,MACzF;AAAA,IAAA;AAAA,EAEF;AACD;AAuBO,MAAM,qCAAqCC,oBAAAA,uBAAuB;AAAA,EACxE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,6BAAuF;AAAA,EACnG,WAAW,gBAAwB,eAAuB;AACzD,WAAOC,UAAAA,cAAc,gBAAgB,eAAe,CAAC,EAAE,gBAAgB,eAAe,oBAAoB;AACzG,YAAM;AAAA,QACL,MAAM,CAAA;AAAA,QACN,YAAY,CAAA;AAAA,QACZ,GAAG;AAAA,MAAA,IACA;AACJ,YAAM;AAAA,QACL,MAAM,CAAA;AAAA,QACN,YAAY,CAAA;AAAA,QACZ,GAAG;AAAA,MAAA,IACA;AACJ,UAAI,UAAU,mBAAmB,kBAAkB,GAAG;AACrD,eAAO;AAAA,MACR;AAEA,aAAO,mCAAmC,mBAAmB;AAAA,QAC5D,YAAY,cAAc;AAAA,QAC1B,WAAW,cAAc;AAAA,QACzB,YAAY;AAAA,MAAA,CACZ;AAAA,IACF,CAAC;AAAA,EACF;AACD;;;;"}
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateColumnNameModification.js","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":["entity"],"mappings":"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"}
1
+ {"version":3,"file":"UpdateColumnNameModification.js","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":["entity"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"columnUtils.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/columns/columnUtils.ts"],"sourcesContent":["import { wrapIdentifier } from '../../utils/dbHelpers'\nimport { JSONValue, Model } from '@contember/schema'\nimport { escapeValue, MigrationBuilder } from '@contember/database-migrations'\nimport { getColumnName } from '@contember/schema-utils'\n\nexport const fillSeed = ({ builder, entity, columnName, nullable, type, seedExpression }: {\n\tentity: Model.Entity\n\tcolumnName: string\n\tnullable: boolean\n\tbuilder: MigrationBuilder\n\ttype: 'creating' | 'updating'\n\tseedExpression: string\n}) => {\n\tconst where = type === 'updating' ? ` WHERE ${wrapIdentifier(columnName)} IS NULL` : ''\n\tbuilder.sql(`UPDATE ${wrapIdentifier(entity.tableName)}\n\t\t\t\t SET ${wrapIdentifier(columnName)} = ${seedExpression}${where}`)\n\n\t// event log uses deferred constraint triggers, we need to fire them before ALTER\n\tbuilder.sql(`SET CONSTRAINTS ALL IMMEDIATE`)\n\tbuilder.sql(`SET CONSTRAINTS ALL DEFERRED`)\n\n\tif (!nullable) {\n\t\tbuilder.alterColumn(entity.tableName, columnName, {\n\t\t\tnotNull: true,\n\t\t})\n\t}\n}\n\nexport const formatSeedExpression = ({ model, entity, columnType, fillValue, copyValue }: {\n\tmodel: Model.Schema\n\tentity: Model.Entity\n\tcolumnType: string\n\tfillValue?: JSONValue\n\tcopyValue?: string\n}): string | null => {\n\tif (fillValue !== undefined) {\n\t\treturn escapeValue(fillValue).toString()\n\t} else if (copyValue !== undefined) {\n\t\tconst copyFrom = getColumnName(model, entity, copyValue)\n\t\treturn `${wrapIdentifier(copyFrom)}::${columnType}`\n\t}\n\treturn null\n}\n"],"names":["wrapIdentifier","escapeValue","getColumnName"],"mappings":";;;;;AAKO,MAAM,WAAW,CAAC,EAAE,SAAS,QAAQ,YAAY,UAAU,MAAM,qBAOlE;AACL,QAAM,QAAQ,SAAS,aAAa,UAAUA,UAAAA,eAAe,UAAU,CAAC,aAAa;AACrF,UAAQ,IAAI,UAAUA,UAAAA,eAAe,OAAO,SAAS,CAAC;AAAA,WAC5CA,UAAAA,eAAe,UAAU,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE;AAGlE,UAAQ,IAAI,+BAA+B;AAC3C,UAAQ,IAAI,8BAA8B;AAE1C,MAAI,CAAC,UAAU;AACd,YAAQ,YAAY,OAAO,WAAW,YAAY;AAAA,MACjD,SAAS;AAAA,IAAA,CACT;AAAA,EACF;AACD;AAEO,MAAM,uBAAuB,CAAC,EAAE,OAAO,QAAQ,YAAY,WAAW,gBAMxD;AACpB,MAAI,cAAc,QAAW;AAC5B,WAAOC,mBAAAA,YAAY,SAAS,EAAE,SAAA;AAAA,EAC/B,WAAW,cAAc,QAAW;AACnC,UAAM,WAAWC,YAAAA,cAAc,OAAO,QAAQ,SAAS;AACvD,WAAO,GAAGF,UAAAA,eAAe,QAAQ,CAAC,KAAK,UAAU;AAAA,EAClD;AACA,SAAO;AACR;;;"}
1
+ {"version":3,"file":"columnUtils.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/columns/columnUtils.ts"],"sourcesContent":["import { wrapIdentifier } from '../../utils/dbHelpers.js'\nimport { JSONValue, Model } from '@contember/schema'\nimport { escapeValue, MigrationBuilder } from '@contember/database-migrations'\nimport { getColumnName } from '@contember/schema-utils'\n\nexport const fillSeed = ({ builder, entity, columnName, nullable, type, seedExpression }: {\n\tentity: Model.Entity\n\tcolumnName: string\n\tnullable: boolean\n\tbuilder: MigrationBuilder\n\ttype: 'creating' | 'updating'\n\tseedExpression: string\n}) => {\n\tconst where = type === 'updating' ? ` WHERE ${wrapIdentifier(columnName)} IS NULL` : ''\n\tbuilder.sql(`UPDATE ${wrapIdentifier(entity.tableName)}\n\t\t\t\t SET ${wrapIdentifier(columnName)} = ${seedExpression}${where}`)\n\n\t// event log uses deferred constraint triggers, we need to fire them before ALTER\n\tbuilder.sql(`SET CONSTRAINTS ALL IMMEDIATE`)\n\tbuilder.sql(`SET CONSTRAINTS ALL DEFERRED`)\n\n\tif (!nullable) {\n\t\tbuilder.alterColumn(entity.tableName, columnName, {\n\t\t\tnotNull: true,\n\t\t})\n\t}\n}\n\nexport const formatSeedExpression = ({ model, entity, columnType, fillValue, copyValue }: {\n\tmodel: Model.Schema\n\tentity: Model.Entity\n\tcolumnType: string\n\tfillValue?: JSONValue\n\tcopyValue?: string\n}): string | null => {\n\tif (fillValue !== undefined) {\n\t\treturn escapeValue(fillValue).toString()\n\t} else if (copyValue !== undefined) {\n\t\tconst copyFrom = getColumnName(model, entity, copyValue)\n\t\treturn `${wrapIdentifier(copyFrom)}::${columnType}`\n\t}\n\treturn null\n}\n"],"names":["wrapIdentifier","escapeValue","getColumnName"],"mappings":";;;;;AAKO,MAAM,WAAW,CAAC,EAAE,SAAS,QAAQ,YAAY,UAAU,MAAM,qBAOlE;AACL,QAAM,QAAQ,SAAS,aAAa,UAAUA,UAAAA,eAAe,UAAU,CAAC,aAAa;AACrF,UAAQ,IAAI,UAAUA,UAAAA,eAAe,OAAO,SAAS,CAAC;AAAA,WAC5CA,UAAAA,eAAe,UAAU,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE;AAGlE,UAAQ,IAAI,+BAA+B;AAC3C,UAAQ,IAAI,8BAA8B;AAE1C,MAAI,CAAC,UAAU;AACd,YAAQ,YAAY,OAAO,WAAW,YAAY;AAAA,MACjD,SAAS;AAAA,IAAA,CACT;AAAA,EACF;AACD;AAEO,MAAM,uBAAuB,CAAC,EAAE,OAAO,QAAQ,YAAY,WAAW,gBAMxD;AACpB,MAAI,cAAc,QAAW;AAC5B,WAAOC,mBAAAA,YAAY,SAAS,EAAE,SAAA;AAAA,EAC/B,WAAW,cAAc,QAAW;AACnC,UAAM,WAAWC,YAAAA,cAAc,OAAO,QAAQ,SAAS;AACvD,WAAO,GAAGF,UAAAA,eAAe,QAAQ,CAAC,KAAK,UAAU;AAAA,EAClD;AACA,SAAO;AACR;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"columnUtils.js","sources":["../../../../../../packages/schema-migrations/src/modifications/columns/columnUtils.ts"],"sourcesContent":["import { wrapIdentifier } from '../../utils/dbHelpers'\nimport { JSONValue, Model } from '@contember/schema'\nimport { escapeValue, MigrationBuilder } from '@contember/database-migrations'\nimport { getColumnName } from '@contember/schema-utils'\n\nexport const fillSeed = ({ builder, entity, columnName, nullable, type, seedExpression }: {\n\tentity: Model.Entity\n\tcolumnName: string\n\tnullable: boolean\n\tbuilder: MigrationBuilder\n\ttype: 'creating' | 'updating'\n\tseedExpression: string\n}) => {\n\tconst where = type === 'updating' ? ` WHERE ${wrapIdentifier(columnName)} IS NULL` : ''\n\tbuilder.sql(`UPDATE ${wrapIdentifier(entity.tableName)}\n\t\t\t\t SET ${wrapIdentifier(columnName)} = ${seedExpression}${where}`)\n\n\t// event log uses deferred constraint triggers, we need to fire them before ALTER\n\tbuilder.sql(`SET CONSTRAINTS ALL IMMEDIATE`)\n\tbuilder.sql(`SET CONSTRAINTS ALL DEFERRED`)\n\n\tif (!nullable) {\n\t\tbuilder.alterColumn(entity.tableName, columnName, {\n\t\t\tnotNull: true,\n\t\t})\n\t}\n}\n\nexport const formatSeedExpression = ({ model, entity, columnType, fillValue, copyValue }: {\n\tmodel: Model.Schema\n\tentity: Model.Entity\n\tcolumnType: string\n\tfillValue?: JSONValue\n\tcopyValue?: string\n}): string | null => {\n\tif (fillValue !== undefined) {\n\t\treturn escapeValue(fillValue).toString()\n\t} else if (copyValue !== undefined) {\n\t\tconst copyFrom = getColumnName(model, entity, copyValue)\n\t\treturn `${wrapIdentifier(copyFrom)}::${columnType}`\n\t}\n\treturn null\n}\n"],"names":[],"mappings":";;;AAKO,MAAM,WAAW,CAAC,EAAE,SAAS,QAAQ,YAAY,UAAU,MAAM,qBAOlE;AACL,QAAM,QAAQ,SAAS,aAAa,UAAU,eAAe,UAAU,CAAC,aAAa;AACrF,UAAQ,IAAI,UAAU,eAAe,OAAO,SAAS,CAAC;AAAA,WAC5C,eAAe,UAAU,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE;AAGlE,UAAQ,IAAI,+BAA+B;AAC3C,UAAQ,IAAI,8BAA8B;AAE1C,MAAI,CAAC,UAAU;AACd,YAAQ,YAAY,OAAO,WAAW,YAAY;AAAA,MACjD,SAAS;AAAA,IAAA,CACT;AAAA,EACF;AACD;AAEO,MAAM,uBAAuB,CAAC,EAAE,OAAO,QAAQ,YAAY,WAAW,gBAMxD;AACpB,MAAI,cAAc,QAAW;AAC5B,WAAO,YAAY,SAAS,EAAE,SAAA;AAAA,EAC/B,WAAW,cAAc,QAAW;AACnC,UAAM,WAAW,cAAc,OAAO,QAAQ,SAAS;AACvD,WAAO,GAAG,eAAe,QAAQ,CAAC,KAAK,UAAU;AAAA,EAClD;AACA,SAAO;AACR;"}
1
+ {"version":3,"file":"columnUtils.js","sources":["../../../../../../packages/schema-migrations/src/modifications/columns/columnUtils.ts"],"sourcesContent":["import { wrapIdentifier } from '../../utils/dbHelpers.js'\nimport { JSONValue, Model } from '@contember/schema'\nimport { escapeValue, MigrationBuilder } from '@contember/database-migrations'\nimport { getColumnName } from '@contember/schema-utils'\n\nexport const fillSeed = ({ builder, entity, columnName, nullable, type, seedExpression }: {\n\tentity: Model.Entity\n\tcolumnName: string\n\tnullable: boolean\n\tbuilder: MigrationBuilder\n\ttype: 'creating' | 'updating'\n\tseedExpression: string\n}) => {\n\tconst where = type === 'updating' ? ` WHERE ${wrapIdentifier(columnName)} IS NULL` : ''\n\tbuilder.sql(`UPDATE ${wrapIdentifier(entity.tableName)}\n\t\t\t\t SET ${wrapIdentifier(columnName)} = ${seedExpression}${where}`)\n\n\t// event log uses deferred constraint triggers, we need to fire them before ALTER\n\tbuilder.sql(`SET CONSTRAINTS ALL IMMEDIATE`)\n\tbuilder.sql(`SET CONSTRAINTS ALL DEFERRED`)\n\n\tif (!nullable) {\n\t\tbuilder.alterColumn(entity.tableName, columnName, {\n\t\t\tnotNull: true,\n\t\t})\n\t}\n}\n\nexport const formatSeedExpression = ({ model, entity, columnType, fillValue, copyValue }: {\n\tmodel: Model.Schema\n\tentity: Model.Entity\n\tcolumnType: string\n\tfillValue?: JSONValue\n\tcopyValue?: string\n}): string | null => {\n\tif (fillValue !== undefined) {\n\t\treturn escapeValue(fillValue).toString()\n\t} else if (copyValue !== undefined) {\n\t\tconst copyFrom = getColumnName(model, entity, copyValue)\n\t\treturn `${wrapIdentifier(copyFrom)}::${columnType}`\n\t}\n\treturn null\n}\n"],"names":[],"mappings":";;;AAKO,MAAM,WAAW,CAAC,EAAE,SAAS,QAAQ,YAAY,UAAU,MAAM,qBAOlE;AACL,QAAM,QAAQ,SAAS,aAAa,UAAU,eAAe,UAAU,CAAC,aAAa;AACrF,UAAQ,IAAI,UAAU,eAAe,OAAO,SAAS,CAAC;AAAA,WAC5C,eAAe,UAAU,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE;AAGlE,UAAQ,IAAI,+BAA+B;AAC3C,UAAQ,IAAI,8BAA8B;AAE1C,MAAI,CAAC,UAAU;AACd,YAAQ,YAAY,OAAO,WAAW,YAAY;AAAA,MACjD,SAAS;AAAA,IAAA,CACT;AAAA,EACF;AACD;AAEO,MAAM,uBAAuB,CAAC,EAAE,OAAO,QAAQ,YAAY,WAAW,gBAMxD;AACpB,MAAI,cAAc,QAAW;AAC5B,WAAO,YAAY,SAAS,EAAE,SAAA;AAAA,EAC/B,WAAW,cAAc,QAAW;AACnC,UAAM,WAAW,cAAc,OAAO,QAAQ,SAAS;AACvD,WAAO,GAAG,eAAe,QAAQ,CAAC,KAAK,UAAU;AAAA,EAClD;AACA,SAAO;AACR;"}
@@ -1 +1 @@
1
- {"version":3,"file":"CreateUniqueConstraintModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/constraints/CreateUniqueConstraintModification.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler, ModificationHandlerCreateSqlOptions } from '../ModificationHandler'\nimport { wrapIdentifier } from '../../utils/dbHelpers'\nimport { getUniqueConstraintColumns } from './utils'\nimport deepEqual from 'fast-deep-equal'\n\nexport class CreateUniqueConstraintModificationHandler implements ModificationHandler<CreateUniqueConstraintModificationData> {\n\tconstructor(private readonly data: CreateUniqueConstraintModificationData, private readonly schema: Schema) {\n\t}\n\n\tpublic createSql(builder: MigrationBuilder, { invalidateDatabaseMetadata }: ModificationHandlerCreateSqlOptions): void {\n\t\tconst entity = this.schema.model.entities[this.data.entityName]\n\t\tconst shouldExecuteSql = !entity.view\n\t\t\t|| (this.data.unique.index && entity.view.materialized)\n\t\tif (!shouldExecuteSql) {\n\t\t\treturn\n\t\t}\n\t\tconst fields = this.data.unique.fields\n\t\tconst columns = getUniqueConstraintColumns({\n\t\t\tentity,\n\t\t\tmodel: this.schema.model,\n\t\t\tfields,\n\t\t})\n\n\t\tconst tableNameId = wrapIdentifier(entity.tableName)\n\t\tconst columnNameIds = columns.map(wrapIdentifier)\n\n\t\tif ('index' in this.data.unique && this.data.unique.index) {\n\t\t\tconst nulls = this.data.unique.nulls === 'not distinct' ? ' NULLS NOT DISTINCT' : ''\n\t\t\tconst methodClause = this.data.unique.method ? ` USING ${this.data.unique.method}` : ''\n\t\t\tbuilder.sql(`CREATE UNIQUE INDEX ON ${tableNameId}${methodClause} (${columnNameIds.join(', ')})${nulls}`)\n\t\t} else {\n\t\t\tlet checkModifier = ''\n\t\t\tif (this.data.unique.timing === 'deferred') {\n\t\t\t\tcheckModifier = ' INITIALLY DEFERRED'\n\t\t\t} else if (this.data.unique.timing === 'deferrable') {\n\t\t\t\tcheckModifier = ' DEFERRABLE'\n\t\t\t}\n\n\t\t\tbuilder.sql(`ALTER TABLE ${tableNameId} ADD UNIQUE (${columnNameIds.join(', ')})${checkModifier}`)\n\t\t}\n\n\t\tinvalidateDatabaseMetadata()\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn updateModel(\n\t\t\tupdateEntity(this.data.entityName, ({ entity }) => ({\n\t\t\t\t...entity,\n\t\t\t\tunique: [\n\t\t\t\t\t...entity.unique,\n\t\t\t\t\tthis.data.unique,\n\t\t\t\t],\n\t\t\t})),\n\t\t)\n\t}\n\n\tdescribe({ createdEntities }: { createdEntities: string[] }) {\n\t\treturn {\n\t\t\tmessage: `Create unique ${this.data.unique.index ? 'index' : 'constraint'} (${\n\t\t\t\tthis.data.unique.fields.join(', ')\n\t\t\t}) on entity ${this.data.entityName}`,\n\t\t\tfailureWarning: !createdEntities.includes(this.data.entityName)\n\t\t\t\t? 'Make sure no conflicting rows exists, otherwise this may fail in runtime.'\n\t\t\t\t: undefined,\n\t\t}\n\t}\n}\n\nexport const createUniqueConstraintModification = createModificationType({\n\tid: 'createUniqueConstraint',\n\thandler: CreateUniqueConstraintModificationHandler,\n})\n\nexport interface CreateUniqueConstraintModificationData {\n\tentityName: string\n\tunique: Model.UniqueConstraint | Model.UniqueIndex\n}\n\nexport class CreateUniqueConstraintDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn Object.values(updatedSchema.model.entities).flatMap(entity =>\n\t\t\tentity.unique\n\t\t\t\t.filter(it => !originalSchema.model.entities[entity.name].unique.find(uniq => deepEqual(uniq.fields, it.fields)))\n\t\t\t\t.map(unique =>\n\t\t\t\t\tcreateUniqueConstraintModification.createModification({\n\t\t\t\t\t\tentityName: entity.name,\n\t\t\t\t\t\tunique,\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t)\n\t}\n}\n"],"names":["getUniqueConstraintColumns","wrapIdentifier","updateModel","updateEntity","createModificationType"],"mappings":";;;;;;;AAQO,MAAM,0CAAiH;AAAA,EAC7H,YAA6B,MAA+D,QAAgB;AAA/E,SAAA,OAAA;AAA+D,SAAA,SAAA;AAAA,EAC5F;AAAA,EAEO,UAAU,SAA2B,EAAE,8BAAyE;AACtH,UAAM,SAAS,KAAK,OAAO,MAAM,SAAS,KAAK,KAAK,UAAU;AAC9D,UAAM,mBAAmB,CAAC,OAAO,QAC5B,KAAK,KAAK,OAAO,SAAS,OAAO,KAAK;AAC3C,QAAI,CAAC,kBAAkB;AACtB;AAAA,IACD;AACA,UAAM,SAAS,KAAK,KAAK,OAAO;AAChC,UAAM,UAAUA,MAAAA,2BAA2B;AAAA,MAC1C;AAAA,MACA,OAAO,KAAK,OAAO;AAAA,MACnB;AAAA,IAAA,CACA;AAED,UAAM,cAAcC,UAAAA,eAAe,OAAO,SAAS;AACnD,UAAM,gBAAgB,QAAQ,IAAIA,wBAAc;AAEhD,QAAI,WAAW,KAAK,KAAK,UAAU,KAAK,KAAK,OAAO,OAAO;AAC1D,YAAM,QAAQ,KAAK,KAAK,OAAO,UAAU,iBAAiB,wBAAwB;AAClF,YAAM,eAAe,KAAK,KAAK,OAAO,SAAS,UAAU,KAAK,KAAK,OAAO,MAAM,KAAK;AACrF,cAAQ,IAAI,0BAA0B,WAAW,GAAG,YAAY,KAAK,cAAc,KAAK,IAAI,CAAC,IAAI,KAAK,EAAE;AAAA,IACzG,OAAO;AACN,UAAI,gBAAgB;AACpB,UAAI,KAAK,KAAK,OAAO,WAAW,YAAY;AAC3C,wBAAgB;AAAA,MACjB,WAAW,KAAK,KAAK,OAAO,WAAW,cAAc;AACpD,wBAAgB;AAAA,MACjB;AAEA,cAAQ,IAAI,eAAe,WAAW,gBAAgB,cAAc,KAAK,IAAI,CAAC,IAAI,aAAa,EAAE;AAAA,IAClG;AAEA,+BAAA;AAAA,EACD;AAAA,EAEO,mBAAkC;AACxC,WAAOC,kBAAAA;AAAAA,MACNC,kBAAAA,aAAa,KAAK,KAAK,YAAY,CAAC,EAAE,cAAc;AAAA,QACnD,GAAG;AAAA,QACH,QAAQ;AAAA,UACP,GAAG,OAAO;AAAA,UACV,KAAK,KAAK;AAAA,QAAA;AAAA,MACX,EACC;AAAA,IAAA;AAAA,EAEJ;AAAA,EAEA,SAAS,EAAE,mBAAkD;AAC5D,WAAO;AAAA,MACN,SAAS,iBAAiB,KAAK,KAAK,OAAO,QAAQ,UAAU,YAAY,KACxE,KAAK,KAAK,OAAO,OAAO,KAAK,IAAI,CAClC,eAAe,KAAK,KAAK,UAAU;AAAA,MACnC,gBAAgB,CAAC,gBAAgB,SAAS,KAAK,KAAK,UAAU,IAC3D,8EACA;AAAA,IAAA;AAAA,EAEL;AACD;AAEO,MAAM,qCAAqCC,oBAAAA,uBAAuB;AAAA,EACxE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAOM,MAAM,6BAA+C;AAAA,EAC3D,WAAW,gBAAwB,eAAuB;AACzD,WAAO,OAAO,OAAO,cAAc,MAAM,QAAQ,EAAE;AAAA,MAAQ,CAAA,WAC1D,OAAO,OACL,OAAO,QAAM,CAAC,eAAe,MAAM,SAAS,OAAO,IAAI,EAAE,OAAO,KAAK,UAAQ,UAAU,KAAK,QAAQ,GAAG,MAAM,CAAC,CAAC,EAC/G;AAAA,QAAI,CAAA,WACJ,mCAAmC,mBAAmB;AAAA,UACrD,YAAY,OAAO;AAAA,UACnB;AAAA,QAAA,CACA;AAAA,MAAA;AAAA,IACF;AAAA,EAEH;AACD;;;;"}
1
+ {"version":3,"file":"CreateUniqueConstraintModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/constraints/CreateUniqueConstraintModification.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateModel } from '../utils/schemaUpdateUtils.js'\nimport { createModificationType, Differ, ModificationHandler, ModificationHandlerCreateSqlOptions } from '../ModificationHandler.js'\nimport { wrapIdentifier } from '../../utils/dbHelpers.js'\nimport { getUniqueConstraintColumns } from './utils.js'\nimport deepEqual from 'fast-deep-equal'\n\nexport class CreateUniqueConstraintModificationHandler implements ModificationHandler<CreateUniqueConstraintModificationData> {\n\tconstructor(private readonly data: CreateUniqueConstraintModificationData, private readonly schema: Schema) {\n\t}\n\n\tpublic createSql(builder: MigrationBuilder, { invalidateDatabaseMetadata }: ModificationHandlerCreateSqlOptions): void {\n\t\tconst entity = this.schema.model.entities[this.data.entityName]\n\t\tconst shouldExecuteSql = !entity.view\n\t\t\t|| (this.data.unique.index && entity.view.materialized)\n\t\tif (!shouldExecuteSql) {\n\t\t\treturn\n\t\t}\n\t\tconst fields = this.data.unique.fields\n\t\tconst columns = getUniqueConstraintColumns({\n\t\t\tentity,\n\t\t\tmodel: this.schema.model,\n\t\t\tfields,\n\t\t})\n\n\t\tconst tableNameId = wrapIdentifier(entity.tableName)\n\t\tconst columnNameIds = columns.map(wrapIdentifier)\n\n\t\tif ('index' in this.data.unique && this.data.unique.index) {\n\t\t\tconst nulls = this.data.unique.nulls === 'not distinct' ? ' NULLS NOT DISTINCT' : ''\n\t\t\tconst methodClause = this.data.unique.method ? ` USING ${this.data.unique.method}` : ''\n\t\t\tbuilder.sql(`CREATE UNIQUE INDEX ON ${tableNameId}${methodClause} (${columnNameIds.join(', ')})${nulls}`)\n\t\t} else {\n\t\t\tlet checkModifier = ''\n\t\t\tif (this.data.unique.timing === 'deferred') {\n\t\t\t\tcheckModifier = ' INITIALLY DEFERRED'\n\t\t\t} else if (this.data.unique.timing === 'deferrable') {\n\t\t\t\tcheckModifier = ' DEFERRABLE'\n\t\t\t}\n\n\t\t\tbuilder.sql(`ALTER TABLE ${tableNameId} ADD UNIQUE (${columnNameIds.join(', ')})${checkModifier}`)\n\t\t}\n\n\t\tinvalidateDatabaseMetadata()\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn updateModel(\n\t\t\tupdateEntity(this.data.entityName, ({ entity }) => ({\n\t\t\t\t...entity,\n\t\t\t\tunique: [\n\t\t\t\t\t...entity.unique,\n\t\t\t\t\tthis.data.unique,\n\t\t\t\t],\n\t\t\t})),\n\t\t)\n\t}\n\n\tdescribe({ createdEntities }: { createdEntities: string[] }) {\n\t\treturn {\n\t\t\tmessage: `Create unique ${this.data.unique.index ? 'index' : 'constraint'} (${\n\t\t\t\tthis.data.unique.fields.join(', ')\n\t\t\t}) on entity ${this.data.entityName}`,\n\t\t\tfailureWarning: !createdEntities.includes(this.data.entityName)\n\t\t\t\t? 'Make sure no conflicting rows exists, otherwise this may fail in runtime.'\n\t\t\t\t: undefined,\n\t\t}\n\t}\n}\n\nexport const createUniqueConstraintModification = createModificationType({\n\tid: 'createUniqueConstraint',\n\thandler: CreateUniqueConstraintModificationHandler,\n})\n\nexport interface CreateUniqueConstraintModificationData {\n\tentityName: string\n\tunique: Model.UniqueConstraint | Model.UniqueIndex\n}\n\nexport class CreateUniqueConstraintDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn Object.values(updatedSchema.model.entities).flatMap(entity =>\n\t\t\tentity.unique\n\t\t\t\t.filter(it => !originalSchema.model.entities[entity.name].unique.find(uniq => deepEqual(uniq.fields, it.fields)))\n\t\t\t\t.map(unique =>\n\t\t\t\t\tcreateUniqueConstraintModification.createModification({\n\t\t\t\t\t\tentityName: entity.name,\n\t\t\t\t\t\tunique,\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t)\n\t}\n}\n"],"names":["getUniqueConstraintColumns","wrapIdentifier","updateModel","updateEntity","createModificationType"],"mappings":";;;;;;;AAQO,MAAM,0CAAiH;AAAA,EAC7H,YAA6B,MAA+D,QAAgB;AAA/E,SAAA,OAAA;AAA+D,SAAA,SAAA;AAAA,EAC5F;AAAA,EAEO,UAAU,SAA2B,EAAE,8BAAyE;AACtH,UAAM,SAAS,KAAK,OAAO,MAAM,SAAS,KAAK,KAAK,UAAU;AAC9D,UAAM,mBAAmB,CAAC,OAAO,QAC5B,KAAK,KAAK,OAAO,SAAS,OAAO,KAAK;AAC3C,QAAI,CAAC,kBAAkB;AACtB;AAAA,IACD;AACA,UAAM,SAAS,KAAK,KAAK,OAAO;AAChC,UAAM,UAAUA,MAAAA,2BAA2B;AAAA,MAC1C;AAAA,MACA,OAAO,KAAK,OAAO;AAAA,MACnB;AAAA,IAAA,CACA;AAED,UAAM,cAAcC,UAAAA,eAAe,OAAO,SAAS;AACnD,UAAM,gBAAgB,QAAQ,IAAIA,wBAAc;AAEhD,QAAI,WAAW,KAAK,KAAK,UAAU,KAAK,KAAK,OAAO,OAAO;AAC1D,YAAM,QAAQ,KAAK,KAAK,OAAO,UAAU,iBAAiB,wBAAwB;AAClF,YAAM,eAAe,KAAK,KAAK,OAAO,SAAS,UAAU,KAAK,KAAK,OAAO,MAAM,KAAK;AACrF,cAAQ,IAAI,0BAA0B,WAAW,GAAG,YAAY,KAAK,cAAc,KAAK,IAAI,CAAC,IAAI,KAAK,EAAE;AAAA,IACzG,OAAO;AACN,UAAI,gBAAgB;AACpB,UAAI,KAAK,KAAK,OAAO,WAAW,YAAY;AAC3C,wBAAgB;AAAA,MACjB,WAAW,KAAK,KAAK,OAAO,WAAW,cAAc;AACpD,wBAAgB;AAAA,MACjB;AAEA,cAAQ,IAAI,eAAe,WAAW,gBAAgB,cAAc,KAAK,IAAI,CAAC,IAAI,aAAa,EAAE;AAAA,IAClG;AAEA,+BAAA;AAAA,EACD;AAAA,EAEO,mBAAkC;AACxC,WAAOC,kBAAAA;AAAAA,MACNC,kBAAAA,aAAa,KAAK,KAAK,YAAY,CAAC,EAAE,cAAc;AAAA,QACnD,GAAG;AAAA,QACH,QAAQ;AAAA,UACP,GAAG,OAAO;AAAA,UACV,KAAK,KAAK;AAAA,QAAA;AAAA,MACX,EACC;AAAA,IAAA;AAAA,EAEJ;AAAA,EAEA,SAAS,EAAE,mBAAkD;AAC5D,WAAO;AAAA,MACN,SAAS,iBAAiB,KAAK,KAAK,OAAO,QAAQ,UAAU,YAAY,KACxE,KAAK,KAAK,OAAO,OAAO,KAAK,IAAI,CAClC,eAAe,KAAK,KAAK,UAAU;AAAA,MACnC,gBAAgB,CAAC,gBAAgB,SAAS,KAAK,KAAK,UAAU,IAC3D,8EACA;AAAA,IAAA;AAAA,EAEL;AACD;AAEO,MAAM,qCAAqCC,oBAAAA,uBAAuB;AAAA,EACxE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAOM,MAAM,6BAA+C;AAAA,EAC3D,WAAW,gBAAwB,eAAuB;AACzD,WAAO,OAAO,OAAO,cAAc,MAAM,QAAQ,EAAE;AAAA,MAAQ,CAAA,WAC1D,OAAO,OACL,OAAO,QAAM,CAAC,eAAe,MAAM,SAAS,OAAO,IAAI,EAAE,OAAO,KAAK,UAAQ,UAAU,KAAK,QAAQ,GAAG,MAAM,CAAC,CAAC,EAC/G;AAAA,QAAI,CAAA,WACJ,mCAAmC,mBAAmB;AAAA,UACrD,YAAY,OAAO;AAAA,UACnB;AAAA,QAAA,CACA;AAAA,MAAA;AAAA,IACF;AAAA,EAEH;AACD;;;;"}