@contember/schema-migrations 2.0.0-alpha.9 → 2.0.0-beta.1

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 (325) hide show
  1. package/dist/development/src/MigrationDescriber.cjs.map +1 -1
  2. package/dist/development/src/MigrationDescriber.js.map +1 -1
  3. package/dist/development/src/SchemaDiffer.cjs +4 -3
  4. package/dist/development/src/SchemaDiffer.cjs.map +1 -1
  5. package/dist/development/src/SchemaDiffer.js +5 -4
  6. package/dist/development/src/SchemaDiffer.js.map +1 -1
  7. package/dist/development/src/SchemaMigrator.cjs.map +1 -1
  8. package/dist/development/src/SchemaMigrator.js.map +1 -1
  9. package/dist/development/src/modifications/ModificationHandler.cjs.map +1 -1
  10. package/dist/development/src/modifications/ModificationHandler.js.map +1 -1
  11. package/dist/development/src/modifications/ModificationHandlerFactory.cjs.map +1 -1
  12. package/dist/development/src/modifications/ModificationHandlerFactory.js.map +1 -1
  13. package/dist/development/src/modifications/NoopModification.cjs.map +1 -1
  14. package/dist/development/src/modifications/NoopModification.js.map +1 -1
  15. package/dist/development/src/modifications/acl/PatchAclSchemaModification.cjs.map +1 -1
  16. package/dist/development/src/modifications/acl/PatchAclSchemaModification.js.map +1 -1
  17. package/dist/development/src/modifications/acl/UpdateAclSchemaModification.cjs +4 -1
  18. package/dist/development/src/modifications/acl/UpdateAclSchemaModification.cjs.map +1 -1
  19. package/dist/development/src/modifications/acl/UpdateAclSchemaModification.js +4 -1
  20. package/dist/development/src/modifications/acl/UpdateAclSchemaModification.js.map +1 -1
  21. package/dist/development/src/modifications/actions/CreateTargetModification.cjs.map +1 -1
  22. package/dist/development/src/modifications/actions/CreateTargetModification.js.map +1 -1
  23. package/dist/development/src/modifications/actions/CreateTriggerModification.cjs.map +1 -1
  24. package/dist/development/src/modifications/actions/CreateTriggerModification.js.map +1 -1
  25. package/dist/development/src/modifications/actions/RemoveTargetModification.cjs.map +1 -1
  26. package/dist/development/src/modifications/actions/RemoveTargetModification.js.map +1 -1
  27. package/dist/development/src/modifications/actions/RemoveTriggerModification.cjs.map +1 -1
  28. package/dist/development/src/modifications/actions/RemoveTriggerModification.js.map +1 -1
  29. package/dist/development/src/modifications/actions/UpdateTargetModification.cjs.map +1 -1
  30. package/dist/development/src/modifications/actions/UpdateTargetModification.js.map +1 -1
  31. package/dist/development/src/modifications/actions/UpdateTriggerModification.cjs.map +1 -1
  32. package/dist/development/src/modifications/actions/UpdateTriggerModification.js.map +1 -1
  33. package/dist/development/src/modifications/columns/CreateColumnModification.cjs.map +1 -1
  34. package/dist/development/src/modifications/columns/CreateColumnModification.js.map +1 -1
  35. package/dist/development/src/modifications/columns/UpdateColumnDefinitionModification.cjs.map +1 -1
  36. package/dist/development/src/modifications/columns/UpdateColumnDefinitionModification.js.map +1 -1
  37. package/dist/development/src/modifications/columns/UpdateColumnNameModification.cjs.map +1 -1
  38. package/dist/development/src/modifications/columns/UpdateColumnNameModification.js.map +1 -1
  39. package/dist/development/src/modifications/columns/columnUtils.cjs +1 -1
  40. package/dist/development/src/modifications/columns/columnUtils.cjs.map +1 -1
  41. package/dist/development/src/modifications/columns/columnUtils.js +1 -1
  42. package/dist/development/src/modifications/columns/columnUtils.js.map +1 -1
  43. package/dist/development/src/modifications/constraints/CreateUniqueConstraintModification.cjs.map +1 -1
  44. package/dist/development/src/modifications/constraints/CreateUniqueConstraintModification.js.map +1 -1
  45. package/dist/development/src/modifications/constraints/RemoveUniqueConstraintModification.cjs.map +1 -1
  46. package/dist/development/src/modifications/constraints/RemoveUniqueConstraintModification.js.map +1 -1
  47. package/dist/development/src/modifications/constraints/utils.cjs.map +1 -1
  48. package/dist/development/src/modifications/constraints/utils.js.map +1 -1
  49. package/dist/development/src/modifications/differs/RemoveChangedFieldDiffer.cjs.map +1 -1
  50. package/dist/development/src/modifications/differs/RemoveChangedFieldDiffer.js.map +1 -1
  51. package/dist/development/src/modifications/differs/RemoveViewDiffer.cjs.map +1 -1
  52. package/dist/development/src/modifications/differs/RemoveViewDiffer.js.map +1 -1
  53. package/dist/development/src/modifications/entities/CreateEntityModification.cjs.map +1 -1
  54. package/dist/development/src/modifications/entities/CreateEntityModification.js.map +1 -1
  55. package/dist/development/src/modifications/entities/CreateViewModification.cjs.map +1 -1
  56. package/dist/development/src/modifications/entities/CreateViewModification.js.map +1 -1
  57. package/dist/development/src/modifications/entities/RemoveEntityModification.cjs +18 -1
  58. package/dist/development/src/modifications/entities/RemoveEntityModification.cjs.map +1 -1
  59. package/dist/development/src/modifications/entities/RemoveEntityModification.js +19 -2
  60. package/dist/development/src/modifications/entities/RemoveEntityModification.js.map +1 -1
  61. package/dist/development/src/modifications/entities/ToggleEventLogModification.cjs.map +1 -1
  62. package/dist/development/src/modifications/entities/ToggleEventLogModification.js.map +1 -1
  63. package/dist/development/src/modifications/entities/UpdateEntityNameModification.cjs.map +1 -1
  64. package/dist/development/src/modifications/entities/UpdateEntityNameModification.js.map +1 -1
  65. package/dist/development/src/modifications/entities/UpdateEntityOrderByModification.cjs.map +1 -1
  66. package/dist/development/src/modifications/entities/UpdateEntityOrderByModification.js.map +1 -1
  67. package/dist/development/src/modifications/entities/UpdateEntityTableNameModification.cjs.map +1 -1
  68. package/dist/development/src/modifications/entities/UpdateEntityTableNameModification.js.map +1 -1
  69. package/dist/development/src/modifications/entities/UpdateViewModification.cjs.map +1 -1
  70. package/dist/development/src/modifications/entities/UpdateViewModification.js.map +1 -1
  71. package/dist/development/src/modifications/enums/CreateEnumModification.cjs.map +1 -1
  72. package/dist/development/src/modifications/enums/CreateEnumModification.js.map +1 -1
  73. package/dist/development/src/modifications/enums/RemoveEnumModification.cjs.map +1 -1
  74. package/dist/development/src/modifications/enums/RemoveEnumModification.js.map +1 -1
  75. package/dist/development/src/modifications/enums/UpdateEnumModification.cjs.map +1 -1
  76. package/dist/development/src/modifications/enums/UpdateEnumModification.js.map +1 -1
  77. package/dist/development/src/modifications/enums/enumUtils.cjs.map +1 -1
  78. package/dist/development/src/modifications/fields/RemoveFieldModification.cjs.map +1 -1
  79. package/dist/development/src/modifications/fields/RemoveFieldModification.js.map +1 -1
  80. package/dist/development/src/modifications/fields/UpdateFieldNameModification.cjs.map +1 -1
  81. package/dist/development/src/modifications/fields/UpdateFieldNameModification.js.map +1 -1
  82. package/dist/development/src/modifications/indexes/CreateIndexModification.cjs.map +1 -1
  83. package/dist/development/src/modifications/indexes/CreateIndexModification.js.map +1 -1
  84. package/dist/development/src/modifications/indexes/RemoveIndexModification.cjs.map +1 -1
  85. package/dist/development/src/modifications/indexes/RemoveIndexModification.js.map +1 -1
  86. package/dist/development/src/modifications/indexes/utils.cjs.map +1 -1
  87. package/dist/development/src/modifications/indexes/utils.js.map +1 -1
  88. package/dist/development/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.cjs.map +1 -1
  89. package/dist/development/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.js.map +1 -1
  90. package/dist/development/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.cjs.map +1 -1
  91. package/dist/development/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.js.map +1 -1
  92. package/dist/development/src/modifications/relations/ConvertOneToManyRelationModification.cjs.map +1 -1
  93. package/dist/development/src/modifications/relations/ConvertOneToManyRelationModification.js.map +1 -1
  94. package/dist/development/src/modifications/relations/CreateRelationInverseSideModification.cjs.map +1 -1
  95. package/dist/development/src/modifications/relations/CreateRelationInverseSideModification.js.map +1 -1
  96. package/dist/development/src/modifications/relations/CreateRelationModification.cjs.map +1 -1
  97. package/dist/development/src/modifications/relations/CreateRelationModification.js.map +1 -1
  98. package/dist/development/src/modifications/relations/DisableOrphanRemovalModification.cjs.map +1 -1
  99. package/dist/development/src/modifications/relations/DisableOrphanRemovalModification.js.map +1 -1
  100. package/dist/development/src/modifications/relations/EnableOrphanRemovalModification.cjs.map +1 -1
  101. package/dist/development/src/modifications/relations/EnableOrphanRemovalModification.js.map +1 -1
  102. package/dist/development/src/modifications/relations/MakeRelationNotNullModification.cjs.map +1 -1
  103. package/dist/development/src/modifications/relations/MakeRelationNotNullModification.js.map +1 -1
  104. package/dist/development/src/modifications/relations/MakeRelationNullableModification.cjs.map +1 -1
  105. package/dist/development/src/modifications/relations/MakeRelationNullableModification.js.map +1 -1
  106. package/dist/development/src/modifications/relations/ToggleJunctionEventLogModification.cjs.map +1 -1
  107. package/dist/development/src/modifications/relations/ToggleJunctionEventLogModification.js.map +1 -1
  108. package/dist/development/src/modifications/relations/UpdateRelationOnDeleteModification.cjs.map +1 -1
  109. package/dist/development/src/modifications/relations/UpdateRelationOnDeleteModification.js.map +1 -1
  110. package/dist/development/src/modifications/relations/UpdateRelationOrderByModification.cjs.map +1 -1
  111. package/dist/development/src/modifications/relations/UpdateRelationOrderByModification.js.map +1 -1
  112. package/dist/development/src/modifications/relations/helpers.cjs.map +1 -1
  113. package/dist/development/src/modifications/relations/helpers.js.map +1 -1
  114. package/dist/development/src/modifications/relations/normalization.cjs.map +1 -1
  115. package/dist/development/src/modifications/relations/normalization.js.map +1 -1
  116. package/dist/development/src/modifications/settings/UpdateSettingsModification.cjs.map +1 -1
  117. package/dist/development/src/modifications/settings/UpdateSettingsModification.js.map +1 -1
  118. package/dist/development/src/modifications/upgrade/RemoveIndexNamesModification.cjs.map +1 -1
  119. package/dist/development/src/modifications/upgrade/RemoveIndexNamesModification.js.map +1 -1
  120. package/dist/development/src/modifications/utils/createJunctionTable.cjs.map +1 -1
  121. package/dist/development/src/modifications/utils/createJunctionTable.js.map +1 -1
  122. package/dist/development/src/modifications/utils/diffUtils.cjs.map +1 -1
  123. package/dist/development/src/modifications/utils/diffUtils.js.map +1 -1
  124. package/dist/development/src/modifications/utils/schemaUpdateUtils.cjs.map +1 -1
  125. package/dist/development/src/modifications/utils/schemaUpdateUtils.js.map +1 -1
  126. package/dist/development/src/modifications/utils/sqlUpdateUtils.cjs.map +1 -1
  127. package/dist/development/src/modifications/utils/sqlUpdateUtils.js.map +1 -1
  128. package/dist/development/src/modifications/utils/viewDependencies.cjs.map +1 -1
  129. package/dist/development/src/modifications/utils/viewDependencies.js.map +1 -1
  130. package/dist/development/src/modifications/validation/PatchValidationSchemaModification.cjs.map +1 -1
  131. package/dist/development/src/modifications/validation/PatchValidationSchemaModification.js.map +1 -1
  132. package/dist/development/src/modifications/validation/UpdateValidationSchemaModification.cjs +4 -1
  133. package/dist/development/src/modifications/validation/UpdateValidationSchemaModification.cjs.map +1 -1
  134. package/dist/development/src/modifications/validation/UpdateValidationSchemaModification.js +4 -1
  135. package/dist/development/src/modifications/validation/UpdateValidationSchemaModification.js.map +1 -1
  136. package/dist/development/src/utils/deepCopy.cjs.map +1 -1
  137. package/dist/development/src/utils/deepCopy.js.map +1 -1
  138. package/dist/production/src/MigrationDescriber.cjs.map +1 -1
  139. package/dist/production/src/MigrationDescriber.js.map +1 -1
  140. package/dist/production/src/SchemaDiffer.cjs +4 -3
  141. package/dist/production/src/SchemaDiffer.cjs.map +1 -1
  142. package/dist/production/src/SchemaDiffer.js +5 -4
  143. package/dist/production/src/SchemaDiffer.js.map +1 -1
  144. package/dist/production/src/SchemaMigrator.cjs.map +1 -1
  145. package/dist/production/src/SchemaMigrator.js.map +1 -1
  146. package/dist/production/src/modifications/ModificationHandler.cjs.map +1 -1
  147. package/dist/production/src/modifications/ModificationHandler.js.map +1 -1
  148. package/dist/production/src/modifications/ModificationHandlerFactory.cjs.map +1 -1
  149. package/dist/production/src/modifications/ModificationHandlerFactory.js.map +1 -1
  150. package/dist/production/src/modifications/NoopModification.cjs.map +1 -1
  151. package/dist/production/src/modifications/NoopModification.js.map +1 -1
  152. package/dist/production/src/modifications/acl/PatchAclSchemaModification.cjs.map +1 -1
  153. package/dist/production/src/modifications/acl/PatchAclSchemaModification.js.map +1 -1
  154. package/dist/production/src/modifications/acl/UpdateAclSchemaModification.cjs +4 -1
  155. package/dist/production/src/modifications/acl/UpdateAclSchemaModification.cjs.map +1 -1
  156. package/dist/production/src/modifications/acl/UpdateAclSchemaModification.js +4 -1
  157. package/dist/production/src/modifications/acl/UpdateAclSchemaModification.js.map +1 -1
  158. package/dist/production/src/modifications/actions/CreateTargetModification.cjs.map +1 -1
  159. package/dist/production/src/modifications/actions/CreateTargetModification.js.map +1 -1
  160. package/dist/production/src/modifications/actions/CreateTriggerModification.cjs.map +1 -1
  161. package/dist/production/src/modifications/actions/CreateTriggerModification.js.map +1 -1
  162. package/dist/production/src/modifications/actions/RemoveTargetModification.cjs.map +1 -1
  163. package/dist/production/src/modifications/actions/RemoveTargetModification.js.map +1 -1
  164. package/dist/production/src/modifications/actions/RemoveTriggerModification.cjs.map +1 -1
  165. package/dist/production/src/modifications/actions/RemoveTriggerModification.js.map +1 -1
  166. package/dist/production/src/modifications/actions/UpdateTargetModification.cjs.map +1 -1
  167. package/dist/production/src/modifications/actions/UpdateTargetModification.js.map +1 -1
  168. package/dist/production/src/modifications/actions/UpdateTriggerModification.cjs.map +1 -1
  169. package/dist/production/src/modifications/actions/UpdateTriggerModification.js.map +1 -1
  170. package/dist/production/src/modifications/columns/CreateColumnModification.cjs.map +1 -1
  171. package/dist/production/src/modifications/columns/CreateColumnModification.js.map +1 -1
  172. package/dist/production/src/modifications/columns/UpdateColumnDefinitionModification.cjs.map +1 -1
  173. package/dist/production/src/modifications/columns/UpdateColumnDefinitionModification.js.map +1 -1
  174. package/dist/production/src/modifications/columns/UpdateColumnNameModification.cjs.map +1 -1
  175. package/dist/production/src/modifications/columns/UpdateColumnNameModification.js.map +1 -1
  176. package/dist/production/src/modifications/columns/columnUtils.cjs +1 -1
  177. package/dist/production/src/modifications/columns/columnUtils.cjs.map +1 -1
  178. package/dist/production/src/modifications/columns/columnUtils.js +1 -1
  179. package/dist/production/src/modifications/columns/columnUtils.js.map +1 -1
  180. package/dist/production/src/modifications/constraints/CreateUniqueConstraintModification.cjs.map +1 -1
  181. package/dist/production/src/modifications/constraints/CreateUniqueConstraintModification.js.map +1 -1
  182. package/dist/production/src/modifications/constraints/RemoveUniqueConstraintModification.cjs.map +1 -1
  183. package/dist/production/src/modifications/constraints/RemoveUniqueConstraintModification.js.map +1 -1
  184. package/dist/production/src/modifications/constraints/utils.cjs.map +1 -1
  185. package/dist/production/src/modifications/constraints/utils.js.map +1 -1
  186. package/dist/production/src/modifications/differs/RemoveChangedFieldDiffer.cjs.map +1 -1
  187. package/dist/production/src/modifications/differs/RemoveChangedFieldDiffer.js.map +1 -1
  188. package/dist/production/src/modifications/differs/RemoveViewDiffer.cjs.map +1 -1
  189. package/dist/production/src/modifications/differs/RemoveViewDiffer.js.map +1 -1
  190. package/dist/production/src/modifications/entities/CreateEntityModification.cjs.map +1 -1
  191. package/dist/production/src/modifications/entities/CreateEntityModification.js.map +1 -1
  192. package/dist/production/src/modifications/entities/CreateViewModification.cjs.map +1 -1
  193. package/dist/production/src/modifications/entities/CreateViewModification.js.map +1 -1
  194. package/dist/production/src/modifications/entities/RemoveEntityModification.cjs +18 -1
  195. package/dist/production/src/modifications/entities/RemoveEntityModification.cjs.map +1 -1
  196. package/dist/production/src/modifications/entities/RemoveEntityModification.js +19 -2
  197. package/dist/production/src/modifications/entities/RemoveEntityModification.js.map +1 -1
  198. package/dist/production/src/modifications/entities/ToggleEventLogModification.cjs.map +1 -1
  199. package/dist/production/src/modifications/entities/ToggleEventLogModification.js.map +1 -1
  200. package/dist/production/src/modifications/entities/UpdateEntityNameModification.cjs.map +1 -1
  201. package/dist/production/src/modifications/entities/UpdateEntityNameModification.js.map +1 -1
  202. package/dist/production/src/modifications/entities/UpdateEntityOrderByModification.cjs.map +1 -1
  203. package/dist/production/src/modifications/entities/UpdateEntityOrderByModification.js.map +1 -1
  204. package/dist/production/src/modifications/entities/UpdateEntityTableNameModification.cjs.map +1 -1
  205. package/dist/production/src/modifications/entities/UpdateEntityTableNameModification.js.map +1 -1
  206. package/dist/production/src/modifications/entities/UpdateViewModification.cjs.map +1 -1
  207. package/dist/production/src/modifications/entities/UpdateViewModification.js.map +1 -1
  208. package/dist/production/src/modifications/enums/CreateEnumModification.cjs.map +1 -1
  209. package/dist/production/src/modifications/enums/CreateEnumModification.js.map +1 -1
  210. package/dist/production/src/modifications/enums/RemoveEnumModification.cjs.map +1 -1
  211. package/dist/production/src/modifications/enums/RemoveEnumModification.js.map +1 -1
  212. package/dist/production/src/modifications/enums/UpdateEnumModification.cjs.map +1 -1
  213. package/dist/production/src/modifications/enums/UpdateEnumModification.js.map +1 -1
  214. package/dist/production/src/modifications/enums/enumUtils.cjs.map +1 -1
  215. package/dist/production/src/modifications/fields/RemoveFieldModification.cjs.map +1 -1
  216. package/dist/production/src/modifications/fields/RemoveFieldModification.js.map +1 -1
  217. package/dist/production/src/modifications/fields/UpdateFieldNameModification.cjs.map +1 -1
  218. package/dist/production/src/modifications/fields/UpdateFieldNameModification.js.map +1 -1
  219. package/dist/production/src/modifications/indexes/CreateIndexModification.cjs.map +1 -1
  220. package/dist/production/src/modifications/indexes/CreateIndexModification.js.map +1 -1
  221. package/dist/production/src/modifications/indexes/RemoveIndexModification.cjs.map +1 -1
  222. package/dist/production/src/modifications/indexes/RemoveIndexModification.js.map +1 -1
  223. package/dist/production/src/modifications/indexes/utils.cjs.map +1 -1
  224. package/dist/production/src/modifications/indexes/utils.js.map +1 -1
  225. package/dist/production/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.cjs.map +1 -1
  226. package/dist/production/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.js.map +1 -1
  227. package/dist/production/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.cjs.map +1 -1
  228. package/dist/production/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.js.map +1 -1
  229. package/dist/production/src/modifications/relations/ConvertOneToManyRelationModification.cjs.map +1 -1
  230. package/dist/production/src/modifications/relations/ConvertOneToManyRelationModification.js.map +1 -1
  231. package/dist/production/src/modifications/relations/CreateRelationInverseSideModification.cjs.map +1 -1
  232. package/dist/production/src/modifications/relations/CreateRelationInverseSideModification.js.map +1 -1
  233. package/dist/production/src/modifications/relations/CreateRelationModification.cjs.map +1 -1
  234. package/dist/production/src/modifications/relations/CreateRelationModification.js.map +1 -1
  235. package/dist/production/src/modifications/relations/DisableOrphanRemovalModification.cjs.map +1 -1
  236. package/dist/production/src/modifications/relations/DisableOrphanRemovalModification.js.map +1 -1
  237. package/dist/production/src/modifications/relations/EnableOrphanRemovalModification.cjs.map +1 -1
  238. package/dist/production/src/modifications/relations/EnableOrphanRemovalModification.js.map +1 -1
  239. package/dist/production/src/modifications/relations/MakeRelationNotNullModification.cjs.map +1 -1
  240. package/dist/production/src/modifications/relations/MakeRelationNotNullModification.js.map +1 -1
  241. package/dist/production/src/modifications/relations/MakeRelationNullableModification.cjs.map +1 -1
  242. package/dist/production/src/modifications/relations/MakeRelationNullableModification.js.map +1 -1
  243. package/dist/production/src/modifications/relations/ToggleJunctionEventLogModification.cjs.map +1 -1
  244. package/dist/production/src/modifications/relations/ToggleJunctionEventLogModification.js.map +1 -1
  245. package/dist/production/src/modifications/relations/UpdateRelationOnDeleteModification.cjs.map +1 -1
  246. package/dist/production/src/modifications/relations/UpdateRelationOnDeleteModification.js.map +1 -1
  247. package/dist/production/src/modifications/relations/UpdateRelationOrderByModification.cjs.map +1 -1
  248. package/dist/production/src/modifications/relations/UpdateRelationOrderByModification.js.map +1 -1
  249. package/dist/production/src/modifications/relations/helpers.cjs.map +1 -1
  250. package/dist/production/src/modifications/relations/helpers.js.map +1 -1
  251. package/dist/production/src/modifications/relations/normalization.cjs.map +1 -1
  252. package/dist/production/src/modifications/relations/normalization.js.map +1 -1
  253. package/dist/production/src/modifications/settings/UpdateSettingsModification.cjs.map +1 -1
  254. package/dist/production/src/modifications/settings/UpdateSettingsModification.js.map +1 -1
  255. package/dist/production/src/modifications/upgrade/RemoveIndexNamesModification.cjs.map +1 -1
  256. package/dist/production/src/modifications/upgrade/RemoveIndexNamesModification.js.map +1 -1
  257. package/dist/production/src/modifications/utils/createJunctionTable.cjs.map +1 -1
  258. package/dist/production/src/modifications/utils/createJunctionTable.js.map +1 -1
  259. package/dist/production/src/modifications/utils/diffUtils.cjs.map +1 -1
  260. package/dist/production/src/modifications/utils/diffUtils.js.map +1 -1
  261. package/dist/production/src/modifications/utils/schemaUpdateUtils.cjs.map +1 -1
  262. package/dist/production/src/modifications/utils/schemaUpdateUtils.js.map +1 -1
  263. package/dist/production/src/modifications/utils/sqlUpdateUtils.cjs.map +1 -1
  264. package/dist/production/src/modifications/utils/sqlUpdateUtils.js.map +1 -1
  265. package/dist/production/src/modifications/utils/viewDependencies.cjs.map +1 -1
  266. package/dist/production/src/modifications/utils/viewDependencies.js.map +1 -1
  267. package/dist/production/src/modifications/validation/PatchValidationSchemaModification.cjs.map +1 -1
  268. package/dist/production/src/modifications/validation/PatchValidationSchemaModification.js.map +1 -1
  269. package/dist/production/src/modifications/validation/UpdateValidationSchemaModification.cjs +4 -1
  270. package/dist/production/src/modifications/validation/UpdateValidationSchemaModification.cjs.map +1 -1
  271. package/dist/production/src/modifications/validation/UpdateValidationSchemaModification.js +4 -1
  272. package/dist/production/src/modifications/validation/UpdateValidationSchemaModification.js.map +1 -1
  273. package/dist/production/src/utils/deepCopy.cjs.map +1 -1
  274. package/dist/production/src/utils/deepCopy.js.map +1 -1
  275. package/dist/tests/src/tests.d.ts +1 -1
  276. package/dist/tests/src/tests.d.ts.map +1 -1
  277. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  278. package/dist/types/SchemaDiffer.d.ts +4 -1
  279. package/dist/types/SchemaDiffer.d.ts.map +1 -1
  280. package/dist/types/modifications/acl/UpdateAclSchemaModification.d.ts +4 -0
  281. package/dist/types/modifications/acl/UpdateAclSchemaModification.d.ts.map +1 -1
  282. package/dist/types/modifications/entities/RemoveEntityModification.d.ts.map +1 -1
  283. package/dist/types/modifications/validation/UpdateValidationSchemaModification.d.ts +4 -0
  284. package/dist/types/modifications/validation/UpdateValidationSchemaModification.d.ts.map +1 -1
  285. package/dist/types/tsconfig.tsbuildinfo +1 -1
  286. package/package.json +9 -9
  287. package/src/SchemaDiffer.ts +8 -3
  288. package/src/modifications/acl/UpdateAclSchemaModification.ts +8 -1
  289. package/src/modifications/columns/columnUtils.ts +1 -1
  290. package/src/modifications/entities/RemoveEntityModification.ts +15 -3
  291. package/src/modifications/validation/UpdateValidationSchemaModification.ts +8 -1
  292. package/tests/cases/integration/convertManyHasOneToOneHasOneRelation.test.ts +23 -19
  293. package/tests/cases/integration/convertOneHasManyToManyHasManyRelation.test.ts +57 -55
  294. package/tests/cases/integration/convertOneToManyRelation.test.ts +46 -42
  295. package/tests/cases/integration/createAndDropIndex.test.ts +5 -4
  296. package/tests/cases/integration/createColumn.test.ts +79 -8
  297. package/tests/cases/integration/createEntity.test.ts +5 -4
  298. package/tests/cases/integration/createEnum.test.ts +3 -2
  299. package/tests/cases/integration/createManyHasMany.test.ts +3 -2
  300. package/tests/cases/integration/createManyHasOne.test.ts +3 -2
  301. package/tests/cases/integration/createOneHasMany.test.ts +3 -2
  302. package/tests/cases/integration/createOneHasOne.test.ts +3 -2
  303. package/tests/cases/integration/createRelationInverseSide.test.ts +5 -4
  304. package/tests/cases/integration/createUnique.test.ts +11 -10
  305. package/tests/cases/integration/createView.test.ts +5 -4
  306. package/tests/cases/integration/disableOrphanRemoval.test.ts +3 -2
  307. package/tests/cases/integration/enableOrphanRemoval.test.ts +3 -2
  308. package/tests/cases/integration/makeColumnNotNull.test.ts +3 -2
  309. package/tests/cases/integration/makeRelationNotNull.test.ts +3 -2
  310. package/tests/cases/integration/makeRelationNullable.test.ts +5 -4
  311. package/tests/cases/integration/patchAclSchema.test.ts +3 -2
  312. package/tests/cases/integration/removeEntity.test.ts +103 -6
  313. package/tests/cases/integration/removeEnum.test.ts +3 -2
  314. package/tests/cases/integration/removeField.test.ts +13 -12
  315. package/tests/cases/integration/toggleEventLog.test.ts +5 -4
  316. package/tests/cases/integration/toggleJunctionEventLog.test.ts +5 -4
  317. package/tests/cases/integration/updateColumnDefinition.test.ts +11 -10
  318. package/tests/cases/integration/updateEntityName.test.ts +9 -8
  319. package/tests/cases/integration/updateEntityOrderBy.test.ts +5 -4
  320. package/tests/cases/integration/updateEnum.test.ts +3 -2
  321. package/tests/cases/integration/updateFieldName.test.ts +13 -12
  322. package/tests/cases/integration/updateRelationOnDelete.test.ts +4 -2
  323. package/tests/cases/integration/updateRelationOrderBy.test.ts +3 -2
  324. package/tests/cases/integration/updateView.test.ts +9 -8
  325. package/tests/src/tests.ts +17 -19
@@ -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;AACjC,WAAA,CAAC,EAAE,aAAa;AACd,aAAA;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,UAC7B;AAAA,QACD;AAAA,MAAA;AAAA,IACD;AAAA,EAEF;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,iBAAiB,KAAK,KAAK,IAAI;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,OAAQ,CAAA,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'\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,EAAA;AAAA,EAGtB,YAAkB;AAAA,EAAA;AAAA,EAGlB,mBAAkC;AACjC,WAAA,CAAC,EAAE,aAAa;AACd,aAAA;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,MAEF;AAAA,IACD;AAAA,EAAA;AAAA,EAGD,WAAW;AACV,WAAO,EAAE,SAAS,iBAAiB,KAAK,KAAK,IAAI,GAAG;AAAA,EAAA;AAEtD;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,EAAA;AAEzF;;;;"}
@@ -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;AACjC,WAAA,CAAC,EAAE,aAAa;AACd,aAAA;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,UAC7B;AAAA,QACD;AAAA,MAAA;AAAA,IACD;AAAA,EAEF;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,iBAAiB,KAAK,KAAK,IAAI;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,OAAQ,CAAA,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'\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,EAAA;AAAA,EAGtB,YAAkB;AAAA,EAAA;AAAA,EAGlB,mBAAkC;AACjC,WAAA,CAAC,EAAE,aAAa;AACd,aAAA;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,MAEF;AAAA,IACD;AAAA,EAAA;AAAA,EAGD,WAAW;AACV,WAAO,EAAE,SAAS,iBAAiB,KAAK,KAAK,IAAI,GAAG;AAAA,EAAA;AAEtD;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,EAAA;AAEzF;"}
@@ -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'\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\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(([, trigger]) => updateTriggerModification.createModification({ trigger }))\n\t}\n}\n"],"names":["createModificationType"],"mappings":";;;;AAKO,MAAM,iCAA+F;AAAA,EAC3G,YAA6B,MAAqC;AAArC,SAAA,OAAA;AAAA,EAC7B;AAAA,EAEO,YAAkB;AAAA,EACzB;AAAA,EAEO,mBAAkC;AACjC,WAAA,CAAC,EAAE,aAAa;AACd,aAAA;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,UACrC;AAAA,QACD;AAAA,MAAA;AAAA,IACD;AAAA,EAEF;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,kBAAkB,KAAK,KAAK,QAAQ,IAAI;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,MAAM,OAAO,MAAM,eAAe,QAAQ,SAAS,IAAI,KAAK,CAAC,UAAU,SAAS,eAAe,QAAQ,SAAS,IAAI,CAAC,CAAC,EAC/H,IAAI,CAAC,CAAG,EAAA,OAAO,MAAM,0BAA0B,mBAAmB,EAAE,QAAS,CAAA,CAAC;AAAA,EACjF;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'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport deepEqual from 'fast-deep-equal'\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\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(([, trigger]) => updateTriggerModification.createModification({ trigger }))\n\t}\n}\n"],"names":["createModificationType"],"mappings":";;;;AAKO,MAAM,iCAA+F;AAAA,EAC3G,YAA6B,MAAqC;AAArC,SAAA,OAAA;AAAA,EAAA;AAAA,EAGtB,YAAkB;AAAA,EAAA;AAAA,EAGlB,mBAAkC;AACjC,WAAA,CAAC,EAAE,aAAa;AACd,aAAA;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,MAEF;AAAA,IACD;AAAA,EAAA;AAAA,EAGD,WAAW;AACV,WAAO,EAAE,SAAS,kBAAkB,KAAK,KAAK,QAAQ,IAAI,GAAG;AAAA,EAAA;AAE/D;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,MAAM,OAAO,MAAM,eAAe,QAAQ,SAAS,IAAI,KAAK,CAAC,UAAU,SAAS,eAAe,QAAQ,SAAS,IAAI,CAAC,CAAC,EAC/H,IAAI,CAAC,CAAA,EAAG,OAAO,MAAM,0BAA0B,mBAAmB,EAAE,QAAA,CAAS,CAAC;AAAA,EAAA;AAElF;;;;"}
@@ -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'\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\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(([, trigger]) => updateTriggerModification.createModification({ trigger }))\n\t}\n}\n"],"names":[],"mappings":";;AAKO,MAAM,iCAA+F;AAAA,EAC3G,YAA6B,MAAqC;AAArC,SAAA,OAAA;AAAA,EAC7B;AAAA,EAEO,YAAkB;AAAA,EACzB;AAAA,EAEO,mBAAkC;AACjC,WAAA,CAAC,EAAE,aAAa;AACd,aAAA;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,UACrC;AAAA,QACD;AAAA,MAAA;AAAA,IACD;AAAA,EAEF;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,kBAAkB,KAAK,KAAK,QAAQ,IAAI;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,MAAM,OAAO,MAAM,eAAe,QAAQ,SAAS,IAAI,KAAK,CAAC,UAAU,SAAS,eAAe,QAAQ,SAAS,IAAI,CAAC,CAAC,EAC/H,IAAI,CAAC,CAAG,EAAA,OAAO,MAAM,0BAA0B,mBAAmB,EAAE,QAAS,CAAA,CAAC;AAAA,EACjF;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'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport deepEqual from 'fast-deep-equal'\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\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(([, trigger]) => updateTriggerModification.createModification({ trigger }))\n\t}\n}\n"],"names":[],"mappings":";;AAKO,MAAM,iCAA+F;AAAA,EAC3G,YAA6B,MAAqC;AAArC,SAAA,OAAA;AAAA,EAAA;AAAA,EAGtB,YAAkB;AAAA,EAAA;AAAA,EAGlB,mBAAkC;AACjC,WAAA,CAAC,EAAE,aAAa;AACd,aAAA;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,MAEF;AAAA,IACD;AAAA,EAAA;AAAA,EAGD,WAAW;AACV,WAAO,EAAE,SAAS,kBAAkB,KAAK,KAAK,QAAQ,IAAI,GAAG;AAAA,EAAA;AAE/D;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,MAAM,OAAO,MAAM,eAAe,QAAQ,SAAS,IAAI,KAAK,CAAC,UAAU,SAAS,eAAe,QAAQ,SAAS,IAAI,CAAC,CAAC,EAC/H,IAAI,CAAC,CAAA,EAAG,OAAO,MAAM,0BAA0B,mBAAmB,EAAE,QAAA,CAAS,CAAC;AAAA,EAAA;AAElF;"}
@@ -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\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},\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 =\n\t\t\tnotNull && !hasValue && !createdEntities.includes(this.data.entityName)\n\t\t\t\t? 'May fail in runtime, because column is not-null. Consider setting fillValue or copyValue'\n\t\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\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;AACM,UAAA,SAAS,KAAK,KAAK;AAEnB,UAAA,aAAaA,6BAAiB,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;AAGO,YAAA,UAAU,OAAO,WAAW;AAAA,MACnC,CAAC,OAAO,UAAU,GAAG;AAAA,QACpB,MAAM;AAAA,QACN,SAAS,CAAC,OAAO,YAAY,mBAAmB;AAAA,QAChD,mBAAmB,OAAO;AAAA,MAC3B;AAAA,IAAA,CACA;AAED,QAAI,mBAAmB,MAAM;AACxB,UAAA,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,MAAA,OACK;AACGC,+BAAA;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;AACjC,WAAAC,8BAAYC,kBAAAA,aAAa,KAAK,KAAK,YAAYC,2BAAS,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;AACxE,UAAA,iBACL,WAAW,CAAC,YAAY,CAAC,gBAAgB,SAAS,KAAK,KAAK,UAAU,IACnE,6FACA;AACJ,WAAO,EAAE,SAAS,aAAa,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,MAAM,IAAI,IAAI,eAAe;AAAA,EAC/F;AACD;AAWO,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;AAC/E,UAAA,CAACC,YAAAA,SAAS,QAAQ,GAAG;AACjB,eAAA;AAAA,MACR;AACA,aAAO,yBAAyB,mBAAmB;AAAA,QAClD,YAAY,cAAc;AAAA,QAC1B,OAAO;AAAA,QACP,GAAI,SAAS,YAAY,SAAY,EAAE,WAAW,SAAS,SAAS,wBAAwB,QAAQ,IAAI,CAAC;AAAA,MAAA,CACzG;AAAA,IAAA,CACD;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'\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\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},\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 =\n\t\t\tnotNull && !hasValue && !createdEntities.includes(this.data.entityName)\n\t\t\t\t? 'May fail in runtime, because column is not-null. Consider setting fillValue or copyValue'\n\t\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\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,EAAA;AAAA,EAE3E,UAAU,SAAiC;AACjD,UAAM,SAAS,KAAK,OAAO,MAAM,SAAS,KAAK,KAAK,UAAU;AAC9D,QAAI,OAAO,MAAM;AAChB;AAAA,IAAA;AAEK,UAAA,SAAS,KAAK,KAAK;AAEnB,UAAA,aAAaA,6BAAiB,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;AAGO,YAAA,UAAU,OAAO,WAAW;AAAA,MACnC,CAAC,OAAO,UAAU,GAAG;AAAA,QACpB,MAAM;AAAA,QACN,SAAS,CAAC,OAAO,YAAY,mBAAmB;AAAA,QAChD,mBAAmB,OAAO;AAAA,MAAA;AAAA,IAC3B,CACA;AAED,QAAI,mBAAmB,MAAM;AACxB,UAAA,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,MAAA,OACK;AACGC,+BAAA;AAAA,UACR;AAAA,UACA,MAAM;AAAA,UACN;AAAA,UACA,YAAY,OAAO;AAAA,UACnB,UAAU,OAAO;AAAA,UACjB;AAAA,QAAA,CACA;AAAA,MAAA;AAAA,IACF;AAAA,EACD;AAAA,EAGM,mBAAkC;AACjC,WAAAC,8BAAYC,kBAAAA,aAAa,KAAK,KAAK,YAAYC,2BAAS,KAAK,KAAK,KAAK,CAAC,CAAC;AAAA,EAAA;AAAA,EAGjF,SAAS,EAAE,mBAAkD;AAC5D,UAAM,UAAU,CAAC,KAAK,KAAK,MAAM;AACjC,UAAM,WAAW,KAAK,KAAK,cAAc,UAAa,KAAK,KAAK,cAAc;AACxE,UAAA,iBACL,WAAW,CAAC,YAAY,CAAC,gBAAgB,SAAS,KAAK,KAAK,UAAU,IACnE,6FACA;AACJ,WAAO,EAAE,SAAS,aAAa,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,MAAM,IAAI,IAAI,eAAe;AAAA,EAAA;AAEhG;AAWO,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;AAC/E,UAAA,CAACC,YAAAA,SAAS,QAAQ,GAAG;AACjB,eAAA;AAAA,MAAA;AAER,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,IAAA,CACD;AAAA,EAAA;AAEH;;;;"}
@@ -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\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},\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 =\n\t\t\tnotNull && !hasValue && !createdEntities.includes(this.data.entityName)\n\t\t\t\t? 'May fail in runtime, because column is not-null. Consider setting fillValue or copyValue'\n\t\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\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;AACM,UAAA,SAAS,KAAK,KAAK;AAEnB,UAAA,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;AAGO,YAAA,UAAU,OAAO,WAAW;AAAA,MACnC,CAAC,OAAO,UAAU,GAAG;AAAA,QACpB,MAAM;AAAA,QACN,SAAS,CAAC,OAAO,YAAY,mBAAmB;AAAA,QAChD,mBAAmB,OAAO;AAAA,MAC3B;AAAA,IAAA,CACA;AAED,QAAI,mBAAmB,MAAM;AACxB,UAAA,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,MAAA,OACK;AACG,iBAAA;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;AACjC,WAAA,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;AACxE,UAAA,iBACL,WAAW,CAAC,YAAY,CAAC,gBAAgB,SAAS,KAAK,KAAK,UAAU,IACnE,6FACA;AACJ,WAAO,EAAE,SAAS,aAAa,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,MAAM,IAAI,IAAI,eAAe;AAAA,EAC/F;AACD;AAWO,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;AAC/E,UAAA,CAAC,SAAS,QAAQ,GAAG;AACjB,eAAA;AAAA,MACR;AACA,aAAO,yBAAyB,mBAAmB;AAAA,QAClD,YAAY,cAAc;AAAA,QAC1B,OAAO;AAAA,QACP,GAAI,SAAS,YAAY,SAAY,EAAE,WAAW,SAAS,SAAS,wBAAwB,QAAQ,IAAI,CAAC;AAAA,MAAA,CACzG;AAAA,IAAA,CACD;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'\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\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},\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 =\n\t\t\tnotNull && !hasValue && !createdEntities.includes(this.data.entityName)\n\t\t\t\t? 'May fail in runtime, because column is not-null. Consider setting fillValue or copyValue'\n\t\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\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,EAAA;AAAA,EAE3E,UAAU,SAAiC;AACjD,UAAM,SAAS,KAAK,OAAO,MAAM,SAAS,KAAK,KAAK,UAAU;AAC9D,QAAI,OAAO,MAAM;AAChB;AAAA,IAAA;AAEK,UAAA,SAAS,KAAK,KAAK;AAEnB,UAAA,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;AAGO,YAAA,UAAU,OAAO,WAAW;AAAA,MACnC,CAAC,OAAO,UAAU,GAAG;AAAA,QACpB,MAAM;AAAA,QACN,SAAS,CAAC,OAAO,YAAY,mBAAmB;AAAA,QAChD,mBAAmB,OAAO;AAAA,MAAA;AAAA,IAC3B,CACA;AAED,QAAI,mBAAmB,MAAM;AACxB,UAAA,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,MAAA,OACK;AACG,iBAAA;AAAA,UACR;AAAA,UACA,MAAM;AAAA,UACN;AAAA,UACA,YAAY,OAAO;AAAA,UACnB,UAAU,OAAO;AAAA,UACjB;AAAA,QAAA,CACA;AAAA,MAAA;AAAA,IACF;AAAA,EACD;AAAA,EAGM,mBAAkC;AACjC,WAAA,YAAY,aAAa,KAAK,KAAK,YAAY,SAAS,KAAK,KAAK,KAAK,CAAC,CAAC;AAAA,EAAA;AAAA,EAGjF,SAAS,EAAE,mBAAkD;AAC5D,UAAM,UAAU,CAAC,KAAK,KAAK,MAAM;AACjC,UAAM,WAAW,KAAK,KAAK,cAAc,UAAa,KAAK,KAAK,cAAc;AACxE,UAAA,iBACL,WAAW,CAAC,YAAY,CAAC,gBAAgB,SAAS,KAAK,KAAK,UAAU,IACnE,6FACA;AACJ,WAAO,EAAE,SAAS,aAAa,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,MAAM,IAAI,IAAI,eAAe;AAAA,EAAA;AAEhG;AAWO,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;AAC/E,UAAA,CAAC,SAAS,QAAQ,GAAG;AACjB,eAAA;AAAA,MAAA;AAER,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,IAAA,CACD;AAAA,EAAA;AAEH;"}
@@ -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 hasNewType = newColumn.columnType !== oldColumn.columnType\n\t\tconst columnType = getColumnSqlType(newColumn)\n\t\tconst hasNullableChanged = oldColumn.nullable !== newColumn.nullable\n\n\t\tconst usingCast = `${wrapIdentifier(oldColumn.columnName)}::${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\ttype: 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'\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 hasNewType = newColumn.columnType !== oldColumn.columnType\n\t\tconst columnType = getColumnSqlType(newColumn)\n\t\tconst hasNullableChanged = oldColumn.nullable !== newColumn.nullable\n\n\t\tconst usingCast = `${wrapIdentifier(oldColumn.columnName)}::${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\ttype: hasNewSequence || hasNewType || migrateWithUsing ? columnType : undefined,\n\t\t\tnotNull: hasNullableChanged && (!migrateWithUpdate || newColumn.nullable) ? !newColumn.nullable : undefined,\n\t\t\tusing: (() => {\n\t\t\t\tif (hasNewSequence) {\n\t\t\t\t\treturn `COALESCE(${usingCast}, nextval(PG_GET_SERIAL_SEQUENCE(${escapeValue(entity.tableName)}, ${escapeValue(oldColumn.columnName)})))`\n\t\t\t\t}\n\t\t\t\tif (migrateWithUsing) {\n\t\t\t\t\treturn `COALESCE(${usingCast}, ${seedExpression})`\n\t\t\t\t}\n\n\t\t\t\tif (hasNewType) {\n\t\t\t\t\treturn usingCast\n\t\t\t\t}\n\t\t\t\treturn undefined\n\t\t\t})(),\n\t\t\tsequenceGenerated: oldColumn.sequence && !newColumn.sequence ? false : (!oldColumn.sequence ? newColumn.sequence : undefined),\n\t\t})\n\n\t\tif (migrateWithUpdate) {\n\t\t\tfillSeed({\n\t\t\t\tbuilder,\n\t\t\t\ttype: 'updating',\n\t\t\t\tentity,\n\t\t\t\tcolumnName: oldColumn.columnName,\n\t\t\t\tnullable: newColumn.nullable,\n\t\t\t\tseedExpression,\n\t\t\t})\n\t\t}\n\n\t\tconst seqAlter = []\n\t\tif (oldColumn.sequence && newColumn.sequence) {\n\t\t\tif (oldColumn.sequence.precedence !== newColumn.sequence.precedence) {\n\t\t\t\tseqAlter.push(`SET GENERATED ${newColumn.sequence.precedence}`)\n\t\t\t}\n\t\t\tif (oldColumn.sequence.start !== newColumn.sequence.start && typeof newColumn.sequence.start == 'number') {\n\t\t\t\tseqAlter.push(`SET START WITH ${newColumn.sequence.start}`)\n\t\t\t}\n\t\t\tif (newColumn.sequence.restart) {\n\t\t\t\tseqAlter.push('RESTART')\n\t\t\t}\n\t\t}\n\t\tif (seqAlter.length > 0) {\n\t\t\tbuilder.sql(`ALTER TABLE ${wrapIdentifier(entity.tableName)} ALTER ${wrapIdentifier(oldColumn.columnName)} ${seqAlter.join(' ')}`)\n\t\t}\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn updateModel(\n\t\t\tupdateEntity(\n\t\t\t\tthis.data.entityName,\n\t\t\t\tupdateField<Model.AnyColumn>(this.data.fieldName, ({ field }) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...this.data.definition,\n\t\t\t\t\t\tname: field.name,\n\t\t\t\t\t\tcolumnName: field.columnName,\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\tconst current = this.schema.model.entities[this.data.entityName].fields[this.data.fieldName] as Model.AnyColumn\n\t\tconst changingToNotNull = current.nullable && !this.data.definition.nullable\n\t\tconst failureWarning = changingToNotNull ? 'Changing to not-null may fail in runtime.' : undefined\n\n\t\treturn {\n\t\t\tmessage: `Update column definition of field ${this.data.entityName}.${this.data.fieldName}`,\n\t\t\tfailureWarning,\n\t\t}\n\t}\n}\n\ntype SequenceDefinitionAlter =\n\t& Model.AnyColumn['sequence']\n\t& {\n\t\trestart?: boolean\n\t}\n\ntype ColumnDefinitionAlter =\n\t& Omit<Model.AnyColumn, 'sequence' | 'columnName' | 'name'>\n\t& {\n\t\tsequence?: SequenceDefinitionAlter\n\t}\n\nexport interface UpdateColumnDefinitionModificationData {\n\tentityName: string\n\tfieldName: string\n\tdefinition: ColumnDefinitionAlter\n\tfillValue?: JSONValue\n\tcopyValue?: string\n\tvalueMigrationStrategy?: 'using' | 'update'\n}\n\nexport const updateColumnDefinitionModification = createModificationType({\n\tid: 'updateColumnDefinition',\n\thandler: UpdateColumnDefinitionModificationHandler,\n})\n\nexport class UpdateColumnDefinitionDiffer implements Differ<UpdateColumnDefinitionModificationData> {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn updateColumns(originalSchema, updatedSchema, ({ originalColumn, updatedColumn, updatedEntity }) => {\n\t\t\tconst {\n\t\t\t\tname: {},\n\t\t\t\tcolumnName: {},\n\t\t\t\t...updatedDefinition\n\t\t\t} = updatedColumn\n\t\t\tconst {\n\t\t\t\tname: {},\n\t\t\t\tcolumnName: {},\n\t\t\t\t...originalDefinition\n\t\t\t} = originalColumn\n\t\t\tif (deepEqual(updatedDefinition, originalDefinition)) {\n\t\t\t\treturn undefined\n\t\t\t}\n\n\t\t\treturn updateColumnDefinitionModification.createModification({\n\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\tfieldName: updatedColumn.name,\n\t\t\t\tdefinition: updatedDefinition,\n\t\t\t})\n\t\t})\n\t}\n}\n"],"names":["getColumnSqlType","wrapIdentifier","formatSeedExpression","escapeValue","fillSeed","updateModel","updateEntity","updateField","createModificationType","updateColumns"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateColumnDefinitionModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/columns/UpdateColumnDefinitionModification.ts"],"sourcesContent":["import { escapeValue, MigrationBuilder } from '@contember/database-migrations'\nimport { JSONValue, Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport deepEqual from 'fast-deep-equal'\nimport { updateColumns } from '../utils/diffUtils'\nimport { wrapIdentifier } from '../../utils/dbHelpers'\nimport { getColumnSqlType } from '../utils/columnUtils'\nimport { fillSeed, formatSeedExpression } from './columnUtils'\n\nexport class UpdateColumnDefinitionModificationHandler implements ModificationHandler<UpdateColumnDefinitionModificationData> {\n\tconstructor(private readonly data: UpdateColumnDefinitionModificationData, private readonly schema: Schema) {}\n\n\tpublic createSql(builder: MigrationBuilder): void {\n\t\tconst entity = this.schema.model.entities[this.data.entityName]\n\t\tif (entity.view) {\n\t\t\treturn\n\t\t}\n\t\tconst oldColumn = entity.fields[this.data.fieldName] as Model.AnyColumn\n\t\tconst newColumn = this.data.definition\n\n\t\tconst hasNewSequence = !oldColumn.sequence && newColumn.sequence\n\t\tconst hasNewType = newColumn.columnType !== oldColumn.columnType\n\t\tconst columnType = getColumnSqlType(newColumn)\n\t\tconst hasNullableChanged = oldColumn.nullable !== newColumn.nullable\n\n\t\tconst usingCast = `${wrapIdentifier(oldColumn.columnName)}::${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\ttype: 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":";;;;;;;;AAUO,MAAM,0CAAkH;AAAA,EAC9H,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;AAC7C,UAAA,YAAY,KAAK,KAAK;AAE5B,UAAM,iBAAiB,CAAC,UAAU,YAAY,UAAU;AAClD,UAAA,aAAa,UAAU,eAAe,UAAU;AAChD,UAAA,aAAa,iBAAiB,SAAS;AACvC,UAAA,qBAAqB,UAAU,aAAa,UAAU;AAE5D,UAAM,YAAY,GAAG,eAAe,UAAU,UAAU,CAAC,KAAK,UAAU;AAExE,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;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,MAAM,kBAAkB,cAAc,mBAAmB,aAAa;AAAA,MACtE,SAAS,uBAAuB,CAAC,qBAAqB,UAAU,YAAY,CAAC,UAAU,WAAW;AAAA,MAClG,QAAQ,MAAM;AACb,YAAI,gBAAgB;AACZ,iBAAA,YAAY,SAAS,oCAAoC,YAAY,OAAO,SAAS,CAAC,KAAK,YAAY,UAAU,UAAU,CAAC;AAAA,QACpI;AACA,YAAI,kBAAkB;AACd,iBAAA,YAAY,SAAS,KAAK,cAAc;AAAA,QAChD;AAEA,YAAI,YAAY;AACR,iBAAA;AAAA,QACR;AACO,eAAA;AAAA,MAAA,GACL;AAAA,MACH,mBAAmB,UAAU,YAAY,CAAC,UAAU,WAAW,QAAS,CAAC,UAAU,WAAW,UAAU,WAAW;AAAA,IAAA,CACnH;AAED,QAAI,mBAAmB;AACb,eAAA;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;AACb,QAAA,UAAU,YAAY,UAAU,UAAU;AAC7C,UAAI,UAAU,SAAS,eAAe,UAAU,SAAS,YAAY;AACpE,iBAAS,KAAK,iBAAiB,UAAU,SAAS,UAAU,EAAE;AAAA,MAC/D;AACI,UAAA,UAAU,SAAS,UAAU,UAAU,SAAS,SAAS,OAAO,UAAU,SAAS,SAAS,UAAU;AACzG,iBAAS,KAAK,kBAAkB,UAAU,SAAS,KAAK,EAAE;AAAA,MAC3D;AACI,UAAA,UAAU,SAAS,SAAS;AAC/B,iBAAS,KAAK,SAAS;AAAA,MACxB;AAAA,IACD;AACI,QAAA,SAAS,SAAS,GAAG;AACxB,cAAQ,IAAI,eAAe,eAAe,OAAO,SAAS,CAAC,UAAU,eAAe,UAAU,UAAU,CAAC,IAAI,SAAS,KAAK,GAAG,CAAC,EAAE;AAAA,IAClI;AAAA,EACD;AAAA,EAEO,mBAAkC;AACjC,WAAA;AAAA,MACN;AAAA,QACC,KAAK,KAAK;AAAA,QACV,YAA6B,KAAK,KAAK,WAAW,CAAC,EAAE,YAAY;AACzD,iBAAA;AAAA,YACN,GAAG,KAAK,KAAK;AAAA,YACb,MAAM,MAAM;AAAA,YACZ,YAAY,MAAM;AAAA,UAAA;AAAA,QACnB,CACA;AAAA,MACF;AAAA,IAAA;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;AAC9D,UAAA,iBAAiB,oBAAoB,8CAA8C;AAElF,WAAA;AAAA,MACN,SAAS,qCAAqC,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS;AAAA,MACzF;AAAA,IAAA;AAAA,EAEF;AACD;AAuBO,MAAM,qCAAqC,uBAAuB;AAAA,EACxE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,6BAAuF;AAAA,EACnG,WAAW,gBAAwB,eAAuB;AAClD,WAAA,cAAc,gBAAgB,eAAe,CAAC,EAAE,gBAAgB,eAAe,oBAAoB;AACnG,YAAA;AAAA,QACL,MAAM,CAAC;AAAA,QACP,YAAY,CAAC;AAAA,QACb,GAAG;AAAA,MACA,IAAA;AACE,YAAA;AAAA,QACL,MAAM,CAAC;AAAA,QACP,YAAY,CAAC;AAAA,QACb,GAAG;AAAA,MACA,IAAA;AACA,UAAA,UAAU,mBAAmB,kBAAkB,GAAG;AAC9C,eAAA;AAAA,MACR;AAEA,aAAO,mCAAmC,mBAAmB;AAAA,QAC5D,YAAY,cAAc;AAAA,QAC1B,WAAW,cAAc;AAAA,QACzB,YAAY;AAAA,MAAA,CACZ;AAAA,IAAA,CACD;AAAA,EACF;AACD;"}
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 hasNewType = newColumn.columnType !== oldColumn.columnType\n\t\tconst columnType = getColumnSqlType(newColumn)\n\t\tconst hasNullableChanged = oldColumn.nullable !== newColumn.nullable\n\n\t\tconst usingCast = `${wrapIdentifier(oldColumn.columnName)}::${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\ttype: 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\t\t),\n\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'\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\t\t),\n\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\t\t),\n\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'\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\t\t),\n\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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"}
@@ -17,7 +17,7 @@ const fillSeed = ({ builder, entity, columnName, nullable, type, seedExpression
17
17
  };
18
18
  const formatSeedExpression = ({ model, entity, columnType, fillValue, copyValue }) => {
19
19
  if (fillValue !== void 0) {
20
- return databaseMigrations.escapeValue(fillValue);
20
+ return databaseMigrations.escapeValue(fillValue).toString();
21
21
  } else if (copyValue !== void 0) {
22
22
  const copyFrom = schemaUtils.getColumnName(model, entity, copyValue);
23
23
  return `${dbHelpers.wrapIdentifier(copyFrom)}::${columnType}`;
@@ -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\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\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)\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":";;;;;AAKa,MAAA,WAAW,CAAC,EAAE,SAAS,QAAQ,YAAY,UAAU,MAAM,qBAOlE;AAEL,QAAM,QAAQ,SAAS,aAAa,UAAUA,UAAe,eAAA,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;AACN,YAAA,YAAY,OAAO,WAAW,YAAY;AAAA,MACjD,SAAS;AAAA,IAAA,CACT;AAAA,EACF;AACD;AAGa,MAAA,uBAAuB,CAAC,EAAE,OAAO,QAAQ,YAAY,WAAW,gBAMxD;AACpB,MAAI,cAAc,QAAW;AAC5B,WAAOC,mBAAAA,YAAY,SAAS;AAAA,EAAA,WAClB,cAAc,QAAW;AACnC,UAAM,WAAWC,YAAA,cAAc,OAAO,QAAQ,SAAS;AACvD,WAAO,GAAGF,UAAAA,eAAe,QAAQ,CAAC,KAAK,UAAU;AAAA,EAClD;AACO,SAAA;AACR;;;"}
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\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\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":";;;;;AAKa,MAAA,WAAW,CAAC,EAAE,SAAS,QAAQ,YAAY,UAAU,MAAM,qBAOlE;AAEL,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;AACN,YAAA,YAAY,OAAO,WAAW,YAAY;AAAA,MACjD,SAAS;AAAA,IAAA,CACT;AAAA,EAAA;AAEH;AAGa,MAAA,uBAAuB,CAAC,EAAE,OAAO,QAAQ,YAAY,WAAW,gBAMxD;AACpB,MAAI,cAAc,QAAW;AACrB,WAAAC,mBAAA,YAAY,SAAS,EAAE,SAAS;AAAA,EAAA,WAC7B,cAAc,QAAW;AACnC,UAAM,WAAWC,YAAA,cAAc,OAAO,QAAQ,SAAS;AACvD,WAAO,GAAGF,UAAAA,eAAe,QAAQ,CAAC,KAAK,UAAU;AAAA,EAAA;AAE3C,SAAA;AACR;;;"}
@@ -15,7 +15,7 @@ const fillSeed = ({ builder, entity, columnName, nullable, type, seedExpression
15
15
  };
16
16
  const formatSeedExpression = ({ model, entity, columnType, fillValue, copyValue }) => {
17
17
  if (fillValue !== void 0) {
18
- return escapeValue(fillValue);
18
+ return escapeValue(fillValue).toString();
19
19
  } else if (copyValue !== void 0) {
20
20
  const copyFrom = getColumnName(model, entity, copyValue);
21
21
  return `${wrapIdentifier(copyFrom)}::${columnType}`;
@@ -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\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\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)\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":";;;AAKa,MAAA,WAAW,CAAC,EAAE,SAAS,QAAQ,YAAY,UAAU,MAAM,qBAOlE;AAEL,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;AACN,YAAA,YAAY,OAAO,WAAW,YAAY;AAAA,MACjD,SAAS;AAAA,IAAA,CACT;AAAA,EACF;AACD;AAGa,MAAA,uBAAuB,CAAC,EAAE,OAAO,QAAQ,YAAY,WAAW,gBAMxD;AACpB,MAAI,cAAc,QAAW;AAC5B,WAAO,YAAY,SAAS;AAAA,EAAA,WAClB,cAAc,QAAW;AACnC,UAAM,WAAW,cAAc,OAAO,QAAQ,SAAS;AACvD,WAAO,GAAG,eAAe,QAAQ,CAAC,KAAK,UAAU;AAAA,EAClD;AACO,SAAA;AACR;"}
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\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\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":";;;AAKa,MAAA,WAAW,CAAC,EAAE,SAAS,QAAQ,YAAY,UAAU,MAAM,qBAOlE;AAEL,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;AACN,YAAA,YAAY,OAAO,WAAW,YAAY;AAAA,MACjD,SAAS;AAAA,IAAA,CACT;AAAA,EAAA;AAEH;AAGa,MAAA,uBAAuB,CAAC,EAAE,OAAO,QAAQ,YAAY,WAAW,gBAMxD;AACpB,MAAI,cAAc,QAAW;AACrB,WAAA,YAAY,SAAS,EAAE,SAAS;AAAA,EAAA,WAC7B,cAAc,QAAW;AACnC,UAAM,WAAW,cAAc,OAAO,QAAQ,SAAS;AACvD,WAAO,GAAG,eAAe,QAAQ,CAAC,KAAK,UAAU;AAAA,EAAA;AAE3C,SAAA;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 {\n\tcreateModificationType,\n\tDiffer,\n\tModificationHandler,\n\tModificationHandlerCreateSqlOptions,\n} 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, { databaseMetadata, invalidateDatabaseMetadata }: ModificationHandlerCreateSqlOptions): 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 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\tlet checkModifier = ''\n\t\tif (this.data.unique.timing === 'deferred') {\n\t\t\tcheckModifier = ' INITIALLY DEFERRED'\n\t\t} else if (this.data.unique.timing === 'deferrable') {\n\t\t\tcheckModifier = ' DEFERRABLE'\n\t\t}\n\n\t\tbuilder.sql(`ALTER TABLE ${tableNameId} ADD UNIQUE (${columnNameIds.join(', ')})${checkModifier}`)\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 constraint (${this.data.unique.fields.join(', ')}) 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}\n\nexport const createUniqueConstraintModification = createModificationType({\n\tid: 'createUniqueConstraint',\n\thandler: CreateUniqueConstraintModificationHandler,\n})\n\nexport interface CreateUniqueConstraintModificationData {\n\tentityName: string\n\tunique: Model.UniqueConstraint\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 => createUniqueConstraintModification.createModification({\n\t\t\t\t\tentityName: entity.name,\n\t\t\t\t\tunique,\n\t\t\t\t})),\n\t\t)\n\t}\n}\n"],"names":["getUniqueConstraintColumns","wrapIdentifier","updateModel","updateEntity","createModificationType"],"mappings":";;;;;;;AAaO,MAAM,0CAAiH;AAAA,EAC7H,YAA6B,MAA+D,QAAgB;AAA/E,SAAA,OAAA;AAA+D,SAAA,SAAA;AAAA,EAC5F;AAAA,EAEO,UAAU,SAA2B,EAAE,kBAAkB,8BAAyE;AACxI,UAAM,SAAS,KAAK,OAAO,MAAM,SAAS,KAAK,KAAK,UAAU;AAC9D,QAAI,OAAO,MAAM;AAChB;AAAA,IACD;AACM,UAAA,SAAS,KAAK,KAAK,OAAO;AAChC,UAAM,UAAUA,MAAAA,2BAA2B;AAAA,MAC1C;AAAA,MACA,OAAO,KAAK,OAAO;AAAA,MACnB;AAAA,IAAA,CACA;AAEK,UAAA,cAAcC,UAAAA,eAAe,OAAO,SAAS;AAC7C,UAAA,gBAAgB,QAAQ,IAAIA,UAAc,cAAA;AAEhD,QAAI,gBAAgB;AACpB,QAAI,KAAK,KAAK,OAAO,WAAW,YAAY;AAC3B,sBAAA;AAAA,IACN,WAAA,KAAK,KAAK,OAAO,WAAW,cAAc;AACpC,sBAAA;AAAA,IACjB;AAEQ,YAAA,IAAI,eAAe,WAAW,gBAAgB,cAAc,KAAK,IAAI,CAAC,IAAI,aAAa,EAAE;AAEtE;EAC5B;AAAA,EAEO,mBAAkC;AACjC,WAAAC,kBAAA;AAAA,MACNC,+BAAa,KAAK,KAAK,YAAY,CAAC,EAAE,cAAc;AAAA,QACnD,GAAG;AAAA,QACH,QAAQ;AAAA,UACP,GAAG,OAAO;AAAA,UACV,KAAK,KAAK;AAAA,QACX;AAAA,MAAA,EACC;AAAA,IAAA;AAAA,EAEJ;AAAA,EAEA,SAAS,EAAE,mBAAkD;AACrD,WAAA;AAAA,MACN,SAAS,6BAA6B,KAAK,KAAK,OAAO,OAAO,KAAK,IAAI,CAAC,eAAe,KAAK,KAAK,UAAU;AAAA,MAC3G,gBAAgB,CAAC,gBAAgB,SAAS,KAAK,KAAK,UAAU,IAC3D,8EACA;AAAA,IAAA;AAAA,EAEL;AAED;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,CAAA,OAAM,CAAC,eAAe,MAAM,SAAS,OAAO,IAAI,EAAE,OAAO,KAAK,CAAQ,SAAA,UAAU,KAAK,QAAQ,GAAG,MAAM,CAAC,CAAC,EAC/G,IAAI,CAAU,WAAA,mCAAmC,mBAAmB;AAAA,QACpE,YAAY,OAAO;AAAA,QACnB;AAAA,MAAA,CACA,CAAC;AAAA,IAAA;AAAA,EAEL;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'\nimport {\n\tcreateModificationType,\n\tDiffer,\n\tModificationHandler,\n\tModificationHandlerCreateSqlOptions,\n} 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, { databaseMetadata, invalidateDatabaseMetadata }: ModificationHandlerCreateSqlOptions): 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 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\tlet checkModifier = ''\n\t\tif (this.data.unique.timing === 'deferred') {\n\t\t\tcheckModifier = ' INITIALLY DEFERRED'\n\t\t} else if (this.data.unique.timing === 'deferrable') {\n\t\t\tcheckModifier = ' DEFERRABLE'\n\t\t}\n\n\t\tbuilder.sql(`ALTER TABLE ${tableNameId} ADD UNIQUE (${columnNameIds.join(', ')})${checkModifier}`)\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 constraint (${this.data.unique.fields.join(', ')}) 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}\n\nexport const createUniqueConstraintModification = createModificationType({\n\tid: 'createUniqueConstraint',\n\thandler: CreateUniqueConstraintModificationHandler,\n})\n\nexport interface CreateUniqueConstraintModificationData {\n\tentityName: string\n\tunique: Model.UniqueConstraint\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 => createUniqueConstraintModification.createModification({\n\t\t\t\t\tentityName: entity.name,\n\t\t\t\t\tunique,\n\t\t\t\t})),\n\t\t)\n\t}\n}\n"],"names":["getUniqueConstraintColumns","wrapIdentifier","updateModel","updateEntity","createModificationType"],"mappings":";;;;;;;AAaO,MAAM,0CAAiH;AAAA,EAC7H,YAA6B,MAA+D,QAAgB;AAA/E,SAAA,OAAA;AAA+D,SAAA,SAAA;AAAA,EAAA;AAAA,EAGrF,UAAU,SAA2B,EAAE,kBAAkB,8BAAyE;AACxI,UAAM,SAAS,KAAK,OAAO,MAAM,SAAS,KAAK,KAAK,UAAU;AAC9D,QAAI,OAAO,MAAM;AAChB;AAAA,IAAA;AAEK,UAAA,SAAS,KAAK,KAAK,OAAO;AAChC,UAAM,UAAUA,MAAAA,2BAA2B;AAAA,MAC1C;AAAA,MACA,OAAO,KAAK,OAAO;AAAA,MACnB;AAAA,IAAA,CACA;AAEK,UAAA,cAAcC,UAAAA,eAAe,OAAO,SAAS;AAC7C,UAAA,gBAAgB,QAAQ,IAAIA,wBAAc;AAEhD,QAAI,gBAAgB;AACpB,QAAI,KAAK,KAAK,OAAO,WAAW,YAAY;AAC3B,sBAAA;AAAA,IACN,WAAA,KAAK,KAAK,OAAO,WAAW,cAAc;AACpC,sBAAA;AAAA,IAAA;AAGT,YAAA,IAAI,eAAe,WAAW,gBAAgB,cAAc,KAAK,IAAI,CAAC,IAAI,aAAa,EAAE;AAEtE,+BAAA;AAAA,EAAA;AAAA,EAGrB,mBAAkC;AACjC,WAAAC,kBAAA;AAAA,MACNC,+BAAa,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,IACH;AAAA,EAAA;AAAA,EAGD,SAAS,EAAE,mBAAkD;AACrD,WAAA;AAAA,MACN,SAAS,6BAA6B,KAAK,KAAK,OAAO,OAAO,KAAK,IAAI,CAAC,eAAe,KAAK,KAAK,UAAU;AAAA,MAC3G,gBAAgB,CAAC,gBAAgB,SAAS,KAAK,KAAK,UAAU,IAC3D,8EACA;AAAA,IACJ;AAAA,EAAA;AAGF;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,CAAA,OAAM,CAAC,eAAe,MAAM,SAAS,OAAO,IAAI,EAAE,OAAO,KAAK,CAAQ,SAAA,UAAU,KAAK,QAAQ,GAAG,MAAM,CAAC,CAAC,EAC/G,IAAI,CAAU,WAAA,mCAAmC,mBAAmB;AAAA,QACpE,YAAY,OAAO;AAAA,QACnB;AAAA,MAAA,CACA,CAAC;AAAA,IACJ;AAAA,EAAA;AAEF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"CreateUniqueConstraintModification.js","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 {\n\tcreateModificationType,\n\tDiffer,\n\tModificationHandler,\n\tModificationHandlerCreateSqlOptions,\n} 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, { databaseMetadata, invalidateDatabaseMetadata }: ModificationHandlerCreateSqlOptions): 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 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\tlet checkModifier = ''\n\t\tif (this.data.unique.timing === 'deferred') {\n\t\t\tcheckModifier = ' INITIALLY DEFERRED'\n\t\t} else if (this.data.unique.timing === 'deferrable') {\n\t\t\tcheckModifier = ' DEFERRABLE'\n\t\t}\n\n\t\tbuilder.sql(`ALTER TABLE ${tableNameId} ADD UNIQUE (${columnNameIds.join(', ')})${checkModifier}`)\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 constraint (${this.data.unique.fields.join(', ')}) 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}\n\nexport const createUniqueConstraintModification = createModificationType({\n\tid: 'createUniqueConstraint',\n\thandler: CreateUniqueConstraintModificationHandler,\n})\n\nexport interface CreateUniqueConstraintModificationData {\n\tentityName: string\n\tunique: Model.UniqueConstraint\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 => createUniqueConstraintModification.createModification({\n\t\t\t\t\tentityName: entity.name,\n\t\t\t\t\tunique,\n\t\t\t\t})),\n\t\t)\n\t}\n}\n"],"names":[],"mappings":";;;;;AAaO,MAAM,0CAAiH;AAAA,EAC7H,YAA6B,MAA+D,QAAgB;AAA/E,SAAA,OAAA;AAA+D,SAAA,SAAA;AAAA,EAC5F;AAAA,EAEO,UAAU,SAA2B,EAAE,kBAAkB,8BAAyE;AACxI,UAAM,SAAS,KAAK,OAAO,MAAM,SAAS,KAAK,KAAK,UAAU;AAC9D,QAAI,OAAO,MAAM;AAChB;AAAA,IACD;AACM,UAAA,SAAS,KAAK,KAAK,OAAO;AAChC,UAAM,UAAU,2BAA2B;AAAA,MAC1C;AAAA,MACA,OAAO,KAAK,OAAO;AAAA,MACnB;AAAA,IAAA,CACA;AAEK,UAAA,cAAc,eAAe,OAAO,SAAS;AAC7C,UAAA,gBAAgB,QAAQ,IAAI,cAAc;AAEhD,QAAI,gBAAgB;AACpB,QAAI,KAAK,KAAK,OAAO,WAAW,YAAY;AAC3B,sBAAA;AAAA,IACN,WAAA,KAAK,KAAK,OAAO,WAAW,cAAc;AACpC,sBAAA;AAAA,IACjB;AAEQ,YAAA,IAAI,eAAe,WAAW,gBAAgB,cAAc,KAAK,IAAI,CAAC,IAAI,aAAa,EAAE;AAEtE;EAC5B;AAAA,EAEO,mBAAkC;AACjC,WAAA;AAAA,MACN,aAAa,KAAK,KAAK,YAAY,CAAC,EAAE,cAAc;AAAA,QACnD,GAAG;AAAA,QACH,QAAQ;AAAA,UACP,GAAG,OAAO;AAAA,UACV,KAAK,KAAK;AAAA,QACX;AAAA,MAAA,EACC;AAAA,IAAA;AAAA,EAEJ;AAAA,EAEA,SAAS,EAAE,mBAAkD;AACrD,WAAA;AAAA,MACN,SAAS,6BAA6B,KAAK,KAAK,OAAO,OAAO,KAAK,IAAI,CAAC,eAAe,KAAK,KAAK,UAAU;AAAA,MAC3G,gBAAgB,CAAC,gBAAgB,SAAS,KAAK,KAAK,UAAU,IAC3D,8EACA;AAAA,IAAA;AAAA,EAEL;AAED;AAEO,MAAM,qCAAqC,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,CAAA,OAAM,CAAC,eAAe,MAAM,SAAS,OAAO,IAAI,EAAE,OAAO,KAAK,CAAQ,SAAA,UAAU,KAAK,QAAQ,GAAG,MAAM,CAAC,CAAC,EAC/G,IAAI,CAAU,WAAA,mCAAmC,mBAAmB;AAAA,QACpE,YAAY,OAAO;AAAA,QACnB;AAAA,MAAA,CACA,CAAC;AAAA,IAAA;AAAA,EAEL;AACD;"}
1
+ {"version":3,"file":"CreateUniqueConstraintModification.js","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 {\n\tcreateModificationType,\n\tDiffer,\n\tModificationHandler,\n\tModificationHandlerCreateSqlOptions,\n} 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, { databaseMetadata, invalidateDatabaseMetadata }: ModificationHandlerCreateSqlOptions): 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 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\tlet checkModifier = ''\n\t\tif (this.data.unique.timing === 'deferred') {\n\t\t\tcheckModifier = ' INITIALLY DEFERRED'\n\t\t} else if (this.data.unique.timing === 'deferrable') {\n\t\t\tcheckModifier = ' DEFERRABLE'\n\t\t}\n\n\t\tbuilder.sql(`ALTER TABLE ${tableNameId} ADD UNIQUE (${columnNameIds.join(', ')})${checkModifier}`)\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 constraint (${this.data.unique.fields.join(', ')}) 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}\n\nexport const createUniqueConstraintModification = createModificationType({\n\tid: 'createUniqueConstraint',\n\thandler: CreateUniqueConstraintModificationHandler,\n})\n\nexport interface CreateUniqueConstraintModificationData {\n\tentityName: string\n\tunique: Model.UniqueConstraint\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 => createUniqueConstraintModification.createModification({\n\t\t\t\t\tentityName: entity.name,\n\t\t\t\t\tunique,\n\t\t\t\t})),\n\t\t)\n\t}\n}\n"],"names":[],"mappings":";;;;;AAaO,MAAM,0CAAiH;AAAA,EAC7H,YAA6B,MAA+D,QAAgB;AAA/E,SAAA,OAAA;AAA+D,SAAA,SAAA;AAAA,EAAA;AAAA,EAGrF,UAAU,SAA2B,EAAE,kBAAkB,8BAAyE;AACxI,UAAM,SAAS,KAAK,OAAO,MAAM,SAAS,KAAK,KAAK,UAAU;AAC9D,QAAI,OAAO,MAAM;AAChB;AAAA,IAAA;AAEK,UAAA,SAAS,KAAK,KAAK,OAAO;AAChC,UAAM,UAAU,2BAA2B;AAAA,MAC1C;AAAA,MACA,OAAO,KAAK,OAAO;AAAA,MACnB;AAAA,IAAA,CACA;AAEK,UAAA,cAAc,eAAe,OAAO,SAAS;AAC7C,UAAA,gBAAgB,QAAQ,IAAI,cAAc;AAEhD,QAAI,gBAAgB;AACpB,QAAI,KAAK,KAAK,OAAO,WAAW,YAAY;AAC3B,sBAAA;AAAA,IACN,WAAA,KAAK,KAAK,OAAO,WAAW,cAAc;AACpC,sBAAA;AAAA,IAAA;AAGT,YAAA,IAAI,eAAe,WAAW,gBAAgB,cAAc,KAAK,IAAI,CAAC,IAAI,aAAa,EAAE;AAEtE,+BAAA;AAAA,EAAA;AAAA,EAGrB,mBAAkC;AACjC,WAAA;AAAA,MACN,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,IACH;AAAA,EAAA;AAAA,EAGD,SAAS,EAAE,mBAAkD;AACrD,WAAA;AAAA,MACN,SAAS,6BAA6B,KAAK,KAAK,OAAO,OAAO,KAAK,IAAI,CAAC,eAAe,KAAK,KAAK,UAAU;AAAA,MAC3G,gBAAgB,CAAC,gBAAgB,SAAS,KAAK,KAAK,UAAU,IAC3D,8EACA;AAAA,IACJ;AAAA,EAAA;AAGF;AAEO,MAAM,qCAAqC,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,CAAA,OAAM,CAAC,eAAe,MAAM,SAAS,OAAO,IAAI,EAAE,OAAO,KAAK,CAAQ,SAAA,UAAU,KAAK,QAAQ,GAAG,MAAM,CAAC,CAAC,EAC/G,IAAI,CAAU,WAAA,mCAAmC,mBAAmB;AAAA,QACpE,YAAY,OAAO;AAAA,QACnB;AAAA,MAAA,CACA,CAAC;AAAA,IACJ;AAAA,EAAA;AAEF;"}
@@ -1 +1 @@
1
- {"version":3,"file":"RemoveUniqueConstraintModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/constraints/RemoveUniqueConstraintModification.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateModel } from '../utils/schemaUpdateUtils'\nimport {\n\tcreateModificationType,\n\tDiffer,\n\tModificationHandler,\n\tModificationHandlerCreateSqlOptions,\n} from '../ModificationHandler'\nimport deepEqual from 'fast-deep-equal'\nimport { getUniqueConstraintColumns } from './utils'\nimport { wrapIdentifier } from '../../utils/dbHelpers'\n\nexport class RemoveUniqueConstraintModificationHandler implements ModificationHandler<RemoveUniqueConstraintModificationData> {\n\tconstructor(private readonly data: RemoveUniqueConstraintModificationData, private readonly schema: Schema) {\n\t}\n\n\tpublic createSql(builder: MigrationBuilder, { databaseMetadata, invalidateDatabaseMetadata }: ModificationHandlerCreateSqlOptions): 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\n\t\tconst fields = this.getFields()\n\n\t\tconst columns = getUniqueConstraintColumns({\n\t\t\tentity,\n\t\t\tfields: fields,\n\t\t\tmodel: this.schema.model,\n\t\t})\n\n\t\tconst constraintNames = databaseMetadata.uniqueConstraints.filter({ tableName: entity.tableName, columnNames: columns }).getNames()\n\n\t\tfor (const name of constraintNames) {\n\t\t\tbuilder.sql(`ALTER TABLE ${wrapIdentifier(entity.tableName)} DROP CONSTRAINT ${wrapIdentifier(name)}`)\n\t\t}\n\n\t\tinvalidateDatabaseMetadata()\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\tconst fields = this.getFields()\n\t\treturn updateModel(\n\t\t\tupdateEntity(this.data.entityName, ({ entity }) => {\n\t\t\t\tconst unique = entity.unique.filter(it => !deepEqual(it.fields, fields))\n\t\t\t\treturn {\n\t\t\t\t\t...entity,\n\t\t\t\t\tunique,\n\t\t\t\t}\n\t\t\t}),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\tconst fields = this.getFields()\n\t\treturn { message: `Remove unique constraint (${fields.join(', ')}) on entity ${this.data.entityName}` }\n\t}\n\n\tgetFields() {\n\t\tconst entity = this.schema.model.entities[this.data.entityName]\n\t\tconst fields = 'constraintName' in this.data\n\t\t\t? entity.unique.find(it => it.name === this.data.constraintName)?.fields\n\t\t\t: this.data.fields\n\n\t\tif (!fields) {\n\t\t\tthrow new Error()\n\t\t}\n\t\treturn fields\n\t}\n}\n\nexport const removeUniqueConstraintModification = createModificationType({\n\tid: 'removeUniqueConstraint',\n\thandler: RemoveUniqueConstraintModificationHandler,\n})\n\nexport type RemoveUniqueConstraintModificationData =\n\t| {\n\t\tentityName: string\n\t\tconstraintName: string\n\t\tfields?: never\n\t}\n\t| {\n\t\tentityName: string\n\t\tfields: readonly string[]\n\t\tconstraintName?: never\n\t}\n\n\nexport class RemoveUniqueConstraintDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn Object.values(originalSchema.model.entities).flatMap(entity =>\n\t\t\tentity.unique\n\t\t\t\t.filter(it => {\n\t\t\t\t\tconst updatedEntity = updatedSchema.model.entities[entity.name]\n\t\t\t\t\tif (!updatedEntity) {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t\treturn !updatedEntity.unique.find(uniq => deepEqual(uniq.fields, it.fields) && it.timing === uniq.timing)\n\t\t\t\t})\n\t\t\t\t.map(unique =>\n\t\t\t\t\tremoveUniqueConstraintModification.createModification({\n\t\t\t\t\t\tentityName: entity.name,\n\t\t\t\t\t\tfields: unique.fields,\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":";;;;;;;AAaO,MAAM,0CAAiH;AAAA,EAC7H,YAA6B,MAA+D,QAAgB;AAA/E,SAAA,OAAA;AAA+D,SAAA,SAAA;AAAA,EAC5F;AAAA,EAEO,UAAU,SAA2B,EAAE,kBAAkB,8BAAyE;AACxI,UAAM,SAAS,KAAK,OAAO,MAAM,SAAS,KAAK,KAAK,UAAU;AAC9D,QAAI,OAAO,MAAM;AAChB;AAAA,IACD;AAEM,UAAA,SAAS,KAAK;AAEpB,UAAM,UAAUA,MAAAA,2BAA2B;AAAA,MAC1C;AAAA,MACA;AAAA,MACA,OAAO,KAAK,OAAO;AAAA,IAAA,CACnB;AAED,UAAM,kBAAkB,iBAAiB,kBAAkB,OAAO,EAAE,WAAW,OAAO,WAAW,aAAa,SAAS,EAAE,SAAS;AAElI,eAAW,QAAQ,iBAAiB;AAC3B,cAAA,IAAI,eAAeC,UAAA,eAAe,OAAO,SAAS,CAAC,oBAAoBA,UAAA,eAAe,IAAI,CAAC,EAAE;AAAA,IACtG;AAE2B;EAC5B;AAAA,EAEO,mBAAkC;AAClC,UAAA,SAAS,KAAK;AACb,WAAAC,kBAAA;AAAA,MACNC,+BAAa,KAAK,KAAK,YAAY,CAAC,EAAE,aAAa;AAC5C,cAAA,SAAS,OAAO,OAAO,OAAO,CAAA,OAAM,CAAC,UAAU,GAAG,QAAQ,MAAM,CAAC;AAChE,eAAA;AAAA,UACN,GAAG;AAAA,UACH;AAAA,QAAA;AAAA,MACD,CACA;AAAA,IAAA;AAAA,EAEH;AAAA,EAEA,WAAW;AACJ,UAAA,SAAS,KAAK;AACb,WAAA,EAAE,SAAS,6BAA6B,OAAO,KAAK,IAAI,CAAC,eAAe,KAAK,KAAK,UAAU,GAAG;AAAA,EACvG;AAAA,EAEA,YAAY;AACX,UAAM,SAAS,KAAK,OAAO,MAAM,SAAS,KAAK,KAAK,UAAU;AAC9D,UAAM,SAAS,oBAAoB,KAAK,OACrC,OAAO,OAAO,KAAK,CAAA,OAAM,GAAG,SAAS,KAAK,KAAK,cAAc,GAAG,SAChE,KAAK,KAAK;AAEb,QAAI,CAAC,QAAQ;AACZ,YAAM,IAAI,MAAM;AAAA,IACjB;AACO,WAAA;AAAA,EACR;AACD;AAEO,MAAM,qCAAqCC,oBAAAA,uBAAuB;AAAA,EACxE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAeM,MAAM,6BAA+C;AAAA,EAC3D,WAAW,gBAAwB,eAAuB;AACzD,WAAO,OAAO,OAAO,eAAe,MAAM,QAAQ,EAAE;AAAA,MAAQ,CAC3D,WAAA,OAAO,OACL,OAAO,CAAM,OAAA;AACb,cAAM,gBAAgB,cAAc,MAAM,SAAS,OAAO,IAAI;AAC9D,YAAI,CAAC,eAAe;AACZ,iBAAA;AAAA,QACR;AACA,eAAO,CAAC,cAAc,OAAO,KAAK,UAAQ,UAAU,KAAK,QAAQ,GAAG,MAAM,KAAK,GAAG,WAAW,KAAK,MAAM;AAAA,MACxG,CAAA,EACA;AAAA,QAAI,CAAA,WACJ,mCAAmC,mBAAmB;AAAA,UACrD,YAAY,OAAO;AAAA,UACnB,QAAQ,OAAO;AAAA,QAAA,CACf;AAAA,MACF;AAAA,IAAA;AAAA,EAEH;AACD;;;;"}
1
+ {"version":3,"file":"RemoveUniqueConstraintModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/constraints/RemoveUniqueConstraintModification.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateModel } from '../utils/schemaUpdateUtils'\nimport {\n\tcreateModificationType,\n\tDiffer,\n\tModificationHandler,\n\tModificationHandlerCreateSqlOptions,\n} from '../ModificationHandler'\nimport deepEqual from 'fast-deep-equal'\nimport { getUniqueConstraintColumns } from './utils'\nimport { wrapIdentifier } from '../../utils/dbHelpers'\n\nexport class RemoveUniqueConstraintModificationHandler implements ModificationHandler<RemoveUniqueConstraintModificationData> {\n\tconstructor(private readonly data: RemoveUniqueConstraintModificationData, private readonly schema: Schema) {\n\t}\n\n\tpublic createSql(builder: MigrationBuilder, { databaseMetadata, invalidateDatabaseMetadata }: ModificationHandlerCreateSqlOptions): 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\n\t\tconst fields = this.getFields()\n\n\t\tconst columns = getUniqueConstraintColumns({\n\t\t\tentity,\n\t\t\tfields: fields,\n\t\t\tmodel: this.schema.model,\n\t\t})\n\n\t\tconst constraintNames = databaseMetadata.uniqueConstraints.filter({ tableName: entity.tableName, columnNames: columns }).getNames()\n\n\t\tfor (const name of constraintNames) {\n\t\t\tbuilder.sql(`ALTER TABLE ${wrapIdentifier(entity.tableName)} DROP CONSTRAINT ${wrapIdentifier(name)}`)\n\t\t}\n\n\t\tinvalidateDatabaseMetadata()\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\tconst fields = this.getFields()\n\t\treturn updateModel(\n\t\t\tupdateEntity(this.data.entityName, ({ entity }) => {\n\t\t\t\tconst unique = entity.unique.filter(it => !deepEqual(it.fields, fields))\n\t\t\t\treturn {\n\t\t\t\t\t...entity,\n\t\t\t\t\tunique,\n\t\t\t\t}\n\t\t\t}),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\tconst fields = this.getFields()\n\t\treturn { message: `Remove unique constraint (${fields.join(', ')}) on entity ${this.data.entityName}` }\n\t}\n\n\tgetFields() {\n\t\tconst entity = this.schema.model.entities[this.data.entityName]\n\t\tconst fields = 'constraintName' in this.data\n\t\t\t? entity.unique.find(it => it.name === this.data.constraintName)?.fields\n\t\t\t: this.data.fields\n\n\t\tif (!fields) {\n\t\t\tthrow new Error()\n\t\t}\n\t\treturn fields\n\t}\n}\n\nexport const removeUniqueConstraintModification = createModificationType({\n\tid: 'removeUniqueConstraint',\n\thandler: RemoveUniqueConstraintModificationHandler,\n})\n\nexport type RemoveUniqueConstraintModificationData =\n\t| {\n\t\tentityName: string\n\t\tconstraintName: string\n\t\tfields?: never\n\t}\n\t| {\n\t\tentityName: string\n\t\tfields: readonly string[]\n\t\tconstraintName?: never\n\t}\n\n\nexport class RemoveUniqueConstraintDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn Object.values(originalSchema.model.entities).flatMap(entity =>\n\t\t\tentity.unique\n\t\t\t\t.filter(it => {\n\t\t\t\t\tconst updatedEntity = updatedSchema.model.entities[entity.name]\n\t\t\t\t\tif (!updatedEntity) {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t\treturn !updatedEntity.unique.find(uniq => deepEqual(uniq.fields, it.fields) && it.timing === uniq.timing)\n\t\t\t\t})\n\t\t\t\t.map(unique =>\n\t\t\t\t\tremoveUniqueConstraintModification.createModification({\n\t\t\t\t\t\tentityName: entity.name,\n\t\t\t\t\t\tfields: unique.fields,\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":";;;;;;;AAaO,MAAM,0CAAiH;AAAA,EAC7H,YAA6B,MAA+D,QAAgB;AAA/E,SAAA,OAAA;AAA+D,SAAA,SAAA;AAAA,EAAA;AAAA,EAGrF,UAAU,SAA2B,EAAE,kBAAkB,8BAAyE;AACxI,UAAM,SAAS,KAAK,OAAO,MAAM,SAAS,KAAK,KAAK,UAAU;AAC9D,QAAI,OAAO,MAAM;AAChB;AAAA,IAAA;AAGK,UAAA,SAAS,KAAK,UAAU;AAE9B,UAAM,UAAUA,MAAAA,2BAA2B;AAAA,MAC1C;AAAA,MACA;AAAA,MACA,OAAO,KAAK,OAAO;AAAA,IAAA,CACnB;AAED,UAAM,kBAAkB,iBAAiB,kBAAkB,OAAO,EAAE,WAAW,OAAO,WAAW,aAAa,QAAS,CAAA,EAAE,SAAS;AAElI,eAAW,QAAQ,iBAAiB;AAC3B,cAAA,IAAI,eAAeC,UAAA,eAAe,OAAO,SAAS,CAAC,oBAAoBA,UAAAA,eAAe,IAAI,CAAC,EAAE;AAAA,IAAA;AAG3E,+BAAA;AAAA,EAAA;AAAA,EAGrB,mBAAkC;AAClC,UAAA,SAAS,KAAK,UAAU;AACvB,WAAAC,kBAAA;AAAA,MACNC,+BAAa,KAAK,KAAK,YAAY,CAAC,EAAE,aAAa;AAC5C,cAAA,SAAS,OAAO,OAAO,OAAO,CAAA,OAAM,CAAC,UAAU,GAAG,QAAQ,MAAM,CAAC;AAChE,eAAA;AAAA,UACN,GAAG;AAAA,UACH;AAAA,QACD;AAAA,MACA,CAAA;AAAA,IACF;AAAA,EAAA;AAAA,EAGD,WAAW;AACJ,UAAA,SAAS,KAAK,UAAU;AACvB,WAAA,EAAE,SAAS,6BAA6B,OAAO,KAAK,IAAI,CAAC,eAAe,KAAK,KAAK,UAAU,GAAG;AAAA,EAAA;AAAA,EAGvG,YAAY;AACX,UAAM,SAAS,KAAK,OAAO,MAAM,SAAS,KAAK,KAAK,UAAU;AAC9D,UAAM,SAAS,oBAAoB,KAAK,OACrC,OAAO,OAAO,KAAK,CAAA,OAAM,GAAG,SAAS,KAAK,KAAK,cAAc,GAAG,SAChE,KAAK,KAAK;AAEb,QAAI,CAAC,QAAQ;AACZ,YAAM,IAAI,MAAM;AAAA,IAAA;AAEV,WAAA;AAAA,EAAA;AAET;AAEO,MAAM,qCAAqCC,oBAAAA,uBAAuB;AAAA,EACxE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAeM,MAAM,6BAA+C;AAAA,EAC3D,WAAW,gBAAwB,eAAuB;AACzD,WAAO,OAAO,OAAO,eAAe,MAAM,QAAQ,EAAE;AAAA,MAAQ,CAC3D,WAAA,OAAO,OACL,OAAO,CAAM,OAAA;AACb,cAAM,gBAAgB,cAAc,MAAM,SAAS,OAAO,IAAI;AAC9D,YAAI,CAAC,eAAe;AACZ,iBAAA;AAAA,QAAA;AAER,eAAO,CAAC,cAAc,OAAO,KAAK,UAAQ,UAAU,KAAK,QAAQ,GAAG,MAAM,KAAK,GAAG,WAAW,KAAK,MAAM;AAAA,MACxG,CAAA,EACA;AAAA,QAAI,CAAA,WACJ,mCAAmC,mBAAmB;AAAA,UACrD,YAAY,OAAO;AAAA,UACnB,QAAQ,OAAO;AAAA,QACf,CAAA;AAAA,MAAA;AAAA,IAEJ;AAAA,EAAA;AAEF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"RemoveUniqueConstraintModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/constraints/RemoveUniqueConstraintModification.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateModel } from '../utils/schemaUpdateUtils'\nimport {\n\tcreateModificationType,\n\tDiffer,\n\tModificationHandler,\n\tModificationHandlerCreateSqlOptions,\n} from '../ModificationHandler'\nimport deepEqual from 'fast-deep-equal'\nimport { getUniqueConstraintColumns } from './utils'\nimport { wrapIdentifier } from '../../utils/dbHelpers'\n\nexport class RemoveUniqueConstraintModificationHandler implements ModificationHandler<RemoveUniqueConstraintModificationData> {\n\tconstructor(private readonly data: RemoveUniqueConstraintModificationData, private readonly schema: Schema) {\n\t}\n\n\tpublic createSql(builder: MigrationBuilder, { databaseMetadata, invalidateDatabaseMetadata }: ModificationHandlerCreateSqlOptions): 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\n\t\tconst fields = this.getFields()\n\n\t\tconst columns = getUniqueConstraintColumns({\n\t\t\tentity,\n\t\t\tfields: fields,\n\t\t\tmodel: this.schema.model,\n\t\t})\n\n\t\tconst constraintNames = databaseMetadata.uniqueConstraints.filter({ tableName: entity.tableName, columnNames: columns }).getNames()\n\n\t\tfor (const name of constraintNames) {\n\t\t\tbuilder.sql(`ALTER TABLE ${wrapIdentifier(entity.tableName)} DROP CONSTRAINT ${wrapIdentifier(name)}`)\n\t\t}\n\n\t\tinvalidateDatabaseMetadata()\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\tconst fields = this.getFields()\n\t\treturn updateModel(\n\t\t\tupdateEntity(this.data.entityName, ({ entity }) => {\n\t\t\t\tconst unique = entity.unique.filter(it => !deepEqual(it.fields, fields))\n\t\t\t\treturn {\n\t\t\t\t\t...entity,\n\t\t\t\t\tunique,\n\t\t\t\t}\n\t\t\t}),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\tconst fields = this.getFields()\n\t\treturn { message: `Remove unique constraint (${fields.join(', ')}) on entity ${this.data.entityName}` }\n\t}\n\n\tgetFields() {\n\t\tconst entity = this.schema.model.entities[this.data.entityName]\n\t\tconst fields = 'constraintName' in this.data\n\t\t\t? entity.unique.find(it => it.name === this.data.constraintName)?.fields\n\t\t\t: this.data.fields\n\n\t\tif (!fields) {\n\t\t\tthrow new Error()\n\t\t}\n\t\treturn fields\n\t}\n}\n\nexport const removeUniqueConstraintModification = createModificationType({\n\tid: 'removeUniqueConstraint',\n\thandler: RemoveUniqueConstraintModificationHandler,\n})\n\nexport type RemoveUniqueConstraintModificationData =\n\t| {\n\t\tentityName: string\n\t\tconstraintName: string\n\t\tfields?: never\n\t}\n\t| {\n\t\tentityName: string\n\t\tfields: readonly string[]\n\t\tconstraintName?: never\n\t}\n\n\nexport class RemoveUniqueConstraintDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn Object.values(originalSchema.model.entities).flatMap(entity =>\n\t\t\tentity.unique\n\t\t\t\t.filter(it => {\n\t\t\t\t\tconst updatedEntity = updatedSchema.model.entities[entity.name]\n\t\t\t\t\tif (!updatedEntity) {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t\treturn !updatedEntity.unique.find(uniq => deepEqual(uniq.fields, it.fields) && it.timing === uniq.timing)\n\t\t\t\t})\n\t\t\t\t.map(unique =>\n\t\t\t\t\tremoveUniqueConstraintModification.createModification({\n\t\t\t\t\t\tentityName: entity.name,\n\t\t\t\t\t\tfields: unique.fields,\n\t\t\t\t\t}),\n\t\t\t\t),\n\t\t)\n\t}\n}\n"],"names":[],"mappings":";;;;;AAaO,MAAM,0CAAiH;AAAA,EAC7H,YAA6B,MAA+D,QAAgB;AAA/E,SAAA,OAAA;AAA+D,SAAA,SAAA;AAAA,EAC5F;AAAA,EAEO,UAAU,SAA2B,EAAE,kBAAkB,8BAAyE;AACxI,UAAM,SAAS,KAAK,OAAO,MAAM,SAAS,KAAK,KAAK,UAAU;AAC9D,QAAI,OAAO,MAAM;AAChB;AAAA,IACD;AAEM,UAAA,SAAS,KAAK;AAEpB,UAAM,UAAU,2BAA2B;AAAA,MAC1C;AAAA,MACA;AAAA,MACA,OAAO,KAAK,OAAO;AAAA,IAAA,CACnB;AAED,UAAM,kBAAkB,iBAAiB,kBAAkB,OAAO,EAAE,WAAW,OAAO,WAAW,aAAa,SAAS,EAAE,SAAS;AAElI,eAAW,QAAQ,iBAAiB;AAC3B,cAAA,IAAI,eAAe,eAAe,OAAO,SAAS,CAAC,oBAAoB,eAAe,IAAI,CAAC,EAAE;AAAA,IACtG;AAE2B;EAC5B;AAAA,EAEO,mBAAkC;AAClC,UAAA,SAAS,KAAK;AACb,WAAA;AAAA,MACN,aAAa,KAAK,KAAK,YAAY,CAAC,EAAE,aAAa;AAC5C,cAAA,SAAS,OAAO,OAAO,OAAO,CAAA,OAAM,CAAC,UAAU,GAAG,QAAQ,MAAM,CAAC;AAChE,eAAA;AAAA,UACN,GAAG;AAAA,UACH;AAAA,QAAA;AAAA,MACD,CACA;AAAA,IAAA;AAAA,EAEH;AAAA,EAEA,WAAW;AACJ,UAAA,SAAS,KAAK;AACb,WAAA,EAAE,SAAS,6BAA6B,OAAO,KAAK,IAAI,CAAC,eAAe,KAAK,KAAK,UAAU,GAAG;AAAA,EACvG;AAAA,EAEA,YAAY;AACX,UAAM,SAAS,KAAK,OAAO,MAAM,SAAS,KAAK,KAAK,UAAU;AAC9D,UAAM,SAAS,oBAAoB,KAAK,OACrC,OAAO,OAAO,KAAK,CAAA,OAAM,GAAG,SAAS,KAAK,KAAK,cAAc,GAAG,SAChE,KAAK,KAAK;AAEb,QAAI,CAAC,QAAQ;AACZ,YAAM,IAAI,MAAM;AAAA,IACjB;AACO,WAAA;AAAA,EACR;AACD;AAEO,MAAM,qCAAqC,uBAAuB;AAAA,EACxE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAeM,MAAM,6BAA+C;AAAA,EAC3D,WAAW,gBAAwB,eAAuB;AACzD,WAAO,OAAO,OAAO,eAAe,MAAM,QAAQ,EAAE;AAAA,MAAQ,CAC3D,WAAA,OAAO,OACL,OAAO,CAAM,OAAA;AACb,cAAM,gBAAgB,cAAc,MAAM,SAAS,OAAO,IAAI;AAC9D,YAAI,CAAC,eAAe;AACZ,iBAAA;AAAA,QACR;AACA,eAAO,CAAC,cAAc,OAAO,KAAK,UAAQ,UAAU,KAAK,QAAQ,GAAG,MAAM,KAAK,GAAG,WAAW,KAAK,MAAM;AAAA,MACxG,CAAA,EACA;AAAA,QAAI,CAAA,WACJ,mCAAmC,mBAAmB;AAAA,UACrD,YAAY,OAAO;AAAA,UACnB,QAAQ,OAAO;AAAA,QAAA,CACf;AAAA,MACF;AAAA,IAAA;AAAA,EAEH;AACD;"}
1
+ {"version":3,"file":"RemoveUniqueConstraintModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/constraints/RemoveUniqueConstraintModification.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateModel } from '../utils/schemaUpdateUtils'\nimport {\n\tcreateModificationType,\n\tDiffer,\n\tModificationHandler,\n\tModificationHandlerCreateSqlOptions,\n} from '../ModificationHandler'\nimport deepEqual from 'fast-deep-equal'\nimport { getUniqueConstraintColumns } from './utils'\nimport { wrapIdentifier } from '../../utils/dbHelpers'\n\nexport class RemoveUniqueConstraintModificationHandler implements ModificationHandler<RemoveUniqueConstraintModificationData> {\n\tconstructor(private readonly data: RemoveUniqueConstraintModificationData, private readonly schema: Schema) {\n\t}\n\n\tpublic createSql(builder: MigrationBuilder, { databaseMetadata, invalidateDatabaseMetadata }: ModificationHandlerCreateSqlOptions): 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\n\t\tconst fields = this.getFields()\n\n\t\tconst columns = getUniqueConstraintColumns({\n\t\t\tentity,\n\t\t\tfields: fields,\n\t\t\tmodel: this.schema.model,\n\t\t})\n\n\t\tconst constraintNames = databaseMetadata.uniqueConstraints.filter({ tableName: entity.tableName, columnNames: columns }).getNames()\n\n\t\tfor (const name of constraintNames) {\n\t\t\tbuilder.sql(`ALTER TABLE ${wrapIdentifier(entity.tableName)} DROP CONSTRAINT ${wrapIdentifier(name)}`)\n\t\t}\n\n\t\tinvalidateDatabaseMetadata()\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\tconst fields = this.getFields()\n\t\treturn updateModel(\n\t\t\tupdateEntity(this.data.entityName, ({ entity }) => {\n\t\t\t\tconst unique = entity.unique.filter(it => !deepEqual(it.fields, fields))\n\t\t\t\treturn {\n\t\t\t\t\t...entity,\n\t\t\t\t\tunique,\n\t\t\t\t}\n\t\t\t}),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\tconst fields = this.getFields()\n\t\treturn { message: `Remove unique constraint (${fields.join(', ')}) on entity ${this.data.entityName}` }\n\t}\n\n\tgetFields() {\n\t\tconst entity = this.schema.model.entities[this.data.entityName]\n\t\tconst fields = 'constraintName' in this.data\n\t\t\t? entity.unique.find(it => it.name === this.data.constraintName)?.fields\n\t\t\t: this.data.fields\n\n\t\tif (!fields) {\n\t\t\tthrow new Error()\n\t\t}\n\t\treturn fields\n\t}\n}\n\nexport const removeUniqueConstraintModification = createModificationType({\n\tid: 'removeUniqueConstraint',\n\thandler: RemoveUniqueConstraintModificationHandler,\n})\n\nexport type RemoveUniqueConstraintModificationData =\n\t| {\n\t\tentityName: string\n\t\tconstraintName: string\n\t\tfields?: never\n\t}\n\t| {\n\t\tentityName: string\n\t\tfields: readonly string[]\n\t\tconstraintName?: never\n\t}\n\n\nexport class RemoveUniqueConstraintDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn Object.values(originalSchema.model.entities).flatMap(entity =>\n\t\t\tentity.unique\n\t\t\t\t.filter(it => {\n\t\t\t\t\tconst updatedEntity = updatedSchema.model.entities[entity.name]\n\t\t\t\t\tif (!updatedEntity) {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t\treturn !updatedEntity.unique.find(uniq => deepEqual(uniq.fields, it.fields) && it.timing === uniq.timing)\n\t\t\t\t})\n\t\t\t\t.map(unique =>\n\t\t\t\t\tremoveUniqueConstraintModification.createModification({\n\t\t\t\t\t\tentityName: entity.name,\n\t\t\t\t\t\tfields: unique.fields,\n\t\t\t\t\t}),\n\t\t\t\t),\n\t\t)\n\t}\n}\n"],"names":[],"mappings":";;;;;AAaO,MAAM,0CAAiH;AAAA,EAC7H,YAA6B,MAA+D,QAAgB;AAA/E,SAAA,OAAA;AAA+D,SAAA,SAAA;AAAA,EAAA;AAAA,EAGrF,UAAU,SAA2B,EAAE,kBAAkB,8BAAyE;AACxI,UAAM,SAAS,KAAK,OAAO,MAAM,SAAS,KAAK,KAAK,UAAU;AAC9D,QAAI,OAAO,MAAM;AAChB;AAAA,IAAA;AAGK,UAAA,SAAS,KAAK,UAAU;AAE9B,UAAM,UAAU,2BAA2B;AAAA,MAC1C;AAAA,MACA;AAAA,MACA,OAAO,KAAK,OAAO;AAAA,IAAA,CACnB;AAED,UAAM,kBAAkB,iBAAiB,kBAAkB,OAAO,EAAE,WAAW,OAAO,WAAW,aAAa,QAAS,CAAA,EAAE,SAAS;AAElI,eAAW,QAAQ,iBAAiB;AAC3B,cAAA,IAAI,eAAe,eAAe,OAAO,SAAS,CAAC,oBAAoB,eAAe,IAAI,CAAC,EAAE;AAAA,IAAA;AAG3E,+BAAA;AAAA,EAAA;AAAA,EAGrB,mBAAkC;AAClC,UAAA,SAAS,KAAK,UAAU;AACvB,WAAA;AAAA,MACN,aAAa,KAAK,KAAK,YAAY,CAAC,EAAE,aAAa;AAC5C,cAAA,SAAS,OAAO,OAAO,OAAO,CAAA,OAAM,CAAC,UAAU,GAAG,QAAQ,MAAM,CAAC;AAChE,eAAA;AAAA,UACN,GAAG;AAAA,UACH;AAAA,QACD;AAAA,MACA,CAAA;AAAA,IACF;AAAA,EAAA;AAAA,EAGD,WAAW;AACJ,UAAA,SAAS,KAAK,UAAU;AACvB,WAAA,EAAE,SAAS,6BAA6B,OAAO,KAAK,IAAI,CAAC,eAAe,KAAK,KAAK,UAAU,GAAG;AAAA,EAAA;AAAA,EAGvG,YAAY;AACX,UAAM,SAAS,KAAK,OAAO,MAAM,SAAS,KAAK,KAAK,UAAU;AAC9D,UAAM,SAAS,oBAAoB,KAAK,OACrC,OAAO,OAAO,KAAK,CAAA,OAAM,GAAG,SAAS,KAAK,KAAK,cAAc,GAAG,SAChE,KAAK,KAAK;AAEb,QAAI,CAAC,QAAQ;AACZ,YAAM,IAAI,MAAM;AAAA,IAAA;AAEV,WAAA;AAAA,EAAA;AAET;AAEO,MAAM,qCAAqC,uBAAuB;AAAA,EACxE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAeM,MAAM,6BAA+C;AAAA,EAC3D,WAAW,gBAAwB,eAAuB;AACzD,WAAO,OAAO,OAAO,eAAe,MAAM,QAAQ,EAAE;AAAA,MAAQ,CAC3D,WAAA,OAAO,OACL,OAAO,CAAM,OAAA;AACb,cAAM,gBAAgB,cAAc,MAAM,SAAS,OAAO,IAAI;AAC9D,YAAI,CAAC,eAAe;AACZ,iBAAA;AAAA,QAAA;AAER,eAAO,CAAC,cAAc,OAAO,KAAK,UAAQ,UAAU,KAAK,QAAQ,GAAG,MAAM,KAAK,GAAG,WAAW,KAAK,MAAM;AAAA,MACxG,CAAA,EACA;AAAA,QAAI,CAAA,WACJ,mCAAmC,mBAAmB;AAAA,UACrD,YAAY,OAAO;AAAA,UACnB,QAAQ,OAAO;AAAA,QACf,CAAA;AAAA,MAAA;AAAA,IAEJ;AAAA,EAAA;AAEF;"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/constraints/utils.ts"],"sourcesContent":["import { acceptFieldVisitor } from '@contember/schema-utils'\nimport { Model } from '@contember/schema'\n\nexport const getUniqueConstraintColumns = ({ entity, fields, model }: {\n\tfields: readonly string[]\n\tmodel: Model.Schema\n\tentity: Model.Entity\n}) => {\n\treturn fields.map(fieldName => {\n\t\treturn acceptFieldVisitor(model, entity, fieldName, {\n\t\t\tvisitColumn: ({ column }) => {\n\t\t\t\treturn column.columnName\n\t\t\t},\n\t\t\tvisitManyHasOne: ({ relation }) => {\n\t\t\t\treturn relation.joiningColumn.columnName\n\t\t\t},\n\t\t\tvisitOneHasMany: () => {\n\t\t\t\tthrow new Error(`Cannot create unique key on 1:m relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t\tvisitOneHasOneOwning: () => {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Cannot create unique key on 1:1 relation, this relation has unique key by default in ${entity.name}.${fieldName}`,\n\t\t\t\t)\n\t\t\t},\n\t\t\tvisitOneHasOneInverse: () => {\n\t\t\t\tthrow new Error(`Cannot create unique key on 1:1 inverse relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t\tvisitManyHasManyOwning: () => {\n\t\t\t\tthrow new Error(`Cannot create unique key on m:m relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t\tvisitManyHasManyInverse: () => {\n\t\t\t\tthrow new Error(`Cannot create unique key on m:m inverse relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t})\n\t})\n}\n"],"names":["acceptFieldVisitor"],"mappings":";;;AAGO,MAAM,6BAA6B,CAAC,EAAE,QAAQ,QAAQ,YAIvD;AACE,SAAA,OAAO,IAAI,CAAa,cAAA;AACvB,WAAAA,+BAAmB,OAAO,QAAQ,WAAW;AAAA,MACnD,aAAa,CAAC,EAAE,aAAa;AAC5B,eAAO,OAAO;AAAA,MACf;AAAA,MACA,iBAAiB,CAAC,EAAE,eAAe;AAClC,eAAO,SAAS,cAAc;AAAA,MAC/B;AAAA,MACA,iBAAiB,MAAM;AACtB,cAAM,IAAI,MAAM,+CAA+C,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MAC1F;AAAA,MACA,sBAAsB,MAAM;AAC3B,cAAM,IAAI;AAAA,UACT,wFAAwF,OAAO,IAAI,IAAI,SAAS;AAAA,QAAA;AAAA,MAElH;AAAA,MACA,uBAAuB,MAAM;AAC5B,cAAM,IAAI,MAAM,uDAAuD,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MAClG;AAAA,MACA,wBAAwB,MAAM;AAC7B,cAAM,IAAI,MAAM,+CAA+C,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MAC1F;AAAA,MACA,yBAAyB,MAAM;AAC9B,cAAM,IAAI,MAAM,uDAAuD,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MAClG;AAAA,IAAA,CACA;AAAA,EAAA,CACD;AACF;;"}
1
+ {"version":3,"file":"utils.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/constraints/utils.ts"],"sourcesContent":["import { acceptFieldVisitor } from '@contember/schema-utils'\nimport { Model } from '@contember/schema'\n\nexport const getUniqueConstraintColumns = ({ entity, fields, model }: {\n\tfields: readonly string[]\n\tmodel: Model.Schema\n\tentity: Model.Entity\n}) => {\n\treturn fields.map(fieldName => {\n\t\treturn acceptFieldVisitor(model, entity, fieldName, {\n\t\t\tvisitColumn: ({ column }) => {\n\t\t\t\treturn column.columnName\n\t\t\t},\n\t\t\tvisitManyHasOne: ({ relation }) => {\n\t\t\t\treturn relation.joiningColumn.columnName\n\t\t\t},\n\t\t\tvisitOneHasMany: () => {\n\t\t\t\tthrow new Error(`Cannot create unique key on 1:m relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t\tvisitOneHasOneOwning: () => {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Cannot create unique key on 1:1 relation, this relation has unique key by default in ${entity.name}.${fieldName}`,\n\t\t\t\t)\n\t\t\t},\n\t\t\tvisitOneHasOneInverse: () => {\n\t\t\t\tthrow new Error(`Cannot create unique key on 1:1 inverse relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t\tvisitManyHasManyOwning: () => {\n\t\t\t\tthrow new Error(`Cannot create unique key on m:m relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t\tvisitManyHasManyInverse: () => {\n\t\t\t\tthrow new Error(`Cannot create unique key on m:m inverse relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t})\n\t})\n}\n"],"names":["acceptFieldVisitor"],"mappings":";;;AAGO,MAAM,6BAA6B,CAAC,EAAE,QAAQ,QAAQ,YAIvD;AACE,SAAA,OAAO,IAAI,CAAa,cAAA;AACvB,WAAAA,+BAAmB,OAAO,QAAQ,WAAW;AAAA,MACnD,aAAa,CAAC,EAAE,aAAa;AAC5B,eAAO,OAAO;AAAA,MACf;AAAA,MACA,iBAAiB,CAAC,EAAE,eAAe;AAClC,eAAO,SAAS,cAAc;AAAA,MAC/B;AAAA,MACA,iBAAiB,MAAM;AACtB,cAAM,IAAI,MAAM,+CAA+C,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MAC1F;AAAA,MACA,sBAAsB,MAAM;AAC3B,cAAM,IAAI;AAAA,UACT,wFAAwF,OAAO,IAAI,IAAI,SAAS;AAAA,QACjH;AAAA,MACD;AAAA,MACA,uBAAuB,MAAM;AAC5B,cAAM,IAAI,MAAM,uDAAuD,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MAClG;AAAA,MACA,wBAAwB,MAAM;AAC7B,cAAM,IAAI,MAAM,+CAA+C,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MAC1F;AAAA,MACA,yBAAyB,MAAM;AAC9B,cAAM,IAAI,MAAM,uDAAuD,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MAAA;AAAA,IAClG,CACA;AAAA,EAAA,CACD;AACF;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../../../packages/schema-migrations/src/modifications/constraints/utils.ts"],"sourcesContent":["import { acceptFieldVisitor } from '@contember/schema-utils'\nimport { Model } from '@contember/schema'\n\nexport const getUniqueConstraintColumns = ({ entity, fields, model }: {\n\tfields: readonly string[]\n\tmodel: Model.Schema\n\tentity: Model.Entity\n}) => {\n\treturn fields.map(fieldName => {\n\t\treturn acceptFieldVisitor(model, entity, fieldName, {\n\t\t\tvisitColumn: ({ column }) => {\n\t\t\t\treturn column.columnName\n\t\t\t},\n\t\t\tvisitManyHasOne: ({ relation }) => {\n\t\t\t\treturn relation.joiningColumn.columnName\n\t\t\t},\n\t\t\tvisitOneHasMany: () => {\n\t\t\t\tthrow new Error(`Cannot create unique key on 1:m relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t\tvisitOneHasOneOwning: () => {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Cannot create unique key on 1:1 relation, this relation has unique key by default in ${entity.name}.${fieldName}`,\n\t\t\t\t)\n\t\t\t},\n\t\t\tvisitOneHasOneInverse: () => {\n\t\t\t\tthrow new Error(`Cannot create unique key on 1:1 inverse relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t\tvisitManyHasManyOwning: () => {\n\t\t\t\tthrow new Error(`Cannot create unique key on m:m relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t\tvisitManyHasManyInverse: () => {\n\t\t\t\tthrow new Error(`Cannot create unique key on m:m inverse relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t})\n\t})\n}\n"],"names":[],"mappings":";AAGO,MAAM,6BAA6B,CAAC,EAAE,QAAQ,QAAQ,YAIvD;AACE,SAAA,OAAO,IAAI,CAAa,cAAA;AACvB,WAAA,mBAAmB,OAAO,QAAQ,WAAW;AAAA,MACnD,aAAa,CAAC,EAAE,aAAa;AAC5B,eAAO,OAAO;AAAA,MACf;AAAA,MACA,iBAAiB,CAAC,EAAE,eAAe;AAClC,eAAO,SAAS,cAAc;AAAA,MAC/B;AAAA,MACA,iBAAiB,MAAM;AACtB,cAAM,IAAI,MAAM,+CAA+C,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MAC1F;AAAA,MACA,sBAAsB,MAAM;AAC3B,cAAM,IAAI;AAAA,UACT,wFAAwF,OAAO,IAAI,IAAI,SAAS;AAAA,QAAA;AAAA,MAElH;AAAA,MACA,uBAAuB,MAAM;AAC5B,cAAM,IAAI,MAAM,uDAAuD,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MAClG;AAAA,MACA,wBAAwB,MAAM;AAC7B,cAAM,IAAI,MAAM,+CAA+C,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MAC1F;AAAA,MACA,yBAAyB,MAAM;AAC9B,cAAM,IAAI,MAAM,uDAAuD,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MAClG;AAAA,IAAA,CACA;AAAA,EAAA,CACD;AACF;"}
1
+ {"version":3,"file":"utils.js","sources":["../../../../../../packages/schema-migrations/src/modifications/constraints/utils.ts"],"sourcesContent":["import { acceptFieldVisitor } from '@contember/schema-utils'\nimport { Model } from '@contember/schema'\n\nexport const getUniqueConstraintColumns = ({ entity, fields, model }: {\n\tfields: readonly string[]\n\tmodel: Model.Schema\n\tentity: Model.Entity\n}) => {\n\treturn fields.map(fieldName => {\n\t\treturn acceptFieldVisitor(model, entity, fieldName, {\n\t\t\tvisitColumn: ({ column }) => {\n\t\t\t\treturn column.columnName\n\t\t\t},\n\t\t\tvisitManyHasOne: ({ relation }) => {\n\t\t\t\treturn relation.joiningColumn.columnName\n\t\t\t},\n\t\t\tvisitOneHasMany: () => {\n\t\t\t\tthrow new Error(`Cannot create unique key on 1:m relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t\tvisitOneHasOneOwning: () => {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Cannot create unique key on 1:1 relation, this relation has unique key by default in ${entity.name}.${fieldName}`,\n\t\t\t\t)\n\t\t\t},\n\t\t\tvisitOneHasOneInverse: () => {\n\t\t\t\tthrow new Error(`Cannot create unique key on 1:1 inverse relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t\tvisitManyHasManyOwning: () => {\n\t\t\t\tthrow new Error(`Cannot create unique key on m:m relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t\tvisitManyHasManyInverse: () => {\n\t\t\t\tthrow new Error(`Cannot create unique key on m:m inverse relation in ${entity.name}.${fieldName}`)\n\t\t\t},\n\t\t})\n\t})\n}\n"],"names":[],"mappings":";AAGO,MAAM,6BAA6B,CAAC,EAAE,QAAQ,QAAQ,YAIvD;AACE,SAAA,OAAO,IAAI,CAAa,cAAA;AACvB,WAAA,mBAAmB,OAAO,QAAQ,WAAW;AAAA,MACnD,aAAa,CAAC,EAAE,aAAa;AAC5B,eAAO,OAAO;AAAA,MACf;AAAA,MACA,iBAAiB,CAAC,EAAE,eAAe;AAClC,eAAO,SAAS,cAAc;AAAA,MAC/B;AAAA,MACA,iBAAiB,MAAM;AACtB,cAAM,IAAI,MAAM,+CAA+C,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MAC1F;AAAA,MACA,sBAAsB,MAAM;AAC3B,cAAM,IAAI;AAAA,UACT,wFAAwF,OAAO,IAAI,IAAI,SAAS;AAAA,QACjH;AAAA,MACD;AAAA,MACA,uBAAuB,MAAM;AAC5B,cAAM,IAAI,MAAM,uDAAuD,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MAClG;AAAA,MACA,wBAAwB,MAAM;AAC7B,cAAM,IAAI,MAAM,+CAA+C,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MAC1F;AAAA,MACA,yBAAyB,MAAM;AAC9B,cAAM,IAAI,MAAM,uDAAuD,OAAO,IAAI,IAAI,SAAS,EAAE;AAAA,MAAA;AAAA,IAClG,CACA;AAAA,EAAA,CACD;AACF;"}
@@ -1 +1 @@
1
- {"version":3,"file":"RemoveChangedFieldDiffer.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/differs/RemoveChangedFieldDiffer.ts"],"sourcesContent":["import { Differ } from '../ModificationHandler'\nimport { Model, Schema } from '@contember/schema'\nimport { updateFields } from '../utils/diffUtils'\nimport deepEqual from 'fast-deep-equal'\nimport { removeFieldModification } from '../fields'\n\nexport class RemoveChangedFieldDiffer implements Differ {\n\tconstructor(\n\t\tprivate readonly matcher: (originalField: Model.AnyField) => boolean,\n\t) {\n\t}\n\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn updateFields(originalSchema, updatedSchema, ({ updatedField, originalField, updatedEntity }) => {\n\t\t\tif (!this.matcher(originalField)) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\tif (!deepEqual({ ...updatedField, inversedBy: undefined }, { ...originalField, inversedBy: undefined })) {\n\t\t\t\treturn [\n\t\t\t\t\tremoveFieldModification.createModification({\n\t\t\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\t\t\tfieldName: updatedField.name,\n\t\t\t\t\t}),\n\t\t\t\t]\n\t\t\t}\n\t\t})\n\t}\n}\n"],"names":["updateFields","removeFieldModification"],"mappings":";;;;;;;;AAMO,MAAM,yBAA2C;AAAA,EACvD,YACkB,SAChB;AADgB,SAAA,UAAA;AAAA,EAElB;AAAA,EAEA,WAAW,gBAAwB,eAAuB;AAClD,WAAAA,UAAAA,aAAa,gBAAgB,eAAe,CAAC,EAAE,cAAc,eAAe,oBAAoB;AACtG,UAAI,CAAC,KAAK,QAAQ,aAAa,GAAG;AAC1B,eAAA;AAAA,MACR;AACA,UAAI,CAAC,UAAU,EAAE,GAAG,cAAc,YAAY,UAAa,EAAE,GAAG,eAAe,YAAY,OAAW,CAAA,GAAG;AACjG,eAAA;AAAA,UACNC,wBAAAA,wBAAwB,mBAAmB;AAAA,YAC1C,YAAY,cAAc;AAAA,YAC1B,WAAW,aAAa;AAAA,UAAA,CACxB;AAAA,QAAA;AAAA,MAEH;AAAA,IAAA,CACA;AAAA,EACF;AACD;;"}
1
+ {"version":3,"file":"RemoveChangedFieldDiffer.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/differs/RemoveChangedFieldDiffer.ts"],"sourcesContent":["import { Differ } from '../ModificationHandler'\nimport { Model, Schema } from '@contember/schema'\nimport { updateFields } from '../utils/diffUtils'\nimport deepEqual from 'fast-deep-equal'\nimport { removeFieldModification } from '../fields'\n\nexport class RemoveChangedFieldDiffer implements Differ {\n\tconstructor(\n\t\tprivate readonly matcher: (originalField: Model.AnyField) => boolean,\n\t) {\n\t}\n\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn updateFields(originalSchema, updatedSchema, ({ updatedField, originalField, updatedEntity }) => {\n\t\t\tif (!this.matcher(originalField)) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\tif (!deepEqual({ ...updatedField, inversedBy: undefined }, { ...originalField, inversedBy: undefined })) {\n\t\t\t\treturn [\n\t\t\t\t\tremoveFieldModification.createModification({\n\t\t\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\t\t\tfieldName: updatedField.name,\n\t\t\t\t\t}),\n\t\t\t\t]\n\t\t\t}\n\t\t})\n\t}\n}\n"],"names":["updateFields","removeFieldModification"],"mappings":";;;;;;;;AAMO,MAAM,yBAA2C;AAAA,EACvD,YACkB,SAChB;AADgB,SAAA,UAAA;AAAA,EAAA;AAAA,EAIlB,WAAW,gBAAwB,eAAuB;AAClD,WAAAA,UAAAA,aAAa,gBAAgB,eAAe,CAAC,EAAE,cAAc,eAAe,oBAAoB;AACtG,UAAI,CAAC,KAAK,QAAQ,aAAa,GAAG;AAC1B,eAAA;AAAA,MAAA;AAER,UAAI,CAAC,UAAU,EAAE,GAAG,cAAc,YAAY,UAAa,EAAE,GAAG,eAAe,YAAY,OAAW,CAAA,GAAG;AACjG,eAAA;AAAA,UACNC,wBAAAA,wBAAwB,mBAAmB;AAAA,YAC1C,YAAY,cAAc;AAAA,YAC1B,WAAW,aAAa;AAAA,UACxB,CAAA;AAAA,QACF;AAAA,MAAA;AAAA,IACD,CACA;AAAA,EAAA;AAEH;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"RemoveChangedFieldDiffer.js","sources":["../../../../../../packages/schema-migrations/src/modifications/differs/RemoveChangedFieldDiffer.ts"],"sourcesContent":["import { Differ } from '../ModificationHandler'\nimport { Model, Schema } from '@contember/schema'\nimport { updateFields } from '../utils/diffUtils'\nimport deepEqual from 'fast-deep-equal'\nimport { removeFieldModification } from '../fields'\n\nexport class RemoveChangedFieldDiffer implements Differ {\n\tconstructor(\n\t\tprivate readonly matcher: (originalField: Model.AnyField) => boolean,\n\t) {\n\t}\n\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn updateFields(originalSchema, updatedSchema, ({ updatedField, originalField, updatedEntity }) => {\n\t\t\tif (!this.matcher(originalField)) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\tif (!deepEqual({ ...updatedField, inversedBy: undefined }, { ...originalField, inversedBy: undefined })) {\n\t\t\t\treturn [\n\t\t\t\t\tremoveFieldModification.createModification({\n\t\t\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\t\t\tfieldName: updatedField.name,\n\t\t\t\t\t}),\n\t\t\t\t]\n\t\t\t}\n\t\t})\n\t}\n}\n"],"names":[],"mappings":";;;;;;AAMO,MAAM,yBAA2C;AAAA,EACvD,YACkB,SAChB;AADgB,SAAA,UAAA;AAAA,EAElB;AAAA,EAEA,WAAW,gBAAwB,eAAuB;AAClD,WAAA,aAAa,gBAAgB,eAAe,CAAC,EAAE,cAAc,eAAe,oBAAoB;AACtG,UAAI,CAAC,KAAK,QAAQ,aAAa,GAAG;AAC1B,eAAA;AAAA,MACR;AACA,UAAI,CAAC,UAAU,EAAE,GAAG,cAAc,YAAY,UAAa,EAAE,GAAG,eAAe,YAAY,OAAW,CAAA,GAAG;AACjG,eAAA;AAAA,UACN,wBAAwB,mBAAmB;AAAA,YAC1C,YAAY,cAAc;AAAA,YAC1B,WAAW,aAAa;AAAA,UAAA,CACxB;AAAA,QAAA;AAAA,MAEH;AAAA,IAAA,CACA;AAAA,EACF;AACD;"}
1
+ {"version":3,"file":"RemoveChangedFieldDiffer.js","sources":["../../../../../../packages/schema-migrations/src/modifications/differs/RemoveChangedFieldDiffer.ts"],"sourcesContent":["import { Differ } from '../ModificationHandler'\nimport { Model, Schema } from '@contember/schema'\nimport { updateFields } from '../utils/diffUtils'\nimport deepEqual from 'fast-deep-equal'\nimport { removeFieldModification } from '../fields'\n\nexport class RemoveChangedFieldDiffer implements Differ {\n\tconstructor(\n\t\tprivate readonly matcher: (originalField: Model.AnyField) => boolean,\n\t) {\n\t}\n\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn updateFields(originalSchema, updatedSchema, ({ updatedField, originalField, updatedEntity }) => {\n\t\t\tif (!this.matcher(originalField)) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\tif (!deepEqual({ ...updatedField, inversedBy: undefined }, { ...originalField, inversedBy: undefined })) {\n\t\t\t\treturn [\n\t\t\t\t\tremoveFieldModification.createModification({\n\t\t\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\t\t\tfieldName: updatedField.name,\n\t\t\t\t\t}),\n\t\t\t\t]\n\t\t\t}\n\t\t})\n\t}\n}\n"],"names":[],"mappings":";;;;;;AAMO,MAAM,yBAA2C;AAAA,EACvD,YACkB,SAChB;AADgB,SAAA,UAAA;AAAA,EAAA;AAAA,EAIlB,WAAW,gBAAwB,eAAuB;AAClD,WAAA,aAAa,gBAAgB,eAAe,CAAC,EAAE,cAAc,eAAe,oBAAoB;AACtG,UAAI,CAAC,KAAK,QAAQ,aAAa,GAAG;AAC1B,eAAA;AAAA,MAAA;AAER,UAAI,CAAC,UAAU,EAAE,GAAG,cAAc,YAAY,UAAa,EAAE,GAAG,eAAe,YAAY,OAAW,CAAA,GAAG;AACjG,eAAA;AAAA,UACN,wBAAwB,mBAAmB;AAAA,YAC1C,YAAY,cAAc;AAAA,YAC1B,WAAW,aAAa;AAAA,UACxB,CAAA;AAAA,QACF;AAAA,MAAA;AAAA,IACD,CACA;AAAA,EAAA;AAEH;"}
@@ -1 +1 @@
1
- {"version":3,"file":"RemoveViewDiffer.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/differs/RemoveViewDiffer.ts"],"sourcesContent":["import { Differ } from '../ModificationHandler'\nimport { Schema } from '@contember/schema'\nimport deepEqual from 'fast-deep-equal'\nimport { cascadeRemoveDependantViews } from '../utils/viewDependencies'\nimport { UpdateColumnDefinitionDiffer } from '../columns'\n\n/**\n * Remove changed or removed view.\n */\nexport class RemoveViewDiffer implements Differ {\n\tconstructor() {\n\t}\n\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\tconst changedOrRemovedViews = Object.values(originalSchema.model.entities)\n\t\t\t.filter(it => {\n\t\t\t\tconst updatedEntity = updatedSchema.model.entities[it.name]\n\n\t\t\t\tif (!updatedEntity && !!it.view) {\n\t\t\t\t\treturn true // view entity removed\n\t\t\t\t}\n\n\t\t\t\tif (!updatedEntity) {\n\t\t\t\t\treturn false // non-view entity removed\n\t\t\t\t}\n\n\t\t\t\tif (!updatedEntity.view && !it.view) {\n\t\t\t\t\treturn false // none is view\n\t\t\t\t}\n\n\t\t\t\tif (!!it.view !== !!updatedEntity.view) {\n\t\t\t\t\treturn true // change between regular entity and view entity\n\t\t\t\t}\n\n\t\t\t\tif (!deepEqual(updatedEntity.view, it.view)) {\n\t\t\t\t\treturn true // view is different\n\t\t\t\t}\n\n\t\t\t\treturn false\n\t\t\t})\n\n\t\tconst columnDiffer = new UpdateColumnDefinitionDiffer()\n\t\tconst columnChanges = columnDiffer.createDiff(originalSchema, updatedSchema)\n\t\tif (changedOrRemovedViews.length === 0 && columnChanges.length === 0) {\n\t\t\treturn []\n\t\t}\n\n\t\tconst changedColumnsEntities = Array.from(new Set(columnChanges.map(it => it.entityName)))\n\t\t\t.map(it => originalSchema.model.entities[it])\n\t\treturn cascadeRemoveDependantViews(originalSchema.model, [...changedOrRemovedViews, ...changedColumnsEntities])\n\t}\n}\n"],"names":["UpdateColumnDefinitionDiffer","cascadeRemoveDependantViews"],"mappings":";;;;;;;;AASO,MAAM,iBAAmC;AAAA,EAC/C,cAAc;AAAA,EACd;AAAA,EAEA,WAAW,gBAAwB,eAAuB;AACnD,UAAA,wBAAwB,OAAO,OAAO,eAAe,MAAM,QAAQ,EACvE,OAAO,CAAM,OAAA;AACb,YAAM,gBAAgB,cAAc,MAAM,SAAS,GAAG,IAAI;AAE1D,UAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,MAAM;AACzB,eAAA;AAAA,MACR;AAEA,UAAI,CAAC,eAAe;AACZ,eAAA;AAAA,MACR;AAEA,UAAI,CAAC,cAAc,QAAQ,CAAC,GAAG,MAAM;AAC7B,eAAA;AAAA,MACR;AAEA,UAAI,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,cAAc,MAAM;AAChC,eAAA;AAAA,MACR;AAEA,UAAI,CAAC,UAAU,cAAc,MAAM,GAAG,IAAI,GAAG;AACrC,eAAA;AAAA,MACR;AAEO,aAAA;AAAA,IAAA,CACP;AAEI,UAAA,eAAe,IAAIA,mCAAAA;AACzB,UAAM,gBAAgB,aAAa,WAAW,gBAAgB,aAAa;AAC3E,QAAI,sBAAsB,WAAW,KAAK,cAAc,WAAW,GAAG;AACrE,aAAO;IACR;AAEA,UAAM,yBAAyB,MAAM,KAAK,IAAI,IAAI,cAAc,IAAI,CAAM,OAAA,GAAG,UAAU,CAAC,CAAC,EACvF,IAAI,CAAA,OAAM,eAAe,MAAM,SAAS,EAAE,CAAC;AACtC,WAAAC,iBAAAA,4BAA4B,eAAe,OAAO,CAAC,GAAG,uBAAuB,GAAG,sBAAsB,CAAC;AAAA,EAC/G;AACD;;"}
1
+ {"version":3,"file":"RemoveViewDiffer.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/differs/RemoveViewDiffer.ts"],"sourcesContent":["import { Differ } from '../ModificationHandler'\nimport { Schema } from '@contember/schema'\nimport deepEqual from 'fast-deep-equal'\nimport { cascadeRemoveDependantViews } from '../utils/viewDependencies'\nimport { UpdateColumnDefinitionDiffer } from '../columns'\n\n/**\n * Remove changed or removed view.\n */\nexport class RemoveViewDiffer implements Differ {\n\tconstructor() {\n\t}\n\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\tconst changedOrRemovedViews = Object.values(originalSchema.model.entities)\n\t\t\t.filter(it => {\n\t\t\t\tconst updatedEntity = updatedSchema.model.entities[it.name]\n\n\t\t\t\tif (!updatedEntity && !!it.view) {\n\t\t\t\t\treturn true // view entity removed\n\t\t\t\t}\n\n\t\t\t\tif (!updatedEntity) {\n\t\t\t\t\treturn false // non-view entity removed\n\t\t\t\t}\n\n\t\t\t\tif (!updatedEntity.view && !it.view) {\n\t\t\t\t\treturn false // none is view\n\t\t\t\t}\n\n\t\t\t\tif (!!it.view !== !!updatedEntity.view) {\n\t\t\t\t\treturn true // change between regular entity and view entity\n\t\t\t\t}\n\n\t\t\t\tif (!deepEqual(updatedEntity.view, it.view)) {\n\t\t\t\t\treturn true // view is different\n\t\t\t\t}\n\n\t\t\t\treturn false\n\t\t\t})\n\n\t\tconst columnDiffer = new UpdateColumnDefinitionDiffer()\n\t\tconst columnChanges = columnDiffer.createDiff(originalSchema, updatedSchema)\n\t\tif (changedOrRemovedViews.length === 0 && columnChanges.length === 0) {\n\t\t\treturn []\n\t\t}\n\n\t\tconst changedColumnsEntities = Array.from(new Set(columnChanges.map(it => it.entityName)))\n\t\t\t.map(it => originalSchema.model.entities[it])\n\t\treturn cascadeRemoveDependantViews(originalSchema.model, [...changedOrRemovedViews, ...changedColumnsEntities])\n\t}\n}\n"],"names":["UpdateColumnDefinitionDiffer","cascadeRemoveDependantViews"],"mappings":";;;;;;;;AASO,MAAM,iBAAmC;AAAA,EAC/C,cAAc;AAAA,EAAA;AAAA,EAGd,WAAW,gBAAwB,eAAuB;AACnD,UAAA,wBAAwB,OAAO,OAAO,eAAe,MAAM,QAAQ,EACvE,OAAO,CAAM,OAAA;AACb,YAAM,gBAAgB,cAAc,MAAM,SAAS,GAAG,IAAI;AAE1D,UAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,MAAM;AACzB,eAAA;AAAA,MAAA;AAGR,UAAI,CAAC,eAAe;AACZ,eAAA;AAAA,MAAA;AAGR,UAAI,CAAC,cAAc,QAAQ,CAAC,GAAG,MAAM;AAC7B,eAAA;AAAA,MAAA;AAGR,UAAI,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,cAAc,MAAM;AAChC,eAAA;AAAA,MAAA;AAGR,UAAI,CAAC,UAAU,cAAc,MAAM,GAAG,IAAI,GAAG;AACrC,eAAA;AAAA,MAAA;AAGD,aAAA;AAAA,IAAA,CACP;AAEI,UAAA,eAAe,IAAIA,gEAA6B;AACtD,UAAM,gBAAgB,aAAa,WAAW,gBAAgB,aAAa;AAC3E,QAAI,sBAAsB,WAAW,KAAK,cAAc,WAAW,GAAG;AACrE,aAAO,CAAC;AAAA,IAAA;AAGT,UAAM,yBAAyB,MAAM,KAAK,IAAI,IAAI,cAAc,IAAI,CAAM,OAAA,GAAG,UAAU,CAAC,CAAC,EACvF,IAAI,CAAA,OAAM,eAAe,MAAM,SAAS,EAAE,CAAC;AACtC,WAAAC,iBAAAA,4BAA4B,eAAe,OAAO,CAAC,GAAG,uBAAuB,GAAG,sBAAsB,CAAC;AAAA,EAAA;AAEhH;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"RemoveViewDiffer.js","sources":["../../../../../../packages/schema-migrations/src/modifications/differs/RemoveViewDiffer.ts"],"sourcesContent":["import { Differ } from '../ModificationHandler'\nimport { Schema } from '@contember/schema'\nimport deepEqual from 'fast-deep-equal'\nimport { cascadeRemoveDependantViews } from '../utils/viewDependencies'\nimport { UpdateColumnDefinitionDiffer } from '../columns'\n\n/**\n * Remove changed or removed view.\n */\nexport class RemoveViewDiffer implements Differ {\n\tconstructor() {\n\t}\n\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\tconst changedOrRemovedViews = Object.values(originalSchema.model.entities)\n\t\t\t.filter(it => {\n\t\t\t\tconst updatedEntity = updatedSchema.model.entities[it.name]\n\n\t\t\t\tif (!updatedEntity && !!it.view) {\n\t\t\t\t\treturn true // view entity removed\n\t\t\t\t}\n\n\t\t\t\tif (!updatedEntity) {\n\t\t\t\t\treturn false // non-view entity removed\n\t\t\t\t}\n\n\t\t\t\tif (!updatedEntity.view && !it.view) {\n\t\t\t\t\treturn false // none is view\n\t\t\t\t}\n\n\t\t\t\tif (!!it.view !== !!updatedEntity.view) {\n\t\t\t\t\treturn true // change between regular entity and view entity\n\t\t\t\t}\n\n\t\t\t\tif (!deepEqual(updatedEntity.view, it.view)) {\n\t\t\t\t\treturn true // view is different\n\t\t\t\t}\n\n\t\t\t\treturn false\n\t\t\t})\n\n\t\tconst columnDiffer = new UpdateColumnDefinitionDiffer()\n\t\tconst columnChanges = columnDiffer.createDiff(originalSchema, updatedSchema)\n\t\tif (changedOrRemovedViews.length === 0 && columnChanges.length === 0) {\n\t\t\treturn []\n\t\t}\n\n\t\tconst changedColumnsEntities = Array.from(new Set(columnChanges.map(it => it.entityName)))\n\t\t\t.map(it => originalSchema.model.entities[it])\n\t\treturn cascadeRemoveDependantViews(originalSchema.model, [...changedOrRemovedViews, ...changedColumnsEntities])\n\t}\n}\n"],"names":[],"mappings":";;;;;;AASO,MAAM,iBAAmC;AAAA,EAC/C,cAAc;AAAA,EACd;AAAA,EAEA,WAAW,gBAAwB,eAAuB;AACnD,UAAA,wBAAwB,OAAO,OAAO,eAAe,MAAM,QAAQ,EACvE,OAAO,CAAM,OAAA;AACb,YAAM,gBAAgB,cAAc,MAAM,SAAS,GAAG,IAAI;AAE1D,UAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,MAAM;AACzB,eAAA;AAAA,MACR;AAEA,UAAI,CAAC,eAAe;AACZ,eAAA;AAAA,MACR;AAEA,UAAI,CAAC,cAAc,QAAQ,CAAC,GAAG,MAAM;AAC7B,eAAA;AAAA,MACR;AAEA,UAAI,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,cAAc,MAAM;AAChC,eAAA;AAAA,MACR;AAEA,UAAI,CAAC,UAAU,cAAc,MAAM,GAAG,IAAI,GAAG;AACrC,eAAA;AAAA,MACR;AAEO,aAAA;AAAA,IAAA,CACP;AAEI,UAAA,eAAe,IAAI;AACzB,UAAM,gBAAgB,aAAa,WAAW,gBAAgB,aAAa;AAC3E,QAAI,sBAAsB,WAAW,KAAK,cAAc,WAAW,GAAG;AACrE,aAAO;IACR;AAEA,UAAM,yBAAyB,MAAM,KAAK,IAAI,IAAI,cAAc,IAAI,CAAM,OAAA,GAAG,UAAU,CAAC,CAAC,EACvF,IAAI,CAAA,OAAM,eAAe,MAAM,SAAS,EAAE,CAAC;AACtC,WAAA,4BAA4B,eAAe,OAAO,CAAC,GAAG,uBAAuB,GAAG,sBAAsB,CAAC;AAAA,EAC/G;AACD;"}
1
+ {"version":3,"file":"RemoveViewDiffer.js","sources":["../../../../../../packages/schema-migrations/src/modifications/differs/RemoveViewDiffer.ts"],"sourcesContent":["import { Differ } from '../ModificationHandler'\nimport { Schema } from '@contember/schema'\nimport deepEqual from 'fast-deep-equal'\nimport { cascadeRemoveDependantViews } from '../utils/viewDependencies'\nimport { UpdateColumnDefinitionDiffer } from '../columns'\n\n/**\n * Remove changed or removed view.\n */\nexport class RemoveViewDiffer implements Differ {\n\tconstructor() {\n\t}\n\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\tconst changedOrRemovedViews = Object.values(originalSchema.model.entities)\n\t\t\t.filter(it => {\n\t\t\t\tconst updatedEntity = updatedSchema.model.entities[it.name]\n\n\t\t\t\tif (!updatedEntity && !!it.view) {\n\t\t\t\t\treturn true // view entity removed\n\t\t\t\t}\n\n\t\t\t\tif (!updatedEntity) {\n\t\t\t\t\treturn false // non-view entity removed\n\t\t\t\t}\n\n\t\t\t\tif (!updatedEntity.view && !it.view) {\n\t\t\t\t\treturn false // none is view\n\t\t\t\t}\n\n\t\t\t\tif (!!it.view !== !!updatedEntity.view) {\n\t\t\t\t\treturn true // change between regular entity and view entity\n\t\t\t\t}\n\n\t\t\t\tif (!deepEqual(updatedEntity.view, it.view)) {\n\t\t\t\t\treturn true // view is different\n\t\t\t\t}\n\n\t\t\t\treturn false\n\t\t\t})\n\n\t\tconst columnDiffer = new UpdateColumnDefinitionDiffer()\n\t\tconst columnChanges = columnDiffer.createDiff(originalSchema, updatedSchema)\n\t\tif (changedOrRemovedViews.length === 0 && columnChanges.length === 0) {\n\t\t\treturn []\n\t\t}\n\n\t\tconst changedColumnsEntities = Array.from(new Set(columnChanges.map(it => it.entityName)))\n\t\t\t.map(it => originalSchema.model.entities[it])\n\t\treturn cascadeRemoveDependantViews(originalSchema.model, [...changedOrRemovedViews, ...changedColumnsEntities])\n\t}\n}\n"],"names":[],"mappings":";;;;;;AASO,MAAM,iBAAmC;AAAA,EAC/C,cAAc;AAAA,EAAA;AAAA,EAGd,WAAW,gBAAwB,eAAuB;AACnD,UAAA,wBAAwB,OAAO,OAAO,eAAe,MAAM,QAAQ,EACvE,OAAO,CAAM,OAAA;AACb,YAAM,gBAAgB,cAAc,MAAM,SAAS,GAAG,IAAI;AAE1D,UAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,MAAM;AACzB,eAAA;AAAA,MAAA;AAGR,UAAI,CAAC,eAAe;AACZ,eAAA;AAAA,MAAA;AAGR,UAAI,CAAC,cAAc,QAAQ,CAAC,GAAG,MAAM;AAC7B,eAAA;AAAA,MAAA;AAGR,UAAI,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,cAAc,MAAM;AAChC,eAAA;AAAA,MAAA;AAGR,UAAI,CAAC,UAAU,cAAc,MAAM,GAAG,IAAI,GAAG;AACrC,eAAA;AAAA,MAAA;AAGD,aAAA;AAAA,IAAA,CACP;AAEI,UAAA,eAAe,IAAI,6BAA6B;AACtD,UAAM,gBAAgB,aAAa,WAAW,gBAAgB,aAAa;AAC3E,QAAI,sBAAsB,WAAW,KAAK,cAAc,WAAW,GAAG;AACrE,aAAO,CAAC;AAAA,IAAA;AAGT,UAAM,yBAAyB,MAAM,KAAK,IAAI,IAAI,cAAc,IAAI,CAAM,OAAA,GAAG,UAAU,CAAC,CAAC,EACvF,IAAI,CAAA,OAAM,eAAe,MAAM,SAAS,EAAE,CAAC;AACtC,WAAA,4BAA4B,eAAe,OAAO,CAAC,GAAG,uBAAuB,GAAG,sBAAsB,CAAC;AAAA,EAAA;AAEhH;"}