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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (555) hide show
  1. package/dist/development/index.cjs +3 -0
  2. package/dist/development/index.cjs.map +1 -1
  3. package/dist/development/index.js +3 -0
  4. package/dist/development/index.js.map +1 -1
  5. package/dist/development/src/MigrationDescriber.cjs.map +1 -1
  6. package/dist/development/src/MigrationDescriber.js.map +1 -1
  7. package/dist/development/src/SchemaDiffer.cjs +27 -12
  8. package/dist/development/src/SchemaDiffer.cjs.map +1 -1
  9. package/dist/development/src/SchemaDiffer.js +27 -12
  10. package/dist/development/src/SchemaDiffer.js.map +1 -1
  11. package/dist/development/src/SchemaMigrator.cjs.map +1 -1
  12. package/dist/development/src/SchemaMigrator.js.map +1 -1
  13. package/dist/development/src/modifications/ModificationHandler.cjs.map +1 -1
  14. package/dist/development/src/modifications/ModificationHandler.js.map +1 -1
  15. package/dist/development/src/modifications/ModificationHandlerFactory.cjs +2 -0
  16. package/dist/development/src/modifications/ModificationHandlerFactory.cjs.map +1 -1
  17. package/dist/development/src/modifications/ModificationHandlerFactory.js +2 -0
  18. package/dist/development/src/modifications/ModificationHandlerFactory.js.map +1 -1
  19. package/dist/development/src/modifications/NoopModification.cjs.map +1 -1
  20. package/dist/development/src/modifications/NoopModification.js.map +1 -1
  21. package/dist/development/src/modifications/acl/PatchAclSchemaModification.cjs.map +1 -1
  22. package/dist/development/src/modifications/acl/PatchAclSchemaModification.js.map +1 -1
  23. package/dist/development/src/modifications/acl/UpdateAclSchemaModification.cjs.map +1 -1
  24. package/dist/development/src/modifications/acl/UpdateAclSchemaModification.js.map +1 -1
  25. package/dist/development/src/modifications/actions/CreateTargetModification.cjs.map +1 -1
  26. package/dist/development/src/modifications/actions/CreateTargetModification.js.map +1 -1
  27. package/dist/development/src/modifications/actions/CreateTriggerModification.cjs.map +1 -1
  28. package/dist/development/src/modifications/actions/CreateTriggerModification.js.map +1 -1
  29. package/dist/development/src/modifications/actions/PatchTriggerModification.cjs.map +1 -1
  30. package/dist/development/src/modifications/actions/PatchTriggerModification.js.map +1 -1
  31. package/dist/development/src/modifications/actions/RemoveTargetModification.cjs.map +1 -1
  32. package/dist/development/src/modifications/actions/RemoveTargetModification.js.map +1 -1
  33. package/dist/development/src/modifications/actions/RemoveTriggerModification.cjs.map +1 -1
  34. package/dist/development/src/modifications/actions/RemoveTriggerModification.js.map +1 -1
  35. package/dist/development/src/modifications/actions/UpdateTargetModification.cjs.map +1 -1
  36. package/dist/development/src/modifications/actions/UpdateTargetModification.js.map +1 -1
  37. package/dist/development/src/modifications/actions/UpdateTriggerModification.cjs.map +1 -1
  38. package/dist/development/src/modifications/actions/UpdateTriggerModification.js.map +1 -1
  39. package/dist/development/src/modifications/columns/CreateColumnModification.cjs.map +1 -1
  40. package/dist/development/src/modifications/columns/CreateColumnModification.js.map +1 -1
  41. package/dist/development/src/modifications/columns/UpdateColumnDefinitionModification.cjs.map +1 -1
  42. package/dist/development/src/modifications/columns/UpdateColumnDefinitionModification.js.map +1 -1
  43. package/dist/development/src/modifications/columns/UpdateColumnNameModification.cjs.map +1 -1
  44. package/dist/development/src/modifications/columns/UpdateColumnNameModification.js.map +1 -1
  45. package/dist/development/src/modifications/columns/columnUtils.cjs.map +1 -1
  46. package/dist/development/src/modifications/columns/columnUtils.js.map +1 -1
  47. package/dist/development/src/modifications/constraints/CreateUniqueConstraintModification.cjs.map +1 -1
  48. package/dist/development/src/modifications/constraints/CreateUniqueConstraintModification.js.map +1 -1
  49. package/dist/development/src/modifications/constraints/RemoveUniqueConstraintModification.cjs.map +1 -1
  50. package/dist/development/src/modifications/constraints/RemoveUniqueConstraintModification.js.map +1 -1
  51. package/dist/development/src/modifications/differs/RemoveChangedFieldDiffer.cjs.map +1 -1
  52. package/dist/development/src/modifications/differs/RemoveChangedFieldDiffer.js.map +1 -1
  53. package/dist/development/src/modifications/differs/RemoveViewDiffer.cjs +4 -1
  54. package/dist/development/src/modifications/differs/RemoveViewDiffer.cjs.map +1 -1
  55. package/dist/development/src/modifications/differs/RemoveViewDiffer.js +5 -2
  56. package/dist/development/src/modifications/differs/RemoveViewDiffer.js.map +1 -1
  57. package/dist/development/src/modifications/differs/UpdateViewDiffer.cjs +45 -0
  58. package/dist/development/src/modifications/differs/UpdateViewDiffer.cjs.map +1 -0
  59. package/dist/development/src/modifications/differs/UpdateViewDiffer.js +45 -0
  60. package/dist/development/src/modifications/differs/UpdateViewDiffer.js.map +1 -0
  61. package/dist/development/src/modifications/entities/CreateEntityModification.cjs.map +1 -1
  62. package/dist/development/src/modifications/entities/CreateEntityModification.js.map +1 -1
  63. package/dist/development/src/modifications/entities/CreateViewModification.cjs.map +1 -1
  64. package/dist/development/src/modifications/entities/CreateViewModification.js.map +1 -1
  65. package/dist/development/src/modifications/entities/RemoveEntityModification.cjs.map +1 -1
  66. package/dist/development/src/modifications/entities/RemoveEntityModification.js.map +1 -1
  67. package/dist/development/src/modifications/entities/ToggleEventLogModification.cjs.map +1 -1
  68. package/dist/development/src/modifications/entities/ToggleEventLogModification.js.map +1 -1
  69. package/dist/development/src/modifications/entities/UpdateEntityNameModification.cjs.map +1 -1
  70. package/dist/development/src/modifications/entities/UpdateEntityNameModification.js.map +1 -1
  71. package/dist/development/src/modifications/entities/UpdateEntityOrderByModification.cjs.map +1 -1
  72. package/dist/development/src/modifications/entities/UpdateEntityOrderByModification.js.map +1 -1
  73. package/dist/development/src/modifications/entities/UpdateEntityTableNameModification.cjs.map +1 -1
  74. package/dist/development/src/modifications/entities/UpdateEntityTableNameModification.js.map +1 -1
  75. package/dist/development/src/modifications/entities/UpdateViewModification.cjs.map +1 -1
  76. package/dist/development/src/modifications/entities/UpdateViewModification.js.map +1 -1
  77. package/dist/development/src/modifications/enums/CreateEnumModification.cjs.map +1 -1
  78. package/dist/development/src/modifications/enums/CreateEnumModification.js.map +1 -1
  79. package/dist/development/src/modifications/enums/RemoveEnumModification.cjs.map +1 -1
  80. package/dist/development/src/modifications/enums/RemoveEnumModification.js.map +1 -1
  81. package/dist/development/src/modifications/enums/UpdateEnumModification.cjs.map +1 -1
  82. package/dist/development/src/modifications/enums/UpdateEnumModification.js.map +1 -1
  83. package/dist/development/src/modifications/enums/enumUtils.cjs.map +1 -1
  84. package/dist/development/src/modifications/enums/enumUtils.js.map +1 -1
  85. package/dist/development/src/modifications/fields/RemoveFieldModification.cjs.map +1 -1
  86. package/dist/development/src/modifications/fields/RemoveFieldModification.js.map +1 -1
  87. package/dist/development/src/modifications/fields/UpdateFieldNameModification.cjs +10 -4
  88. package/dist/development/src/modifications/fields/UpdateFieldNameModification.cjs.map +1 -1
  89. package/dist/development/src/modifications/fields/UpdateFieldNameModification.js +10 -4
  90. package/dist/development/src/modifications/fields/UpdateFieldNameModification.js.map +1 -1
  91. package/dist/development/src/modifications/indexes/CreateIndexModification.cjs +23 -7
  92. package/dist/development/src/modifications/indexes/CreateIndexModification.cjs.map +1 -1
  93. package/dist/development/src/modifications/indexes/CreateIndexModification.js +23 -7
  94. package/dist/development/src/modifications/indexes/CreateIndexModification.js.map +1 -1
  95. package/dist/development/src/modifications/indexes/RemoveIndexModification.cjs +52 -17
  96. package/dist/development/src/modifications/indexes/RemoveIndexModification.cjs.map +1 -1
  97. package/dist/development/src/modifications/indexes/RemoveIndexModification.js +52 -17
  98. package/dist/development/src/modifications/indexes/RemoveIndexModification.js.map +1 -1
  99. package/dist/development/src/modifications/relations/ConvertManyHasManyToJoiningEntityModification.cjs +140 -0
  100. package/dist/development/src/modifications/relations/ConvertManyHasManyToJoiningEntityModification.cjs.map +1 -0
  101. package/dist/development/src/modifications/relations/ConvertManyHasManyToJoiningEntityModification.js +140 -0
  102. package/dist/development/src/modifications/relations/ConvertManyHasManyToJoiningEntityModification.js.map +1 -0
  103. package/dist/development/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.cjs.map +1 -1
  104. package/dist/development/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.js.map +1 -1
  105. package/dist/development/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.cjs.map +1 -1
  106. package/dist/development/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.js.map +1 -1
  107. package/dist/development/src/modifications/relations/ConvertOneToManyRelationModification.cjs.map +1 -1
  108. package/dist/development/src/modifications/relations/ConvertOneToManyRelationModification.js.map +1 -1
  109. package/dist/development/src/modifications/relations/CreateRelationInverseSideModification.cjs.map +1 -1
  110. package/dist/development/src/modifications/relations/CreateRelationInverseSideModification.js.map +1 -1
  111. package/dist/development/src/modifications/relations/CreateRelationModification.cjs.map +1 -1
  112. package/dist/development/src/modifications/relations/CreateRelationModification.js.map +1 -1
  113. package/dist/development/src/modifications/relations/DisableOrphanRemovalModification.cjs.map +1 -1
  114. package/dist/development/src/modifications/relations/DisableOrphanRemovalModification.js.map +1 -1
  115. package/dist/development/src/modifications/relations/EnableOrphanRemovalModification.cjs.map +1 -1
  116. package/dist/development/src/modifications/relations/EnableOrphanRemovalModification.js.map +1 -1
  117. package/dist/development/src/modifications/relations/MakeRelationNotNullModification.cjs.map +1 -1
  118. package/dist/development/src/modifications/relations/MakeRelationNotNullModification.js.map +1 -1
  119. package/dist/development/src/modifications/relations/MakeRelationNullableModification.cjs.map +1 -1
  120. package/dist/development/src/modifications/relations/MakeRelationNullableModification.js.map +1 -1
  121. package/dist/development/src/modifications/relations/ToggleJunctionEventLogModification.cjs.map +1 -1
  122. package/dist/development/src/modifications/relations/ToggleJunctionEventLogModification.js.map +1 -1
  123. package/dist/development/src/modifications/relations/UpdateRelationOnDeleteModification.cjs.map +1 -1
  124. package/dist/development/src/modifications/relations/UpdateRelationOnDeleteModification.js.map +1 -1
  125. package/dist/development/src/modifications/relations/UpdateRelationOrderByModification.cjs.map +1 -1
  126. package/dist/development/src/modifications/relations/UpdateRelationOrderByModification.js.map +1 -1
  127. package/dist/development/src/modifications/relations/helpers.cjs.map +1 -1
  128. package/dist/development/src/modifications/relations/helpers.js.map +1 -1
  129. package/dist/development/src/modifications/settings/UpdateSettingsModification.cjs.map +1 -1
  130. package/dist/development/src/modifications/settings/UpdateSettingsModification.js.map +1 -1
  131. package/dist/development/src/modifications/upgrade/RemoveIndexNamesModification.cjs.map +1 -1
  132. package/dist/development/src/modifications/upgrade/RemoveIndexNamesModification.js.map +1 -1
  133. package/dist/development/src/modifications/utils/createJunctionTable.cjs.map +1 -1
  134. package/dist/development/src/modifications/utils/createJunctionTable.js.map +1 -1
  135. package/dist/development/src/modifications/utils/diffUtils.cjs.map +1 -1
  136. package/dist/development/src/modifications/utils/diffUtils.js.map +1 -1
  137. package/dist/development/src/modifications/utils/schemaUpdateUtils.cjs.map +1 -1
  138. package/dist/development/src/modifications/utils/schemaUpdateUtils.js.map +1 -1
  139. package/dist/development/src/modifications/utils/viewDependencies.cjs +15 -1
  140. package/dist/development/src/modifications/utils/viewDependencies.cjs.map +1 -1
  141. package/dist/development/src/modifications/utils/viewDependencies.js +16 -2
  142. package/dist/development/src/modifications/utils/viewDependencies.js.map +1 -1
  143. package/dist/development/src/modifications/validation/PatchValidationSchemaModification.cjs.map +1 -1
  144. package/dist/development/src/modifications/validation/PatchValidationSchemaModification.js.map +1 -1
  145. package/dist/development/src/modifications/validation/UpdateValidationSchemaModification.cjs.map +1 -1
  146. package/dist/development/src/modifications/validation/UpdateValidationSchemaModification.js.map +1 -1
  147. package/dist/production/index.cjs +3 -0
  148. package/dist/production/index.cjs.map +1 -1
  149. package/dist/production/index.js +3 -0
  150. package/dist/production/index.js.map +1 -1
  151. package/dist/production/src/MigrationDescriber.cjs.map +1 -1
  152. package/dist/production/src/MigrationDescriber.js.map +1 -1
  153. package/dist/production/src/SchemaDiffer.cjs +27 -12
  154. package/dist/production/src/SchemaDiffer.cjs.map +1 -1
  155. package/dist/production/src/SchemaDiffer.js +27 -12
  156. package/dist/production/src/SchemaDiffer.js.map +1 -1
  157. package/dist/production/src/SchemaMigrator.cjs.map +1 -1
  158. package/dist/production/src/SchemaMigrator.js.map +1 -1
  159. package/dist/production/src/modifications/ModificationHandler.cjs.map +1 -1
  160. package/dist/production/src/modifications/ModificationHandler.js.map +1 -1
  161. package/dist/production/src/modifications/ModificationHandlerFactory.cjs +2 -0
  162. package/dist/production/src/modifications/ModificationHandlerFactory.cjs.map +1 -1
  163. package/dist/production/src/modifications/ModificationHandlerFactory.js +2 -0
  164. package/dist/production/src/modifications/ModificationHandlerFactory.js.map +1 -1
  165. package/dist/production/src/modifications/NoopModification.cjs.map +1 -1
  166. package/dist/production/src/modifications/NoopModification.js.map +1 -1
  167. package/dist/production/src/modifications/acl/PatchAclSchemaModification.cjs.map +1 -1
  168. package/dist/production/src/modifications/acl/PatchAclSchemaModification.js.map +1 -1
  169. package/dist/production/src/modifications/acl/UpdateAclSchemaModification.cjs.map +1 -1
  170. package/dist/production/src/modifications/acl/UpdateAclSchemaModification.js.map +1 -1
  171. package/dist/production/src/modifications/actions/CreateTargetModification.cjs.map +1 -1
  172. package/dist/production/src/modifications/actions/CreateTargetModification.js.map +1 -1
  173. package/dist/production/src/modifications/actions/CreateTriggerModification.cjs.map +1 -1
  174. package/dist/production/src/modifications/actions/CreateTriggerModification.js.map +1 -1
  175. package/dist/production/src/modifications/actions/PatchTriggerModification.cjs.map +1 -1
  176. package/dist/production/src/modifications/actions/PatchTriggerModification.js.map +1 -1
  177. package/dist/production/src/modifications/actions/RemoveTargetModification.cjs.map +1 -1
  178. package/dist/production/src/modifications/actions/RemoveTargetModification.js.map +1 -1
  179. package/dist/production/src/modifications/actions/RemoveTriggerModification.cjs.map +1 -1
  180. package/dist/production/src/modifications/actions/RemoveTriggerModification.js.map +1 -1
  181. package/dist/production/src/modifications/actions/UpdateTargetModification.cjs.map +1 -1
  182. package/dist/production/src/modifications/actions/UpdateTargetModification.js.map +1 -1
  183. package/dist/production/src/modifications/actions/UpdateTriggerModification.cjs.map +1 -1
  184. package/dist/production/src/modifications/actions/UpdateTriggerModification.js.map +1 -1
  185. package/dist/production/src/modifications/columns/CreateColumnModification.cjs.map +1 -1
  186. package/dist/production/src/modifications/columns/CreateColumnModification.js.map +1 -1
  187. package/dist/production/src/modifications/columns/UpdateColumnDefinitionModification.cjs.map +1 -1
  188. package/dist/production/src/modifications/columns/UpdateColumnDefinitionModification.js.map +1 -1
  189. package/dist/production/src/modifications/columns/UpdateColumnNameModification.cjs.map +1 -1
  190. package/dist/production/src/modifications/columns/UpdateColumnNameModification.js.map +1 -1
  191. package/dist/production/src/modifications/columns/columnUtils.cjs.map +1 -1
  192. package/dist/production/src/modifications/columns/columnUtils.js.map +1 -1
  193. package/dist/production/src/modifications/constraints/CreateUniqueConstraintModification.cjs.map +1 -1
  194. package/dist/production/src/modifications/constraints/CreateUniqueConstraintModification.js.map +1 -1
  195. package/dist/production/src/modifications/constraints/RemoveUniqueConstraintModification.cjs.map +1 -1
  196. package/dist/production/src/modifications/constraints/RemoveUniqueConstraintModification.js.map +1 -1
  197. package/dist/production/src/modifications/differs/RemoveChangedFieldDiffer.cjs.map +1 -1
  198. package/dist/production/src/modifications/differs/RemoveChangedFieldDiffer.js.map +1 -1
  199. package/dist/production/src/modifications/differs/RemoveViewDiffer.cjs +4 -1
  200. package/dist/production/src/modifications/differs/RemoveViewDiffer.cjs.map +1 -1
  201. package/dist/production/src/modifications/differs/RemoveViewDiffer.js +5 -2
  202. package/dist/production/src/modifications/differs/RemoveViewDiffer.js.map +1 -1
  203. package/dist/production/src/modifications/differs/UpdateViewDiffer.cjs +45 -0
  204. package/dist/production/src/modifications/differs/UpdateViewDiffer.cjs.map +1 -0
  205. package/dist/production/src/modifications/differs/UpdateViewDiffer.js +45 -0
  206. package/dist/production/src/modifications/differs/UpdateViewDiffer.js.map +1 -0
  207. package/dist/production/src/modifications/entities/CreateEntityModification.cjs.map +1 -1
  208. package/dist/production/src/modifications/entities/CreateEntityModification.js.map +1 -1
  209. package/dist/production/src/modifications/entities/CreateViewModification.cjs.map +1 -1
  210. package/dist/production/src/modifications/entities/CreateViewModification.js.map +1 -1
  211. package/dist/production/src/modifications/entities/RemoveEntityModification.cjs.map +1 -1
  212. package/dist/production/src/modifications/entities/RemoveEntityModification.js.map +1 -1
  213. package/dist/production/src/modifications/entities/ToggleEventLogModification.cjs.map +1 -1
  214. package/dist/production/src/modifications/entities/ToggleEventLogModification.js.map +1 -1
  215. package/dist/production/src/modifications/entities/UpdateEntityNameModification.cjs.map +1 -1
  216. package/dist/production/src/modifications/entities/UpdateEntityNameModification.js.map +1 -1
  217. package/dist/production/src/modifications/entities/UpdateEntityOrderByModification.cjs.map +1 -1
  218. package/dist/production/src/modifications/entities/UpdateEntityOrderByModification.js.map +1 -1
  219. package/dist/production/src/modifications/entities/UpdateEntityTableNameModification.cjs.map +1 -1
  220. package/dist/production/src/modifications/entities/UpdateEntityTableNameModification.js.map +1 -1
  221. package/dist/production/src/modifications/entities/UpdateViewModification.cjs.map +1 -1
  222. package/dist/production/src/modifications/entities/UpdateViewModification.js.map +1 -1
  223. package/dist/production/src/modifications/enums/CreateEnumModification.cjs.map +1 -1
  224. package/dist/production/src/modifications/enums/CreateEnumModification.js.map +1 -1
  225. package/dist/production/src/modifications/enums/RemoveEnumModification.cjs.map +1 -1
  226. package/dist/production/src/modifications/enums/RemoveEnumModification.js.map +1 -1
  227. package/dist/production/src/modifications/enums/UpdateEnumModification.cjs.map +1 -1
  228. package/dist/production/src/modifications/enums/UpdateEnumModification.js.map +1 -1
  229. package/dist/production/src/modifications/enums/enumUtils.cjs.map +1 -1
  230. package/dist/production/src/modifications/enums/enumUtils.js.map +1 -1
  231. package/dist/production/src/modifications/fields/RemoveFieldModification.cjs.map +1 -1
  232. package/dist/production/src/modifications/fields/RemoveFieldModification.js.map +1 -1
  233. package/dist/production/src/modifications/fields/UpdateFieldNameModification.cjs +10 -4
  234. package/dist/production/src/modifications/fields/UpdateFieldNameModification.cjs.map +1 -1
  235. package/dist/production/src/modifications/fields/UpdateFieldNameModification.js +10 -4
  236. package/dist/production/src/modifications/fields/UpdateFieldNameModification.js.map +1 -1
  237. package/dist/production/src/modifications/indexes/CreateIndexModification.cjs +23 -7
  238. package/dist/production/src/modifications/indexes/CreateIndexModification.cjs.map +1 -1
  239. package/dist/production/src/modifications/indexes/CreateIndexModification.js +23 -7
  240. package/dist/production/src/modifications/indexes/CreateIndexModification.js.map +1 -1
  241. package/dist/production/src/modifications/indexes/RemoveIndexModification.cjs +52 -17
  242. package/dist/production/src/modifications/indexes/RemoveIndexModification.cjs.map +1 -1
  243. package/dist/production/src/modifications/indexes/RemoveIndexModification.js +52 -17
  244. package/dist/production/src/modifications/indexes/RemoveIndexModification.js.map +1 -1
  245. package/dist/production/src/modifications/relations/ConvertManyHasManyToJoiningEntityModification.cjs +140 -0
  246. package/dist/production/src/modifications/relations/ConvertManyHasManyToJoiningEntityModification.cjs.map +1 -0
  247. package/dist/production/src/modifications/relations/ConvertManyHasManyToJoiningEntityModification.js +140 -0
  248. package/dist/production/src/modifications/relations/ConvertManyHasManyToJoiningEntityModification.js.map +1 -0
  249. package/dist/production/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.cjs.map +1 -1
  250. package/dist/production/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.js.map +1 -1
  251. package/dist/production/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.cjs.map +1 -1
  252. package/dist/production/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.js.map +1 -1
  253. package/dist/production/src/modifications/relations/ConvertOneToManyRelationModification.cjs.map +1 -1
  254. package/dist/production/src/modifications/relations/ConvertOneToManyRelationModification.js.map +1 -1
  255. package/dist/production/src/modifications/relations/CreateRelationInverseSideModification.cjs.map +1 -1
  256. package/dist/production/src/modifications/relations/CreateRelationInverseSideModification.js.map +1 -1
  257. package/dist/production/src/modifications/relations/CreateRelationModification.cjs.map +1 -1
  258. package/dist/production/src/modifications/relations/CreateRelationModification.js.map +1 -1
  259. package/dist/production/src/modifications/relations/DisableOrphanRemovalModification.cjs.map +1 -1
  260. package/dist/production/src/modifications/relations/DisableOrphanRemovalModification.js.map +1 -1
  261. package/dist/production/src/modifications/relations/EnableOrphanRemovalModification.cjs.map +1 -1
  262. package/dist/production/src/modifications/relations/EnableOrphanRemovalModification.js.map +1 -1
  263. package/dist/production/src/modifications/relations/MakeRelationNotNullModification.cjs.map +1 -1
  264. package/dist/production/src/modifications/relations/MakeRelationNotNullModification.js.map +1 -1
  265. package/dist/production/src/modifications/relations/MakeRelationNullableModification.cjs.map +1 -1
  266. package/dist/production/src/modifications/relations/MakeRelationNullableModification.js.map +1 -1
  267. package/dist/production/src/modifications/relations/ToggleJunctionEventLogModification.cjs.map +1 -1
  268. package/dist/production/src/modifications/relations/ToggleJunctionEventLogModification.js.map +1 -1
  269. package/dist/production/src/modifications/relations/UpdateRelationOnDeleteModification.cjs.map +1 -1
  270. package/dist/production/src/modifications/relations/UpdateRelationOnDeleteModification.js.map +1 -1
  271. package/dist/production/src/modifications/relations/UpdateRelationOrderByModification.cjs.map +1 -1
  272. package/dist/production/src/modifications/relations/UpdateRelationOrderByModification.js.map +1 -1
  273. package/dist/production/src/modifications/relations/helpers.cjs.map +1 -1
  274. package/dist/production/src/modifications/relations/helpers.js.map +1 -1
  275. package/dist/production/src/modifications/settings/UpdateSettingsModification.cjs.map +1 -1
  276. package/dist/production/src/modifications/settings/UpdateSettingsModification.js.map +1 -1
  277. package/dist/production/src/modifications/upgrade/RemoveIndexNamesModification.cjs.map +1 -1
  278. package/dist/production/src/modifications/upgrade/RemoveIndexNamesModification.js.map +1 -1
  279. package/dist/production/src/modifications/utils/createJunctionTable.cjs.map +1 -1
  280. package/dist/production/src/modifications/utils/createJunctionTable.js.map +1 -1
  281. package/dist/production/src/modifications/utils/diffUtils.cjs.map +1 -1
  282. package/dist/production/src/modifications/utils/diffUtils.js.map +1 -1
  283. package/dist/production/src/modifications/utils/schemaUpdateUtils.cjs.map +1 -1
  284. package/dist/production/src/modifications/utils/schemaUpdateUtils.js.map +1 -1
  285. package/dist/production/src/modifications/utils/viewDependencies.cjs +15 -1
  286. package/dist/production/src/modifications/utils/viewDependencies.cjs.map +1 -1
  287. package/dist/production/src/modifications/utils/viewDependencies.js +16 -2
  288. package/dist/production/src/modifications/utils/viewDependencies.js.map +1 -1
  289. package/dist/production/src/modifications/validation/PatchValidationSchemaModification.cjs.map +1 -1
  290. package/dist/production/src/modifications/validation/PatchValidationSchemaModification.js.map +1 -1
  291. package/dist/production/src/modifications/validation/UpdateValidationSchemaModification.cjs.map +1 -1
  292. package/dist/production/src/modifications/validation/UpdateValidationSchemaModification.js.map +1 -1
  293. package/dist/tests/cases/integration/convertManyHasManyToJoiningEntity.test.d.ts +2 -0
  294. package/dist/tests/cases/integration/convertManyHasManyToJoiningEntity.test.d.ts.map +1 -0
  295. package/dist/tests/cases/integration/skipNonModelDiffers.test.d.ts +2 -0
  296. package/dist/tests/cases/integration/skipNonModelDiffers.test.d.ts.map +1 -0
  297. package/dist/tests/src/tests.d.ts +4 -3
  298. package/dist/tests/src/tests.d.ts.map +1 -1
  299. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  300. package/dist/types/MigrationDescriber.d.ts +2 -2
  301. package/dist/types/MigrationDescriber.d.ts.map +1 -1
  302. package/dist/types/SchemaDiffer.d.ts +12 -5
  303. package/dist/types/SchemaDiffer.d.ts.map +1 -1
  304. package/dist/types/SchemaMigrator.d.ts +2 -2
  305. package/dist/types/SchemaMigrator.d.ts.map +1 -1
  306. package/dist/types/index.d.ts +6 -6
  307. package/dist/types/index.d.ts.map +1 -1
  308. package/dist/types/modifications/ModificationHandler.d.ts +2 -2
  309. package/dist/types/modifications/ModificationHandler.d.ts.map +1 -1
  310. package/dist/types/modifications/ModificationHandlerFactory.d.ts +1 -1
  311. package/dist/types/modifications/ModificationHandlerFactory.d.ts.map +1 -1
  312. package/dist/types/modifications/NoopModification.d.ts +2 -2
  313. package/dist/types/modifications/NoopModification.d.ts.map +1 -1
  314. package/dist/types/modifications/acl/PatchAclSchemaModification.d.ts +3 -3
  315. package/dist/types/modifications/acl/PatchAclSchemaModification.d.ts.map +1 -1
  316. package/dist/types/modifications/acl/UpdateAclSchemaModification.d.ts +4 -4
  317. package/dist/types/modifications/acl/UpdateAclSchemaModification.d.ts.map +1 -1
  318. package/dist/types/modifications/acl/index.d.ts +2 -2
  319. package/dist/types/modifications/acl/index.d.ts.map +1 -1
  320. package/dist/types/modifications/actions/CreateTargetModification.d.ts +4 -4
  321. package/dist/types/modifications/actions/CreateTargetModification.d.ts.map +1 -1
  322. package/dist/types/modifications/actions/CreateTriggerModification.d.ts +4 -4
  323. package/dist/types/modifications/actions/CreateTriggerModification.d.ts.map +1 -1
  324. package/dist/types/modifications/actions/PatchTriggerModification.d.ts +3 -3
  325. package/dist/types/modifications/actions/PatchTriggerModification.d.ts.map +1 -1
  326. package/dist/types/modifications/actions/RemoveTargetModification.d.ts +4 -4
  327. package/dist/types/modifications/actions/RemoveTargetModification.d.ts.map +1 -1
  328. package/dist/types/modifications/actions/RemoveTriggerModification.d.ts +4 -4
  329. package/dist/types/modifications/actions/RemoveTriggerModification.d.ts.map +1 -1
  330. package/dist/types/modifications/actions/UpdateTargetModification.d.ts +4 -4
  331. package/dist/types/modifications/actions/UpdateTargetModification.d.ts.map +1 -1
  332. package/dist/types/modifications/actions/UpdateTriggerModification.d.ts +4 -4
  333. package/dist/types/modifications/actions/UpdateTriggerModification.d.ts.map +1 -1
  334. package/dist/types/modifications/actions/index.d.ts +4 -4
  335. package/dist/types/modifications/actions/index.d.ts.map +1 -1
  336. package/dist/types/modifications/columns/CreateColumnModification.d.ts +4 -4
  337. package/dist/types/modifications/columns/CreateColumnModification.d.ts.map +1 -1
  338. package/dist/types/modifications/columns/UpdateColumnDefinitionModification.d.ts +4 -4
  339. package/dist/types/modifications/columns/UpdateColumnDefinitionModification.d.ts.map +1 -1
  340. package/dist/types/modifications/columns/UpdateColumnNameModification.d.ts +4 -4
  341. package/dist/types/modifications/columns/UpdateColumnNameModification.d.ts.map +1 -1
  342. package/dist/types/modifications/columns/index.d.ts +3 -3
  343. package/dist/types/modifications/columns/index.d.ts.map +1 -1
  344. package/dist/types/modifications/constraints/CreateUniqueConstraintModification.d.ts +4 -4
  345. package/dist/types/modifications/constraints/CreateUniqueConstraintModification.d.ts.map +1 -1
  346. package/dist/types/modifications/constraints/RemoveUniqueConstraintModification.d.ts +4 -4
  347. package/dist/types/modifications/constraints/RemoveUniqueConstraintModification.d.ts.map +1 -1
  348. package/dist/types/modifications/constraints/index.d.ts +3 -3
  349. package/dist/types/modifications/constraints/index.d.ts.map +1 -1
  350. package/dist/types/modifications/differs/RemoveChangedFieldDiffer.d.ts +2 -2
  351. package/dist/types/modifications/differs/RemoveChangedFieldDiffer.d.ts.map +1 -1
  352. package/dist/types/modifications/differs/RemoveViewDiffer.d.ts +14 -3
  353. package/dist/types/modifications/differs/RemoveViewDiffer.d.ts.map +1 -1
  354. package/dist/types/modifications/differs/UpdateViewDiffer.d.ts +19 -0
  355. package/dist/types/modifications/differs/UpdateViewDiffer.d.ts.map +1 -0
  356. package/dist/types/modifications/differs/index.d.ts +3 -2
  357. package/dist/types/modifications/differs/index.d.ts.map +1 -1
  358. package/dist/types/modifications/entities/CreateEntityModification.d.ts +4 -4
  359. package/dist/types/modifications/entities/CreateEntityModification.d.ts.map +1 -1
  360. package/dist/types/modifications/entities/CreateViewModification.d.ts +4 -4
  361. package/dist/types/modifications/entities/CreateViewModification.d.ts.map +1 -1
  362. package/dist/types/modifications/entities/RemoveEntityModification.d.ts +4 -4
  363. package/dist/types/modifications/entities/RemoveEntityModification.d.ts.map +1 -1
  364. package/dist/types/modifications/entities/ToggleEventLogModification.d.ts +4 -4
  365. package/dist/types/modifications/entities/ToggleEventLogModification.d.ts.map +1 -1
  366. package/dist/types/modifications/entities/UpdateEntityNameModification.d.ts +3 -3
  367. package/dist/types/modifications/entities/UpdateEntityNameModification.d.ts.map +1 -1
  368. package/dist/types/modifications/entities/UpdateEntityOrderByModification.d.ts +4 -4
  369. package/dist/types/modifications/entities/UpdateEntityOrderByModification.d.ts.map +1 -1
  370. package/dist/types/modifications/entities/UpdateEntityTableNameModification.d.ts +4 -4
  371. package/dist/types/modifications/entities/UpdateEntityTableNameModification.d.ts.map +1 -1
  372. package/dist/types/modifications/entities/UpdateViewModification.d.ts +3 -3
  373. package/dist/types/modifications/entities/UpdateViewModification.d.ts.map +1 -1
  374. package/dist/types/modifications/entities/index.d.ts +7 -7
  375. package/dist/types/modifications/entities/index.d.ts.map +1 -1
  376. package/dist/types/modifications/enums/CreateEnumModification.d.ts +4 -4
  377. package/dist/types/modifications/enums/CreateEnumModification.d.ts.map +1 -1
  378. package/dist/types/modifications/enums/RemoveEnumModification.d.ts +4 -4
  379. package/dist/types/modifications/enums/RemoveEnumModification.d.ts.map +1 -1
  380. package/dist/types/modifications/enums/UpdateEnumModification.d.ts +4 -4
  381. package/dist/types/modifications/enums/UpdateEnumModification.d.ts.map +1 -1
  382. package/dist/types/modifications/enums/index.d.ts +3 -3
  383. package/dist/types/modifications/enums/index.d.ts.map +1 -1
  384. package/dist/types/modifications/fields/RemoveFieldModification.d.ts +4 -4
  385. package/dist/types/modifications/fields/RemoveFieldModification.d.ts.map +1 -1
  386. package/dist/types/modifications/fields/UpdateFieldNameModification.d.ts +3 -3
  387. package/dist/types/modifications/fields/UpdateFieldNameModification.d.ts.map +1 -1
  388. package/dist/types/modifications/fields/index.d.ts +2 -2
  389. package/dist/types/modifications/fields/index.d.ts.map +1 -1
  390. package/dist/types/modifications/index.d.ts +13 -13
  391. package/dist/types/modifications/index.d.ts.map +1 -1
  392. package/dist/types/modifications/indexes/CreateIndexModification.d.ts +4 -4
  393. package/dist/types/modifications/indexes/CreateIndexModification.d.ts.map +1 -1
  394. package/dist/types/modifications/indexes/RemoveIndexModification.d.ts +18 -6
  395. package/dist/types/modifications/indexes/RemoveIndexModification.d.ts.map +1 -1
  396. package/dist/types/modifications/indexes/index.d.ts +2 -2
  397. package/dist/types/modifications/indexes/index.d.ts.map +1 -1
  398. package/dist/types/modifications/relations/ConvertManyHasManyToJoiningEntityModification.d.ts +52 -0
  399. package/dist/types/modifications/relations/ConvertManyHasManyToJoiningEntityModification.d.ts.map +1 -0
  400. package/dist/types/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.d.ts +5 -5
  401. package/dist/types/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.d.ts.map +1 -1
  402. package/dist/types/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.d.ts +4 -4
  403. package/dist/types/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.d.ts.map +1 -1
  404. package/dist/types/modifications/relations/ConvertOneToManyRelationModification.d.ts +4 -4
  405. package/dist/types/modifications/relations/ConvertOneToManyRelationModification.d.ts.map +1 -1
  406. package/dist/types/modifications/relations/CreateRelationInverseSideModification.d.ts +4 -4
  407. package/dist/types/modifications/relations/CreateRelationInverseSideModification.d.ts.map +1 -1
  408. package/dist/types/modifications/relations/CreateRelationModification.d.ts +5 -5
  409. package/dist/types/modifications/relations/CreateRelationModification.d.ts.map +1 -1
  410. package/dist/types/modifications/relations/DisableOrphanRemovalModification.d.ts +4 -4
  411. package/dist/types/modifications/relations/DisableOrphanRemovalModification.d.ts.map +1 -1
  412. package/dist/types/modifications/relations/EnableOrphanRemovalModification.d.ts +4 -4
  413. package/dist/types/modifications/relations/EnableOrphanRemovalModification.d.ts.map +1 -1
  414. package/dist/types/modifications/relations/MakeRelationNotNullModification.d.ts +4 -4
  415. package/dist/types/modifications/relations/MakeRelationNotNullModification.d.ts.map +1 -1
  416. package/dist/types/modifications/relations/MakeRelationNullableModification.d.ts +4 -4
  417. package/dist/types/modifications/relations/MakeRelationNullableModification.d.ts.map +1 -1
  418. package/dist/types/modifications/relations/ToggleJunctionEventLogModification.d.ts +4 -4
  419. package/dist/types/modifications/relations/ToggleJunctionEventLogModification.d.ts.map +1 -1
  420. package/dist/types/modifications/relations/UpdateRelationOnDeleteModification.d.ts +4 -4
  421. package/dist/types/modifications/relations/UpdateRelationOnDeleteModification.d.ts.map +1 -1
  422. package/dist/types/modifications/relations/UpdateRelationOrderByModification.d.ts +4 -4
  423. package/dist/types/modifications/relations/UpdateRelationOrderByModification.d.ts.map +1 -1
  424. package/dist/types/modifications/relations/index.d.ts +12 -11
  425. package/dist/types/modifications/relations/index.d.ts.map +1 -1
  426. package/dist/types/modifications/settings/UpdateSettingsModification.d.ts +4 -4
  427. package/dist/types/modifications/settings/UpdateSettingsModification.d.ts.map +1 -1
  428. package/dist/types/modifications/settings/index.d.ts +1 -1
  429. package/dist/types/modifications/settings/index.d.ts.map +1 -1
  430. package/dist/types/modifications/upgrade/RemoveIndexNamesModification.d.ts +3 -3
  431. package/dist/types/modifications/upgrade/RemoveIndexNamesModification.d.ts.map +1 -1
  432. package/dist/types/modifications/utils/diffUtils.d.ts +1 -1
  433. package/dist/types/modifications/utils/diffUtils.d.ts.map +1 -1
  434. package/dist/types/modifications/utils/viewDependencies.d.ts +11 -1
  435. package/dist/types/modifications/utils/viewDependencies.d.ts.map +1 -1
  436. package/dist/types/modifications/validation/PatchValidationSchemaModification.d.ts +3 -3
  437. package/dist/types/modifications/validation/PatchValidationSchemaModification.d.ts.map +1 -1
  438. package/dist/types/modifications/validation/UpdateValidationSchemaModification.d.ts +4 -4
  439. package/dist/types/modifications/validation/UpdateValidationSchemaModification.d.ts.map +1 -1
  440. package/dist/types/modifications/validation/index.d.ts +2 -2
  441. package/dist/types/modifications/validation/index.d.ts.map +1 -1
  442. package/dist/types/tsconfig.tsbuildinfo +1 -1
  443. package/package.json +7 -7
  444. package/src/MigrationDescriber.ts +2 -2
  445. package/src/SchemaDiffer.ts +52 -25
  446. package/src/SchemaMigrator.ts +2 -2
  447. package/src/index.ts +6 -6
  448. package/src/modifications/ModificationHandler.ts +2 -2
  449. package/src/modifications/ModificationHandlerFactory.ts +21 -19
  450. package/src/modifications/NoopModification.ts +2 -2
  451. package/src/modifications/acl/PatchAclSchemaModification.ts +3 -3
  452. package/src/modifications/acl/UpdateAclSchemaModification.ts +3 -3
  453. package/src/modifications/acl/index.ts +2 -2
  454. package/src/modifications/actions/CreateTargetModification.ts +2 -2
  455. package/src/modifications/actions/CreateTriggerModification.ts +2 -2
  456. package/src/modifications/actions/PatchTriggerModification.ts +3 -3
  457. package/src/modifications/actions/RemoveTargetModification.ts +2 -2
  458. package/src/modifications/actions/RemoveTriggerModification.ts +2 -2
  459. package/src/modifications/actions/UpdateTargetModification.ts +2 -2
  460. package/src/modifications/actions/UpdateTriggerModification.ts +3 -3
  461. package/src/modifications/actions/index.ts +4 -4
  462. package/src/modifications/columns/CreateColumnModification.ts +5 -5
  463. package/src/modifications/columns/UpdateColumnDefinitionModification.ts +6 -6
  464. package/src/modifications/columns/UpdateColumnNameModification.ts +3 -3
  465. package/src/modifications/columns/columnUtils.ts +1 -1
  466. package/src/modifications/columns/index.ts +3 -3
  467. package/src/modifications/constraints/CreateUniqueConstraintModification.ts +4 -4
  468. package/src/modifications/constraints/RemoveUniqueConstraintModification.ts +4 -4
  469. package/src/modifications/constraints/index.ts +3 -3
  470. package/src/modifications/differs/RemoveChangedFieldDiffer.ts +3 -3
  471. package/src/modifications/differs/RemoveViewDiffer.ts +17 -5
  472. package/src/modifications/differs/UpdateViewDiffer.ts +58 -0
  473. package/src/modifications/differs/index.ts +3 -2
  474. package/src/modifications/entities/CreateEntityModification.ts +5 -5
  475. package/src/modifications/entities/CreateViewModification.ts +3 -3
  476. package/src/modifications/entities/RemoveEntityModification.ts +4 -4
  477. package/src/modifications/entities/ToggleEventLogModification.ts +3 -3
  478. package/src/modifications/entities/UpdateEntityNameModification.ts +12 -7
  479. package/src/modifications/entities/UpdateEntityOrderByModification.ts +2 -2
  480. package/src/modifications/entities/UpdateEntityTableNameModification.ts +2 -2
  481. package/src/modifications/entities/UpdateViewModification.ts +2 -2
  482. package/src/modifications/entities/index.ts +7 -7
  483. package/src/modifications/enums/CreateEnumModification.ts +3 -3
  484. package/src/modifications/enums/RemoveEnumModification.ts +2 -2
  485. package/src/modifications/enums/UpdateEnumModification.ts +4 -4
  486. package/src/modifications/enums/enumUtils.ts +1 -1
  487. package/src/modifications/enums/index.ts +3 -3
  488. package/src/modifications/fields/RemoveFieldModification.ts +3 -3
  489. package/src/modifications/fields/UpdateFieldNameModification.ts +26 -10
  490. package/src/modifications/fields/index.ts +2 -2
  491. package/src/modifications/index.ts +13 -13
  492. package/src/modifications/indexes/CreateIndexModification.ts +47 -11
  493. package/src/modifications/indexes/RemoveIndexModification.ts +92 -23
  494. package/src/modifications/indexes/index.ts +2 -2
  495. package/src/modifications/relations/ConvertManyHasManyToJoiningEntityModification.ts +218 -0
  496. package/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.ts +7 -7
  497. package/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.ts +6 -6
  498. package/src/modifications/relations/ConvertOneToManyRelationModification.ts +6 -6
  499. package/src/modifications/relations/CreateRelationInverseSideModification.ts +3 -3
  500. package/src/modifications/relations/CreateRelationModification.ts +9 -9
  501. package/src/modifications/relations/DisableOrphanRemovalModification.ts +3 -3
  502. package/src/modifications/relations/EnableOrphanRemovalModification.ts +3 -3
  503. package/src/modifications/relations/MakeRelationNotNullModification.ts +4 -4
  504. package/src/modifications/relations/MakeRelationNullableModification.ts +4 -4
  505. package/src/modifications/relations/ToggleJunctionEventLogModification.ts +5 -5
  506. package/src/modifications/relations/UpdateRelationOnDeleteModification.ts +5 -5
  507. package/src/modifications/relations/UpdateRelationOrderByModification.ts +3 -3
  508. package/src/modifications/relations/helpers.ts +1 -1
  509. package/src/modifications/relations/index.ts +12 -11
  510. package/src/modifications/settings/UpdateSettingsModification.ts +2 -2
  511. package/src/modifications/settings/index.ts +1 -1
  512. package/src/modifications/upgrade/RemoveIndexNamesModification.ts +2 -2
  513. package/src/modifications/utils/createJunctionTable.ts +3 -3
  514. package/src/modifications/utils/diffUtils.ts +2 -2
  515. package/src/modifications/utils/schemaUpdateUtils.ts +3 -3
  516. package/src/modifications/utils/viewDependencies.ts +26 -2
  517. package/src/modifications/validation/PatchValidationSchemaModification.ts +3 -3
  518. package/src/modifications/validation/UpdateValidationSchemaModification.ts +3 -3
  519. package/src/modifications/validation/index.ts +2 -2
  520. package/tests/cases/integration/convertManyHasManyToJoiningEntity.test.ts +339 -0
  521. package/tests/cases/integration/convertManyHasOneToOneHasOneRelation.test.ts +2 -2
  522. package/tests/cases/integration/convertOneHasManyToManyHasManyRelation.test.ts +2 -2
  523. package/tests/cases/integration/convertOneToManyRelation.test.ts +2 -2
  524. package/tests/cases/integration/createAndDropIndex.test.ts +482 -3
  525. package/tests/cases/integration/createColumn.test.ts +29 -2
  526. package/tests/cases/integration/createEntity.test.ts +2 -2
  527. package/tests/cases/integration/createEnum.test.ts +2 -2
  528. package/tests/cases/integration/createManyHasMany.test.ts +2 -2
  529. package/tests/cases/integration/createManyHasOne.test.ts +2 -2
  530. package/tests/cases/integration/createOneHasMany.test.ts +2 -2
  531. package/tests/cases/integration/createOneHasOne.test.ts +2 -2
  532. package/tests/cases/integration/createRelationInverseSide.test.ts +2 -2
  533. package/tests/cases/integration/createUnique.test.ts +3 -3
  534. package/tests/cases/integration/disableOrphanRemoval.test.ts +2 -2
  535. package/tests/cases/integration/enableOrphanRemoval.test.ts +2 -2
  536. package/tests/cases/integration/makeColumnNotNull.test.ts +2 -2
  537. package/tests/cases/integration/makeRelationNotNull.test.ts +2 -2
  538. package/tests/cases/integration/makeRelationNullable.test.ts +2 -2
  539. package/tests/cases/integration/patchAclSchema.test.ts +2 -2
  540. package/tests/cases/integration/patchTrigger.test.ts +1 -1
  541. package/tests/cases/integration/removeEntity.test.ts +2 -2
  542. package/tests/cases/integration/removeEnum.test.ts +2 -2
  543. package/tests/cases/integration/removeField.test.ts +3 -3
  544. package/tests/cases/integration/skipNonModelDiffers.test.ts +97 -0
  545. package/tests/cases/integration/toggleEventLog.test.ts +2 -2
  546. package/tests/cases/integration/toggleJunctionEventLog.test.ts +2 -2
  547. package/tests/cases/integration/updateColumnDefinition.test.ts +3 -3
  548. package/tests/cases/integration/updateEntityName.test.ts +2 -2
  549. package/tests/cases/integration/updateEntityOrderBy.test.ts +2 -2
  550. package/tests/cases/integration/updateEnum.test.ts +2 -2
  551. package/tests/cases/integration/updateFieldName.test.ts +38 -3
  552. package/tests/cases/integration/updateRelationOnDelete.test.ts +2 -2
  553. package/tests/cases/integration/updateRelationOrderBy.test.ts +2 -2
  554. package/tests/cases/integration/updateView.test.ts +221 -233
  555. package/tests/src/tests.ts +6 -4
@@ -24,6 +24,7 @@ const RemoveEnumModification = require("./src/modifications/enums/RemoveEnumModi
24
24
  const UpdateEnumModification = require("./src/modifications/enums/UpdateEnumModification.cjs");
25
25
  const RemoveFieldModification = require("./src/modifications/fields/RemoveFieldModification.cjs");
26
26
  const UpdateFieldNameModification = require("./src/modifications/fields/UpdateFieldNameModification.cjs");
27
+ const ConvertManyHasManyToJoiningEntityModification = require("./src/modifications/relations/ConvertManyHasManyToJoiningEntityModification.cjs");
27
28
  const ConvertOneHasManyToManyHasManyRelationModification = require("./src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.cjs");
28
29
  const ConvertOneToManyRelationModification = require("./src/modifications/relations/ConvertOneToManyRelationModification.cjs");
29
30
  const CreateRelationInverseSideModification = require("./src/modifications/relations/CreateRelationInverseSideModification.cjs");
@@ -103,6 +104,8 @@ exports.RemoveFieldModificationHandler = RemoveFieldModification.RemoveFieldModi
103
104
  exports.removeFieldModification = RemoveFieldModification.removeFieldModification;
104
105
  exports.UpdateFieldNameModificationHandler = UpdateFieldNameModification.UpdateFieldNameModificationHandler;
105
106
  exports.updateFieldNameModification = UpdateFieldNameModification.updateFieldNameModification;
107
+ exports.ConvertManyHasManyToJoiningEntityModificationHandler = ConvertManyHasManyToJoiningEntityModification.ConvertManyHasManyToJoiningEntityModificationHandler;
108
+ exports.convertManyHasManyToJoiningEntityModification = ConvertManyHasManyToJoiningEntityModification.convertManyHasManyToJoiningEntityModification;
106
109
  exports.ConvertOneHasManyToManyHasManyRelationDiffer = ConvertOneHasManyToManyHasManyRelationModification.ConvertOneHasManyToManyHasManyRelationDiffer;
107
110
  exports.ConvertOneHasManyToManyHasManyRelationModificationHandler = ConvertOneHasManyToManyHasManyRelationModification.ConvertOneHasManyToManyHasManyRelationModificationHandler;
108
111
  exports.convertOneHasManyToManyHasManyRelationModification = ConvertOneHasManyToManyHasManyRelationModification.convertOneHasManyToManyHasManyRelationModification;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -22,6 +22,7 @@ import { RemoveEnumDiffer, RemoveEnumModificationHandler, removeEnumModification
22
22
  import { UpdateEnumDiffer, UpdateEnumModificationHandler, updateEnumModification } from "./src/modifications/enums/UpdateEnumModification.js";
23
23
  import { RemoveFieldDiffer, RemoveFieldModificationHandler, removeFieldModification } from "./src/modifications/fields/RemoveFieldModification.js";
24
24
  import { UpdateFieldNameModificationHandler, updateFieldNameModification } from "./src/modifications/fields/UpdateFieldNameModification.js";
25
+ import { ConvertManyHasManyToJoiningEntityModificationHandler, convertManyHasManyToJoiningEntityModification } from "./src/modifications/relations/ConvertManyHasManyToJoiningEntityModification.js";
25
26
  import { ConvertOneHasManyToManyHasManyRelationDiffer, ConvertOneHasManyToManyHasManyRelationModificationHandler, convertOneHasManyToManyHasManyRelationModification } from "./src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.js";
26
27
  import { ConvertOneToManyRelationDiffer, ConvertOneToManyRelationModificationHandler, convertOneToManyRelationModification } from "./src/modifications/relations/ConvertOneToManyRelationModification.js";
27
28
  import { CreateRelationInverseSideDiffer, CreateRelationInverseSideModificationHandler, createRelationInverseSideModification } from "./src/modifications/relations/CreateRelationInverseSideModification.js";
@@ -42,6 +43,7 @@ import { SchemaUpdateError } from "./src/modifications/exceptions.js";
42
43
  import { createEventTrigger, createEventTrxTrigger, dropEventTrigger, dropEventTrxTrigger } from "./src/modifications/utils/sqlUpdateUtils.js";
43
44
  import { MigrationVersionHelper } from "@contember/engine-common";
44
45
  export {
46
+ ConvertManyHasManyToJoiningEntityModificationHandler,
45
47
  ConvertOneHasManyToManyHasManyRelationDiffer,
46
48
  ConvertOneHasManyToManyHasManyRelationModificationHandler,
47
49
  ConvertOneToManyRelationDiffer,
@@ -119,6 +121,7 @@ export {
119
121
  VERSION_UPDATE_INDEX_FIELDS,
120
122
  _REMOVED_VERSION_UPDATE_CONSTRAINT_NAME_ONE_HAS_ONE,
121
123
  calculateMigrationChecksum,
124
+ convertManyHasManyToJoiningEntityModification,
122
125
  convertOneHasManyToManyHasManyRelationModification,
123
126
  convertOneToManyRelationModification,
124
127
  createColumnModification,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"MigrationDescriber.cjs","sources":["../../../../packages/schema-migrations/src/MigrationDescriber.ts"],"sourcesContent":["import {\n\tcreateEntityModification,\n\tcreateViewModification,\n\temptyModificationDescriptionContext,\n\tModificationDescription,\n\tModificationDescriptionContext,\n\tModificationHandler,\n\tModificationHandlerCreateSqlOptions,\n\tModificationHandlerFactory,\n\tModificationHandlerOptions,\n\tSchemaUpdateError,\n} from './modifications'\nimport { createMigrationBuilder } from '@contember/database-migrations'\nimport { Migration } from './Migration'\nimport { Schema } from '@contember/schema'\n\nexport interface ModificationDescriptionResult {\n\tmodification: Migration.Modification\n\tschema: Schema\n\tdescription: ModificationDescription\n\thandler: ModificationHandler<any>\n\tgetSql: (options: ModificationHandlerCreateSqlOptions) => string\n}\n\nexport class MigrationDescriber {\n\tconstructor(private readonly modificationHandlerFactory: ModificationHandlerFactory) {\n\t}\n\n\tpublic describeModification(\n\t\tschema: Schema,\n\t\tmodification: Migration.Modification,\n\t\toptions: ModificationHandlerOptions,\n\t\tmodificationDescriptionContext: ModificationDescriptionContext = emptyModificationDescriptionContext,\n\t): ModificationDescriptionResult {\n\t\tconst modificationHandler = this.modificationHandlerFactory.create(\n\t\t\tmodification.modification,\n\t\t\tmodification,\n\t\t\tschema,\n\t\t\toptions,\n\t\t)\n\t\ttry {\n\t\t\tschema = modificationHandler.getSchemaUpdater()({ schema })\n\t\t} catch (e) {\n\t\t\tif (!(e instanceof SchemaUpdateError)) {\n\t\t\t\tthrow e\n\t\t\t}\n\t\t\tthrow new SchemaUpdateError(e.message + '\\n for modification: \\n' + JSON.stringify(modification))\n\t\t}\n\t\treturn {\n\t\t\tmodification,\n\t\t\tschema,\n\t\t\tgetSql: options => {\n\t\t\t\tconst builder = createMigrationBuilder()\n\t\t\t\tmodificationHandler.createSql(builder, options)\n\t\t\t\treturn builder.getSql()\n\t\t\t},\n\t\t\tdescription: modificationHandler.describe(modificationDescriptionContext),\n\t\t\thandler: modificationHandler,\n\t\t}\n\t}\n\n\tpublic describeModifications(schema: Schema, migration: Migration): ModificationDescriptionResult[] {\n\t\tconst result = []\n\t\tconst createdEntities = []\n\t\tfor (const modification of migration.modifications) {\n\t\t\tif (modification.modification === createEntityModification.id || modification.modification === createViewModification.id) {\n\t\t\t\tcreatedEntities.push(modification.entity.name)\n\t\t\t}\n\t\t\tconst description = this.describeModification(\n\t\t\t\tschema,\n\t\t\t\tmodification,\n\t\t\t\t{\n\t\t\t\t\tformatVersion: migration.formatVersion,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tcreatedEntities,\n\t\t\t\t},\n\t\t\t)\n\t\t\tschema = description.schema\n\t\t\tresult.push(description)\n\t\t}\n\t\treturn result\n\t}\n}\n"],"names":["emptyModificationDescriptionContext","SchemaUpdateError","options","createMigrationBuilder","createEntityModification","createViewModification"],"mappings":";;;;;;;;;;;;AAwBO,MAAM,mBAAmB;AAAA,EAC/B,YAA6B,4BAAwD;AAAxD,SAAA,6BAAA;AAAA,EAC7B;AAAA,EAEO,qBACN,QACA,cACA,SACA,iCAAiEA,oBAAAA,qCACjC;AAChC,UAAM,sBAAsB,KAAK,2BAA2B;AAAA,MAC3D,aAAa;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAED,QAAI;AACH,eAAS,oBAAoB,mBAAmB,EAAE,QAAQ;AAAA,IAC3D,SAAS,GAAG;AACX,UAAI,EAAE,aAAaC,WAAAA,oBAAoB;AACtC,cAAM;AAAA,MACP;AACA,YAAM,IAAIA,WAAAA,kBAAkB,EAAE,UAAU,4BAA4B,KAAK,UAAU,YAAY,CAAC;AAAA,IACjG;AACA,WAAO;AAAA,MACN;AAAA,MACA;AAAA,MACA,QAAQ,CAAAC,aAAW;AAClB,cAAM,UAAUC,mBAAAA,uBAAA;AAChB,4BAAoB,UAAU,SAASD,QAAO;AAC9C,eAAO,QAAQ,OAAA;AAAA,MAChB;AAAA,MACA,aAAa,oBAAoB,SAAS,8BAA8B;AAAA,MACxE,SAAS;AAAA,IAAA;AAAA,EAEX;AAAA,EAEO,sBAAsB,QAAgB,WAAuD;AACnG,UAAM,SAAS,CAAA;AACf,UAAM,kBAAkB,CAAA;AACxB,eAAW,gBAAgB,UAAU,eAAe;AACnD,UAAI,aAAa,iBAAiBE,kDAAyB,MAAM,aAAa,iBAAiBC,uBAAAA,uBAAuB,IAAI;AACzH,wBAAgB,KAAK,aAAa,OAAO,IAAI;AAAA,MAC9C;AACA,YAAM,cAAc,KAAK;AAAA,QACxB;AAAA,QACA;AAAA,QACA;AAAA,UACC,eAAe,UAAU;AAAA,QAAA;AAAA,QAE1B;AAAA,UACC;AAAA,QAAA;AAAA,MACD;AAED,eAAS,YAAY;AACrB,aAAO,KAAK,WAAW;AAAA,IACxB;AACA,WAAO;AAAA,EACR;AACD;;"}
1
+ {"version":3,"file":"MigrationDescriber.cjs","sources":["../../../../packages/schema-migrations/src/MigrationDescriber.ts"],"sourcesContent":["import {\n\tcreateEntityModification,\n\tcreateViewModification,\n\temptyModificationDescriptionContext,\n\tModificationDescription,\n\tModificationDescriptionContext,\n\tModificationHandler,\n\tModificationHandlerCreateSqlOptions,\n\tModificationHandlerFactory,\n\tModificationHandlerOptions,\n\tSchemaUpdateError,\n} from './modifications/index.js'\nimport { createMigrationBuilder } from '@contember/database-migrations'\nimport { Migration } from './Migration.js'\nimport { Schema } from '@contember/schema'\n\nexport interface ModificationDescriptionResult {\n\tmodification: Migration.Modification\n\tschema: Schema\n\tdescription: ModificationDescription\n\thandler: ModificationHandler<any>\n\tgetSql: (options: ModificationHandlerCreateSqlOptions) => string\n}\n\nexport class MigrationDescriber {\n\tconstructor(private readonly modificationHandlerFactory: ModificationHandlerFactory) {\n\t}\n\n\tpublic describeModification(\n\t\tschema: Schema,\n\t\tmodification: Migration.Modification,\n\t\toptions: ModificationHandlerOptions,\n\t\tmodificationDescriptionContext: ModificationDescriptionContext = emptyModificationDescriptionContext,\n\t): ModificationDescriptionResult {\n\t\tconst modificationHandler = this.modificationHandlerFactory.create(\n\t\t\tmodification.modification,\n\t\t\tmodification,\n\t\t\tschema,\n\t\t\toptions,\n\t\t)\n\t\ttry {\n\t\t\tschema = modificationHandler.getSchemaUpdater()({ schema })\n\t\t} catch (e) {\n\t\t\tif (!(e instanceof SchemaUpdateError)) {\n\t\t\t\tthrow e\n\t\t\t}\n\t\t\tthrow new SchemaUpdateError(e.message + '\\n for modification: \\n' + JSON.stringify(modification))\n\t\t}\n\t\treturn {\n\t\t\tmodification,\n\t\t\tschema,\n\t\t\tgetSql: options => {\n\t\t\t\tconst builder = createMigrationBuilder()\n\t\t\t\tmodificationHandler.createSql(builder, options)\n\t\t\t\treturn builder.getSql()\n\t\t\t},\n\t\t\tdescription: modificationHandler.describe(modificationDescriptionContext),\n\t\t\thandler: modificationHandler,\n\t\t}\n\t}\n\n\tpublic describeModifications(schema: Schema, migration: Migration): ModificationDescriptionResult[] {\n\t\tconst result = []\n\t\tconst createdEntities = []\n\t\tfor (const modification of migration.modifications) {\n\t\t\tif (modification.modification === createEntityModification.id || modification.modification === createViewModification.id) {\n\t\t\t\tcreatedEntities.push(modification.entity.name)\n\t\t\t}\n\t\t\tconst description = this.describeModification(\n\t\t\t\tschema,\n\t\t\t\tmodification,\n\t\t\t\t{\n\t\t\t\t\tformatVersion: migration.formatVersion,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tcreatedEntities,\n\t\t\t\t},\n\t\t\t)\n\t\t\tschema = description.schema\n\t\t\tresult.push(description)\n\t\t}\n\t\treturn result\n\t}\n}\n"],"names":["emptyModificationDescriptionContext","SchemaUpdateError","options","createMigrationBuilder","createEntityModification","createViewModification"],"mappings":";;;;;;;;;;;;AAwBO,MAAM,mBAAmB;AAAA,EAC/B,YAA6B,4BAAwD;AAAxD,SAAA,6BAAA;AAAA,EAC7B;AAAA,EAEO,qBACN,QACA,cACA,SACA,iCAAiEA,oBAAAA,qCACjC;AAChC,UAAM,sBAAsB,KAAK,2BAA2B;AAAA,MAC3D,aAAa;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAED,QAAI;AACH,eAAS,oBAAoB,mBAAmB,EAAE,QAAQ;AAAA,IAC3D,SAAS,GAAG;AACX,UAAI,EAAE,aAAaC,WAAAA,oBAAoB;AACtC,cAAM;AAAA,MACP;AACA,YAAM,IAAIA,WAAAA,kBAAkB,EAAE,UAAU,4BAA4B,KAAK,UAAU,YAAY,CAAC;AAAA,IACjG;AACA,WAAO;AAAA,MACN;AAAA,MACA;AAAA,MACA,QAAQ,CAAAC,aAAW;AAClB,cAAM,UAAUC,mBAAAA,uBAAA;AAChB,4BAAoB,UAAU,SAASD,QAAO;AAC9C,eAAO,QAAQ,OAAA;AAAA,MAChB;AAAA,MACA,aAAa,oBAAoB,SAAS,8BAA8B;AAAA,MACxE,SAAS;AAAA,IAAA;AAAA,EAEX;AAAA,EAEO,sBAAsB,QAAgB,WAAuD;AACnG,UAAM,SAAS,CAAA;AACf,UAAM,kBAAkB,CAAA;AACxB,eAAW,gBAAgB,UAAU,eAAe;AACnD,UAAI,aAAa,iBAAiBE,kDAAyB,MAAM,aAAa,iBAAiBC,uBAAAA,uBAAuB,IAAI;AACzH,wBAAgB,KAAK,aAAa,OAAO,IAAI;AAAA,MAC9C;AACA,YAAM,cAAc,KAAK;AAAA,QACxB;AAAA,QACA;AAAA,QACA;AAAA,UACC,eAAe,UAAU;AAAA,QAAA;AAAA,QAE1B;AAAA,UACC;AAAA,QAAA;AAAA,MACD;AAED,eAAS,YAAY;AACrB,aAAO,KAAK,WAAW;AAAA,IACxB;AACA,WAAO;AAAA,EACR;AACD;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"MigrationDescriber.js","sources":["../../../../packages/schema-migrations/src/MigrationDescriber.ts"],"sourcesContent":["import {\n\tcreateEntityModification,\n\tcreateViewModification,\n\temptyModificationDescriptionContext,\n\tModificationDescription,\n\tModificationDescriptionContext,\n\tModificationHandler,\n\tModificationHandlerCreateSqlOptions,\n\tModificationHandlerFactory,\n\tModificationHandlerOptions,\n\tSchemaUpdateError,\n} from './modifications'\nimport { createMigrationBuilder } from '@contember/database-migrations'\nimport { Migration } from './Migration'\nimport { Schema } from '@contember/schema'\n\nexport interface ModificationDescriptionResult {\n\tmodification: Migration.Modification\n\tschema: Schema\n\tdescription: ModificationDescription\n\thandler: ModificationHandler<any>\n\tgetSql: (options: ModificationHandlerCreateSqlOptions) => string\n}\n\nexport class MigrationDescriber {\n\tconstructor(private readonly modificationHandlerFactory: ModificationHandlerFactory) {\n\t}\n\n\tpublic describeModification(\n\t\tschema: Schema,\n\t\tmodification: Migration.Modification,\n\t\toptions: ModificationHandlerOptions,\n\t\tmodificationDescriptionContext: ModificationDescriptionContext = emptyModificationDescriptionContext,\n\t): ModificationDescriptionResult {\n\t\tconst modificationHandler = this.modificationHandlerFactory.create(\n\t\t\tmodification.modification,\n\t\t\tmodification,\n\t\t\tschema,\n\t\t\toptions,\n\t\t)\n\t\ttry {\n\t\t\tschema = modificationHandler.getSchemaUpdater()({ schema })\n\t\t} catch (e) {\n\t\t\tif (!(e instanceof SchemaUpdateError)) {\n\t\t\t\tthrow e\n\t\t\t}\n\t\t\tthrow new SchemaUpdateError(e.message + '\\n for modification: \\n' + JSON.stringify(modification))\n\t\t}\n\t\treturn {\n\t\t\tmodification,\n\t\t\tschema,\n\t\t\tgetSql: options => {\n\t\t\t\tconst builder = createMigrationBuilder()\n\t\t\t\tmodificationHandler.createSql(builder, options)\n\t\t\t\treturn builder.getSql()\n\t\t\t},\n\t\t\tdescription: modificationHandler.describe(modificationDescriptionContext),\n\t\t\thandler: modificationHandler,\n\t\t}\n\t}\n\n\tpublic describeModifications(schema: Schema, migration: Migration): ModificationDescriptionResult[] {\n\t\tconst result = []\n\t\tconst createdEntities = []\n\t\tfor (const modification of migration.modifications) {\n\t\t\tif (modification.modification === createEntityModification.id || modification.modification === createViewModification.id) {\n\t\t\t\tcreatedEntities.push(modification.entity.name)\n\t\t\t}\n\t\t\tconst description = this.describeModification(\n\t\t\t\tschema,\n\t\t\t\tmodification,\n\t\t\t\t{\n\t\t\t\t\tformatVersion: migration.formatVersion,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tcreatedEntities,\n\t\t\t\t},\n\t\t\t)\n\t\t\tschema = description.schema\n\t\t\tresult.push(description)\n\t\t}\n\t\treturn result\n\t}\n}\n"],"names":["options"],"mappings":";;;;;;;;;;AAwBO,MAAM,mBAAmB;AAAA,EAC/B,YAA6B,4BAAwD;AAAxD,SAAA,6BAAA;AAAA,EAC7B;AAAA,EAEO,qBACN,QACA,cACA,SACA,iCAAiE,qCACjC;AAChC,UAAM,sBAAsB,KAAK,2BAA2B;AAAA,MAC3D,aAAa;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAED,QAAI;AACH,eAAS,oBAAoB,mBAAmB,EAAE,QAAQ;AAAA,IAC3D,SAAS,GAAG;AACX,UAAI,EAAE,aAAa,oBAAoB;AACtC,cAAM;AAAA,MACP;AACA,YAAM,IAAI,kBAAkB,EAAE,UAAU,4BAA4B,KAAK,UAAU,YAAY,CAAC;AAAA,IACjG;AACA,WAAO;AAAA,MACN;AAAA,MACA;AAAA,MACA,QAAQ,CAAAA,aAAW;AAClB,cAAM,UAAU,uBAAA;AAChB,4BAAoB,UAAU,SAASA,QAAO;AAC9C,eAAO,QAAQ,OAAA;AAAA,MAChB;AAAA,MACA,aAAa,oBAAoB,SAAS,8BAA8B;AAAA,MACxE,SAAS;AAAA,IAAA;AAAA,EAEX;AAAA,EAEO,sBAAsB,QAAgB,WAAuD;AACnG,UAAM,SAAS,CAAA;AACf,UAAM,kBAAkB,CAAA;AACxB,eAAW,gBAAgB,UAAU,eAAe;AACnD,UAAI,aAAa,iBAAiB,yBAAyB,MAAM,aAAa,iBAAiB,uBAAuB,IAAI;AACzH,wBAAgB,KAAK,aAAa,OAAO,IAAI;AAAA,MAC9C;AACA,YAAM,cAAc,KAAK;AAAA,QACxB;AAAA,QACA;AAAA,QACA;AAAA,UACC,eAAe,UAAU;AAAA,QAAA;AAAA,QAE1B;AAAA,UACC;AAAA,QAAA;AAAA,MACD;AAED,eAAS,YAAY;AACrB,aAAO,KAAK,WAAW;AAAA,IACxB;AACA,WAAO;AAAA,EACR;AACD;"}
1
+ {"version":3,"file":"MigrationDescriber.js","sources":["../../../../packages/schema-migrations/src/MigrationDescriber.ts"],"sourcesContent":["import {\n\tcreateEntityModification,\n\tcreateViewModification,\n\temptyModificationDescriptionContext,\n\tModificationDescription,\n\tModificationDescriptionContext,\n\tModificationHandler,\n\tModificationHandlerCreateSqlOptions,\n\tModificationHandlerFactory,\n\tModificationHandlerOptions,\n\tSchemaUpdateError,\n} from './modifications/index.js'\nimport { createMigrationBuilder } from '@contember/database-migrations'\nimport { Migration } from './Migration.js'\nimport { Schema } from '@contember/schema'\n\nexport interface ModificationDescriptionResult {\n\tmodification: Migration.Modification\n\tschema: Schema\n\tdescription: ModificationDescription\n\thandler: ModificationHandler<any>\n\tgetSql: (options: ModificationHandlerCreateSqlOptions) => string\n}\n\nexport class MigrationDescriber {\n\tconstructor(private readonly modificationHandlerFactory: ModificationHandlerFactory) {\n\t}\n\n\tpublic describeModification(\n\t\tschema: Schema,\n\t\tmodification: Migration.Modification,\n\t\toptions: ModificationHandlerOptions,\n\t\tmodificationDescriptionContext: ModificationDescriptionContext = emptyModificationDescriptionContext,\n\t): ModificationDescriptionResult {\n\t\tconst modificationHandler = this.modificationHandlerFactory.create(\n\t\t\tmodification.modification,\n\t\t\tmodification,\n\t\t\tschema,\n\t\t\toptions,\n\t\t)\n\t\ttry {\n\t\t\tschema = modificationHandler.getSchemaUpdater()({ schema })\n\t\t} catch (e) {\n\t\t\tif (!(e instanceof SchemaUpdateError)) {\n\t\t\t\tthrow e\n\t\t\t}\n\t\t\tthrow new SchemaUpdateError(e.message + '\\n for modification: \\n' + JSON.stringify(modification))\n\t\t}\n\t\treturn {\n\t\t\tmodification,\n\t\t\tschema,\n\t\t\tgetSql: options => {\n\t\t\t\tconst builder = createMigrationBuilder()\n\t\t\t\tmodificationHandler.createSql(builder, options)\n\t\t\t\treturn builder.getSql()\n\t\t\t},\n\t\t\tdescription: modificationHandler.describe(modificationDescriptionContext),\n\t\t\thandler: modificationHandler,\n\t\t}\n\t}\n\n\tpublic describeModifications(schema: Schema, migration: Migration): ModificationDescriptionResult[] {\n\t\tconst result = []\n\t\tconst createdEntities = []\n\t\tfor (const modification of migration.modifications) {\n\t\t\tif (modification.modification === createEntityModification.id || modification.modification === createViewModification.id) {\n\t\t\t\tcreatedEntities.push(modification.entity.name)\n\t\t\t}\n\t\t\tconst description = this.describeModification(\n\t\t\t\tschema,\n\t\t\t\tmodification,\n\t\t\t\t{\n\t\t\t\t\tformatVersion: migration.formatVersion,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tcreatedEntities,\n\t\t\t\t},\n\t\t\t)\n\t\t\tschema = description.schema\n\t\t\tresult.push(description)\n\t\t}\n\t\treturn result\n\t}\n}\n"],"names":["options"],"mappings":";;;;;;;;;;AAwBO,MAAM,mBAAmB;AAAA,EAC/B,YAA6B,4BAAwD;AAAxD,SAAA,6BAAA;AAAA,EAC7B;AAAA,EAEO,qBACN,QACA,cACA,SACA,iCAAiE,qCACjC;AAChC,UAAM,sBAAsB,KAAK,2BAA2B;AAAA,MAC3D,aAAa;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAED,QAAI;AACH,eAAS,oBAAoB,mBAAmB,EAAE,QAAQ;AAAA,IAC3D,SAAS,GAAG;AACX,UAAI,EAAE,aAAa,oBAAoB;AACtC,cAAM;AAAA,MACP;AACA,YAAM,IAAI,kBAAkB,EAAE,UAAU,4BAA4B,KAAK,UAAU,YAAY,CAAC;AAAA,IACjG;AACA,WAAO;AAAA,MACN;AAAA,MACA;AAAA,MACA,QAAQ,CAAAA,aAAW;AAClB,cAAM,UAAU,uBAAA;AAChB,4BAAoB,UAAU,SAASA,QAAO;AAC9C,eAAO,QAAQ,OAAA;AAAA,MAChB;AAAA,MACA,aAAa,oBAAoB,SAAS,8BAA8B;AAAA,MACxE,SAAS;AAAA,IAAA;AAAA,EAEX;AAAA,EAEO,sBAAsB,QAAgB,WAAuD;AACnG,UAAM,SAAS,CAAA;AACf,UAAM,kBAAkB,CAAA;AACxB,eAAW,gBAAgB,UAAU,eAAe;AACnD,UAAI,aAAa,iBAAiB,yBAAyB,MAAM,aAAa,iBAAiB,uBAAuB,IAAI;AACzH,wBAAgB,KAAK,aAAa,OAAO,IAAI;AAAA,MAC9C;AACA,YAAM,cAAc,KAAK;AAAA,QACxB;AAAA,QACA;AAAA,QACA;AAAA,UACC,eAAe,UAAU;AAAA,QAAA;AAAA,QAE1B;AAAA,UACC;AAAA,QAAA;AAAA,MACD;AAED,eAAS,YAAY;AACrB,aAAO,KAAK,WAAW;AAAA,IACxB;AACA,WAAO;AAAA,EACR;AACD;"}
@@ -36,6 +36,7 @@ const UpdateValidationSchemaModification = require("./modifications/validation/U
36
36
  require("./modifications/ModificationHandlerFactory.cjs");
37
37
  const RemoveChangedFieldDiffer = require("./modifications/differs/RemoveChangedFieldDiffer.cjs");
38
38
  const RemoveViewDiffer = require("./modifications/differs/RemoveViewDiffer.cjs");
39
+ const UpdateViewDiffer = require("./modifications/differs/UpdateViewDiffer.cjs");
39
40
  const CreateIndexModification = require("./modifications/indexes/CreateIndexModification.cjs");
40
41
  const RemoveIndexModification = require("./modifications/indexes/RemoveIndexModification.cjs");
41
42
  const CreateTriggerModification = require("./modifications/actions/CreateTriggerModification.cjs");
@@ -54,7 +55,9 @@ class SchemaDiffer {
54
55
  }
55
56
  diffSchemas(originalSchema, updatedSchema, {
56
57
  skipInitialSchemaValidation = false,
57
- skipRecreateValidation = false
58
+ skipRecreateValidation = false,
59
+ skipNonModelDiffers = false,
60
+ recreateViews = false
58
61
  } = {}) {
59
62
  if (!skipInitialSchemaValidation) {
60
63
  const originalErrors = schemaUtils.SchemaValidator.validate(originalSchema);
@@ -68,13 +71,13 @@ class SchemaDiffer {
68
71
  }
69
72
  const differs = [
70
73
  new RemoveIndexNamesModification.RemoveIndexNamesDiffer(),
71
- new UpdateSettingsModification.UpdateSettingsDiffer(),
74
+ ...skipNonModelDiffers ? [] : [new UpdateSettingsModification.UpdateSettingsDiffer()],
72
75
  new ConvertOneToManyRelationModification.ConvertOneToManyRelationDiffer(),
73
76
  new ConvertOneHasManyToManyHasManyRelationModification.ConvertOneHasManyToManyHasManyRelationDiffer(),
74
77
  new ConvertOneHasManyToOneHasOneRelationModification.ConvertOneHasManyToOneHasOneRelationDiffer(),
75
78
  new RemoveUniqueConstraintModification.RemoveUniqueConstraintDiffer(),
76
79
  new RemoveIndexModification.RemoveIndexDiffer(),
77
- new RemoveViewDiffer.RemoveViewDiffer(),
80
+ new RemoveViewDiffer.RemoveViewDiffer(recreateViews),
78
81
  new RemoveEntityModification.RemoveEntityDiffer(),
79
82
  new RemoveFieldModification.RemoveFieldDiffer(),
80
83
  new CreateEnumModification.CreateEnumDiffer(),
@@ -96,19 +99,24 @@ class SchemaDiffer {
96
99
  new CreateColumnModification.CreateColumnDiffer(),
97
100
  new CreateRelationModification.CreateRelationDiffer(),
98
101
  new CreateViewModification.CreateViewDiffer(),
102
+ ...recreateViews ? [] : [new UpdateViewDiffer.UpdateViewDiffer()],
99
103
  new CreateRelationInverseSideModification.CreateRelationInverseSideDiffer(),
100
104
  new CreateUniqueConstraintModification.CreateUniqueConstraintDiffer(),
101
105
  new CreateIndexModification.CreateIndexDiffer(),
102
106
  new RemoveEnumModification.RemoveEnumDiffer(),
103
- new UpdateAclSchemaModification.UpdateAclSchemaDiffer(this.options),
104
- new UpdateValidationSchemaModification.UpdateValidationSchemaDiffer(this.options),
107
+ ...skipNonModelDiffers ? [] : [
108
+ new UpdateAclSchemaModification.UpdateAclSchemaDiffer(this.options),
109
+ new UpdateValidationSchemaModification.UpdateValidationSchemaDiffer(this.options)
110
+ ],
105
111
  new UpdateEntityOrderByModification.UpdateEntityOrderByDiffer(),
106
- new UpdateTargetModification.UpdateTargetDiffer(),
107
- new CreateTargetModification.CreateTargetDiffer(),
108
- new UpdateTriggerModification.UpdateTriggerDiffer(this.options),
109
- new CreateTriggerModification.CreateTriggerDiffer(),
110
- new RemoveTriggerModification.RemoveTriggerDiffer(),
111
- new RemoveTargetModification.RemoveTargetDiffer()
112
+ ...skipNonModelDiffers ? [] : [
113
+ new UpdateTargetModification.UpdateTargetDiffer(),
114
+ new CreateTargetModification.CreateTargetDiffer(),
115
+ new UpdateTriggerModification.UpdateTriggerDiffer(this.options),
116
+ new CreateTriggerModification.CreateTriggerDiffer(),
117
+ new RemoveTriggerModification.RemoveTriggerDiffer(),
118
+ new RemoveTargetModification.RemoveTargetDiffer()
119
+ ]
112
120
  ];
113
121
  const diffs = [];
114
122
  let appliedDiffsSchema = originalSchema;
@@ -118,7 +126,14 @@ class SchemaDiffer {
118
126
  diffs.push(...differDiffs);
119
127
  }
120
128
  if (!skipRecreateValidation) {
121
- const errors = schemaUtils.deepCompare(updatedSchema, appliedDiffsSchema, [], (path) => {
129
+ const targetForCompare = skipNonModelDiffers ? {
130
+ ...updatedSchema,
131
+ acl: appliedDiffsSchema.acl,
132
+ validation: appliedDiffsSchema.validation,
133
+ actions: appliedDiffsSchema.actions,
134
+ settings: appliedDiffsSchema.settings
135
+ } : updatedSchema;
136
+ const errors = schemaUtils.deepCompare(targetForCompare, appliedDiffsSchema, [], (path) => {
122
137
  if (path[0] === "model" && path[1] === "entities" && (path[3] === "unique" || path[3] === "index")) {
123
138
  return (a, b) => {
124
139
  return schemaUtils.compareArraysIgnoreOrder(a, b, path);
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaDiffer.cjs","sources":["../../../../packages/schema-migrations/src/SchemaDiffer.ts"],"sourcesContent":["import { Schema } from '@contember/schema'\nimport {\n\tcompareArraysIgnoreOrder,\n\tdeepCompare,\n\tisInverseRelation,\n\tisOwningRelation,\n\tisRelation,\n\tSchemaValidator,\n\tValidationError,\n} from '@contember/schema-utils'\nimport { SchemaMigrator } from './SchemaMigrator'\nimport { Migration } from './Migration'\nimport { ImplementationException } from './exceptions'\nimport {\n\tConvertOneHasManyToManyHasManyRelationDiffer,\n\tConvertOneToManyRelationDiffer,\n\tCreateColumnDiffer,\n\tCreateEntityDiffer,\n\tCreateEnumDiffer,\n\tCreateRelationDiffer,\n\tCreateRelationInverseSideDiffer,\n\tCreateUniqueConstraintDiffer,\n\tCreateViewDiffer,\n\tDiffer,\n\tDisableOrphanRemovalDiffer,\n\tEnableOrphanRemovalDiffer,\n\tMakeRelationNotNullDiffer,\n\tMakeRelationNullableDiffer,\n\tRemoveEntityDiffer,\n\tRemoveEnumDiffer,\n\tRemoveFieldDiffer,\n\tRemoveUniqueConstraintDiffer,\n\tToggleEventLogDiffer,\n\tToggleJunctionEventLogDiffer,\n\tUpdateAclSchemaDiffer,\n\tUpdateColumnDefinitionDiffer,\n\tUpdateColumnNameDiffer,\n\tUpdateEntityOrderByDiffer,\n\tUpdateEntityTableNameDiffer,\n\tUpdateEnumDiffer,\n\tUpdateRelationOnDeleteDiffer,\n\tUpdateRelationOrderByDiffer,\n\tUpdateValidationSchemaDiffer,\n\tVERSION_LATEST,\n} from './modifications'\nimport { RemoveChangedFieldDiffer, RemoveViewDiffer } from './modifications/differs'\nimport { CreateIndexDiffer, RemoveIndexDiffer } from './modifications/indexes'\nimport { CreateTriggerDiffer, RemoveTriggerDiffer, UpdateTriggerDiffer } from './modifications/actions'\nimport { UpdateTargetDiffer } from './modifications/actions/UpdateTargetModification'\nimport { CreateTargetDiffer } from './modifications/actions/CreateTargetModification'\nimport { RemoveTargetDiffer } from './modifications/actions/RemoveTargetModification'\nimport { UpdateSettingsDiffer } from './modifications/settings'\nimport { RemoveIndexNamesDiffer } from './modifications/upgrade/RemoveIndexNamesModification'\nimport { ConvertOneHasManyToOneHasOneRelationDiffer } from './modifications/relations/ConvertOneHasManyToOneHasOneRelationModification'\n\ntype DiffOptions = { skipRecreateValidation?: boolean; skipInitialSchemaValidation?: boolean }\n\nexport class SchemaDiffer {\n\tconstructor(\n\t\tprivate readonly schemaMigrator: SchemaMigrator,\n\t\tprivate readonly options?: {\n\t\t\tmaxPatchSize?: number\n\t\t},\n\t) {}\n\n\tdiffSchemas(originalSchema: Schema, updatedSchema: Schema, {\n\t\tskipInitialSchemaValidation = false,\n\t\tskipRecreateValidation = false,\n\t}: DiffOptions = {}): Migration.Modification[] {\n\t\tif (!skipInitialSchemaValidation) {\n\t\t\tconst originalErrors = SchemaValidator.validate(originalSchema)\n\t\t\tif (originalErrors.length > 0) {\n\t\t\t\tthrow new InvalidSchemaException('original schema is not valid', originalErrors)\n\t\t\t}\n\t\t}\n\t\tconst updatedErrors = SchemaValidator.validate(updatedSchema)\n\t\tif (updatedErrors.length > 0) {\n\t\t\tthrow new InvalidSchemaException('updated schema is not valid', updatedErrors)\n\t\t}\n\n\t\tconst differs: Differ[] = [\n\t\t\tnew RemoveIndexNamesDiffer(),\n\t\t\tnew UpdateSettingsDiffer(),\n\t\t\tnew ConvertOneToManyRelationDiffer(),\n\t\t\tnew ConvertOneHasManyToManyHasManyRelationDiffer(),\n\t\t\tnew ConvertOneHasManyToOneHasOneRelationDiffer(),\n\t\t\tnew RemoveUniqueConstraintDiffer(),\n\t\t\tnew RemoveIndexDiffer(),\n\t\t\tnew RemoveViewDiffer(),\n\t\t\tnew RemoveEntityDiffer(),\n\t\t\tnew RemoveFieldDiffer(),\n\t\t\tnew CreateEnumDiffer(),\n\t\t\tnew UpdateEntityTableNameDiffer(),\n\t\t\tnew ToggleEventLogDiffer(),\n\t\t\tnew ToggleJunctionEventLogDiffer(),\n\t\t\tnew UpdateColumnDefinitionDiffer(),\n\t\t\tnew UpdateColumnNameDiffer(),\n\t\t\tnew UpdateRelationOnDeleteDiffer(),\n\t\t\tnew MakeRelationNotNullDiffer(),\n\t\t\tnew MakeRelationNullableDiffer(),\n\t\t\tnew EnableOrphanRemovalDiffer(),\n\t\t\tnew DisableOrphanRemovalDiffer(),\n\t\t\tnew UpdateRelationOrderByDiffer(),\n\t\t\tnew UpdateEnumDiffer(),\n\t\t\tnew RemoveChangedFieldDiffer(it => !isRelation(it) || isOwningRelation(it)),\n\t\t\tnew RemoveChangedFieldDiffer(it => isRelation(it) && isInverseRelation(it)),\n\t\t\tnew CreateEntityDiffer(),\n\t\t\tnew CreateColumnDiffer(),\n\t\t\tnew CreateRelationDiffer(),\n\t\t\tnew CreateViewDiffer(),\n\t\t\tnew CreateRelationInverseSideDiffer(),\n\t\t\tnew CreateUniqueConstraintDiffer(),\n\t\t\tnew CreateIndexDiffer(),\n\t\t\tnew RemoveEnumDiffer(),\n\t\t\tnew UpdateAclSchemaDiffer(this.options),\n\t\t\tnew UpdateValidationSchemaDiffer(this.options),\n\t\t\tnew UpdateEntityOrderByDiffer(),\n\t\t\tnew UpdateTargetDiffer(),\n\t\t\tnew CreateTargetDiffer(),\n\t\t\tnew UpdateTriggerDiffer(this.options),\n\t\t\tnew CreateTriggerDiffer(),\n\t\t\tnew RemoveTriggerDiffer(),\n\t\t\tnew RemoveTargetDiffer(),\n\t\t]\n\n\t\tconst diffs: Migration.Modification[] = []\n\t\tlet appliedDiffsSchema = originalSchema\n\t\tfor (const differ of differs) {\n\t\t\tconst differDiffs = differ.createDiff(appliedDiffsSchema, updatedSchema)\n\t\t\tappliedDiffsSchema = this.schemaMigrator.applyModifications(appliedDiffsSchema, differDiffs, VERSION_LATEST)\n\t\t\tdiffs.push(...differDiffs)\n\t\t}\n\n\t\tif (!skipRecreateValidation) {\n\t\t\tconst errors = deepCompare(updatedSchema, appliedDiffsSchema, [], path => {\n\t\t\t\tif (path[0] === 'model' && path[1] === 'entities' && (path[3] === 'unique' || path[3] === 'index')) {\n\t\t\t\t\treturn (a, b) => {\n\t\t\t\t\t\treturn compareArraysIgnoreOrder(a, b, path)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn null\n\t\t\t})\n\t\t\tif (errors.length === 0) {\n\t\t\t\treturn diffs\n\t\t\t}\n\t\t\tlet message = 'Updated schema cannot be recreated by the generated diff:'\n\t\t\tfor (const err of errors) {\n\t\t\t\tmessage += '\\n\\t' + err.path.join('.') + ': ' + err.message\n\t\t\t}\n\t\t\tmessage += '\\n\\nPlease fill a bug report'\n\t\t\tthrow new ImplementationException(message)\n\t\t}\n\n\t\treturn diffs\n\t}\n}\n\nexport class InvalidSchemaException extends Error {\n\tconstructor(message: string, public readonly validationErrors: ValidationError[]) {\n\t\tsuper(message)\n\t}\n}\n"],"names":["SchemaValidator","RemoveIndexNamesDiffer","UpdateSettingsDiffer","ConvertOneToManyRelationDiffer","ConvertOneHasManyToManyHasManyRelationDiffer","ConvertOneHasManyToOneHasOneRelationDiffer","RemoveUniqueConstraintDiffer","RemoveIndexDiffer","RemoveViewDiffer","RemoveEntityDiffer","RemoveFieldDiffer","CreateEnumDiffer","UpdateEntityTableNameDiffer","ToggleEventLogDiffer","ToggleJunctionEventLogDiffer","UpdateColumnDefinitionDiffer","UpdateColumnNameDiffer","UpdateRelationOnDeleteDiffer","MakeRelationNotNullDiffer","MakeRelationNullableDiffer","EnableOrphanRemovalDiffer","DisableOrphanRemovalDiffer","UpdateRelationOrderByDiffer","UpdateEnumDiffer","RemoveChangedFieldDiffer","isRelation","isOwningRelation","isInverseRelation","CreateEntityDiffer","CreateColumnDiffer","CreateRelationDiffer","CreateViewDiffer","CreateRelationInverseSideDiffer","CreateUniqueConstraintDiffer","CreateIndexDiffer","RemoveEnumDiffer","UpdateAclSchemaDiffer","UpdateValidationSchemaDiffer","UpdateEntityOrderByDiffer","UpdateTargetDiffer","CreateTargetDiffer","UpdateTriggerDiffer","CreateTriggerDiffer","RemoveTriggerDiffer","RemoveTargetDiffer","VERSION_LATEST","deepCompare","compareArraysIgnoreOrder","ImplementationException"],"mappings":"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"}
1
+ {"version":3,"file":"SchemaDiffer.cjs","sources":["../../../../packages/schema-migrations/src/SchemaDiffer.ts"],"sourcesContent":["import { Schema } from '@contember/schema'\nimport {\n\tcompareArraysIgnoreOrder,\n\tdeepCompare,\n\tisInverseRelation,\n\tisOwningRelation,\n\tisRelation,\n\tSchemaValidator,\n\tValidationError,\n} from '@contember/schema-utils'\nimport { SchemaMigrator } from './SchemaMigrator.js'\nimport { Migration } from './Migration.js'\nimport { ImplementationException } from './exceptions.js'\nimport {\n\tConvertOneHasManyToManyHasManyRelationDiffer,\n\tConvertOneToManyRelationDiffer,\n\tCreateColumnDiffer,\n\tCreateEntityDiffer,\n\tCreateEnumDiffer,\n\tCreateRelationDiffer,\n\tCreateRelationInverseSideDiffer,\n\tCreateUniqueConstraintDiffer,\n\tCreateViewDiffer,\n\tDiffer,\n\tDisableOrphanRemovalDiffer,\n\tEnableOrphanRemovalDiffer,\n\tMakeRelationNotNullDiffer,\n\tMakeRelationNullableDiffer,\n\tRemoveEntityDiffer,\n\tRemoveEnumDiffer,\n\tRemoveFieldDiffer,\n\tRemoveUniqueConstraintDiffer,\n\tToggleEventLogDiffer,\n\tToggleJunctionEventLogDiffer,\n\tUpdateAclSchemaDiffer,\n\tUpdateColumnDefinitionDiffer,\n\tUpdateColumnNameDiffer,\n\tUpdateEntityOrderByDiffer,\n\tUpdateEntityTableNameDiffer,\n\tUpdateEnumDiffer,\n\tUpdateRelationOnDeleteDiffer,\n\tUpdateRelationOrderByDiffer,\n\tUpdateValidationSchemaDiffer,\n\tVERSION_LATEST,\n} from './modifications/index.js'\nimport { RemoveChangedFieldDiffer, RemoveViewDiffer, UpdateViewDiffer } from './modifications/differs/index.js'\nimport { CreateIndexDiffer, RemoveIndexDiffer } from './modifications/indexes/index.js'\nimport { CreateTriggerDiffer, RemoveTriggerDiffer, UpdateTriggerDiffer } from './modifications/actions/index.js'\nimport { UpdateTargetDiffer } from './modifications/actions/UpdateTargetModification.js'\nimport { CreateTargetDiffer } from './modifications/actions/CreateTargetModification.js'\nimport { RemoveTargetDiffer } from './modifications/actions/RemoveTargetModification.js'\nimport { UpdateSettingsDiffer } from './modifications/settings/index.js'\nimport { RemoveIndexNamesDiffer } from './modifications/upgrade/RemoveIndexNamesModification.js'\nimport { ConvertOneHasManyToOneHasOneRelationDiffer } from './modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.js'\n\nexport type DiffOptions = {\n\tskipRecreateValidation?: boolean\n\tskipInitialSchemaValidation?: boolean\n\tskipNonModelDiffers?: boolean\n\t/**\n\t * Disable the in-place `CREATE OR REPLACE VIEW` optimization and drop & recreate every\n\t * changed view (with its dependant cascade) instead. Escape hatch for views whose real\n\t * output columns drifted without a matching field change (which would otherwise fail at\n\t * execute time with `SQLSTATE 42P16`).\n\t */\n\trecreateViews?: boolean\n}\n\nexport class SchemaDiffer {\n\tconstructor(\n\t\tprivate readonly schemaMigrator: SchemaMigrator,\n\t\tprivate readonly options?: {\n\t\t\tmaxPatchSize?: number\n\t\t},\n\t) {}\n\n\tdiffSchemas(originalSchema: Schema, updatedSchema: Schema, {\n\t\tskipInitialSchemaValidation = false,\n\t\tskipRecreateValidation = false,\n\t\tskipNonModelDiffers = false,\n\t\trecreateViews = false,\n\t}: DiffOptions = {}): Migration.Modification[] {\n\t\tif (!skipInitialSchemaValidation) {\n\t\t\tconst originalErrors = SchemaValidator.validate(originalSchema)\n\t\t\tif (originalErrors.length > 0) {\n\t\t\t\tthrow new InvalidSchemaException('original schema is not valid', originalErrors)\n\t\t\t}\n\t\t}\n\t\tconst updatedErrors = SchemaValidator.validate(updatedSchema)\n\t\tif (updatedErrors.length > 0) {\n\t\t\tthrow new InvalidSchemaException('updated schema is not valid', updatedErrors)\n\t\t}\n\n\t\tconst differs: Differ[] = [\n\t\t\tnew RemoveIndexNamesDiffer(),\n\t\t\t...skipNonModelDiffers ? [] : [new UpdateSettingsDiffer()],\n\t\t\tnew ConvertOneToManyRelationDiffer(),\n\t\t\tnew ConvertOneHasManyToManyHasManyRelationDiffer(),\n\t\t\tnew ConvertOneHasManyToOneHasOneRelationDiffer(),\n\t\t\tnew RemoveUniqueConstraintDiffer(),\n\t\t\tnew RemoveIndexDiffer(),\n\t\t\tnew RemoveViewDiffer(recreateViews),\n\t\t\tnew RemoveEntityDiffer(),\n\t\t\tnew RemoveFieldDiffer(),\n\t\t\tnew CreateEnumDiffer(),\n\t\t\tnew UpdateEntityTableNameDiffer(),\n\t\t\tnew ToggleEventLogDiffer(),\n\t\t\tnew ToggleJunctionEventLogDiffer(),\n\t\t\tnew UpdateColumnDefinitionDiffer(),\n\t\t\tnew UpdateColumnNameDiffer(),\n\t\t\tnew UpdateRelationOnDeleteDiffer(),\n\t\t\tnew MakeRelationNotNullDiffer(),\n\t\t\tnew MakeRelationNullableDiffer(),\n\t\t\tnew EnableOrphanRemovalDiffer(),\n\t\t\tnew DisableOrphanRemovalDiffer(),\n\t\t\tnew UpdateRelationOrderByDiffer(),\n\t\t\tnew UpdateEnumDiffer(),\n\t\t\tnew RemoveChangedFieldDiffer(it => !isRelation(it) || isOwningRelation(it)),\n\t\t\tnew RemoveChangedFieldDiffer(it => isRelation(it) && isInverseRelation(it)),\n\t\t\tnew CreateEntityDiffer(),\n\t\t\tnew CreateColumnDiffer(),\n\t\t\tnew CreateRelationDiffer(),\n\t\t\tnew CreateViewDiffer(),\n\t\t\t...recreateViews ? [] : [new UpdateViewDiffer()],\n\t\t\tnew CreateRelationInverseSideDiffer(),\n\t\t\tnew CreateUniqueConstraintDiffer(),\n\t\t\tnew CreateIndexDiffer(),\n\t\t\tnew RemoveEnumDiffer(),\n\t\t\t...skipNonModelDiffers ? [] : [\n\t\t\t\tnew UpdateAclSchemaDiffer(this.options),\n\t\t\t\tnew UpdateValidationSchemaDiffer(this.options),\n\t\t\t],\n\t\t\tnew UpdateEntityOrderByDiffer(),\n\t\t\t...skipNonModelDiffers ? [] : [\n\t\t\t\tnew UpdateTargetDiffer(),\n\t\t\t\tnew CreateTargetDiffer(),\n\t\t\t\tnew UpdateTriggerDiffer(this.options),\n\t\t\t\tnew CreateTriggerDiffer(),\n\t\t\t\tnew RemoveTriggerDiffer(),\n\t\t\t\tnew RemoveTargetDiffer(),\n\t\t\t],\n\t\t]\n\n\t\tconst diffs: Migration.Modification[] = []\n\t\tlet appliedDiffsSchema = originalSchema\n\t\tfor (const differ of differs) {\n\t\t\tconst differDiffs = differ.createDiff(appliedDiffsSchema, updatedSchema)\n\t\t\tappliedDiffsSchema = this.schemaMigrator.applyModifications(appliedDiffsSchema, differDiffs, VERSION_LATEST)\n\t\t\tdiffs.push(...differDiffs)\n\t\t}\n\n\t\tif (!skipRecreateValidation) {\n\t\t\tconst targetForCompare = skipNonModelDiffers\n\t\t\t\t? {\n\t\t\t\t\t...updatedSchema,\n\t\t\t\t\tacl: appliedDiffsSchema.acl,\n\t\t\t\t\tvalidation: appliedDiffsSchema.validation,\n\t\t\t\t\tactions: appliedDiffsSchema.actions,\n\t\t\t\t\tsettings: appliedDiffsSchema.settings,\n\t\t\t\t}\n\t\t\t\t: updatedSchema\n\t\t\tconst errors = deepCompare(targetForCompare, appliedDiffsSchema, [], path => {\n\t\t\t\tif (path[0] === 'model' && path[1] === 'entities' && (path[3] === 'unique' || path[3] === 'index')) {\n\t\t\t\t\treturn (a, b) => {\n\t\t\t\t\t\treturn compareArraysIgnoreOrder(a, b, path)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn null\n\t\t\t})\n\t\t\tif (errors.length === 0) {\n\t\t\t\treturn diffs\n\t\t\t}\n\t\t\tlet message = 'Updated schema cannot be recreated by the generated diff:'\n\t\t\tfor (const err of errors) {\n\t\t\t\tmessage += '\\n\\t' + err.path.join('.') + ': ' + err.message\n\t\t\t}\n\t\t\tmessage += '\\n\\nPlease fill a bug report'\n\t\t\tthrow new ImplementationException(message)\n\t\t}\n\n\t\treturn diffs\n\t}\n}\n\nexport class InvalidSchemaException extends Error {\n\tconstructor(message: string, public readonly validationErrors: ValidationError[]) {\n\t\tsuper(message)\n\t}\n}\n"],"names":["SchemaValidator","RemoveIndexNamesDiffer","UpdateSettingsDiffer","ConvertOneToManyRelationDiffer","ConvertOneHasManyToManyHasManyRelationDiffer","ConvertOneHasManyToOneHasOneRelationDiffer","RemoveUniqueConstraintDiffer","RemoveIndexDiffer","RemoveViewDiffer","RemoveEntityDiffer","RemoveFieldDiffer","CreateEnumDiffer","UpdateEntityTableNameDiffer","ToggleEventLogDiffer","ToggleJunctionEventLogDiffer","UpdateColumnDefinitionDiffer","UpdateColumnNameDiffer","UpdateRelationOnDeleteDiffer","MakeRelationNotNullDiffer","MakeRelationNullableDiffer","EnableOrphanRemovalDiffer","DisableOrphanRemovalDiffer","UpdateRelationOrderByDiffer","UpdateEnumDiffer","RemoveChangedFieldDiffer","isRelation","isOwningRelation","isInverseRelation","CreateEntityDiffer","CreateColumnDiffer","CreateRelationDiffer","CreateViewDiffer","UpdateViewDiffer","CreateRelationInverseSideDiffer","CreateUniqueConstraintDiffer","CreateIndexDiffer","RemoveEnumDiffer","UpdateAclSchemaDiffer","UpdateValidationSchemaDiffer","UpdateEntityOrderByDiffer","UpdateTargetDiffer","CreateTargetDiffer","UpdateTriggerDiffer","CreateTriggerDiffer","RemoveTriggerDiffer","RemoveTargetDiffer","VERSION_LATEST","deepCompare","compareArraysIgnoreOrder","ImplementationException"],"mappings":"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"}
@@ -34,6 +34,7 @@ import { UpdateValidationSchemaDiffer } from "./modifications/validation/UpdateV
34
34
  import "./modifications/ModificationHandlerFactory.js";
35
35
  import { RemoveChangedFieldDiffer } from "./modifications/differs/RemoveChangedFieldDiffer.js";
36
36
  import { RemoveViewDiffer } from "./modifications/differs/RemoveViewDiffer.js";
37
+ import { UpdateViewDiffer } from "./modifications/differs/UpdateViewDiffer.js";
37
38
  import { CreateIndexDiffer } from "./modifications/indexes/CreateIndexModification.js";
38
39
  import { RemoveIndexDiffer } from "./modifications/indexes/RemoveIndexModification.js";
39
40
  import { CreateTriggerDiffer } from "./modifications/actions/CreateTriggerModification.js";
@@ -52,7 +53,9 @@ class SchemaDiffer {
52
53
  }
53
54
  diffSchemas(originalSchema, updatedSchema, {
54
55
  skipInitialSchemaValidation = false,
55
- skipRecreateValidation = false
56
+ skipRecreateValidation = false,
57
+ skipNonModelDiffers = false,
58
+ recreateViews = false
56
59
  } = {}) {
57
60
  if (!skipInitialSchemaValidation) {
58
61
  const originalErrors = SchemaValidator.validate(originalSchema);
@@ -66,13 +69,13 @@ class SchemaDiffer {
66
69
  }
67
70
  const differs = [
68
71
  new RemoveIndexNamesDiffer(),
69
- new UpdateSettingsDiffer(),
72
+ ...skipNonModelDiffers ? [] : [new UpdateSettingsDiffer()],
70
73
  new ConvertOneToManyRelationDiffer(),
71
74
  new ConvertOneHasManyToManyHasManyRelationDiffer(),
72
75
  new ConvertOneHasManyToOneHasOneRelationDiffer(),
73
76
  new RemoveUniqueConstraintDiffer(),
74
77
  new RemoveIndexDiffer(),
75
- new RemoveViewDiffer(),
78
+ new RemoveViewDiffer(recreateViews),
76
79
  new RemoveEntityDiffer(),
77
80
  new RemoveFieldDiffer(),
78
81
  new CreateEnumDiffer(),
@@ -94,19 +97,24 @@ class SchemaDiffer {
94
97
  new CreateColumnDiffer(),
95
98
  new CreateRelationDiffer(),
96
99
  new CreateViewDiffer(),
100
+ ...recreateViews ? [] : [new UpdateViewDiffer()],
97
101
  new CreateRelationInverseSideDiffer(),
98
102
  new CreateUniqueConstraintDiffer(),
99
103
  new CreateIndexDiffer(),
100
104
  new RemoveEnumDiffer(),
101
- new UpdateAclSchemaDiffer(this.options),
102
- new UpdateValidationSchemaDiffer(this.options),
105
+ ...skipNonModelDiffers ? [] : [
106
+ new UpdateAclSchemaDiffer(this.options),
107
+ new UpdateValidationSchemaDiffer(this.options)
108
+ ],
103
109
  new UpdateEntityOrderByDiffer(),
104
- new UpdateTargetDiffer(),
105
- new CreateTargetDiffer(),
106
- new UpdateTriggerDiffer(this.options),
107
- new CreateTriggerDiffer(),
108
- new RemoveTriggerDiffer(),
109
- new RemoveTargetDiffer()
110
+ ...skipNonModelDiffers ? [] : [
111
+ new UpdateTargetDiffer(),
112
+ new CreateTargetDiffer(),
113
+ new UpdateTriggerDiffer(this.options),
114
+ new CreateTriggerDiffer(),
115
+ new RemoveTriggerDiffer(),
116
+ new RemoveTargetDiffer()
117
+ ]
110
118
  ];
111
119
  const diffs = [];
112
120
  let appliedDiffsSchema = originalSchema;
@@ -116,7 +124,14 @@ class SchemaDiffer {
116
124
  diffs.push(...differDiffs);
117
125
  }
118
126
  if (!skipRecreateValidation) {
119
- const errors = deepCompare(updatedSchema, appliedDiffsSchema, [], (path) => {
127
+ const targetForCompare = skipNonModelDiffers ? {
128
+ ...updatedSchema,
129
+ acl: appliedDiffsSchema.acl,
130
+ validation: appliedDiffsSchema.validation,
131
+ actions: appliedDiffsSchema.actions,
132
+ settings: appliedDiffsSchema.settings
133
+ } : updatedSchema;
134
+ const errors = deepCompare(targetForCompare, appliedDiffsSchema, [], (path) => {
120
135
  if (path[0] === "model" && path[1] === "entities" && (path[3] === "unique" || path[3] === "index")) {
121
136
  return (a, b) => {
122
137
  return compareArraysIgnoreOrder(a, b, path);
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaDiffer.js","sources":["../../../../packages/schema-migrations/src/SchemaDiffer.ts"],"sourcesContent":["import { Schema } from '@contember/schema'\nimport {\n\tcompareArraysIgnoreOrder,\n\tdeepCompare,\n\tisInverseRelation,\n\tisOwningRelation,\n\tisRelation,\n\tSchemaValidator,\n\tValidationError,\n} from '@contember/schema-utils'\nimport { SchemaMigrator } from './SchemaMigrator'\nimport { Migration } from './Migration'\nimport { ImplementationException } from './exceptions'\nimport {\n\tConvertOneHasManyToManyHasManyRelationDiffer,\n\tConvertOneToManyRelationDiffer,\n\tCreateColumnDiffer,\n\tCreateEntityDiffer,\n\tCreateEnumDiffer,\n\tCreateRelationDiffer,\n\tCreateRelationInverseSideDiffer,\n\tCreateUniqueConstraintDiffer,\n\tCreateViewDiffer,\n\tDiffer,\n\tDisableOrphanRemovalDiffer,\n\tEnableOrphanRemovalDiffer,\n\tMakeRelationNotNullDiffer,\n\tMakeRelationNullableDiffer,\n\tRemoveEntityDiffer,\n\tRemoveEnumDiffer,\n\tRemoveFieldDiffer,\n\tRemoveUniqueConstraintDiffer,\n\tToggleEventLogDiffer,\n\tToggleJunctionEventLogDiffer,\n\tUpdateAclSchemaDiffer,\n\tUpdateColumnDefinitionDiffer,\n\tUpdateColumnNameDiffer,\n\tUpdateEntityOrderByDiffer,\n\tUpdateEntityTableNameDiffer,\n\tUpdateEnumDiffer,\n\tUpdateRelationOnDeleteDiffer,\n\tUpdateRelationOrderByDiffer,\n\tUpdateValidationSchemaDiffer,\n\tVERSION_LATEST,\n} from './modifications'\nimport { RemoveChangedFieldDiffer, RemoveViewDiffer } from './modifications/differs'\nimport { CreateIndexDiffer, RemoveIndexDiffer } from './modifications/indexes'\nimport { CreateTriggerDiffer, RemoveTriggerDiffer, UpdateTriggerDiffer } from './modifications/actions'\nimport { UpdateTargetDiffer } from './modifications/actions/UpdateTargetModification'\nimport { CreateTargetDiffer } from './modifications/actions/CreateTargetModification'\nimport { RemoveTargetDiffer } from './modifications/actions/RemoveTargetModification'\nimport { UpdateSettingsDiffer } from './modifications/settings'\nimport { RemoveIndexNamesDiffer } from './modifications/upgrade/RemoveIndexNamesModification'\nimport { ConvertOneHasManyToOneHasOneRelationDiffer } from './modifications/relations/ConvertOneHasManyToOneHasOneRelationModification'\n\ntype DiffOptions = { skipRecreateValidation?: boolean; skipInitialSchemaValidation?: boolean }\n\nexport class SchemaDiffer {\n\tconstructor(\n\t\tprivate readonly schemaMigrator: SchemaMigrator,\n\t\tprivate readonly options?: {\n\t\t\tmaxPatchSize?: number\n\t\t},\n\t) {}\n\n\tdiffSchemas(originalSchema: Schema, updatedSchema: Schema, {\n\t\tskipInitialSchemaValidation = false,\n\t\tskipRecreateValidation = false,\n\t}: DiffOptions = {}): Migration.Modification[] {\n\t\tif (!skipInitialSchemaValidation) {\n\t\t\tconst originalErrors = SchemaValidator.validate(originalSchema)\n\t\t\tif (originalErrors.length > 0) {\n\t\t\t\tthrow new InvalidSchemaException('original schema is not valid', originalErrors)\n\t\t\t}\n\t\t}\n\t\tconst updatedErrors = SchemaValidator.validate(updatedSchema)\n\t\tif (updatedErrors.length > 0) {\n\t\t\tthrow new InvalidSchemaException('updated schema is not valid', updatedErrors)\n\t\t}\n\n\t\tconst differs: Differ[] = [\n\t\t\tnew RemoveIndexNamesDiffer(),\n\t\t\tnew UpdateSettingsDiffer(),\n\t\t\tnew ConvertOneToManyRelationDiffer(),\n\t\t\tnew ConvertOneHasManyToManyHasManyRelationDiffer(),\n\t\t\tnew ConvertOneHasManyToOneHasOneRelationDiffer(),\n\t\t\tnew RemoveUniqueConstraintDiffer(),\n\t\t\tnew RemoveIndexDiffer(),\n\t\t\tnew RemoveViewDiffer(),\n\t\t\tnew RemoveEntityDiffer(),\n\t\t\tnew RemoveFieldDiffer(),\n\t\t\tnew CreateEnumDiffer(),\n\t\t\tnew UpdateEntityTableNameDiffer(),\n\t\t\tnew ToggleEventLogDiffer(),\n\t\t\tnew ToggleJunctionEventLogDiffer(),\n\t\t\tnew UpdateColumnDefinitionDiffer(),\n\t\t\tnew UpdateColumnNameDiffer(),\n\t\t\tnew UpdateRelationOnDeleteDiffer(),\n\t\t\tnew MakeRelationNotNullDiffer(),\n\t\t\tnew MakeRelationNullableDiffer(),\n\t\t\tnew EnableOrphanRemovalDiffer(),\n\t\t\tnew DisableOrphanRemovalDiffer(),\n\t\t\tnew UpdateRelationOrderByDiffer(),\n\t\t\tnew UpdateEnumDiffer(),\n\t\t\tnew RemoveChangedFieldDiffer(it => !isRelation(it) || isOwningRelation(it)),\n\t\t\tnew RemoveChangedFieldDiffer(it => isRelation(it) && isInverseRelation(it)),\n\t\t\tnew CreateEntityDiffer(),\n\t\t\tnew CreateColumnDiffer(),\n\t\t\tnew CreateRelationDiffer(),\n\t\t\tnew CreateViewDiffer(),\n\t\t\tnew CreateRelationInverseSideDiffer(),\n\t\t\tnew CreateUniqueConstraintDiffer(),\n\t\t\tnew CreateIndexDiffer(),\n\t\t\tnew RemoveEnumDiffer(),\n\t\t\tnew UpdateAclSchemaDiffer(this.options),\n\t\t\tnew UpdateValidationSchemaDiffer(this.options),\n\t\t\tnew UpdateEntityOrderByDiffer(),\n\t\t\tnew UpdateTargetDiffer(),\n\t\t\tnew CreateTargetDiffer(),\n\t\t\tnew UpdateTriggerDiffer(this.options),\n\t\t\tnew CreateTriggerDiffer(),\n\t\t\tnew RemoveTriggerDiffer(),\n\t\t\tnew RemoveTargetDiffer(),\n\t\t]\n\n\t\tconst diffs: Migration.Modification[] = []\n\t\tlet appliedDiffsSchema = originalSchema\n\t\tfor (const differ of differs) {\n\t\t\tconst differDiffs = differ.createDiff(appliedDiffsSchema, updatedSchema)\n\t\t\tappliedDiffsSchema = this.schemaMigrator.applyModifications(appliedDiffsSchema, differDiffs, VERSION_LATEST)\n\t\t\tdiffs.push(...differDiffs)\n\t\t}\n\n\t\tif (!skipRecreateValidation) {\n\t\t\tconst errors = deepCompare(updatedSchema, appliedDiffsSchema, [], path => {\n\t\t\t\tif (path[0] === 'model' && path[1] === 'entities' && (path[3] === 'unique' || path[3] === 'index')) {\n\t\t\t\t\treturn (a, b) => {\n\t\t\t\t\t\treturn compareArraysIgnoreOrder(a, b, path)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn null\n\t\t\t})\n\t\t\tif (errors.length === 0) {\n\t\t\t\treturn diffs\n\t\t\t}\n\t\t\tlet message = 'Updated schema cannot be recreated by the generated diff:'\n\t\t\tfor (const err of errors) {\n\t\t\t\tmessage += '\\n\\t' + err.path.join('.') + ': ' + err.message\n\t\t\t}\n\t\t\tmessage += '\\n\\nPlease fill a bug report'\n\t\t\tthrow new ImplementationException(message)\n\t\t}\n\n\t\treturn diffs\n\t}\n}\n\nexport class InvalidSchemaException extends Error {\n\tconstructor(message: string, public readonly validationErrors: ValidationError[]) {\n\t\tsuper(message)\n\t}\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDO,MAAM,aAAa;AAAA,EACzB,YACkB,gBACA,SAGhB;AAJgB,SAAA,iBAAA;AACA,SAAA,UAAA;AAAA,EAGf;AAAA,EAEH,YAAY,gBAAwB,eAAuB;AAAA,IAC1D,8BAA8B;AAAA,IAC9B,yBAAyB;AAAA,EAAA,IACT,IAA8B;AAC9C,QAAI,CAAC,6BAA6B;AACjC,YAAM,iBAAiB,gBAAgB,SAAS,cAAc;AAC9D,UAAI,eAAe,SAAS,GAAG;AAC9B,cAAM,IAAI,uBAAuB,gCAAgC,cAAc;AAAA,MAChF;AAAA,IACD;AACA,UAAM,gBAAgB,gBAAgB,SAAS,aAAa;AAC5D,QAAI,cAAc,SAAS,GAAG;AAC7B,YAAM,IAAI,uBAAuB,+BAA+B,aAAa;AAAA,IAC9E;AAEA,UAAM,UAAoB;AAAA,MACzB,IAAI,uBAAA;AAAA,MACJ,IAAI,qBAAA;AAAA,MACJ,IAAI,+BAAA;AAAA,MACJ,IAAI,6CAAA;AAAA,MACJ,IAAI,2CAAA;AAAA,MACJ,IAAI,6BAAA;AAAA,MACJ,IAAI,kBAAA;AAAA,MACJ,IAAI,iBAAA;AAAA,MACJ,IAAI,mBAAA;AAAA,MACJ,IAAI,kBAAA;AAAA,MACJ,IAAI,iBAAA;AAAA,MACJ,IAAI,4BAAA;AAAA,MACJ,IAAI,qBAAA;AAAA,MACJ,IAAI,6BAAA;AAAA,MACJ,IAAI,6BAAA;AAAA,MACJ,IAAI,uBAAA;AAAA,MACJ,IAAI,6BAAA;AAAA,MACJ,IAAI,0BAAA;AAAA,MACJ,IAAI,2BAAA;AAAA,MACJ,IAAI,0BAAA;AAAA,MACJ,IAAI,2BAAA;AAAA,MACJ,IAAI,4BAAA;AAAA,MACJ,IAAI,iBAAA;AAAA,MACJ,IAAI,yBAAyB,CAAA,OAAM,CAAC,WAAW,EAAE,KAAK,iBAAiB,EAAE,CAAC;AAAA,MAC1E,IAAI,yBAAyB,CAAA,OAAM,WAAW,EAAE,KAAK,kBAAkB,EAAE,CAAC;AAAA,MAC1E,IAAI,mBAAA;AAAA,MACJ,IAAI,mBAAA;AAAA,MACJ,IAAI,qBAAA;AAAA,MACJ,IAAI,iBAAA;AAAA,MACJ,IAAI,gCAAA;AAAA,MACJ,IAAI,6BAAA;AAAA,MACJ,IAAI,kBAAA;AAAA,MACJ,IAAI,iBAAA;AAAA,MACJ,IAAI,sBAAsB,KAAK,OAAO;AAAA,MACtC,IAAI,6BAA6B,KAAK,OAAO;AAAA,MAC7C,IAAI,0BAAA;AAAA,MACJ,IAAI,mBAAA;AAAA,MACJ,IAAI,mBAAA;AAAA,MACJ,IAAI,oBAAoB,KAAK,OAAO;AAAA,MACpC,IAAI,oBAAA;AAAA,MACJ,IAAI,oBAAA;AAAA,MACJ,IAAI,mBAAA;AAAA,IAAmB;AAGxB,UAAM,QAAkC,CAAA;AACxC,QAAI,qBAAqB;AACzB,eAAW,UAAU,SAAS;AAC7B,YAAM,cAAc,OAAO,WAAW,oBAAoB,aAAa;AACvE,2BAAqB,KAAK,eAAe,mBAAmB,oBAAoB,aAAa,cAAc;AAC3G,YAAM,KAAK,GAAG,WAAW;AAAA,IAC1B;AAEA,QAAI,CAAC,wBAAwB;AAC5B,YAAM,SAAS,YAAY,eAAe,oBAAoB,CAAA,GAAI,CAAA,SAAQ;AACzE,YAAI,KAAK,CAAC,MAAM,WAAW,KAAK,CAAC,MAAM,eAAe,KAAK,CAAC,MAAM,YAAY,KAAK,CAAC,MAAM,UAAU;AACnG,iBAAO,CAAC,GAAG,MAAM;AAChB,mBAAO,yBAAyB,GAAG,GAAG,IAAI;AAAA,UAC3C;AAAA,QACD;AACA,eAAO;AAAA,MACR,CAAC;AACD,UAAI,OAAO,WAAW,GAAG;AACxB,eAAO;AAAA,MACR;AACA,UAAI,UAAU;AACd,iBAAW,OAAO,QAAQ;AACzB,mBAAW,QAAS,IAAI,KAAK,KAAK,GAAG,IAAI,OAAO,IAAI;AAAA,MACrD;AACA,iBAAW;AACX,YAAM,IAAI,wBAAwB,OAAO;AAAA,IAC1C;AAEA,WAAO;AAAA,EACR;AACD;AAEO,MAAM,+BAA+B,MAAM;AAAA,EACjD,YAAY,SAAiC,kBAAqC;AACjF,UAAM,OAAO;AAD+B,SAAA,mBAAA;AAAA,EAE7C;AACD;"}
1
+ {"version":3,"file":"SchemaDiffer.js","sources":["../../../../packages/schema-migrations/src/SchemaDiffer.ts"],"sourcesContent":["import { Schema } from '@contember/schema'\nimport {\n\tcompareArraysIgnoreOrder,\n\tdeepCompare,\n\tisInverseRelation,\n\tisOwningRelation,\n\tisRelation,\n\tSchemaValidator,\n\tValidationError,\n} from '@contember/schema-utils'\nimport { SchemaMigrator } from './SchemaMigrator.js'\nimport { Migration } from './Migration.js'\nimport { ImplementationException } from './exceptions.js'\nimport {\n\tConvertOneHasManyToManyHasManyRelationDiffer,\n\tConvertOneToManyRelationDiffer,\n\tCreateColumnDiffer,\n\tCreateEntityDiffer,\n\tCreateEnumDiffer,\n\tCreateRelationDiffer,\n\tCreateRelationInverseSideDiffer,\n\tCreateUniqueConstraintDiffer,\n\tCreateViewDiffer,\n\tDiffer,\n\tDisableOrphanRemovalDiffer,\n\tEnableOrphanRemovalDiffer,\n\tMakeRelationNotNullDiffer,\n\tMakeRelationNullableDiffer,\n\tRemoveEntityDiffer,\n\tRemoveEnumDiffer,\n\tRemoveFieldDiffer,\n\tRemoveUniqueConstraintDiffer,\n\tToggleEventLogDiffer,\n\tToggleJunctionEventLogDiffer,\n\tUpdateAclSchemaDiffer,\n\tUpdateColumnDefinitionDiffer,\n\tUpdateColumnNameDiffer,\n\tUpdateEntityOrderByDiffer,\n\tUpdateEntityTableNameDiffer,\n\tUpdateEnumDiffer,\n\tUpdateRelationOnDeleteDiffer,\n\tUpdateRelationOrderByDiffer,\n\tUpdateValidationSchemaDiffer,\n\tVERSION_LATEST,\n} from './modifications/index.js'\nimport { RemoveChangedFieldDiffer, RemoveViewDiffer, UpdateViewDiffer } from './modifications/differs/index.js'\nimport { CreateIndexDiffer, RemoveIndexDiffer } from './modifications/indexes/index.js'\nimport { CreateTriggerDiffer, RemoveTriggerDiffer, UpdateTriggerDiffer } from './modifications/actions/index.js'\nimport { UpdateTargetDiffer } from './modifications/actions/UpdateTargetModification.js'\nimport { CreateTargetDiffer } from './modifications/actions/CreateTargetModification.js'\nimport { RemoveTargetDiffer } from './modifications/actions/RemoveTargetModification.js'\nimport { UpdateSettingsDiffer } from './modifications/settings/index.js'\nimport { RemoveIndexNamesDiffer } from './modifications/upgrade/RemoveIndexNamesModification.js'\nimport { ConvertOneHasManyToOneHasOneRelationDiffer } from './modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.js'\n\nexport type DiffOptions = {\n\tskipRecreateValidation?: boolean\n\tskipInitialSchemaValidation?: boolean\n\tskipNonModelDiffers?: boolean\n\t/**\n\t * Disable the in-place `CREATE OR REPLACE VIEW` optimization and drop & recreate every\n\t * changed view (with its dependant cascade) instead. Escape hatch for views whose real\n\t * output columns drifted without a matching field change (which would otherwise fail at\n\t * execute time with `SQLSTATE 42P16`).\n\t */\n\trecreateViews?: boolean\n}\n\nexport class SchemaDiffer {\n\tconstructor(\n\t\tprivate readonly schemaMigrator: SchemaMigrator,\n\t\tprivate readonly options?: {\n\t\t\tmaxPatchSize?: number\n\t\t},\n\t) {}\n\n\tdiffSchemas(originalSchema: Schema, updatedSchema: Schema, {\n\t\tskipInitialSchemaValidation = false,\n\t\tskipRecreateValidation = false,\n\t\tskipNonModelDiffers = false,\n\t\trecreateViews = false,\n\t}: DiffOptions = {}): Migration.Modification[] {\n\t\tif (!skipInitialSchemaValidation) {\n\t\t\tconst originalErrors = SchemaValidator.validate(originalSchema)\n\t\t\tif (originalErrors.length > 0) {\n\t\t\t\tthrow new InvalidSchemaException('original schema is not valid', originalErrors)\n\t\t\t}\n\t\t}\n\t\tconst updatedErrors = SchemaValidator.validate(updatedSchema)\n\t\tif (updatedErrors.length > 0) {\n\t\t\tthrow new InvalidSchemaException('updated schema is not valid', updatedErrors)\n\t\t}\n\n\t\tconst differs: Differ[] = [\n\t\t\tnew RemoveIndexNamesDiffer(),\n\t\t\t...skipNonModelDiffers ? [] : [new UpdateSettingsDiffer()],\n\t\t\tnew ConvertOneToManyRelationDiffer(),\n\t\t\tnew ConvertOneHasManyToManyHasManyRelationDiffer(),\n\t\t\tnew ConvertOneHasManyToOneHasOneRelationDiffer(),\n\t\t\tnew RemoveUniqueConstraintDiffer(),\n\t\t\tnew RemoveIndexDiffer(),\n\t\t\tnew RemoveViewDiffer(recreateViews),\n\t\t\tnew RemoveEntityDiffer(),\n\t\t\tnew RemoveFieldDiffer(),\n\t\t\tnew CreateEnumDiffer(),\n\t\t\tnew UpdateEntityTableNameDiffer(),\n\t\t\tnew ToggleEventLogDiffer(),\n\t\t\tnew ToggleJunctionEventLogDiffer(),\n\t\t\tnew UpdateColumnDefinitionDiffer(),\n\t\t\tnew UpdateColumnNameDiffer(),\n\t\t\tnew UpdateRelationOnDeleteDiffer(),\n\t\t\tnew MakeRelationNotNullDiffer(),\n\t\t\tnew MakeRelationNullableDiffer(),\n\t\t\tnew EnableOrphanRemovalDiffer(),\n\t\t\tnew DisableOrphanRemovalDiffer(),\n\t\t\tnew UpdateRelationOrderByDiffer(),\n\t\t\tnew UpdateEnumDiffer(),\n\t\t\tnew RemoveChangedFieldDiffer(it => !isRelation(it) || isOwningRelation(it)),\n\t\t\tnew RemoveChangedFieldDiffer(it => isRelation(it) && isInverseRelation(it)),\n\t\t\tnew CreateEntityDiffer(),\n\t\t\tnew CreateColumnDiffer(),\n\t\t\tnew CreateRelationDiffer(),\n\t\t\tnew CreateViewDiffer(),\n\t\t\t...recreateViews ? [] : [new UpdateViewDiffer()],\n\t\t\tnew CreateRelationInverseSideDiffer(),\n\t\t\tnew CreateUniqueConstraintDiffer(),\n\t\t\tnew CreateIndexDiffer(),\n\t\t\tnew RemoveEnumDiffer(),\n\t\t\t...skipNonModelDiffers ? [] : [\n\t\t\t\tnew UpdateAclSchemaDiffer(this.options),\n\t\t\t\tnew UpdateValidationSchemaDiffer(this.options),\n\t\t\t],\n\t\t\tnew UpdateEntityOrderByDiffer(),\n\t\t\t...skipNonModelDiffers ? [] : [\n\t\t\t\tnew UpdateTargetDiffer(),\n\t\t\t\tnew CreateTargetDiffer(),\n\t\t\t\tnew UpdateTriggerDiffer(this.options),\n\t\t\t\tnew CreateTriggerDiffer(),\n\t\t\t\tnew RemoveTriggerDiffer(),\n\t\t\t\tnew RemoveTargetDiffer(),\n\t\t\t],\n\t\t]\n\n\t\tconst diffs: Migration.Modification[] = []\n\t\tlet appliedDiffsSchema = originalSchema\n\t\tfor (const differ of differs) {\n\t\t\tconst differDiffs = differ.createDiff(appliedDiffsSchema, updatedSchema)\n\t\t\tappliedDiffsSchema = this.schemaMigrator.applyModifications(appliedDiffsSchema, differDiffs, VERSION_LATEST)\n\t\t\tdiffs.push(...differDiffs)\n\t\t}\n\n\t\tif (!skipRecreateValidation) {\n\t\t\tconst targetForCompare = skipNonModelDiffers\n\t\t\t\t? {\n\t\t\t\t\t...updatedSchema,\n\t\t\t\t\tacl: appliedDiffsSchema.acl,\n\t\t\t\t\tvalidation: appliedDiffsSchema.validation,\n\t\t\t\t\tactions: appliedDiffsSchema.actions,\n\t\t\t\t\tsettings: appliedDiffsSchema.settings,\n\t\t\t\t}\n\t\t\t\t: updatedSchema\n\t\t\tconst errors = deepCompare(targetForCompare, appliedDiffsSchema, [], path => {\n\t\t\t\tif (path[0] === 'model' && path[1] === 'entities' && (path[3] === 'unique' || path[3] === 'index')) {\n\t\t\t\t\treturn (a, b) => {\n\t\t\t\t\t\treturn compareArraysIgnoreOrder(a, b, path)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn null\n\t\t\t})\n\t\t\tif (errors.length === 0) {\n\t\t\t\treturn diffs\n\t\t\t}\n\t\t\tlet message = 'Updated schema cannot be recreated by the generated diff:'\n\t\t\tfor (const err of errors) {\n\t\t\t\tmessage += '\\n\\t' + err.path.join('.') + ': ' + err.message\n\t\t\t}\n\t\t\tmessage += '\\n\\nPlease fill a bug report'\n\t\t\tthrow new ImplementationException(message)\n\t\t}\n\n\t\treturn diffs\n\t}\n}\n\nexport class InvalidSchemaException extends Error {\n\tconstructor(message: string, public readonly validationErrors: ValidationError[]) {\n\t\tsuper(message)\n\t}\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaMigrator.cjs","sources":["../../../../packages/schema-migrations/src/SchemaMigrator.ts"],"sourcesContent":["import { Schema } from '@contember/schema'\nimport { ModificationHandlerFactory } from './modifications'\nimport { Migration } from './Migration'\n\nexport class SchemaMigrator {\n\tconstructor(private readonly modificationHandlerFactory: ModificationHandlerFactory) {}\n\n\tpublic applyModifications(schema: Schema, diff: readonly Migration.Modification[], formatVersion: number): Schema {\n\t\tfor (const modification of diff) {\n\t\t\tconst { modification: name, ...data } = modification\n\t\t\tconst modificationHandler = this.modificationHandlerFactory.create(name, data, schema, {\n\t\t\t\tformatVersion,\n\t\t\t})\n\t\t\tschema = modificationHandler.getSchemaUpdater()({ schema })\n\t\t}\n\t\treturn schema\n\t}\n}\n"],"names":[],"mappings":";;AAIO,MAAM,eAAe;AAAA,EAC3B,YAA6B,4BAAwD;AAAxD,SAAA,6BAAA;AAAA,EAAyD;AAAA,EAE/E,mBAAmB,QAAgB,MAAyC,eAA+B;AACjH,eAAW,gBAAgB,MAAM;AAChC,YAAM,EAAE,cAAc,MAAM,GAAG,SAAS;AACxC,YAAM,sBAAsB,KAAK,2BAA2B,OAAO,MAAM,MAAM,QAAQ;AAAA,QACtF;AAAA,MAAA,CACA;AACD,eAAS,oBAAoB,mBAAmB,EAAE,QAAQ;AAAA,IAC3D;AACA,WAAO;AAAA,EACR;AACD;;"}
1
+ {"version":3,"file":"SchemaMigrator.cjs","sources":["../../../../packages/schema-migrations/src/SchemaMigrator.ts"],"sourcesContent":["import { Schema } from '@contember/schema'\nimport { ModificationHandlerFactory } from './modifications/index.js'\nimport { Migration } from './Migration.js'\n\nexport class SchemaMigrator {\n\tconstructor(private readonly modificationHandlerFactory: ModificationHandlerFactory) {}\n\n\tpublic applyModifications(schema: Schema, diff: readonly Migration.Modification[], formatVersion: number): Schema {\n\t\tfor (const modification of diff) {\n\t\t\tconst { modification: name, ...data } = modification\n\t\t\tconst modificationHandler = this.modificationHandlerFactory.create(name, data, schema, {\n\t\t\t\tformatVersion,\n\t\t\t})\n\t\t\tschema = modificationHandler.getSchemaUpdater()({ schema })\n\t\t}\n\t\treturn schema\n\t}\n}\n"],"names":[],"mappings":";;AAIO,MAAM,eAAe;AAAA,EAC3B,YAA6B,4BAAwD;AAAxD,SAAA,6BAAA;AAAA,EAAyD;AAAA,EAE/E,mBAAmB,QAAgB,MAAyC,eAA+B;AACjH,eAAW,gBAAgB,MAAM;AAChC,YAAM,EAAE,cAAc,MAAM,GAAG,SAAS;AACxC,YAAM,sBAAsB,KAAK,2BAA2B,OAAO,MAAM,MAAM,QAAQ;AAAA,QACtF;AAAA,MAAA,CACA;AACD,eAAS,oBAAoB,mBAAmB,EAAE,QAAQ;AAAA,IAC3D;AACA,WAAO;AAAA,EACR;AACD;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaMigrator.js","sources":["../../../../packages/schema-migrations/src/SchemaMigrator.ts"],"sourcesContent":["import { Schema } from '@contember/schema'\nimport { ModificationHandlerFactory } from './modifications'\nimport { Migration } from './Migration'\n\nexport class SchemaMigrator {\n\tconstructor(private readonly modificationHandlerFactory: ModificationHandlerFactory) {}\n\n\tpublic applyModifications(schema: Schema, diff: readonly Migration.Modification[], formatVersion: number): Schema {\n\t\tfor (const modification of diff) {\n\t\t\tconst { modification: name, ...data } = modification\n\t\t\tconst modificationHandler = this.modificationHandlerFactory.create(name, data, schema, {\n\t\t\t\tformatVersion,\n\t\t\t})\n\t\t\tschema = modificationHandler.getSchemaUpdater()({ schema })\n\t\t}\n\t\treturn schema\n\t}\n}\n"],"names":[],"mappings":"AAIO,MAAM,eAAe;AAAA,EAC3B,YAA6B,4BAAwD;AAAxD,SAAA,6BAAA;AAAA,EAAyD;AAAA,EAE/E,mBAAmB,QAAgB,MAAyC,eAA+B;AACjH,eAAW,gBAAgB,MAAM;AAChC,YAAM,EAAE,cAAc,MAAM,GAAG,SAAS;AACxC,YAAM,sBAAsB,KAAK,2BAA2B,OAAO,MAAM,MAAM,QAAQ;AAAA,QACtF;AAAA,MAAA,CACA;AACD,eAAS,oBAAoB,mBAAmB,EAAE,QAAQ;AAAA,IAC3D;AACA,WAAO;AAAA,EACR;AACD;"}
1
+ {"version":3,"file":"SchemaMigrator.js","sources":["../../../../packages/schema-migrations/src/SchemaMigrator.ts"],"sourcesContent":["import { Schema } from '@contember/schema'\nimport { ModificationHandlerFactory } from './modifications/index.js'\nimport { Migration } from './Migration.js'\n\nexport class SchemaMigrator {\n\tconstructor(private readonly modificationHandlerFactory: ModificationHandlerFactory) {}\n\n\tpublic applyModifications(schema: Schema, diff: readonly Migration.Modification[], formatVersion: number): Schema {\n\t\tfor (const modification of diff) {\n\t\t\tconst { modification: name, ...data } = modification\n\t\t\tconst modificationHandler = this.modificationHandlerFactory.create(name, data, schema, {\n\t\t\t\tformatVersion,\n\t\t\t})\n\t\t\tschema = modificationHandler.getSchemaUpdater()({ schema })\n\t\t}\n\t\treturn schema\n\t}\n}\n"],"names":[],"mappings":"AAIO,MAAM,eAAe;AAAA,EAC3B,YAA6B,4BAAwD;AAAxD,SAAA,6BAAA;AAAA,EAAyD;AAAA,EAE/E,mBAAmB,QAAgB,MAAyC,eAA+B;AACjH,eAAW,gBAAgB,MAAM;AAChC,YAAM,EAAE,cAAc,MAAM,GAAG,SAAS;AACxC,YAAM,sBAAsB,KAAK,2BAA2B,OAAO,MAAM,MAAM,QAAQ;AAAA,QACtF;AAAA,MAAA,CACA;AACD,eAAS,oBAAoB,mBAAmB,EAAE,QAAQ;AAAA,IAC3D;AACA,WAAO;AAAA,EACR;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ModificationHandler.cjs","sources":["../../../../../packages/schema-migrations/src/modifications/ModificationHandler.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { SchemaUpdater } from './utils/schemaUpdateUtils'\nimport { Schema } from '@contember/schema'\nimport { Migration } from '../Migration'\nimport { DatabaseMetadata } from '@contember/database'\n\nexport interface ModificationDescription {\n\tmessage: string\n\tisDestructive?: boolean\n\tfailureWarning?: string\n}\n\nexport const emptyModificationDescriptionContext: ModificationDescriptionContext = { createdEntities: [] }\nexport type ModificationDescriptionContext = { createdEntities: string[] }\n\nexport interface ModificationHandler<Data> {\n\tcreateSql(builder: MigrationBuilder, options: ModificationHandlerCreateSqlOptions): void\n\n\tgetSchemaUpdater(): SchemaUpdater\n\n\tdescribe(context: ModificationDescriptionContext): ModificationDescription\n}\n\nexport interface ModificationHandlerCreateSqlOptions {\n\tsystemSchema: string\n\tdatabaseMetadata: DatabaseMetadata\n\tinvalidateDatabaseMetadata: () => void\n}\n\nexport interface ModificationHandlerOptions {\n\tformatVersion: number\n}\n\nexport interface ModificationHandlerConstructor<Data> {\n\tnew(data: Data, schema: Schema, options: ModificationHandlerOptions): ModificationHandler<Data>\n}\n\nexport interface Differ<Data = { [field: string]: any }> {\n\tcreateDiff: (originalSchema: Schema, updatedSchema: Schema) => Migration.Modification<Data>[]\n}\n\nexport interface ModificationType<Id extends String, Data> {\n\tid: Id\n\tcreateModification: (data: Data) => Migration.Modification<Data>\n\tcreateHandler: (data: Data, schema: Schema, options: ModificationHandlerOptions) => ModificationHandler<Data>\n}\n\nexport const createModificationType = <Data, Id extends string>({ handler, id }: {\n\tid: Id\n\thandler: ModificationHandlerConstructor<Data>\n}): ModificationType<Id, Data> => {\n\treturn {\n\t\tid,\n\t\tcreateModification: data => ({ modification: id, ...data }),\n\t\tcreateHandler: (data, schema, options) => new handler(data, schema, options),\n\t}\n}\n"],"names":[],"mappings":";;AAYO,MAAM,sCAAsE,EAAE,iBAAiB,CAAA,EAAC;AAmChG,MAAM,yBAAyB,CAA0B,EAAE,SAAS,SAGzC;AACjC,SAAO;AAAA,IACN;AAAA,IACA,oBAAoB,CAAA,UAAS,EAAE,cAAc,IAAI,GAAG;IACpD,eAAe,CAAC,MAAM,QAAQ,YAAY,IAAI,QAAQ,MAAM,QAAQ,OAAO;AAAA,EAAA;AAE7E;;;"}
1
+ {"version":3,"file":"ModificationHandler.cjs","sources":["../../../../../packages/schema-migrations/src/modifications/ModificationHandler.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { SchemaUpdater } from './utils/schemaUpdateUtils.js'\nimport { Schema } from '@contember/schema'\nimport { Migration } from '../Migration.js'\nimport { DatabaseMetadata } from '@contember/database'\n\nexport interface ModificationDescription {\n\tmessage: string\n\tisDestructive?: boolean\n\tfailureWarning?: string\n}\n\nexport const emptyModificationDescriptionContext: ModificationDescriptionContext = { createdEntities: [] }\nexport type ModificationDescriptionContext = { createdEntities: string[] }\n\nexport interface ModificationHandler<Data> {\n\tcreateSql(builder: MigrationBuilder, options: ModificationHandlerCreateSqlOptions): void\n\n\tgetSchemaUpdater(): SchemaUpdater\n\n\tdescribe(context: ModificationDescriptionContext): ModificationDescription\n}\n\nexport interface ModificationHandlerCreateSqlOptions {\n\tsystemSchema: string\n\tdatabaseMetadata: DatabaseMetadata\n\tinvalidateDatabaseMetadata: () => void\n}\n\nexport interface ModificationHandlerOptions {\n\tformatVersion: number\n}\n\nexport interface ModificationHandlerConstructor<Data> {\n\tnew(data: Data, schema: Schema, options: ModificationHandlerOptions): ModificationHandler<Data>\n}\n\nexport interface Differ<Data = { [field: string]: any }> {\n\tcreateDiff: (originalSchema: Schema, updatedSchema: Schema) => Migration.Modification<Data>[]\n}\n\nexport interface ModificationType<Id extends String, Data> {\n\tid: Id\n\tcreateModification: (data: Data) => Migration.Modification<Data>\n\tcreateHandler: (data: Data, schema: Schema, options: ModificationHandlerOptions) => ModificationHandler<Data>\n}\n\nexport const createModificationType = <Data, Id extends string>({ handler, id }: {\n\tid: Id\n\thandler: ModificationHandlerConstructor<Data>\n}): ModificationType<Id, Data> => {\n\treturn {\n\t\tid,\n\t\tcreateModification: data => ({ modification: id, ...data }),\n\t\tcreateHandler: (data, schema, options) => new handler(data, schema, options),\n\t}\n}\n"],"names":[],"mappings":";;AAYO,MAAM,sCAAsE,EAAE,iBAAiB,CAAA,EAAC;AAmChG,MAAM,yBAAyB,CAA0B,EAAE,SAAS,SAGzC;AACjC,SAAO;AAAA,IACN;AAAA,IACA,oBAAoB,CAAA,UAAS,EAAE,cAAc,IAAI,GAAG;IACpD,eAAe,CAAC,MAAM,QAAQ,YAAY,IAAI,QAAQ,MAAM,QAAQ,OAAO;AAAA,EAAA;AAE7E;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ModificationHandler.js","sources":["../../../../../packages/schema-migrations/src/modifications/ModificationHandler.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { SchemaUpdater } from './utils/schemaUpdateUtils'\nimport { Schema } from '@contember/schema'\nimport { Migration } from '../Migration'\nimport { DatabaseMetadata } from '@contember/database'\n\nexport interface ModificationDescription {\n\tmessage: string\n\tisDestructive?: boolean\n\tfailureWarning?: string\n}\n\nexport const emptyModificationDescriptionContext: ModificationDescriptionContext = { createdEntities: [] }\nexport type ModificationDescriptionContext = { createdEntities: string[] }\n\nexport interface ModificationHandler<Data> {\n\tcreateSql(builder: MigrationBuilder, options: ModificationHandlerCreateSqlOptions): void\n\n\tgetSchemaUpdater(): SchemaUpdater\n\n\tdescribe(context: ModificationDescriptionContext): ModificationDescription\n}\n\nexport interface ModificationHandlerCreateSqlOptions {\n\tsystemSchema: string\n\tdatabaseMetadata: DatabaseMetadata\n\tinvalidateDatabaseMetadata: () => void\n}\n\nexport interface ModificationHandlerOptions {\n\tformatVersion: number\n}\n\nexport interface ModificationHandlerConstructor<Data> {\n\tnew(data: Data, schema: Schema, options: ModificationHandlerOptions): ModificationHandler<Data>\n}\n\nexport interface Differ<Data = { [field: string]: any }> {\n\tcreateDiff: (originalSchema: Schema, updatedSchema: Schema) => Migration.Modification<Data>[]\n}\n\nexport interface ModificationType<Id extends String, Data> {\n\tid: Id\n\tcreateModification: (data: Data) => Migration.Modification<Data>\n\tcreateHandler: (data: Data, schema: Schema, options: ModificationHandlerOptions) => ModificationHandler<Data>\n}\n\nexport const createModificationType = <Data, Id extends string>({ handler, id }: {\n\tid: Id\n\thandler: ModificationHandlerConstructor<Data>\n}): ModificationType<Id, Data> => {\n\treturn {\n\t\tid,\n\t\tcreateModification: data => ({ modification: id, ...data }),\n\t\tcreateHandler: (data, schema, options) => new handler(data, schema, options),\n\t}\n}\n"],"names":[],"mappings":"AAYO,MAAM,sCAAsE,EAAE,iBAAiB,CAAA,EAAC;AAmChG,MAAM,yBAAyB,CAA0B,EAAE,SAAS,SAGzC;AACjC,SAAO;AAAA,IACN;AAAA,IACA,oBAAoB,CAAA,UAAS,EAAE,cAAc,IAAI,GAAG;IACpD,eAAe,CAAC,MAAM,QAAQ,YAAY,IAAI,QAAQ,MAAM,QAAQ,OAAO;AAAA,EAAA;AAE7E;"}
1
+ {"version":3,"file":"ModificationHandler.js","sources":["../../../../../packages/schema-migrations/src/modifications/ModificationHandler.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { SchemaUpdater } from './utils/schemaUpdateUtils.js'\nimport { Schema } from '@contember/schema'\nimport { Migration } from '../Migration.js'\nimport { DatabaseMetadata } from '@contember/database'\n\nexport interface ModificationDescription {\n\tmessage: string\n\tisDestructive?: boolean\n\tfailureWarning?: string\n}\n\nexport const emptyModificationDescriptionContext: ModificationDescriptionContext = { createdEntities: [] }\nexport type ModificationDescriptionContext = { createdEntities: string[] }\n\nexport interface ModificationHandler<Data> {\n\tcreateSql(builder: MigrationBuilder, options: ModificationHandlerCreateSqlOptions): void\n\n\tgetSchemaUpdater(): SchemaUpdater\n\n\tdescribe(context: ModificationDescriptionContext): ModificationDescription\n}\n\nexport interface ModificationHandlerCreateSqlOptions {\n\tsystemSchema: string\n\tdatabaseMetadata: DatabaseMetadata\n\tinvalidateDatabaseMetadata: () => void\n}\n\nexport interface ModificationHandlerOptions {\n\tformatVersion: number\n}\n\nexport interface ModificationHandlerConstructor<Data> {\n\tnew(data: Data, schema: Schema, options: ModificationHandlerOptions): ModificationHandler<Data>\n}\n\nexport interface Differ<Data = { [field: string]: any }> {\n\tcreateDiff: (originalSchema: Schema, updatedSchema: Schema) => Migration.Modification<Data>[]\n}\n\nexport interface ModificationType<Id extends String, Data> {\n\tid: Id\n\tcreateModification: (data: Data) => Migration.Modification<Data>\n\tcreateHandler: (data: Data, schema: Schema, options: ModificationHandlerOptions) => ModificationHandler<Data>\n}\n\nexport const createModificationType = <Data, Id extends string>({ handler, id }: {\n\tid: Id\n\thandler: ModificationHandlerConstructor<Data>\n}): ModificationType<Id, Data> => {\n\treturn {\n\t\tid,\n\t\tcreateModification: data => ({ modification: id, ...data }),\n\t\tcreateHandler: (data, schema, options) => new handler(data, schema, options),\n\t}\n}\n"],"names":[],"mappings":"AAYO,MAAM,sCAAsE,EAAE,iBAAiB,CAAA,EAAC;AAmChG,MAAM,yBAAyB,CAA0B,EAAE,SAAS,SAGzC;AACjC,SAAO;AAAA,IACN;AAAA,IACA,oBAAoB,CAAA,UAAS,EAAE,cAAc,IAAI,GAAG;IACpD,eAAe,CAAC,MAAM,QAAQ,YAAY,IAAI,QAAQ,MAAM,QAAQ,OAAO;AAAA,EAAA;AAE7E;"}
@@ -21,6 +21,7 @@ const RemoveEnumModification = require("./enums/RemoveEnumModification.cjs");
21
21
  const UpdateEnumModification = require("./enums/UpdateEnumModification.cjs");
22
22
  const RemoveFieldModification = require("./fields/RemoveFieldModification.cjs");
23
23
  const UpdateFieldNameModification = require("./fields/UpdateFieldNameModification.cjs");
24
+ const ConvertManyHasManyToJoiningEntityModification = require("./relations/ConvertManyHasManyToJoiningEntityModification.cjs");
24
25
  const ConvertOneHasManyToManyHasManyRelationModification = require("./relations/ConvertOneHasManyToManyHasManyRelationModification.cjs");
25
26
  const ConvertOneToManyRelationModification = require("./relations/ConvertOneToManyRelationModification.cjs");
26
27
  const CreateRelationInverseSideModification = require("./relations/CreateRelationInverseSideModification.cjs");
@@ -96,6 +97,7 @@ class ModificationHandlerFactory {
96
97
  ToggleEventLogModification.toggleEventLogModification,
97
98
  ToggleJunctionEventLogModification.toggleJunctionEventLogModification,
98
99
  ConvertOneHasManyToManyHasManyRelationModification.convertOneHasManyToManyHasManyRelationModification,
100
+ ConvertManyHasManyToJoiningEntityModification.convertManyHasManyToJoiningEntityModification,
99
101
  UpdateEntityOrderByModification.updateEntityOrderByModification,
100
102
  CreateTriggerModification.createTriggerModification,
101
103
  UpdateTriggerModification.updateTriggerModification,
@@ -1 +1 @@
1
- {"version":3,"file":"ModificationHandlerFactory.cjs","sources":["../../../../../packages/schema-migrations/src/modifications/ModificationHandlerFactory.ts"],"sourcesContent":["import { Schema } from '@contember/schema'\nimport { ModificationHandler, ModificationHandlerOptions, ModificationType } from './ModificationHandler'\nimport { patchAclSchemaModification, updateAclSchemaModification } from './acl'\nimport { createColumnModification, updateColumnDefinitionModification, updateColumnNameModification } from './columns'\nimport { createUniqueConstraintModification, removeUniqueConstraintModification } from './constraints'\nimport {\n\tcreateEntityModification,\n\tcreateViewModification,\n\tremoveEntityModification,\n\ttoggleEventLogModification,\n\tupdateEntityNameModification,\n\tupdateEntityTableNameModification,\n} from './entities'\nimport { updateViewModification } from './entities/UpdateViewModification'\nimport { createEnumModification, removeEnumModification, updateEnumModification } from './enums'\nimport { removeFieldModification, updateFieldNameModification } from './fields'\nimport {\n\tconvertOneHasManyToManyHasManyRelationModification,\n\tconvertOneToManyRelationModification,\n\tcreateRelationInverseSideModification,\n\tcreateRelationModification,\n\tdisableOrphanRemovalModification,\n\tenableOrphanRemovalModification,\n\tmakeRelationNotNullModification,\n\tmakeRelationNullableModification,\n\ttoggleJunctionEventLogModification,\n\tupdateRelationOnDeleteModification,\n\tupdateRelationOrderByModification,\n} from './relations'\nimport { patchValidationSchemaModification, updateValidationSchemaModification } from './validation'\nimport { createIndexModification, removeIndexModification } from './indexes'\nimport { updateSettingsModification } from './settings'\nimport { createTriggerModification, patchTriggerModification, removeTriggerModification, updateTriggerModification } from './actions'\nimport { createTargetModification } from './actions/CreateTargetModification'\nimport { removeTargetModification } from './actions/RemoveTargetModification'\nimport { updateTargetModification } from './actions/UpdateTargetModification'\nimport { updateEntityOrderByModification } from './entities/UpdateEntityOrderByModification'\nimport { removeIndexNamesModification } from './upgrade/RemoveIndexNamesModification'\nimport { convertOneHasManyToOneHasOneRelationModification } from './relations/ConvertOneHasManyToOneHasOneRelationModification'\n\nclass ModificationHandlerFactory {\n\tconstructor(private readonly map: Record<string, ModificationType<string, any>>) {}\n\n\tpublic create<D>(name: string, data: D, schema: Schema, options: ModificationHandlerOptions): ModificationHandler<D> {\n\t\tif (!this.map[name]) {\n\t\t\tthrow new Error(`Undefined modification handler for ${name}`)\n\t\t}\n\t\treturn this.map[name].createHandler(data, schema, options)\n\t}\n}\n\nnamespace ModificationHandlerFactory {\n\ttype HandlerMap<D> = { [modificationName: string]: ModificationType<string, D> }\n\n\tconst handlers = [\n\t\tremoveIndexNamesModification,\n\t\tupdateSettingsModification,\n\t\tupdateAclSchemaModification,\n\t\tpatchAclSchemaModification,\n\t\tcreateColumnModification,\n\t\tupdateColumnDefinitionModification,\n\t\tupdateColumnNameModification,\n\t\tcreateUniqueConstraintModification,\n\t\tremoveUniqueConstraintModification,\n\t\tcreateIndexModification,\n\t\tremoveIndexModification,\n\t\tcreateEntityModification,\n\t\tremoveEntityModification,\n\t\tupdateEntityNameModification,\n\t\tupdateEntityTableNameModification,\n\t\tupdateViewModification,\n\t\tcreateViewModification,\n\t\tcreateEnumModification,\n\t\tremoveEnumModification,\n\t\tupdateEnumModification,\n\t\tremoveFieldModification,\n\t\tupdateFieldNameModification,\n\t\tcreateRelationInverseSideModification,\n\t\tcreateRelationModification,\n\t\tupdateRelationOnDeleteModification,\n\t\tupdateRelationOrderByModification,\n\t\tmakeRelationNotNullModification,\n\t\tmakeRelationNullableModification,\n\t\tenableOrphanRemovalModification,\n\t\tdisableOrphanRemovalModification,\n\t\tupdateValidationSchemaModification,\n\t\tpatchValidationSchemaModification,\n\t\tconvertOneToManyRelationModification,\n\t\tconvertOneHasManyToOneHasOneRelationModification,\n\t\ttoggleEventLogModification,\n\t\ttoggleJunctionEventLogModification,\n\t\tconvertOneHasManyToManyHasManyRelationModification,\n\t\tupdateEntityOrderByModification,\n\t\tcreateTriggerModification,\n\t\tupdateTriggerModification,\n\t\tpatchTriggerModification,\n\t\tremoveTriggerModification,\n\t\tcreateTargetModification,\n\t\tupdateTargetModification,\n\t\tremoveTargetModification,\n\t]\n\n\texport const defaultFactoryMap: HandlerMap<any> = Object.fromEntries(handlers.map(it => [it.id, it]))\n}\n\nexport { ModificationHandlerFactory }\n"],"names":["ModificationHandlerFactory","removeIndexNamesModification","updateSettingsModification","updateAclSchemaModification","patchAclSchemaModification","createColumnModification","updateColumnDefinitionModification","updateColumnNameModification","createUniqueConstraintModification","removeUniqueConstraintModification","createIndexModification","removeIndexModification","createEntityModification","removeEntityModification","updateEntityNameModification","updateEntityTableNameModification","updateViewModification","createViewModification","createEnumModification","removeEnumModification","updateEnumModification","removeFieldModification","updateFieldNameModification","createRelationInverseSideModification","createRelationModification","updateRelationOnDeleteModification","updateRelationOrderByModification","makeRelationNotNullModification","makeRelationNullableModification","enableOrphanRemovalModification","disableOrphanRemovalModification","updateValidationSchemaModification","patchValidationSchemaModification","convertOneToManyRelationModification","convertOneHasManyToOneHasOneRelationModification","toggleEventLogModification","toggleJunctionEventLogModification","convertOneHasManyToManyHasManyRelationModification","updateEntityOrderByModification","createTriggerModification","updateTriggerModification","patchTriggerModification","removeTriggerModification","createTargetModification","updateTargetModification","removeTargetModification"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCA,MAAM,2BAA2B;AAAA,EAChC,YAA6B,KAAoD;AAApD,SAAA,MAAA;AAAA,EAAqD;AAAA,EAE3E,OAAU,MAAc,MAAS,QAAgB,SAA6D;AACpH,QAAI,CAAC,KAAK,IAAI,IAAI,GAAG;AACpB,YAAM,IAAI,MAAM,sCAAsC,IAAI,EAAE;AAAA,IAC7D;AACA,WAAO,KAAK,IAAI,IAAI,EAAE,cAAc,MAAM,QAAQ,OAAO;AAAA,EAC1D;AACD;AAAA,CAEA,CAAUA,gCAAV;AAGC,QAAM,WAAW;AAAA,IAChBC,6BAAAA;AAAAA,IACAC,2BAAAA;AAAAA,IACAC,4BAAAA;AAAAA,IACAC,2BAAAA;AAAAA,IACAC,yBAAAA;AAAAA,IACAC,mCAAAA;AAAAA,IACAC,6BAAAA;AAAAA,IACAC,mCAAAA;AAAAA,IACAC,mCAAAA;AAAAA,IACAC,wBAAAA;AAAAA,IACAC,wBAAAA;AAAAA,IACAC,yBAAAA;AAAAA,IACAC,yBAAAA;AAAAA,IACAC,6BAAAA;AAAAA,IACAC,kCAAAA;AAAAA,IACAC,uBAAAA;AAAAA,IACAC,uBAAAA;AAAAA,IACAC,uBAAAA;AAAAA,IACAC,uBAAAA;AAAAA,IACAC,uBAAAA;AAAAA,IACAC,wBAAAA;AAAAA,IACAC,4BAAAA;AAAAA,IACAC,sCAAAA;AAAAA,IACAC,2BAAAA;AAAAA,IACAC,mCAAAA;AAAAA,IACAC,kCAAAA;AAAAA,IACAC,gCAAAA;AAAAA,IACAC,iCAAAA;AAAAA,IACAC,gCAAAA;AAAAA,IACAC,iCAAAA;AAAAA,IACAC,mCAAAA;AAAAA,IACAC,kCAAAA;AAAAA,IACAC,qCAAAA;AAAAA,IACAC,iDAAAA;AAAAA,IACAC,2BAAAA;AAAAA,IACAC,mCAAAA;AAAAA,IACAC,mDAAAA;AAAAA,IACAC,gCAAAA;AAAAA,IACAC,0BAAAA;AAAAA,IACAC,0BAAAA;AAAAA,IACAC,yBAAAA;AAAAA,IACAC,0BAAAA;AAAAA,IACAC,yBAAAA;AAAAA,IACAC,yBAAAA;AAAAA,IACAC,yBAAAA;AAAAA,EAAA;AAGY7C,8BAAA,oBAAqC,OAAO,YAAY,SAAS,IAAI,CAAA,OAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;AAAA,GAnD3F,+BAAA,6BAAA,CAAA,EAAA;;"}
1
+ {"version":3,"file":"ModificationHandlerFactory.cjs","sources":["../../../../../packages/schema-migrations/src/modifications/ModificationHandlerFactory.ts"],"sourcesContent":["import { Schema } from '@contember/schema'\nimport { ModificationHandler, ModificationHandlerOptions, ModificationType } from './ModificationHandler.js'\nimport { patchAclSchemaModification, updateAclSchemaModification } from './acl/index.js'\nimport { createColumnModification, updateColumnDefinitionModification, updateColumnNameModification } from './columns/index.js'\nimport { createUniqueConstraintModification, removeUniqueConstraintModification } from './constraints/index.js'\nimport {\n\tcreateEntityModification,\n\tcreateViewModification,\n\tremoveEntityModification,\n\ttoggleEventLogModification,\n\tupdateEntityNameModification,\n\tupdateEntityTableNameModification,\n} from './entities/index.js'\nimport { updateViewModification } from './entities/UpdateViewModification.js'\nimport { createEnumModification, removeEnumModification, updateEnumModification } from './enums/index.js'\nimport { removeFieldModification, updateFieldNameModification } from './fields/index.js'\nimport {\n\tconvertManyHasManyToJoiningEntityModification,\n\tconvertOneHasManyToManyHasManyRelationModification,\n\tconvertOneToManyRelationModification,\n\tcreateRelationInverseSideModification,\n\tcreateRelationModification,\n\tdisableOrphanRemovalModification,\n\tenableOrphanRemovalModification,\n\tmakeRelationNotNullModification,\n\tmakeRelationNullableModification,\n\ttoggleJunctionEventLogModification,\n\tupdateRelationOnDeleteModification,\n\tupdateRelationOrderByModification,\n} from './relations/index.js'\nimport { patchValidationSchemaModification, updateValidationSchemaModification } from './validation/index.js'\nimport { createIndexModification, removeIndexModification } from './indexes/index.js'\nimport { updateSettingsModification } from './settings/index.js'\nimport { createTriggerModification, patchTriggerModification, removeTriggerModification, updateTriggerModification } from './actions/index.js'\nimport { createTargetModification } from './actions/CreateTargetModification.js'\nimport { removeTargetModification } from './actions/RemoveTargetModification.js'\nimport { updateTargetModification } from './actions/UpdateTargetModification.js'\nimport { updateEntityOrderByModification } from './entities/UpdateEntityOrderByModification.js'\nimport { removeIndexNamesModification } from './upgrade/RemoveIndexNamesModification.js'\nimport { convertOneHasManyToOneHasOneRelationModification } from './relations/ConvertOneHasManyToOneHasOneRelationModification.js'\n\nclass ModificationHandlerFactory {\n\tconstructor(private readonly map: Record<string, ModificationType<string, any>>) {}\n\n\tpublic create<D>(name: string, data: D, schema: Schema, options: ModificationHandlerOptions): ModificationHandler<D> {\n\t\tif (!this.map[name]) {\n\t\t\tthrow new Error(`Undefined modification handler for ${name}`)\n\t\t}\n\t\treturn this.map[name].createHandler(data, schema, options)\n\t}\n}\n\nnamespace ModificationHandlerFactory {\n\ttype HandlerMap<D> = { [modificationName: string]: ModificationType<string, D> }\n\n\tconst handlers = [\n\t\tremoveIndexNamesModification,\n\t\tupdateSettingsModification,\n\t\tupdateAclSchemaModification,\n\t\tpatchAclSchemaModification,\n\t\tcreateColumnModification,\n\t\tupdateColumnDefinitionModification,\n\t\tupdateColumnNameModification,\n\t\tcreateUniqueConstraintModification,\n\t\tremoveUniqueConstraintModification,\n\t\tcreateIndexModification,\n\t\tremoveIndexModification,\n\t\tcreateEntityModification,\n\t\tremoveEntityModification,\n\t\tupdateEntityNameModification,\n\t\tupdateEntityTableNameModification,\n\t\tupdateViewModification,\n\t\tcreateViewModification,\n\t\tcreateEnumModification,\n\t\tremoveEnumModification,\n\t\tupdateEnumModification,\n\t\tremoveFieldModification,\n\t\tupdateFieldNameModification,\n\t\tcreateRelationInverseSideModification,\n\t\tcreateRelationModification,\n\t\tupdateRelationOnDeleteModification,\n\t\tupdateRelationOrderByModification,\n\t\tmakeRelationNotNullModification,\n\t\tmakeRelationNullableModification,\n\t\tenableOrphanRemovalModification,\n\t\tdisableOrphanRemovalModification,\n\t\tupdateValidationSchemaModification,\n\t\tpatchValidationSchemaModification,\n\t\tconvertOneToManyRelationModification,\n\t\tconvertOneHasManyToOneHasOneRelationModification,\n\t\ttoggleEventLogModification,\n\t\ttoggleJunctionEventLogModification,\n\t\tconvertOneHasManyToManyHasManyRelationModification,\n\t\tconvertManyHasManyToJoiningEntityModification,\n\t\tupdateEntityOrderByModification,\n\t\tcreateTriggerModification,\n\t\tupdateTriggerModification,\n\t\tpatchTriggerModification,\n\t\tremoveTriggerModification,\n\t\tcreateTargetModification,\n\t\tupdateTargetModification,\n\t\tremoveTargetModification,\n\t]\n\n\texport const defaultFactoryMap: HandlerMap<any> = Object.fromEntries(handlers.map(it => [it.id, it]))\n}\n\nexport { ModificationHandlerFactory }\n"],"names":["ModificationHandlerFactory","removeIndexNamesModification","updateSettingsModification","updateAclSchemaModification","patchAclSchemaModification","createColumnModification","updateColumnDefinitionModification","updateColumnNameModification","createUniqueConstraintModification","removeUniqueConstraintModification","createIndexModification","removeIndexModification","createEntityModification","removeEntityModification","updateEntityNameModification","updateEntityTableNameModification","updateViewModification","createViewModification","createEnumModification","removeEnumModification","updateEnumModification","removeFieldModification","updateFieldNameModification","createRelationInverseSideModification","createRelationModification","updateRelationOnDeleteModification","updateRelationOrderByModification","makeRelationNotNullModification","makeRelationNullableModification","enableOrphanRemovalModification","disableOrphanRemovalModification","updateValidationSchemaModification","patchValidationSchemaModification","convertOneToManyRelationModification","convertOneHasManyToOneHasOneRelationModification","toggleEventLogModification","toggleJunctionEventLogModification","convertOneHasManyToManyHasManyRelationModification","convertManyHasManyToJoiningEntityModification","updateEntityOrderByModification","createTriggerModification","updateTriggerModification","patchTriggerModification","removeTriggerModification","createTargetModification","updateTargetModification","removeTargetModification"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCA,MAAM,2BAA2B;AAAA,EAChC,YAA6B,KAAoD;AAApD,SAAA,MAAA;AAAA,EAAqD;AAAA,EAE3E,OAAU,MAAc,MAAS,QAAgB,SAA6D;AACpH,QAAI,CAAC,KAAK,IAAI,IAAI,GAAG;AACpB,YAAM,IAAI,MAAM,sCAAsC,IAAI,EAAE;AAAA,IAC7D;AACA,WAAO,KAAK,IAAI,IAAI,EAAE,cAAc,MAAM,QAAQ,OAAO;AAAA,EAC1D;AACD;AAAA,CAEA,CAAUA,gCAAV;AAGC,QAAM,WAAW;AAAA,IAChBC,6BAAAA;AAAAA,IACAC,2BAAAA;AAAAA,IACAC,4BAAAA;AAAAA,IACAC,2BAAAA;AAAAA,IACAC,yBAAAA;AAAAA,IACAC,mCAAAA;AAAAA,IACAC,6BAAAA;AAAAA,IACAC,mCAAAA;AAAAA,IACAC,mCAAAA;AAAAA,IACAC,wBAAAA;AAAAA,IACAC,wBAAAA;AAAAA,IACAC,yBAAAA;AAAAA,IACAC,yBAAAA;AAAAA,IACAC,6BAAAA;AAAAA,IACAC,kCAAAA;AAAAA,IACAC,uBAAAA;AAAAA,IACAC,uBAAAA;AAAAA,IACAC,uBAAAA;AAAAA,IACAC,uBAAAA;AAAAA,IACAC,uBAAAA;AAAAA,IACAC,wBAAAA;AAAAA,IACAC,4BAAAA;AAAAA,IACAC,sCAAAA;AAAAA,IACAC,2BAAAA;AAAAA,IACAC,mCAAAA;AAAAA,IACAC,kCAAAA;AAAAA,IACAC,gCAAAA;AAAAA,IACAC,iCAAAA;AAAAA,IACAC,gCAAAA;AAAAA,IACAC,iCAAAA;AAAAA,IACAC,mCAAAA;AAAAA,IACAC,kCAAAA;AAAAA,IACAC,qCAAAA;AAAAA,IACAC,iDAAAA;AAAAA,IACAC,2BAAAA;AAAAA,IACAC,mCAAAA;AAAAA,IACAC,mDAAAA;AAAAA,IACAC,8CAAAA;AAAAA,IACAC,gCAAAA;AAAAA,IACAC,0BAAAA;AAAAA,IACAC,0BAAAA;AAAAA,IACAC,yBAAAA;AAAAA,IACAC,0BAAAA;AAAAA,IACAC,yBAAAA;AAAAA,IACAC,yBAAAA;AAAAA,IACAC,yBAAAA;AAAAA,EAAA;AAGY9C,8BAAA,oBAAqC,OAAO,YAAY,SAAS,IAAI,CAAA,OAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;AAAA,GApD3F,+BAAA,6BAAA,CAAA,EAAA;;"}
@@ -19,6 +19,7 @@ import { removeEnumModification } from "./enums/RemoveEnumModification.js";
19
19
  import { updateEnumModification } from "./enums/UpdateEnumModification.js";
20
20
  import { removeFieldModification } from "./fields/RemoveFieldModification.js";
21
21
  import { updateFieldNameModification } from "./fields/UpdateFieldNameModification.js";
22
+ import { convertManyHasManyToJoiningEntityModification } from "./relations/ConvertManyHasManyToJoiningEntityModification.js";
22
23
  import { convertOneHasManyToManyHasManyRelationModification } from "./relations/ConvertOneHasManyToManyHasManyRelationModification.js";
23
24
  import { convertOneToManyRelationModification } from "./relations/ConvertOneToManyRelationModification.js";
24
25
  import { createRelationInverseSideModification } from "./relations/CreateRelationInverseSideModification.js";
@@ -94,6 +95,7 @@ class ModificationHandlerFactory {
94
95
  toggleEventLogModification,
95
96
  toggleJunctionEventLogModification,
96
97
  convertOneHasManyToManyHasManyRelationModification,
98
+ convertManyHasManyToJoiningEntityModification,
97
99
  updateEntityOrderByModification,
98
100
  createTriggerModification,
99
101
  updateTriggerModification,
@@ -1 +1 @@
1
- {"version":3,"file":"ModificationHandlerFactory.js","sources":["../../../../../packages/schema-migrations/src/modifications/ModificationHandlerFactory.ts"],"sourcesContent":["import { Schema } from '@contember/schema'\nimport { ModificationHandler, ModificationHandlerOptions, ModificationType } from './ModificationHandler'\nimport { patchAclSchemaModification, updateAclSchemaModification } from './acl'\nimport { createColumnModification, updateColumnDefinitionModification, updateColumnNameModification } from './columns'\nimport { createUniqueConstraintModification, removeUniqueConstraintModification } from './constraints'\nimport {\n\tcreateEntityModification,\n\tcreateViewModification,\n\tremoveEntityModification,\n\ttoggleEventLogModification,\n\tupdateEntityNameModification,\n\tupdateEntityTableNameModification,\n} from './entities'\nimport { updateViewModification } from './entities/UpdateViewModification'\nimport { createEnumModification, removeEnumModification, updateEnumModification } from './enums'\nimport { removeFieldModification, updateFieldNameModification } from './fields'\nimport {\n\tconvertOneHasManyToManyHasManyRelationModification,\n\tconvertOneToManyRelationModification,\n\tcreateRelationInverseSideModification,\n\tcreateRelationModification,\n\tdisableOrphanRemovalModification,\n\tenableOrphanRemovalModification,\n\tmakeRelationNotNullModification,\n\tmakeRelationNullableModification,\n\ttoggleJunctionEventLogModification,\n\tupdateRelationOnDeleteModification,\n\tupdateRelationOrderByModification,\n} from './relations'\nimport { patchValidationSchemaModification, updateValidationSchemaModification } from './validation'\nimport { createIndexModification, removeIndexModification } from './indexes'\nimport { updateSettingsModification } from './settings'\nimport { createTriggerModification, patchTriggerModification, removeTriggerModification, updateTriggerModification } from './actions'\nimport { createTargetModification } from './actions/CreateTargetModification'\nimport { removeTargetModification } from './actions/RemoveTargetModification'\nimport { updateTargetModification } from './actions/UpdateTargetModification'\nimport { updateEntityOrderByModification } from './entities/UpdateEntityOrderByModification'\nimport { removeIndexNamesModification } from './upgrade/RemoveIndexNamesModification'\nimport { convertOneHasManyToOneHasOneRelationModification } from './relations/ConvertOneHasManyToOneHasOneRelationModification'\n\nclass ModificationHandlerFactory {\n\tconstructor(private readonly map: Record<string, ModificationType<string, any>>) {}\n\n\tpublic create<D>(name: string, data: D, schema: Schema, options: ModificationHandlerOptions): ModificationHandler<D> {\n\t\tif (!this.map[name]) {\n\t\t\tthrow new Error(`Undefined modification handler for ${name}`)\n\t\t}\n\t\treturn this.map[name].createHandler(data, schema, options)\n\t}\n}\n\nnamespace ModificationHandlerFactory {\n\ttype HandlerMap<D> = { [modificationName: string]: ModificationType<string, D> }\n\n\tconst handlers = [\n\t\tremoveIndexNamesModification,\n\t\tupdateSettingsModification,\n\t\tupdateAclSchemaModification,\n\t\tpatchAclSchemaModification,\n\t\tcreateColumnModification,\n\t\tupdateColumnDefinitionModification,\n\t\tupdateColumnNameModification,\n\t\tcreateUniqueConstraintModification,\n\t\tremoveUniqueConstraintModification,\n\t\tcreateIndexModification,\n\t\tremoveIndexModification,\n\t\tcreateEntityModification,\n\t\tremoveEntityModification,\n\t\tupdateEntityNameModification,\n\t\tupdateEntityTableNameModification,\n\t\tupdateViewModification,\n\t\tcreateViewModification,\n\t\tcreateEnumModification,\n\t\tremoveEnumModification,\n\t\tupdateEnumModification,\n\t\tremoveFieldModification,\n\t\tupdateFieldNameModification,\n\t\tcreateRelationInverseSideModification,\n\t\tcreateRelationModification,\n\t\tupdateRelationOnDeleteModification,\n\t\tupdateRelationOrderByModification,\n\t\tmakeRelationNotNullModification,\n\t\tmakeRelationNullableModification,\n\t\tenableOrphanRemovalModification,\n\t\tdisableOrphanRemovalModification,\n\t\tupdateValidationSchemaModification,\n\t\tpatchValidationSchemaModification,\n\t\tconvertOneToManyRelationModification,\n\t\tconvertOneHasManyToOneHasOneRelationModification,\n\t\ttoggleEventLogModification,\n\t\ttoggleJunctionEventLogModification,\n\t\tconvertOneHasManyToManyHasManyRelationModification,\n\t\tupdateEntityOrderByModification,\n\t\tcreateTriggerModification,\n\t\tupdateTriggerModification,\n\t\tpatchTriggerModification,\n\t\tremoveTriggerModification,\n\t\tcreateTargetModification,\n\t\tupdateTargetModification,\n\t\tremoveTargetModification,\n\t]\n\n\texport const defaultFactoryMap: HandlerMap<any> = Object.fromEntries(handlers.map(it => [it.id, it]))\n}\n\nexport { ModificationHandlerFactory }\n"],"names":["ModificationHandlerFactory"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCA,MAAM,2BAA2B;AAAA,EAChC,YAA6B,KAAoD;AAApD,SAAA,MAAA;AAAA,EAAqD;AAAA,EAE3E,OAAU,MAAc,MAAS,QAAgB,SAA6D;AACpH,QAAI,CAAC,KAAK,IAAI,IAAI,GAAG;AACpB,YAAM,IAAI,MAAM,sCAAsC,IAAI,EAAE;AAAA,IAC7D;AACA,WAAO,KAAK,IAAI,IAAI,EAAE,cAAc,MAAM,QAAQ,OAAO;AAAA,EAC1D;AACD;AAAA,CAEA,CAAUA,gCAAV;AAGC,QAAM,WAAW;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAGYA,8BAAA,oBAAqC,OAAO,YAAY,SAAS,IAAI,CAAA,OAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;AAAA,GAnD3F,+BAAA,6BAAA,CAAA,EAAA;"}
1
+ {"version":3,"file":"ModificationHandlerFactory.js","sources":["../../../../../packages/schema-migrations/src/modifications/ModificationHandlerFactory.ts"],"sourcesContent":["import { Schema } from '@contember/schema'\nimport { ModificationHandler, ModificationHandlerOptions, ModificationType } from './ModificationHandler.js'\nimport { patchAclSchemaModification, updateAclSchemaModification } from './acl/index.js'\nimport { createColumnModification, updateColumnDefinitionModification, updateColumnNameModification } from './columns/index.js'\nimport { createUniqueConstraintModification, removeUniqueConstraintModification } from './constraints/index.js'\nimport {\n\tcreateEntityModification,\n\tcreateViewModification,\n\tremoveEntityModification,\n\ttoggleEventLogModification,\n\tupdateEntityNameModification,\n\tupdateEntityTableNameModification,\n} from './entities/index.js'\nimport { updateViewModification } from './entities/UpdateViewModification.js'\nimport { createEnumModification, removeEnumModification, updateEnumModification } from './enums/index.js'\nimport { removeFieldModification, updateFieldNameModification } from './fields/index.js'\nimport {\n\tconvertManyHasManyToJoiningEntityModification,\n\tconvertOneHasManyToManyHasManyRelationModification,\n\tconvertOneToManyRelationModification,\n\tcreateRelationInverseSideModification,\n\tcreateRelationModification,\n\tdisableOrphanRemovalModification,\n\tenableOrphanRemovalModification,\n\tmakeRelationNotNullModification,\n\tmakeRelationNullableModification,\n\ttoggleJunctionEventLogModification,\n\tupdateRelationOnDeleteModification,\n\tupdateRelationOrderByModification,\n} from './relations/index.js'\nimport { patchValidationSchemaModification, updateValidationSchemaModification } from './validation/index.js'\nimport { createIndexModification, removeIndexModification } from './indexes/index.js'\nimport { updateSettingsModification } from './settings/index.js'\nimport { createTriggerModification, patchTriggerModification, removeTriggerModification, updateTriggerModification } from './actions/index.js'\nimport { createTargetModification } from './actions/CreateTargetModification.js'\nimport { removeTargetModification } from './actions/RemoveTargetModification.js'\nimport { updateTargetModification } from './actions/UpdateTargetModification.js'\nimport { updateEntityOrderByModification } from './entities/UpdateEntityOrderByModification.js'\nimport { removeIndexNamesModification } from './upgrade/RemoveIndexNamesModification.js'\nimport { convertOneHasManyToOneHasOneRelationModification } from './relations/ConvertOneHasManyToOneHasOneRelationModification.js'\n\nclass ModificationHandlerFactory {\n\tconstructor(private readonly map: Record<string, ModificationType<string, any>>) {}\n\n\tpublic create<D>(name: string, data: D, schema: Schema, options: ModificationHandlerOptions): ModificationHandler<D> {\n\t\tif (!this.map[name]) {\n\t\t\tthrow new Error(`Undefined modification handler for ${name}`)\n\t\t}\n\t\treturn this.map[name].createHandler(data, schema, options)\n\t}\n}\n\nnamespace ModificationHandlerFactory {\n\ttype HandlerMap<D> = { [modificationName: string]: ModificationType<string, D> }\n\n\tconst handlers = [\n\t\tremoveIndexNamesModification,\n\t\tupdateSettingsModification,\n\t\tupdateAclSchemaModification,\n\t\tpatchAclSchemaModification,\n\t\tcreateColumnModification,\n\t\tupdateColumnDefinitionModification,\n\t\tupdateColumnNameModification,\n\t\tcreateUniqueConstraintModification,\n\t\tremoveUniqueConstraintModification,\n\t\tcreateIndexModification,\n\t\tremoveIndexModification,\n\t\tcreateEntityModification,\n\t\tremoveEntityModification,\n\t\tupdateEntityNameModification,\n\t\tupdateEntityTableNameModification,\n\t\tupdateViewModification,\n\t\tcreateViewModification,\n\t\tcreateEnumModification,\n\t\tremoveEnumModification,\n\t\tupdateEnumModification,\n\t\tremoveFieldModification,\n\t\tupdateFieldNameModification,\n\t\tcreateRelationInverseSideModification,\n\t\tcreateRelationModification,\n\t\tupdateRelationOnDeleteModification,\n\t\tupdateRelationOrderByModification,\n\t\tmakeRelationNotNullModification,\n\t\tmakeRelationNullableModification,\n\t\tenableOrphanRemovalModification,\n\t\tdisableOrphanRemovalModification,\n\t\tupdateValidationSchemaModification,\n\t\tpatchValidationSchemaModification,\n\t\tconvertOneToManyRelationModification,\n\t\tconvertOneHasManyToOneHasOneRelationModification,\n\t\ttoggleEventLogModification,\n\t\ttoggleJunctionEventLogModification,\n\t\tconvertOneHasManyToManyHasManyRelationModification,\n\t\tconvertManyHasManyToJoiningEntityModification,\n\t\tupdateEntityOrderByModification,\n\t\tcreateTriggerModification,\n\t\tupdateTriggerModification,\n\t\tpatchTriggerModification,\n\t\tremoveTriggerModification,\n\t\tcreateTargetModification,\n\t\tupdateTargetModification,\n\t\tremoveTargetModification,\n\t]\n\n\texport const defaultFactoryMap: HandlerMap<any> = Object.fromEntries(handlers.map(it => [it.id, it]))\n}\n\nexport { ModificationHandlerFactory }\n"],"names":["ModificationHandlerFactory"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCA,MAAM,2BAA2B;AAAA,EAChC,YAA6B,KAAoD;AAApD,SAAA,MAAA;AAAA,EAAqD;AAAA,EAE3E,OAAU,MAAc,MAAS,QAAgB,SAA6D;AACpH,QAAI,CAAC,KAAK,IAAI,IAAI,GAAG;AACpB,YAAM,IAAI,MAAM,sCAAsC,IAAI,EAAE;AAAA,IAC7D;AACA,WAAO,KAAK,IAAI,IAAI,EAAE,cAAc,MAAM,QAAQ,OAAO;AAAA,EAC1D;AACD;AAAA,CAEA,CAAUA,gCAAV;AAGC,QAAM,WAAW;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAGYA,8BAAA,oBAAqC,OAAO,YAAY,SAAS,IAAI,CAAA,OAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;AAAA,GApD3F,+BAAA,6BAAA,CAAA,EAAA;"}
@@ -1 +1 @@
1
- {"version":3,"file":"NoopModification.cjs","sources":["../../../../../packages/schema-migrations/src/modifications/NoopModification.ts"],"sourcesContent":["import { ModificationHandler } from './ModificationHandler'\nimport { MigrationBuilder } from '@contember/database-migrations'\nimport { SchemaUpdater } from './utils/schemaUpdateUtils'\n\nexport class NoopModification implements ModificationHandler<{}> {\n\tcreateSql(builder: MigrationBuilder): void | Promise<void> {}\n\n\tgetSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => schema\n\t}\n\n\tdescribe() {\n\t\treturn { message: '[internal]' }\n\t}\n}\n"],"names":[],"mappings":";;AAIO,MAAM,iBAAoD;AAAA,EAChE,UAAU,SAAiD;AAAA,EAAC;AAAA,EAE5D,mBAAkC;AACjC,WAAO,CAAC,EAAE,OAAA,MAAa;AAAA,EACxB;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,aAAA;AAAA,EACnB;AACD;;"}
1
+ {"version":3,"file":"NoopModification.cjs","sources":["../../../../../packages/schema-migrations/src/modifications/NoopModification.ts"],"sourcesContent":["import { ModificationHandler } from './ModificationHandler.js'\nimport { MigrationBuilder } from '@contember/database-migrations'\nimport { SchemaUpdater } from './utils/schemaUpdateUtils.js'\n\nexport class NoopModification implements ModificationHandler<{}> {\n\tcreateSql(builder: MigrationBuilder): void | Promise<void> {}\n\n\tgetSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => schema\n\t}\n\n\tdescribe() {\n\t\treturn { message: '[internal]' }\n\t}\n}\n"],"names":[],"mappings":";;AAIO,MAAM,iBAAoD;AAAA,EAChE,UAAU,SAAiD;AAAA,EAAC;AAAA,EAE5D,mBAAkC;AACjC,WAAO,CAAC,EAAE,OAAA,MAAa;AAAA,EACxB;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,aAAA;AAAA,EACnB;AACD;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"NoopModification.js","sources":["../../../../../packages/schema-migrations/src/modifications/NoopModification.ts"],"sourcesContent":["import { ModificationHandler } from './ModificationHandler'\nimport { MigrationBuilder } from '@contember/database-migrations'\nimport { SchemaUpdater } from './utils/schemaUpdateUtils'\n\nexport class NoopModification implements ModificationHandler<{}> {\n\tcreateSql(builder: MigrationBuilder): void | Promise<void> {}\n\n\tgetSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => schema\n\t}\n\n\tdescribe() {\n\t\treturn { message: '[internal]' }\n\t}\n}\n"],"names":[],"mappings":"AAIO,MAAM,iBAAoD;AAAA,EAChE,UAAU,SAAiD;AAAA,EAAC;AAAA,EAE5D,mBAAkC;AACjC,WAAO,CAAC,EAAE,OAAA,MAAa;AAAA,EACxB;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,aAAA;AAAA,EACnB;AACD;"}
1
+ {"version":3,"file":"NoopModification.js","sources":["../../../../../packages/schema-migrations/src/modifications/NoopModification.ts"],"sourcesContent":["import { ModificationHandler } from './ModificationHandler.js'\nimport { MigrationBuilder } from '@contember/database-migrations'\nimport { SchemaUpdater } from './utils/schemaUpdateUtils.js'\n\nexport class NoopModification implements ModificationHandler<{}> {\n\tcreateSql(builder: MigrationBuilder): void | Promise<void> {}\n\n\tgetSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => schema\n\t}\n\n\tdescribe() {\n\t\treturn { message: '[internal]' }\n\t}\n}\n"],"names":[],"mappings":"AAIO,MAAM,iBAAoD;AAAA,EAChE,UAAU,SAAiD;AAAA,EAAC;AAAA,EAE5D,mBAAkC;AACjC,WAAO,CAAC,EAAE,OAAA,MAAa;AAAA,EACxB;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,aAAA;AAAA,EACnB;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PatchAclSchemaModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/acl/PatchAclSchemaModification.ts"],"sourcesContent":["import { SchemaUpdater } from '../utils/schemaUpdateUtils'\nimport { createModificationType, ModificationHandler } from '../ModificationHandler'\nimport { applyPatch, Operation } from 'rfc6902'\nimport deepCopy from '../../utils/deepCopy'\n\nexport class PatchAclSchemaModificationHandler implements ModificationHandler<PatchAclSchemaModificationData> {\n\tconstructor(private readonly data: PatchAclSchemaModificationData) {}\n\n\tpublic createSql(): void {}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\tconst acl = deepCopy(schema.acl)\n\t\t\tconst result = applyPatch(acl, this.data.patch).filter(it => it !== null)\n\t\t\tif (result.length > 0) {\n\t\t\t\tthrow result[0]\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...schema,\n\t\t\t\tacl,\n\t\t\t}\n\t\t}\n\t}\n\n\tdescribe() {\n\t\treturn { message: 'Update ACL schema' }\n\t}\n}\n\nexport const patchAclSchemaModification = createModificationType({\n\tid: 'patchAclSchema',\n\thandler: PatchAclSchemaModificationHandler,\n})\n\nexport interface PatchAclSchemaModificationData {\n\tpatch: Operation[]\n}\n"],"names":["applyPatch","createModificationType"],"mappings":";;;;;AAKO,MAAM,kCAAiG;AAAA,EAC7G,YAA6B,MAAsC;AAAtC,SAAA,OAAA;AAAA,EAAuC;AAAA,EAE7D,YAAkB;AAAA,EAAC;AAAA,EAEnB,mBAAkC;AACxC,WAAO,CAAC,EAAE,aAAa;AACtB,YAAM,MAAM,SAAS,OAAO,GAAG;AAC/B,YAAM,SAASA,QAAAA,WAAW,KAAK,KAAK,KAAK,KAAK,EAAE,OAAO,CAAA,OAAM,OAAO,IAAI;AACxE,UAAI,OAAO,SAAS,GAAG;AACtB,cAAM,OAAO,CAAC;AAAA,MACf;AAEA,aAAO;AAAA,QACN,GAAG;AAAA,QACH;AAAA,MAAA;AAAA,IAEF;AAAA,EACD;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,oBAAA;AAAA,EACnB;AACD;AAEO,MAAM,6BAA6BC,oBAAAA,uBAAuB;AAAA,EAChE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;;;"}
1
+ {"version":3,"file":"PatchAclSchemaModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/acl/PatchAclSchemaModification.ts"],"sourcesContent":["import { SchemaUpdater } from '../utils/schemaUpdateUtils.js'\nimport { createModificationType, ModificationHandler } from '../ModificationHandler.js'\nimport { applyPatch, Operation } from 'rfc6902'\nimport deepCopy from '../../utils/deepCopy.js'\n\nexport class PatchAclSchemaModificationHandler implements ModificationHandler<PatchAclSchemaModificationData> {\n\tconstructor(private readonly data: PatchAclSchemaModificationData) {}\n\n\tpublic createSql(): void {}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\tconst acl = deepCopy(schema.acl)\n\t\t\tconst result = applyPatch(acl, this.data.patch).filter(it => it !== null)\n\t\t\tif (result.length > 0) {\n\t\t\t\tthrow result[0]\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...schema,\n\t\t\t\tacl,\n\t\t\t}\n\t\t}\n\t}\n\n\tdescribe() {\n\t\treturn { message: 'Update ACL schema' }\n\t}\n}\n\nexport const patchAclSchemaModification = createModificationType({\n\tid: 'patchAclSchema',\n\thandler: PatchAclSchemaModificationHandler,\n})\n\nexport interface PatchAclSchemaModificationData {\n\tpatch: Operation[]\n}\n"],"names":["applyPatch","createModificationType"],"mappings":";;;;;AAKO,MAAM,kCAAiG;AAAA,EAC7G,YAA6B,MAAsC;AAAtC,SAAA,OAAA;AAAA,EAAuC;AAAA,EAE7D,YAAkB;AAAA,EAAC;AAAA,EAEnB,mBAAkC;AACxC,WAAO,CAAC,EAAE,aAAa;AACtB,YAAM,MAAM,SAAS,OAAO,GAAG;AAC/B,YAAM,SAASA,QAAAA,WAAW,KAAK,KAAK,KAAK,KAAK,EAAE,OAAO,CAAA,OAAM,OAAO,IAAI;AACxE,UAAI,OAAO,SAAS,GAAG;AACtB,cAAM,OAAO,CAAC;AAAA,MACf;AAEA,aAAO;AAAA,QACN,GAAG;AAAA,QACH;AAAA,MAAA;AAAA,IAEF;AAAA,EACD;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,oBAAA;AAAA,EACnB;AACD;AAEO,MAAM,6BAA6BC,oBAAAA,uBAAuB;AAAA,EAChE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PatchAclSchemaModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/acl/PatchAclSchemaModification.ts"],"sourcesContent":["import { SchemaUpdater } from '../utils/schemaUpdateUtils'\nimport { createModificationType, ModificationHandler } from '../ModificationHandler'\nimport { applyPatch, Operation } from 'rfc6902'\nimport deepCopy from '../../utils/deepCopy'\n\nexport class PatchAclSchemaModificationHandler implements ModificationHandler<PatchAclSchemaModificationData> {\n\tconstructor(private readonly data: PatchAclSchemaModificationData) {}\n\n\tpublic createSql(): void {}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\tconst acl = deepCopy(schema.acl)\n\t\t\tconst result = applyPatch(acl, this.data.patch).filter(it => it !== null)\n\t\t\tif (result.length > 0) {\n\t\t\t\tthrow result[0]\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...schema,\n\t\t\t\tacl,\n\t\t\t}\n\t\t}\n\t}\n\n\tdescribe() {\n\t\treturn { message: 'Update ACL schema' }\n\t}\n}\n\nexport const patchAclSchemaModification = createModificationType({\n\tid: 'patchAclSchema',\n\thandler: PatchAclSchemaModificationHandler,\n})\n\nexport interface PatchAclSchemaModificationData {\n\tpatch: Operation[]\n}\n"],"names":[],"mappings":";;;AAKO,MAAM,kCAAiG;AAAA,EAC7G,YAA6B,MAAsC;AAAtC,SAAA,OAAA;AAAA,EAAuC;AAAA,EAE7D,YAAkB;AAAA,EAAC;AAAA,EAEnB,mBAAkC;AACxC,WAAO,CAAC,EAAE,aAAa;AACtB,YAAM,MAAM,SAAS,OAAO,GAAG;AAC/B,YAAM,SAAS,WAAW,KAAK,KAAK,KAAK,KAAK,EAAE,OAAO,CAAA,OAAM,OAAO,IAAI;AACxE,UAAI,OAAO,SAAS,GAAG;AACtB,cAAM,OAAO,CAAC;AAAA,MACf;AAEA,aAAO;AAAA,QACN,GAAG;AAAA,QACH;AAAA,MAAA;AAAA,IAEF;AAAA,EACD;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,oBAAA;AAAA,EACnB;AACD;AAEO,MAAM,6BAA6B,uBAAuB;AAAA,EAChE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;"}
1
+ {"version":3,"file":"PatchAclSchemaModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/acl/PatchAclSchemaModification.ts"],"sourcesContent":["import { SchemaUpdater } from '../utils/schemaUpdateUtils.js'\nimport { createModificationType, ModificationHandler } from '../ModificationHandler.js'\nimport { applyPatch, Operation } from 'rfc6902'\nimport deepCopy from '../../utils/deepCopy.js'\n\nexport class PatchAclSchemaModificationHandler implements ModificationHandler<PatchAclSchemaModificationData> {\n\tconstructor(private readonly data: PatchAclSchemaModificationData) {}\n\n\tpublic createSql(): void {}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\tconst acl = deepCopy(schema.acl)\n\t\t\tconst result = applyPatch(acl, this.data.patch).filter(it => it !== null)\n\t\t\tif (result.length > 0) {\n\t\t\t\tthrow result[0]\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...schema,\n\t\t\t\tacl,\n\t\t\t}\n\t\t}\n\t}\n\n\tdescribe() {\n\t\treturn { message: 'Update ACL schema' }\n\t}\n}\n\nexport const patchAclSchemaModification = createModificationType({\n\tid: 'patchAclSchema',\n\thandler: PatchAclSchemaModificationHandler,\n})\n\nexport interface PatchAclSchemaModificationData {\n\tpatch: Operation[]\n}\n"],"names":[],"mappings":";;;AAKO,MAAM,kCAAiG;AAAA,EAC7G,YAA6B,MAAsC;AAAtC,SAAA,OAAA;AAAA,EAAuC;AAAA,EAE7D,YAAkB;AAAA,EAAC;AAAA,EAEnB,mBAAkC;AACxC,WAAO,CAAC,EAAE,aAAa;AACtB,YAAM,MAAM,SAAS,OAAO,GAAG;AAC/B,YAAM,SAAS,WAAW,KAAK,KAAK,KAAK,KAAK,EAAE,OAAO,CAAA,OAAM,OAAO,IAAI;AACxE,UAAI,OAAO,SAAS,GAAG;AACtB,cAAM,OAAO,CAAC;AAAA,MACf;AAEA,aAAO;AAAA,QACN,GAAG;AAAA,QACH;AAAA,MAAA;AAAA,IAEF;AAAA,EACD;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,oBAAA;AAAA,EACnB;AACD;AAEO,MAAM,6BAA6B,uBAAuB;AAAA,EAChE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;"}