@contember/schema-migrations 2.1.0-alpha.9 → 2.1.0-beta.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 (563) hide show
  1. package/CLAUDE.md +48 -0
  2. package/dist/development/src/Migration.cjs.map +1 -1
  3. package/dist/development/src/Migration.js.map +1 -1
  4. package/dist/development/src/MigrationDescriber.cjs.map +1 -1
  5. package/dist/development/src/MigrationDescriber.js.map +1 -1
  6. package/dist/development/src/SchemaDiffer.cjs +1 -1
  7. package/dist/development/src/SchemaDiffer.cjs.map +1 -1
  8. package/dist/development/src/SchemaDiffer.js +1 -1
  9. package/dist/development/src/SchemaDiffer.js.map +1 -1
  10. package/dist/development/src/SchemaMigrator.cjs.map +1 -1
  11. package/dist/development/src/SchemaMigrator.js.map +1 -1
  12. package/dist/development/src/modifications/ModificationHandler.cjs.map +1 -1
  13. package/dist/development/src/modifications/ModificationHandler.js.map +1 -1
  14. package/dist/development/src/modifications/ModificationHandlerFactory.cjs +2 -0
  15. package/dist/development/src/modifications/ModificationHandlerFactory.cjs.map +1 -1
  16. package/dist/development/src/modifications/ModificationHandlerFactory.js +2 -0
  17. package/dist/development/src/modifications/ModificationHandlerFactory.js.map +1 -1
  18. package/dist/development/src/modifications/NoopModification.cjs.map +1 -1
  19. package/dist/development/src/modifications/NoopModification.js.map +1 -1
  20. package/dist/development/src/modifications/acl/PatchAclSchemaModification.cjs.map +1 -1
  21. package/dist/development/src/modifications/acl/PatchAclSchemaModification.js.map +1 -1
  22. package/dist/development/src/modifications/acl/UpdateAclSchemaModification.cjs +1 -1
  23. package/dist/development/src/modifications/acl/UpdateAclSchemaModification.cjs.map +1 -1
  24. package/dist/development/src/modifications/acl/UpdateAclSchemaModification.js +1 -1
  25. package/dist/development/src/modifications/acl/UpdateAclSchemaModification.js.map +1 -1
  26. package/dist/development/src/modifications/actions/CreateTargetModification.cjs.map +1 -1
  27. package/dist/development/src/modifications/actions/CreateTargetModification.js.map +1 -1
  28. package/dist/development/src/modifications/actions/CreateTriggerModification.cjs.map +1 -1
  29. package/dist/development/src/modifications/actions/CreateTriggerModification.js.map +1 -1
  30. package/dist/development/src/modifications/actions/PatchTriggerModification.cjs +44 -0
  31. package/dist/development/src/modifications/actions/PatchTriggerModification.cjs.map +1 -0
  32. package/dist/development/src/modifications/actions/PatchTriggerModification.js +44 -0
  33. package/dist/development/src/modifications/actions/PatchTriggerModification.js.map +1 -0
  34. package/dist/development/src/modifications/actions/RemoveTargetModification.cjs.map +1 -1
  35. package/dist/development/src/modifications/actions/RemoveTargetModification.js.map +1 -1
  36. package/dist/development/src/modifications/actions/RemoveTriggerModification.cjs.map +1 -1
  37. package/dist/development/src/modifications/actions/RemoveTriggerModification.js.map +1 -1
  38. package/dist/development/src/modifications/actions/UpdateTargetModification.cjs.map +1 -1
  39. package/dist/development/src/modifications/actions/UpdateTargetModification.js.map +1 -1
  40. package/dist/development/src/modifications/actions/UpdateTriggerModification.cjs +16 -1
  41. package/dist/development/src/modifications/actions/UpdateTriggerModification.cjs.map +1 -1
  42. package/dist/development/src/modifications/actions/UpdateTriggerModification.js +16 -1
  43. package/dist/development/src/modifications/actions/UpdateTriggerModification.js.map +1 -1
  44. package/dist/development/src/modifications/columns/CreateColumnModification.cjs.map +1 -1
  45. package/dist/development/src/modifications/columns/CreateColumnModification.js.map +1 -1
  46. package/dist/development/src/modifications/columns/UpdateColumnDefinitionModification.cjs +2 -2
  47. package/dist/development/src/modifications/columns/UpdateColumnDefinitionModification.cjs.map +1 -1
  48. package/dist/development/src/modifications/columns/UpdateColumnDefinitionModification.js +2 -2
  49. package/dist/development/src/modifications/columns/UpdateColumnDefinitionModification.js.map +1 -1
  50. package/dist/development/src/modifications/columns/UpdateColumnNameModification.cjs +37 -45
  51. package/dist/development/src/modifications/columns/UpdateColumnNameModification.cjs.map +1 -1
  52. package/dist/development/src/modifications/columns/UpdateColumnNameModification.js +37 -45
  53. package/dist/development/src/modifications/columns/UpdateColumnNameModification.js.map +1 -1
  54. package/dist/development/src/modifications/columns/columnUtils.cjs.map +1 -1
  55. package/dist/development/src/modifications/columns/columnUtils.js.map +1 -1
  56. package/dist/development/src/modifications/constraints/CreateUniqueConstraintModification.cjs +8 -5
  57. package/dist/development/src/modifications/constraints/CreateUniqueConstraintModification.cjs.map +1 -1
  58. package/dist/development/src/modifications/constraints/CreateUniqueConstraintModification.js +8 -5
  59. package/dist/development/src/modifications/constraints/CreateUniqueConstraintModification.js.map +1 -1
  60. package/dist/development/src/modifications/constraints/RemoveUniqueConstraintModification.cjs.map +1 -1
  61. package/dist/development/src/modifications/constraints/RemoveUniqueConstraintModification.js.map +1 -1
  62. package/dist/development/src/modifications/constraints/utils.cjs.map +1 -1
  63. package/dist/development/src/modifications/constraints/utils.js.map +1 -1
  64. package/dist/development/src/modifications/differs/RemoveChangedFieldDiffer.cjs.map +1 -1
  65. package/dist/development/src/modifications/differs/RemoveChangedFieldDiffer.js.map +1 -1
  66. package/dist/development/src/modifications/differs/RemoveViewDiffer.cjs +0 -2
  67. package/dist/development/src/modifications/differs/RemoveViewDiffer.cjs.map +1 -1
  68. package/dist/development/src/modifications/differs/RemoveViewDiffer.js +0 -2
  69. package/dist/development/src/modifications/differs/RemoveViewDiffer.js.map +1 -1
  70. package/dist/development/src/modifications/entities/CreateEntityModification.cjs.map +1 -1
  71. package/dist/development/src/modifications/entities/CreateEntityModification.js.map +1 -1
  72. package/dist/development/src/modifications/entities/CreateViewModification.cjs.map +1 -1
  73. package/dist/development/src/modifications/entities/CreateViewModification.js.map +1 -1
  74. package/dist/development/src/modifications/entities/RemoveEntityModification.cjs.map +1 -1
  75. package/dist/development/src/modifications/entities/RemoveEntityModification.js +1 -1
  76. package/dist/development/src/modifications/entities/RemoveEntityModification.js.map +1 -1
  77. package/dist/development/src/modifications/entities/ToggleEventLogModification.cjs.map +1 -1
  78. package/dist/development/src/modifications/entities/ToggleEventLogModification.js.map +1 -1
  79. package/dist/development/src/modifications/entities/UpdateEntityNameModification.cjs.map +1 -1
  80. package/dist/development/src/modifications/entities/UpdateEntityNameModification.js +1 -1
  81. package/dist/development/src/modifications/entities/UpdateEntityNameModification.js.map +1 -1
  82. package/dist/development/src/modifications/entities/UpdateEntityOrderByModification.cjs.map +1 -1
  83. package/dist/development/src/modifications/entities/UpdateEntityOrderByModification.js.map +1 -1
  84. package/dist/development/src/modifications/entities/UpdateEntityTableNameModification.cjs +6 -4
  85. package/dist/development/src/modifications/entities/UpdateEntityTableNameModification.cjs.map +1 -1
  86. package/dist/development/src/modifications/entities/UpdateEntityTableNameModification.js +6 -4
  87. package/dist/development/src/modifications/entities/UpdateEntityTableNameModification.js.map +1 -1
  88. package/dist/development/src/modifications/entities/UpdateViewModification.cjs.map +1 -1
  89. package/dist/development/src/modifications/entities/UpdateViewModification.js.map +1 -1
  90. package/dist/development/src/modifications/enums/CreateEnumModification.cjs +6 -4
  91. package/dist/development/src/modifications/enums/CreateEnumModification.cjs.map +1 -1
  92. package/dist/development/src/modifications/enums/CreateEnumModification.js +7 -5
  93. package/dist/development/src/modifications/enums/CreateEnumModification.js.map +1 -1
  94. package/dist/development/src/modifications/enums/RemoveEnumModification.cjs.map +1 -1
  95. package/dist/development/src/modifications/enums/RemoveEnumModification.js.map +1 -1
  96. package/dist/development/src/modifications/enums/UpdateEnumModification.cjs +36 -8
  97. package/dist/development/src/modifications/enums/UpdateEnumModification.cjs.map +1 -1
  98. package/dist/development/src/modifications/enums/UpdateEnumModification.js +34 -6
  99. package/dist/development/src/modifications/enums/UpdateEnumModification.js.map +1 -1
  100. package/dist/development/src/modifications/enums/enumUtils.cjs.map +1 -1
  101. package/dist/development/src/modifications/enums/enumUtils.js.map +1 -1
  102. package/dist/development/src/modifications/fields/RemoveFieldModification.cjs.map +1 -1
  103. package/dist/development/src/modifications/fields/RemoveFieldModification.js +1 -1
  104. package/dist/development/src/modifications/fields/RemoveFieldModification.js.map +1 -1
  105. package/dist/development/src/modifications/fields/UpdateFieldNameModification.cjs +9 -5
  106. package/dist/development/src/modifications/fields/UpdateFieldNameModification.cjs.map +1 -1
  107. package/dist/development/src/modifications/fields/UpdateFieldNameModification.js +10 -6
  108. package/dist/development/src/modifications/fields/UpdateFieldNameModification.js.map +1 -1
  109. package/dist/development/src/modifications/indexes/CreateIndexModification.cjs +10 -6
  110. package/dist/development/src/modifications/indexes/CreateIndexModification.cjs.map +1 -1
  111. package/dist/development/src/modifications/indexes/CreateIndexModification.js +10 -6
  112. package/dist/development/src/modifications/indexes/CreateIndexModification.js.map +1 -1
  113. package/dist/development/src/modifications/indexes/RemoveIndexModification.cjs.map +1 -1
  114. package/dist/development/src/modifications/indexes/RemoveIndexModification.js.map +1 -1
  115. package/dist/development/src/modifications/indexes/utils.cjs.map +1 -1
  116. package/dist/development/src/modifications/indexes/utils.js.map +1 -1
  117. package/dist/development/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.cjs.map +1 -1
  118. package/dist/development/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.js.map +1 -1
  119. package/dist/development/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.cjs.map +1 -1
  120. package/dist/development/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.js.map +1 -1
  121. package/dist/development/src/modifications/relations/ConvertOneToManyRelationModification.cjs.map +1 -1
  122. package/dist/development/src/modifications/relations/ConvertOneToManyRelationModification.js.map +1 -1
  123. package/dist/development/src/modifications/relations/CreateRelationInverseSideModification.cjs.map +1 -1
  124. package/dist/development/src/modifications/relations/CreateRelationInverseSideModification.js.map +1 -1
  125. package/dist/development/src/modifications/relations/CreateRelationModification.cjs.map +1 -1
  126. package/dist/development/src/modifications/relations/CreateRelationModification.js.map +1 -1
  127. package/dist/development/src/modifications/relations/DisableOrphanRemovalModification.cjs.map +1 -1
  128. package/dist/development/src/modifications/relations/DisableOrphanRemovalModification.js.map +1 -1
  129. package/dist/development/src/modifications/relations/EnableOrphanRemovalModification.cjs.map +1 -1
  130. package/dist/development/src/modifications/relations/EnableOrphanRemovalModification.js.map +1 -1
  131. package/dist/development/src/modifications/relations/MakeRelationNotNullModification.cjs.map +1 -1
  132. package/dist/development/src/modifications/relations/MakeRelationNotNullModification.js.map +1 -1
  133. package/dist/development/src/modifications/relations/MakeRelationNullableModification.cjs.map +1 -1
  134. package/dist/development/src/modifications/relations/MakeRelationNullableModification.js.map +1 -1
  135. package/dist/development/src/modifications/relations/ToggleJunctionEventLogModification.cjs.map +1 -1
  136. package/dist/development/src/modifications/relations/ToggleJunctionEventLogModification.js.map +1 -1
  137. package/dist/development/src/modifications/relations/UpdateRelationOnDeleteModification.cjs.map +1 -1
  138. package/dist/development/src/modifications/relations/UpdateRelationOnDeleteModification.js.map +1 -1
  139. package/dist/development/src/modifications/relations/UpdateRelationOrderByModification.cjs.map +1 -1
  140. package/dist/development/src/modifications/relations/UpdateRelationOrderByModification.js.map +1 -1
  141. package/dist/development/src/modifications/relations/helpers.cjs.map +1 -1
  142. package/dist/development/src/modifications/relations/helpers.js.map +1 -1
  143. package/dist/development/src/modifications/relations/normalization.cjs.map +1 -1
  144. package/dist/development/src/modifications/relations/normalization.js.map +1 -1
  145. package/dist/development/src/modifications/settings/UpdateSettingsModification.cjs +6 -4
  146. package/dist/development/src/modifications/settings/UpdateSettingsModification.cjs.map +1 -1
  147. package/dist/development/src/modifications/settings/UpdateSettingsModification.js +6 -4
  148. package/dist/development/src/modifications/settings/UpdateSettingsModification.js.map +1 -1
  149. package/dist/development/src/modifications/upgrade/RemoveIndexNamesModification.cjs +0 -2
  150. package/dist/development/src/modifications/upgrade/RemoveIndexNamesModification.cjs.map +1 -1
  151. package/dist/development/src/modifications/upgrade/RemoveIndexNamesModification.js +0 -2
  152. package/dist/development/src/modifications/upgrade/RemoveIndexNamesModification.js.map +1 -1
  153. package/dist/development/src/modifications/utils/columnUtils.cjs.map +1 -1
  154. package/dist/development/src/modifications/utils/columnUtils.js.map +1 -1
  155. package/dist/development/src/modifications/utils/createJunctionTable.cjs.map +1 -1
  156. package/dist/development/src/modifications/utils/createJunctionTable.js.map +1 -1
  157. package/dist/development/src/modifications/utils/diffUtils.cjs.map +1 -1
  158. package/dist/development/src/modifications/utils/diffUtils.js.map +1 -1
  159. package/dist/development/src/modifications/utils/getPrimaryColumnType.cjs.map +1 -1
  160. package/dist/development/src/modifications/utils/getPrimaryColumnType.js.map +1 -1
  161. package/dist/development/src/modifications/utils/schemaUpdateUtils.cjs.map +1 -1
  162. package/dist/development/src/modifications/utils/schemaUpdateUtils.js.map +1 -1
  163. package/dist/development/src/modifications/utils/sqlUpdateUtils.cjs.map +1 -1
  164. package/dist/development/src/modifications/utils/sqlUpdateUtils.js.map +1 -1
  165. package/dist/development/src/modifications/utils/valueUtils.cjs.map +1 -1
  166. package/dist/development/src/modifications/utils/valueUtils.js.map +1 -1
  167. package/dist/development/src/modifications/utils/viewDependencies.cjs.map +1 -1
  168. package/dist/development/src/modifications/utils/viewDependencies.js.map +1 -1
  169. package/dist/development/src/modifications/validation/PatchValidationSchemaModification.cjs.map +1 -1
  170. package/dist/development/src/modifications/validation/PatchValidationSchemaModification.js.map +1 -1
  171. package/dist/development/src/modifications/validation/UpdateValidationSchemaModification.cjs.map +1 -1
  172. package/dist/development/src/modifications/validation/UpdateValidationSchemaModification.js.map +1 -1
  173. package/dist/development/src/utils/dbHelpers.cjs.map +1 -1
  174. package/dist/development/src/utils/dbHelpers.js.map +1 -1
  175. package/dist/development/src/utils/deepCopy.cjs.map +1 -1
  176. package/dist/development/src/utils/deepCopy.js.map +1 -1
  177. package/dist/development/src/utils/escapeSqlString.cjs +1 -1
  178. package/dist/development/src/utils/escapeSqlString.cjs.map +1 -1
  179. package/dist/development/src/utils/escapeSqlString.js +1 -1
  180. package/dist/development/src/utils/escapeSqlString.js.map +1 -1
  181. package/dist/development/src/utils/isDefined.cjs.map +1 -1
  182. package/dist/development/src/utils/isDefined.js.map +1 -1
  183. package/dist/development/src/utils/isIt.cjs.map +1 -1
  184. package/dist/development/src/utils/isIt.js.map +1 -1
  185. package/dist/production/src/Migration.cjs.map +1 -1
  186. package/dist/production/src/Migration.js.map +1 -1
  187. package/dist/production/src/MigrationDescriber.cjs.map +1 -1
  188. package/dist/production/src/MigrationDescriber.js.map +1 -1
  189. package/dist/production/src/SchemaDiffer.cjs +1 -1
  190. package/dist/production/src/SchemaDiffer.cjs.map +1 -1
  191. package/dist/production/src/SchemaDiffer.js +1 -1
  192. package/dist/production/src/SchemaDiffer.js.map +1 -1
  193. package/dist/production/src/SchemaMigrator.cjs.map +1 -1
  194. package/dist/production/src/SchemaMigrator.js.map +1 -1
  195. package/dist/production/src/modifications/ModificationHandler.cjs.map +1 -1
  196. package/dist/production/src/modifications/ModificationHandler.js.map +1 -1
  197. package/dist/production/src/modifications/ModificationHandlerFactory.cjs +2 -0
  198. package/dist/production/src/modifications/ModificationHandlerFactory.cjs.map +1 -1
  199. package/dist/production/src/modifications/ModificationHandlerFactory.js +2 -0
  200. package/dist/production/src/modifications/ModificationHandlerFactory.js.map +1 -1
  201. package/dist/production/src/modifications/NoopModification.cjs.map +1 -1
  202. package/dist/production/src/modifications/NoopModification.js.map +1 -1
  203. package/dist/production/src/modifications/acl/PatchAclSchemaModification.cjs.map +1 -1
  204. package/dist/production/src/modifications/acl/PatchAclSchemaModification.js.map +1 -1
  205. package/dist/production/src/modifications/acl/UpdateAclSchemaModification.cjs +1 -1
  206. package/dist/production/src/modifications/acl/UpdateAclSchemaModification.cjs.map +1 -1
  207. package/dist/production/src/modifications/acl/UpdateAclSchemaModification.js +1 -1
  208. package/dist/production/src/modifications/acl/UpdateAclSchemaModification.js.map +1 -1
  209. package/dist/production/src/modifications/actions/CreateTargetModification.cjs.map +1 -1
  210. package/dist/production/src/modifications/actions/CreateTargetModification.js.map +1 -1
  211. package/dist/production/src/modifications/actions/CreateTriggerModification.cjs.map +1 -1
  212. package/dist/production/src/modifications/actions/CreateTriggerModification.js.map +1 -1
  213. package/dist/production/src/modifications/actions/PatchTriggerModification.cjs +44 -0
  214. package/dist/production/src/modifications/actions/PatchTriggerModification.cjs.map +1 -0
  215. package/dist/production/src/modifications/actions/PatchTriggerModification.js +44 -0
  216. package/dist/production/src/modifications/actions/PatchTriggerModification.js.map +1 -0
  217. package/dist/production/src/modifications/actions/RemoveTargetModification.cjs.map +1 -1
  218. package/dist/production/src/modifications/actions/RemoveTargetModification.js.map +1 -1
  219. package/dist/production/src/modifications/actions/RemoveTriggerModification.cjs.map +1 -1
  220. package/dist/production/src/modifications/actions/RemoveTriggerModification.js.map +1 -1
  221. package/dist/production/src/modifications/actions/UpdateTargetModification.cjs.map +1 -1
  222. package/dist/production/src/modifications/actions/UpdateTargetModification.js.map +1 -1
  223. package/dist/production/src/modifications/actions/UpdateTriggerModification.cjs +16 -1
  224. package/dist/production/src/modifications/actions/UpdateTriggerModification.cjs.map +1 -1
  225. package/dist/production/src/modifications/actions/UpdateTriggerModification.js +16 -1
  226. package/dist/production/src/modifications/actions/UpdateTriggerModification.js.map +1 -1
  227. package/dist/production/src/modifications/columns/CreateColumnModification.cjs.map +1 -1
  228. package/dist/production/src/modifications/columns/CreateColumnModification.js.map +1 -1
  229. package/dist/production/src/modifications/columns/UpdateColumnDefinitionModification.cjs +2 -2
  230. package/dist/production/src/modifications/columns/UpdateColumnDefinitionModification.cjs.map +1 -1
  231. package/dist/production/src/modifications/columns/UpdateColumnDefinitionModification.js +2 -2
  232. package/dist/production/src/modifications/columns/UpdateColumnDefinitionModification.js.map +1 -1
  233. package/dist/production/src/modifications/columns/UpdateColumnNameModification.cjs +37 -45
  234. package/dist/production/src/modifications/columns/UpdateColumnNameModification.cjs.map +1 -1
  235. package/dist/production/src/modifications/columns/UpdateColumnNameModification.js +37 -45
  236. package/dist/production/src/modifications/columns/UpdateColumnNameModification.js.map +1 -1
  237. package/dist/production/src/modifications/columns/columnUtils.cjs.map +1 -1
  238. package/dist/production/src/modifications/columns/columnUtils.js.map +1 -1
  239. package/dist/production/src/modifications/constraints/CreateUniqueConstraintModification.cjs +8 -5
  240. package/dist/production/src/modifications/constraints/CreateUniqueConstraintModification.cjs.map +1 -1
  241. package/dist/production/src/modifications/constraints/CreateUniqueConstraintModification.js +8 -5
  242. package/dist/production/src/modifications/constraints/CreateUniqueConstraintModification.js.map +1 -1
  243. package/dist/production/src/modifications/constraints/RemoveUniqueConstraintModification.cjs.map +1 -1
  244. package/dist/production/src/modifications/constraints/RemoveUniqueConstraintModification.js.map +1 -1
  245. package/dist/production/src/modifications/constraints/utils.cjs.map +1 -1
  246. package/dist/production/src/modifications/constraints/utils.js.map +1 -1
  247. package/dist/production/src/modifications/differs/RemoveChangedFieldDiffer.cjs.map +1 -1
  248. package/dist/production/src/modifications/differs/RemoveChangedFieldDiffer.js.map +1 -1
  249. package/dist/production/src/modifications/differs/RemoveViewDiffer.cjs +0 -2
  250. package/dist/production/src/modifications/differs/RemoveViewDiffer.cjs.map +1 -1
  251. package/dist/production/src/modifications/differs/RemoveViewDiffer.js +0 -2
  252. package/dist/production/src/modifications/differs/RemoveViewDiffer.js.map +1 -1
  253. package/dist/production/src/modifications/entities/CreateEntityModification.cjs.map +1 -1
  254. package/dist/production/src/modifications/entities/CreateEntityModification.js.map +1 -1
  255. package/dist/production/src/modifications/entities/CreateViewModification.cjs.map +1 -1
  256. package/dist/production/src/modifications/entities/CreateViewModification.js.map +1 -1
  257. package/dist/production/src/modifications/entities/RemoveEntityModification.cjs.map +1 -1
  258. package/dist/production/src/modifications/entities/RemoveEntityModification.js +1 -1
  259. package/dist/production/src/modifications/entities/RemoveEntityModification.js.map +1 -1
  260. package/dist/production/src/modifications/entities/ToggleEventLogModification.cjs.map +1 -1
  261. package/dist/production/src/modifications/entities/ToggleEventLogModification.js.map +1 -1
  262. package/dist/production/src/modifications/entities/UpdateEntityNameModification.cjs.map +1 -1
  263. package/dist/production/src/modifications/entities/UpdateEntityNameModification.js +1 -1
  264. package/dist/production/src/modifications/entities/UpdateEntityNameModification.js.map +1 -1
  265. package/dist/production/src/modifications/entities/UpdateEntityOrderByModification.cjs.map +1 -1
  266. package/dist/production/src/modifications/entities/UpdateEntityOrderByModification.js.map +1 -1
  267. package/dist/production/src/modifications/entities/UpdateEntityTableNameModification.cjs +6 -4
  268. package/dist/production/src/modifications/entities/UpdateEntityTableNameModification.cjs.map +1 -1
  269. package/dist/production/src/modifications/entities/UpdateEntityTableNameModification.js +6 -4
  270. package/dist/production/src/modifications/entities/UpdateEntityTableNameModification.js.map +1 -1
  271. package/dist/production/src/modifications/entities/UpdateViewModification.cjs.map +1 -1
  272. package/dist/production/src/modifications/entities/UpdateViewModification.js.map +1 -1
  273. package/dist/production/src/modifications/enums/CreateEnumModification.cjs +6 -4
  274. package/dist/production/src/modifications/enums/CreateEnumModification.cjs.map +1 -1
  275. package/dist/production/src/modifications/enums/CreateEnumModification.js +7 -5
  276. package/dist/production/src/modifications/enums/CreateEnumModification.js.map +1 -1
  277. package/dist/production/src/modifications/enums/RemoveEnumModification.cjs.map +1 -1
  278. package/dist/production/src/modifications/enums/RemoveEnumModification.js.map +1 -1
  279. package/dist/production/src/modifications/enums/UpdateEnumModification.cjs +36 -8
  280. package/dist/production/src/modifications/enums/UpdateEnumModification.cjs.map +1 -1
  281. package/dist/production/src/modifications/enums/UpdateEnumModification.js +34 -6
  282. package/dist/production/src/modifications/enums/UpdateEnumModification.js.map +1 -1
  283. package/dist/production/src/modifications/enums/enumUtils.cjs.map +1 -1
  284. package/dist/production/src/modifications/enums/enumUtils.js.map +1 -1
  285. package/dist/production/src/modifications/fields/RemoveFieldModification.cjs.map +1 -1
  286. package/dist/production/src/modifications/fields/RemoveFieldModification.js +1 -1
  287. package/dist/production/src/modifications/fields/RemoveFieldModification.js.map +1 -1
  288. package/dist/production/src/modifications/fields/UpdateFieldNameModification.cjs +9 -5
  289. package/dist/production/src/modifications/fields/UpdateFieldNameModification.cjs.map +1 -1
  290. package/dist/production/src/modifications/fields/UpdateFieldNameModification.js +10 -6
  291. package/dist/production/src/modifications/fields/UpdateFieldNameModification.js.map +1 -1
  292. package/dist/production/src/modifications/indexes/CreateIndexModification.cjs +10 -6
  293. package/dist/production/src/modifications/indexes/CreateIndexModification.cjs.map +1 -1
  294. package/dist/production/src/modifications/indexes/CreateIndexModification.js +10 -6
  295. package/dist/production/src/modifications/indexes/CreateIndexModification.js.map +1 -1
  296. package/dist/production/src/modifications/indexes/RemoveIndexModification.cjs.map +1 -1
  297. package/dist/production/src/modifications/indexes/RemoveIndexModification.js.map +1 -1
  298. package/dist/production/src/modifications/indexes/utils.cjs.map +1 -1
  299. package/dist/production/src/modifications/indexes/utils.js.map +1 -1
  300. package/dist/production/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.cjs.map +1 -1
  301. package/dist/production/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.js.map +1 -1
  302. package/dist/production/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.cjs.map +1 -1
  303. package/dist/production/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.js.map +1 -1
  304. package/dist/production/src/modifications/relations/ConvertOneToManyRelationModification.cjs.map +1 -1
  305. package/dist/production/src/modifications/relations/ConvertOneToManyRelationModification.js.map +1 -1
  306. package/dist/production/src/modifications/relations/CreateRelationInverseSideModification.cjs.map +1 -1
  307. package/dist/production/src/modifications/relations/CreateRelationInverseSideModification.js.map +1 -1
  308. package/dist/production/src/modifications/relations/CreateRelationModification.cjs.map +1 -1
  309. package/dist/production/src/modifications/relations/CreateRelationModification.js.map +1 -1
  310. package/dist/production/src/modifications/relations/DisableOrphanRemovalModification.cjs.map +1 -1
  311. package/dist/production/src/modifications/relations/DisableOrphanRemovalModification.js.map +1 -1
  312. package/dist/production/src/modifications/relations/EnableOrphanRemovalModification.cjs.map +1 -1
  313. package/dist/production/src/modifications/relations/EnableOrphanRemovalModification.js.map +1 -1
  314. package/dist/production/src/modifications/relations/MakeRelationNotNullModification.cjs.map +1 -1
  315. package/dist/production/src/modifications/relations/MakeRelationNotNullModification.js.map +1 -1
  316. package/dist/production/src/modifications/relations/MakeRelationNullableModification.cjs.map +1 -1
  317. package/dist/production/src/modifications/relations/MakeRelationNullableModification.js.map +1 -1
  318. package/dist/production/src/modifications/relations/ToggleJunctionEventLogModification.cjs.map +1 -1
  319. package/dist/production/src/modifications/relations/ToggleJunctionEventLogModification.js.map +1 -1
  320. package/dist/production/src/modifications/relations/UpdateRelationOnDeleteModification.cjs.map +1 -1
  321. package/dist/production/src/modifications/relations/UpdateRelationOnDeleteModification.js.map +1 -1
  322. package/dist/production/src/modifications/relations/UpdateRelationOrderByModification.cjs.map +1 -1
  323. package/dist/production/src/modifications/relations/UpdateRelationOrderByModification.js.map +1 -1
  324. package/dist/production/src/modifications/relations/helpers.cjs.map +1 -1
  325. package/dist/production/src/modifications/relations/helpers.js.map +1 -1
  326. package/dist/production/src/modifications/relations/normalization.cjs.map +1 -1
  327. package/dist/production/src/modifications/relations/normalization.js.map +1 -1
  328. package/dist/production/src/modifications/settings/UpdateSettingsModification.cjs +6 -4
  329. package/dist/production/src/modifications/settings/UpdateSettingsModification.cjs.map +1 -1
  330. package/dist/production/src/modifications/settings/UpdateSettingsModification.js +6 -4
  331. package/dist/production/src/modifications/settings/UpdateSettingsModification.js.map +1 -1
  332. package/dist/production/src/modifications/upgrade/RemoveIndexNamesModification.cjs +0 -2
  333. package/dist/production/src/modifications/upgrade/RemoveIndexNamesModification.cjs.map +1 -1
  334. package/dist/production/src/modifications/upgrade/RemoveIndexNamesModification.js +0 -2
  335. package/dist/production/src/modifications/upgrade/RemoveIndexNamesModification.js.map +1 -1
  336. package/dist/production/src/modifications/utils/columnUtils.cjs.map +1 -1
  337. package/dist/production/src/modifications/utils/columnUtils.js.map +1 -1
  338. package/dist/production/src/modifications/utils/createJunctionTable.cjs.map +1 -1
  339. package/dist/production/src/modifications/utils/createJunctionTable.js.map +1 -1
  340. package/dist/production/src/modifications/utils/diffUtils.cjs.map +1 -1
  341. package/dist/production/src/modifications/utils/diffUtils.js.map +1 -1
  342. package/dist/production/src/modifications/utils/getPrimaryColumnType.cjs.map +1 -1
  343. package/dist/production/src/modifications/utils/getPrimaryColumnType.js.map +1 -1
  344. package/dist/production/src/modifications/utils/schemaUpdateUtils.cjs.map +1 -1
  345. package/dist/production/src/modifications/utils/schemaUpdateUtils.js.map +1 -1
  346. package/dist/production/src/modifications/utils/sqlUpdateUtils.cjs.map +1 -1
  347. package/dist/production/src/modifications/utils/sqlUpdateUtils.js.map +1 -1
  348. package/dist/production/src/modifications/utils/valueUtils.cjs.map +1 -1
  349. package/dist/production/src/modifications/utils/valueUtils.js.map +1 -1
  350. package/dist/production/src/modifications/utils/viewDependencies.cjs.map +1 -1
  351. package/dist/production/src/modifications/utils/viewDependencies.js.map +1 -1
  352. package/dist/production/src/modifications/validation/PatchValidationSchemaModification.cjs.map +1 -1
  353. package/dist/production/src/modifications/validation/PatchValidationSchemaModification.js.map +1 -1
  354. package/dist/production/src/modifications/validation/UpdateValidationSchemaModification.cjs.map +1 -1
  355. package/dist/production/src/modifications/validation/UpdateValidationSchemaModification.js.map +1 -1
  356. package/dist/production/src/utils/dbHelpers.cjs.map +1 -1
  357. package/dist/production/src/utils/dbHelpers.js.map +1 -1
  358. package/dist/production/src/utils/deepCopy.cjs.map +1 -1
  359. package/dist/production/src/utils/deepCopy.js.map +1 -1
  360. package/dist/production/src/utils/escapeSqlString.cjs +1 -1
  361. package/dist/production/src/utils/escapeSqlString.cjs.map +1 -1
  362. package/dist/production/src/utils/escapeSqlString.js +1 -1
  363. package/dist/production/src/utils/escapeSqlString.js.map +1 -1
  364. package/dist/production/src/utils/isDefined.cjs.map +1 -1
  365. package/dist/production/src/utils/isDefined.js.map +1 -1
  366. package/dist/production/src/utils/isIt.cjs.map +1 -1
  367. package/dist/production/src/utils/isIt.js.map +1 -1
  368. package/dist/tests/cases/integration/patchTrigger.test.d.ts +2 -0
  369. package/dist/tests/cases/integration/patchTrigger.test.d.ts.map +1 -0
  370. package/dist/tests/src/tests.d.ts.map +1 -1
  371. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  372. package/dist/types/MigrationDescriber.d.ts.map +1 -1
  373. package/dist/types/SchemaDiffer.d.ts.map +1 -1
  374. package/dist/types/modifications/ModificationHandler.d.ts.map +1 -1
  375. package/dist/types/modifications/ModificationHandlerFactory.d.ts.map +1 -1
  376. package/dist/types/modifications/acl/PatchAclSchemaModification.d.ts +1 -1
  377. package/dist/types/modifications/acl/PatchAclSchemaModification.d.ts.map +1 -1
  378. package/dist/types/modifications/acl/UpdateAclSchemaModification.d.ts +1 -1
  379. package/dist/types/modifications/acl/UpdateAclSchemaModification.d.ts.map +1 -1
  380. package/dist/types/modifications/actions/CreateTargetModification.d.ts +1 -1
  381. package/dist/types/modifications/actions/CreateTargetModification.d.ts.map +1 -1
  382. package/dist/types/modifications/actions/CreateTriggerModification.d.ts +1 -1
  383. package/dist/types/modifications/actions/CreateTriggerModification.d.ts.map +1 -1
  384. package/dist/types/modifications/actions/PatchTriggerModification.d.ts +18 -0
  385. package/dist/types/modifications/actions/PatchTriggerModification.d.ts.map +1 -0
  386. package/dist/types/modifications/actions/RemoveTargetModification.d.ts +1 -1
  387. package/dist/types/modifications/actions/RemoveTargetModification.d.ts.map +1 -1
  388. package/dist/types/modifications/actions/RemoveTriggerModification.d.ts +1 -1
  389. package/dist/types/modifications/actions/RemoveTriggerModification.d.ts.map +1 -1
  390. package/dist/types/modifications/actions/UpdateTargetModification.d.ts +1 -1
  391. package/dist/types/modifications/actions/UpdateTargetModification.d.ts.map +1 -1
  392. package/dist/types/modifications/actions/UpdateTriggerModification.d.ts +6 -2
  393. package/dist/types/modifications/actions/UpdateTriggerModification.d.ts.map +1 -1
  394. package/dist/types/modifications/actions/index.d.ts +1 -0
  395. package/dist/types/modifications/actions/index.d.ts.map +1 -1
  396. package/dist/types/modifications/columns/CreateColumnModification.d.ts +1 -1
  397. package/dist/types/modifications/columns/CreateColumnModification.d.ts.map +1 -1
  398. package/dist/types/modifications/columns/UpdateColumnDefinitionModification.d.ts +1 -1
  399. package/dist/types/modifications/columns/UpdateColumnDefinitionModification.d.ts.map +1 -1
  400. package/dist/types/modifications/columns/UpdateColumnNameModification.d.ts +1 -1
  401. package/dist/types/modifications/columns/UpdateColumnNameModification.d.ts.map +1 -1
  402. package/dist/types/modifications/columns/columnUtils.d.ts.map +1 -1
  403. package/dist/types/modifications/constraints/CreateUniqueConstraintModification.d.ts +1 -1
  404. package/dist/types/modifications/constraints/CreateUniqueConstraintModification.d.ts.map +1 -1
  405. package/dist/types/modifications/constraints/RemoveUniqueConstraintModification.d.ts +1 -1
  406. package/dist/types/modifications/constraints/RemoveUniqueConstraintModification.d.ts.map +1 -1
  407. package/dist/types/modifications/differs/RemoveChangedFieldDiffer.d.ts +1 -1
  408. package/dist/types/modifications/differs/RemoveViewDiffer.d.ts +0 -1
  409. package/dist/types/modifications/differs/RemoveViewDiffer.d.ts.map +1 -1
  410. package/dist/types/modifications/entities/CreateEntityModification.d.ts +1 -1
  411. package/dist/types/modifications/entities/CreateEntityModification.d.ts.map +1 -1
  412. package/dist/types/modifications/entities/CreateViewModification.d.ts +1 -1
  413. package/dist/types/modifications/entities/CreateViewModification.d.ts.map +1 -1
  414. package/dist/types/modifications/entities/RemoveEntityModification.d.ts +1 -1
  415. package/dist/types/modifications/entities/RemoveEntityModification.d.ts.map +1 -1
  416. package/dist/types/modifications/entities/ToggleEventLogModification.d.ts +1 -1
  417. package/dist/types/modifications/entities/ToggleEventLogModification.d.ts.map +1 -1
  418. package/dist/types/modifications/entities/UpdateEntityNameModification.d.ts +1 -1
  419. package/dist/types/modifications/entities/UpdateEntityNameModification.d.ts.map +1 -1
  420. package/dist/types/modifications/entities/UpdateEntityOrderByModification.d.ts +1 -1
  421. package/dist/types/modifications/entities/UpdateEntityOrderByModification.d.ts.map +1 -1
  422. package/dist/types/modifications/entities/UpdateEntityTableNameModification.d.ts +1 -1
  423. package/dist/types/modifications/entities/UpdateEntityTableNameModification.d.ts.map +1 -1
  424. package/dist/types/modifications/entities/UpdateViewModification.d.ts +1 -1
  425. package/dist/types/modifications/entities/UpdateViewModification.d.ts.map +1 -1
  426. package/dist/types/modifications/enums/CreateEnumModification.d.ts +1 -1
  427. package/dist/types/modifications/enums/CreateEnumModification.d.ts.map +1 -1
  428. package/dist/types/modifications/enums/RemoveEnumModification.d.ts +1 -1
  429. package/dist/types/modifications/enums/RemoveEnumModification.d.ts.map +1 -1
  430. package/dist/types/modifications/enums/UpdateEnumModification.d.ts +2 -1
  431. package/dist/types/modifications/enums/UpdateEnumModification.d.ts.map +1 -1
  432. package/dist/types/modifications/fields/RemoveFieldModification.d.ts +1 -1
  433. package/dist/types/modifications/fields/RemoveFieldModification.d.ts.map +1 -1
  434. package/dist/types/modifications/fields/UpdateFieldNameModification.d.ts +1 -1
  435. package/dist/types/modifications/fields/UpdateFieldNameModification.d.ts.map +1 -1
  436. package/dist/types/modifications/indexes/CreateIndexModification.d.ts +1 -1
  437. package/dist/types/modifications/indexes/CreateIndexModification.d.ts.map +1 -1
  438. package/dist/types/modifications/indexes/RemoveIndexModification.d.ts +1 -1
  439. package/dist/types/modifications/indexes/RemoveIndexModification.d.ts.map +1 -1
  440. package/dist/types/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.d.ts +1 -1
  441. package/dist/types/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.d.ts.map +1 -1
  442. package/dist/types/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.d.ts +1 -1
  443. package/dist/types/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.d.ts.map +1 -1
  444. package/dist/types/modifications/relations/ConvertOneToManyRelationModification.d.ts +1 -1
  445. package/dist/types/modifications/relations/ConvertOneToManyRelationModification.d.ts.map +1 -1
  446. package/dist/types/modifications/relations/CreateRelationInverseSideModification.d.ts +1 -1
  447. package/dist/types/modifications/relations/CreateRelationInverseSideModification.d.ts.map +1 -1
  448. package/dist/types/modifications/relations/CreateRelationModification.d.ts +1 -1
  449. package/dist/types/modifications/relations/CreateRelationModification.d.ts.map +1 -1
  450. package/dist/types/modifications/relations/DisableOrphanRemovalModification.d.ts +1 -1
  451. package/dist/types/modifications/relations/DisableOrphanRemovalModification.d.ts.map +1 -1
  452. package/dist/types/modifications/relations/EnableOrphanRemovalModification.d.ts +1 -1
  453. package/dist/types/modifications/relations/EnableOrphanRemovalModification.d.ts.map +1 -1
  454. package/dist/types/modifications/relations/MakeRelationNotNullModification.d.ts +1 -1
  455. package/dist/types/modifications/relations/MakeRelationNotNullModification.d.ts.map +1 -1
  456. package/dist/types/modifications/relations/MakeRelationNullableModification.d.ts +1 -1
  457. package/dist/types/modifications/relations/MakeRelationNullableModification.d.ts.map +1 -1
  458. package/dist/types/modifications/relations/ToggleJunctionEventLogModification.d.ts +1 -1
  459. package/dist/types/modifications/relations/ToggleJunctionEventLogModification.d.ts.map +1 -1
  460. package/dist/types/modifications/relations/UpdateRelationOnDeleteModification.d.ts +1 -1
  461. package/dist/types/modifications/relations/UpdateRelationOnDeleteModification.d.ts.map +1 -1
  462. package/dist/types/modifications/relations/UpdateRelationOrderByModification.d.ts +1 -1
  463. package/dist/types/modifications/relations/UpdateRelationOrderByModification.d.ts.map +1 -1
  464. package/dist/types/modifications/relations/helpers.d.ts.map +1 -1
  465. package/dist/types/modifications/settings/UpdateSettingsModification.d.ts +1 -1
  466. package/dist/types/modifications/settings/UpdateSettingsModification.d.ts.map +1 -1
  467. package/dist/types/modifications/upgrade/RemoveIndexNamesModification.d.ts +1 -2
  468. package/dist/types/modifications/upgrade/RemoveIndexNamesModification.d.ts.map +1 -1
  469. package/dist/types/modifications/utils/columnUtils.d.ts.map +1 -1
  470. package/dist/types/modifications/utils/schemaUpdateUtils.d.ts.map +1 -1
  471. package/dist/types/modifications/utils/valueUtils.d.ts.map +1 -1
  472. package/dist/types/modifications/validation/PatchValidationSchemaModification.d.ts +1 -1
  473. package/dist/types/modifications/validation/PatchValidationSchemaModification.d.ts.map +1 -1
  474. package/dist/types/modifications/validation/UpdateValidationSchemaModification.d.ts +1 -1
  475. package/dist/types/modifications/validation/UpdateValidationSchemaModification.d.ts.map +1 -1
  476. package/dist/types/tsconfig.tsbuildinfo +1 -1
  477. package/dist/types/utils/PartialEntity.d.ts.map +1 -1
  478. package/package.json +15 -10
  479. package/src/MigrationDescriber.ts +4 -2
  480. package/src/SchemaDiffer.ts +10 -2
  481. package/src/modifications/ModificationHandler.ts +0 -1
  482. package/src/modifications/ModificationHandlerFactory.ts +2 -2
  483. package/src/modifications/acl/PatchAclSchemaModification.ts +1 -1
  484. package/src/modifications/acl/UpdateAclSchemaModification.ts +2 -2
  485. package/src/modifications/actions/PatchTriggerModification.ts +51 -0
  486. package/src/modifications/actions/UpdateTriggerModification.ts +22 -1
  487. package/src/modifications/actions/index.ts +1 -0
  488. package/src/modifications/columns/CreateColumnModification.ts +3 -6
  489. package/src/modifications/columns/UpdateColumnDefinitionModification.ts +7 -3
  490. package/src/modifications/columns/UpdateColumnNameModification.ts +1 -3
  491. package/src/modifications/columns/columnUtils.ts +0 -2
  492. package/src/modifications/constraints/CreateUniqueConstraintModification.ts +13 -16
  493. package/src/modifications/constraints/RemoveUniqueConstraintModification.ts +4 -15
  494. package/src/modifications/differs/RemoveViewDiffer.ts +0 -3
  495. package/src/modifications/entities/CreateEntityModification.ts +4 -5
  496. package/src/modifications/entities/CreateViewModification.ts +0 -1
  497. package/src/modifications/entities/RemoveEntityModification.ts +6 -6
  498. package/src/modifications/entities/ToggleEventLogModification.ts +1 -8
  499. package/src/modifications/entities/UpdateEntityNameModification.ts +3 -8
  500. package/src/modifications/entities/UpdateEntityOrderByModification.ts +2 -4
  501. package/src/modifications/entities/UpdateEntityTableNameModification.ts +7 -6
  502. package/src/modifications/entities/UpdateViewModification.ts +0 -1
  503. package/src/modifications/enums/CreateEnumModification.ts +6 -4
  504. package/src/modifications/enums/UpdateEnumModification.ts +49 -13
  505. package/src/modifications/fields/RemoveFieldModification.ts +0 -2
  506. package/src/modifications/fields/UpdateFieldNameModification.ts +71 -79
  507. package/src/modifications/indexes/CreateIndexModification.ts +11 -12
  508. package/src/modifications/indexes/RemoveIndexModification.ts +4 -11
  509. package/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.ts +9 -6
  510. package/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.ts +20 -14
  511. package/src/modifications/relations/ConvertOneToManyRelationModification.ts +18 -14
  512. package/src/modifications/relations/CreateRelationModification.ts +5 -9
  513. package/src/modifications/relations/DisableOrphanRemovalModification.ts +6 -7
  514. package/src/modifications/relations/EnableOrphanRemovalModification.ts +7 -8
  515. package/src/modifications/relations/MakeRelationNotNullModification.ts +5 -5
  516. package/src/modifications/relations/MakeRelationNullableModification.ts +5 -7
  517. package/src/modifications/relations/ToggleJunctionEventLogModification.ts +6 -18
  518. package/src/modifications/relations/UpdateRelationOnDeleteModification.ts +5 -10
  519. package/src/modifications/relations/UpdateRelationOrderByModification.ts +4 -5
  520. package/src/modifications/relations/helpers.ts +3 -1
  521. package/src/modifications/settings/UpdateSettingsModification.ts +6 -10
  522. package/src/modifications/upgrade/RemoveIndexNamesModification.ts +1 -4
  523. package/src/modifications/utils/columnUtils.ts +1 -2
  524. package/src/modifications/utils/schemaUpdateUtils.ts +139 -165
  525. package/src/modifications/utils/valueUtils.ts +1 -4
  526. package/src/modifications/validation/UpdateValidationSchemaModification.ts +0 -1
  527. package/src/tsconfig.json +1 -2
  528. package/src/utils/PartialEntity.ts +2 -2
  529. package/src/utils/escapeSqlString.ts +1 -1
  530. package/tests/cases/integration/convertOneToManyRelation.test.ts +69 -81
  531. package/tests/cases/integration/createAndDropIndex.test.ts +138 -36
  532. package/tests/cases/integration/createColumn.test.ts +178 -175
  533. package/tests/cases/integration/createEntity.test.ts +185 -182
  534. package/tests/cases/integration/createEnum.test.ts +34 -34
  535. package/tests/cases/integration/createManyHasMany.test.ts +66 -67
  536. package/tests/cases/integration/createManyHasOne.test.ts +62 -62
  537. package/tests/cases/integration/createOneHasMany.test.ts +86 -88
  538. package/tests/cases/integration/createOneHasOne.test.ts +96 -96
  539. package/tests/cases/integration/createRelationInverseSide.test.ts +73 -72
  540. package/tests/cases/integration/createUnique.test.ts +321 -162
  541. package/tests/cases/integration/createView.test.ts +111 -96
  542. package/tests/cases/integration/disableOrphanRemoval.test.ts +25 -27
  543. package/tests/cases/integration/enableOrphanRemoval.test.ts +25 -27
  544. package/tests/cases/integration/makeColumnNotNull.test.ts +25 -24
  545. package/tests/cases/integration/makeRelationNotNull.test.ts +25 -27
  546. package/tests/cases/integration/makeRelationNullable.test.ts +47 -48
  547. package/tests/cases/integration/patchAclSchema.test.ts +43 -42
  548. package/tests/cases/integration/patchTrigger.test.ts +184 -0
  549. package/tests/cases/integration/removeEntity.test.ts +143 -147
  550. package/tests/cases/integration/removeEnum.test.ts +27 -27
  551. package/tests/cases/integration/removeField.test.ts +163 -172
  552. package/tests/cases/integration/toggleEventLog.test.ts +26 -25
  553. package/tests/cases/integration/toggleJunctionEventLog.test.ts +28 -26
  554. package/tests/cases/integration/updateColumnDefinition.test.ts +191 -165
  555. package/tests/cases/integration/updateEntityName.test.ts +113 -110
  556. package/tests/cases/integration/updateEntityOrderBy.test.ts +25 -24
  557. package/tests/cases/integration/updateEnum.test.ts +68 -30
  558. package/tests/cases/integration/updateFieldName.test.ts +195 -199
  559. package/tests/cases/integration/updateRelationOnDelete.test.ts +42 -44
  560. package/tests/cases/integration/updateRelationOrderBy.test.ts +35 -38
  561. package/tests/cases/integration/updateView.test.ts +350 -350
  562. package/tests/src/tests.ts +1 -2
  563. package/vitest.config.ts +0 -3
@@ -1 +1 @@
1
- {"version":3,"file":"MakeRelationNotNullModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/MakeRelationNotNullModification.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport { getEntity, tryGetColumnName } from '@contember/schema-utils'\nimport { isIt } from '../../utils/isIt'\nimport { updateRelations } from '../utils/diffUtils'\n\nexport class MakeRelationNotNullModificationHandler implements ModificationHandler<MakeRelationNotNullModificationData> {\n\tconstructor(private readonly data: MakeRelationNotNullModificationData, private readonly schema: Schema) {}\n\n\tpublic createSql(builder: MigrationBuilder): void {\n\t\tconst entity = getEntity(this.schema.model, this.data.entityName)\n\t\tif (entity.view) {\n\t\t\treturn\n\t\t}\n\t\tconst columnName = tryGetColumnName(this.schema.model, entity, this.data.fieldName)\n\t\tif (!columnName) {\n\t\t\treturn\n\t\t}\n\t\tbuilder.alterColumn(entity.tableName, columnName, {\n\t\t\tnotNull: true,\n\t\t})\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\tconst { entityName, fieldName } = this.data\n\t\treturn updateModel(\n\t\t\tupdateEntity(\n\t\t\t\tentityName,\n\t\t\t\tupdateField<Model.AnyRelation & Model.NullableRelation>(fieldName, ({ field }) => ({\n\t\t\t\t\t...field,\n\t\t\t\t\tnullable: false,\n\t\t\t\t})),\n\t\t\t),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn {\n\t\t\tmessage: `Make relation ${this.data.entityName}.${this.data.fieldName} not-nullable`,\n\t\t\tfailureWarning: 'Changing to not-null may fail in runtime',\n\t\t}\n\t}\n}\n\nexport interface MakeRelationNotNullModificationData {\n\tentityName: string\n\tfieldName: string\n\t// todo fillValue\n}\n\nexport const makeRelationNotNullModification = createModificationType({\n\tid: 'makeRelationNotNull',\n\thandler: MakeRelationNotNullModificationHandler,\n})\n\nexport class MakeRelationNotNullDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn updateRelations(originalSchema, updatedSchema, ({ originalRelation, updatedRelation, updatedEntity }) => {\n\t\t\tif (\n\t\t\t\toriginalRelation.type === updatedRelation.type &&\n\t\t\t\tisIt<Model.NullableRelation>(updatedRelation, 'nullable') &&\n\t\t\t\tisIt<Model.NullableRelation>(originalRelation, 'nullable') &&\n\t\t\t\t!updatedRelation.nullable &&\n\t\t\t\toriginalRelation.nullable\n\t\t\t) {\n\t\t\t\treturn makeRelationNotNullModification.createModification({\n\t\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\t\tfieldName: updatedRelation.name,\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn undefined\n\t\t})\n\t}\n}\n"],"names":["getEntity","tryGetColumnName","updateModel","updateEntity","updateField","createModificationType","updateRelations","isIt"],"mappings":";;;;;;;AAQO,MAAM,uCAA2G;AAAA,EACvH,YAA6B,MAA4D,QAAgB;AAA5E,SAAA,OAAA;AAA4D,SAAA,SAAA;AAAA,EAAA;AAAA,EAElF,UAAU,SAAiC;AACjD,UAAM,SAASA,YAAU,UAAA,KAAK,OAAO,OAAO,KAAK,KAAK,UAAU;AAChE,QAAI,OAAO,MAAM;AAChB;AAAA,IAAA;AAEK,UAAA,aAAaC,6BAAiB,KAAK,OAAO,OAAO,QAAQ,KAAK,KAAK,SAAS;AAClF,QAAI,CAAC,YAAY;AAChB;AAAA,IAAA;AAEO,YAAA,YAAY,OAAO,WAAW,YAAY;AAAA,MACjD,SAAS;AAAA,IAAA,CACT;AAAA,EAAA;AAAA,EAGK,mBAAkC;AACxC,UAAM,EAAE,YAAY,UAAU,IAAI,KAAK;AAChC,WAAAC,kBAAA;AAAA,MACNC,kBAAA;AAAA,QACC;AAAA,QACAC,kBAAAA,YAAwD,WAAW,CAAC,EAAE,aAAa;AAAA,UAClF,GAAG;AAAA,UACH,UAAU;AAAA,QAAA,EACT;AAAA,MAAA;AAAA,IAEJ;AAAA,EAAA;AAAA,EAGD,WAAW;AACH,WAAA;AAAA,MACN,SAAS,iBAAiB,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS;AAAA,MACrE,gBAAgB;AAAA,IACjB;AAAA,EAAA;AAEF;AAQO,MAAM,kCAAkCC,oBAAAA,uBAAuB;AAAA,EACrE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,0BAA4C;AAAA,EACxD,WAAW,gBAAwB,eAAuB;AAClD,WAAAC,UAAAA,gBAAgB,gBAAgB,eAAe,CAAC,EAAE,kBAAkB,iBAAiB,oBAAoB;AAC/G,UACC,iBAAiB,SAAS,gBAAgB,QAC1CC,KAAAA,KAA6B,iBAAiB,UAAU,KACxDA,KAAAA,KAA6B,kBAAkB,UAAU,KACzD,CAAC,gBAAgB,YACjB,iBAAiB,UAChB;AACD,eAAO,gCAAgC,mBAAmB;AAAA,UACzD,YAAY,cAAc;AAAA,UAC1B,WAAW,gBAAgB;AAAA,QAAA,CAC3B;AAAA,MAAA;AAEK,aAAA;AAAA,IAAA,CACP;AAAA,EAAA;AAEH;;;;"}
1
+ {"version":3,"file":"MakeRelationNotNullModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/MakeRelationNotNullModification.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport { getEntity, tryGetColumnName } from '@contember/schema-utils'\nimport { isIt } from '../../utils/isIt'\nimport { updateRelations } from '../utils/diffUtils'\n\nexport class MakeRelationNotNullModificationHandler implements ModificationHandler<MakeRelationNotNullModificationData> {\n\tconstructor(private readonly data: MakeRelationNotNullModificationData, private readonly schema: Schema) {}\n\n\tpublic createSql(builder: MigrationBuilder): void {\n\t\tconst entity = getEntity(this.schema.model, this.data.entityName)\n\t\tif (entity.view) {\n\t\t\treturn\n\t\t}\n\t\tconst columnName = tryGetColumnName(this.schema.model, entity, this.data.fieldName)\n\t\tif (!columnName) {\n\t\t\treturn\n\t\t}\n\t\tbuilder.alterColumn(entity.tableName, columnName, {\n\t\t\tnotNull: true,\n\t\t})\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\tconst { entityName, fieldName } = this.data\n\t\treturn updateModel(\n\t\t\tupdateEntity(\n\t\t\t\tentityName,\n\t\t\t\tupdateField<Model.AnyRelation & Model.NullableRelation>(fieldName, ({ field }) => ({\n\t\t\t\t\t...field,\n\t\t\t\t\tnullable: false,\n\t\t\t\t})),\n\t\t\t),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn {\n\t\t\tmessage: `Make relation ${this.data.entityName}.${this.data.fieldName} not-nullable`,\n\t\t\tfailureWarning: 'Changing to not-null may fail in runtime',\n\t\t}\n\t}\n}\n\nexport interface MakeRelationNotNullModificationData {\n\tentityName: string\n\tfieldName: string\n\t// todo fillValue\n}\n\nexport const makeRelationNotNullModification = createModificationType({\n\tid: 'makeRelationNotNull',\n\thandler: MakeRelationNotNullModificationHandler,\n})\n\nexport class MakeRelationNotNullDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn updateRelations(originalSchema, updatedSchema, ({ originalRelation, updatedRelation, updatedEntity }) => {\n\t\t\tif (\n\t\t\t\toriginalRelation.type === updatedRelation.type\n\t\t\t\t&& isIt<Model.NullableRelation>(updatedRelation, 'nullable')\n\t\t\t\t&& isIt<Model.NullableRelation>(originalRelation, 'nullable')\n\t\t\t\t&& !updatedRelation.nullable\n\t\t\t\t&& originalRelation.nullable\n\t\t\t) {\n\t\t\t\treturn makeRelationNotNullModification.createModification({\n\t\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\t\tfieldName: updatedRelation.name,\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn undefined\n\t\t})\n\t}\n}\n"],"names":["getEntity","tryGetColumnName","updateModel","updateEntity","updateField","createModificationType","updateRelations","isIt"],"mappings":";;;;;;;AAQO,MAAM,uCAA2G;AAAA,EACvH,YAA6B,MAA4D,QAAgB;AAA5E,SAAA,OAAA;AAA4D,SAAA,SAAA;AAAA,EAAiB;AAAA,EAEnG,UAAU,SAAiC;AACjD,UAAM,SAASA,YAAAA,UAAU,KAAK,OAAO,OAAO,KAAK,KAAK,UAAU;AAChE,QAAI,OAAO,MAAM;AAChB;AAAA,IACD;AACA,UAAM,aAAaC,6BAAiB,KAAK,OAAO,OAAO,QAAQ,KAAK,KAAK,SAAS;AAClF,QAAI,CAAC,YAAY;AAChB;AAAA,IACD;AACA,YAAQ,YAAY,OAAO,WAAW,YAAY;AAAA,MACjD,SAAS;AAAA,IAAA,CACT;AAAA,EACF;AAAA,EAEO,mBAAkC;AACxC,UAAM,EAAE,YAAY,UAAA,IAAc,KAAK;AACvC,WAAOC,kBAAAA;AAAAA,MACNC,kBAAAA;AAAAA,QACC;AAAA,QACAC,kBAAAA,YAAwD,WAAW,CAAC,EAAE,aAAa;AAAA,UAClF,GAAG;AAAA,UACH,UAAU;AAAA,QAAA,EACT;AAAA,MAAA;AAAA,IACH;AAAA,EAEF;AAAA,EAEA,WAAW;AACV,WAAO;AAAA,MACN,SAAS,iBAAiB,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS;AAAA,MACrE,gBAAgB;AAAA,IAAA;AAAA,EAElB;AACD;AAQO,MAAM,kCAAkCC,oBAAAA,uBAAuB;AAAA,EACrE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,0BAA4C;AAAA,EACxD,WAAW,gBAAwB,eAAuB;AACzD,WAAOC,UAAAA,gBAAgB,gBAAgB,eAAe,CAAC,EAAE,kBAAkB,iBAAiB,oBAAoB;AAC/G,UACC,iBAAiB,SAAS,gBAAgB,QACvCC,KAAAA,KAA6B,iBAAiB,UAAU,KACxDA,KAAAA,KAA6B,kBAAkB,UAAU,KACzD,CAAC,gBAAgB,YACjB,iBAAiB,UACnB;AACD,eAAO,gCAAgC,mBAAmB;AAAA,UACzD,YAAY,cAAc;AAAA,UAC1B,WAAW,gBAAgB;AAAA,QAAA,CAC3B;AAAA,MACF;AACA,aAAO;AAAA,IACR,CAAC;AAAA,EACF;AACD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"MakeRelationNotNullModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/MakeRelationNotNullModification.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport { getEntity, tryGetColumnName } from '@contember/schema-utils'\nimport { isIt } from '../../utils/isIt'\nimport { updateRelations } from '../utils/diffUtils'\n\nexport class MakeRelationNotNullModificationHandler implements ModificationHandler<MakeRelationNotNullModificationData> {\n\tconstructor(private readonly data: MakeRelationNotNullModificationData, private readonly schema: Schema) {}\n\n\tpublic createSql(builder: MigrationBuilder): void {\n\t\tconst entity = getEntity(this.schema.model, this.data.entityName)\n\t\tif (entity.view) {\n\t\t\treturn\n\t\t}\n\t\tconst columnName = tryGetColumnName(this.schema.model, entity, this.data.fieldName)\n\t\tif (!columnName) {\n\t\t\treturn\n\t\t}\n\t\tbuilder.alterColumn(entity.tableName, columnName, {\n\t\t\tnotNull: true,\n\t\t})\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\tconst { entityName, fieldName } = this.data\n\t\treturn updateModel(\n\t\t\tupdateEntity(\n\t\t\t\tentityName,\n\t\t\t\tupdateField<Model.AnyRelation & Model.NullableRelation>(fieldName, ({ field }) => ({\n\t\t\t\t\t...field,\n\t\t\t\t\tnullable: false,\n\t\t\t\t})),\n\t\t\t),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn {\n\t\t\tmessage: `Make relation ${this.data.entityName}.${this.data.fieldName} not-nullable`,\n\t\t\tfailureWarning: 'Changing to not-null may fail in runtime',\n\t\t}\n\t}\n}\n\nexport interface MakeRelationNotNullModificationData {\n\tentityName: string\n\tfieldName: string\n\t// todo fillValue\n}\n\nexport const makeRelationNotNullModification = createModificationType({\n\tid: 'makeRelationNotNull',\n\thandler: MakeRelationNotNullModificationHandler,\n})\n\nexport class MakeRelationNotNullDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn updateRelations(originalSchema, updatedSchema, ({ originalRelation, updatedRelation, updatedEntity }) => {\n\t\t\tif (\n\t\t\t\toriginalRelation.type === updatedRelation.type &&\n\t\t\t\tisIt<Model.NullableRelation>(updatedRelation, 'nullable') &&\n\t\t\t\tisIt<Model.NullableRelation>(originalRelation, 'nullable') &&\n\t\t\t\t!updatedRelation.nullable &&\n\t\t\t\toriginalRelation.nullable\n\t\t\t) {\n\t\t\t\treturn makeRelationNotNullModification.createModification({\n\t\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\t\tfieldName: updatedRelation.name,\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn undefined\n\t\t})\n\t}\n}\n"],"names":[],"mappings":";;;;;AAQO,MAAM,uCAA2G;AAAA,EACvH,YAA6B,MAA4D,QAAgB;AAA5E,SAAA,OAAA;AAA4D,SAAA,SAAA;AAAA,EAAA;AAAA,EAElF,UAAU,SAAiC;AACjD,UAAM,SAAS,UAAU,KAAK,OAAO,OAAO,KAAK,KAAK,UAAU;AAChE,QAAI,OAAO,MAAM;AAChB;AAAA,IAAA;AAEK,UAAA,aAAa,iBAAiB,KAAK,OAAO,OAAO,QAAQ,KAAK,KAAK,SAAS;AAClF,QAAI,CAAC,YAAY;AAChB;AAAA,IAAA;AAEO,YAAA,YAAY,OAAO,WAAW,YAAY;AAAA,MACjD,SAAS;AAAA,IAAA,CACT;AAAA,EAAA;AAAA,EAGK,mBAAkC;AACxC,UAAM,EAAE,YAAY,UAAU,IAAI,KAAK;AAChC,WAAA;AAAA,MACN;AAAA,QACC;AAAA,QACA,YAAwD,WAAW,CAAC,EAAE,aAAa;AAAA,UAClF,GAAG;AAAA,UACH,UAAU;AAAA,QAAA,EACT;AAAA,MAAA;AAAA,IAEJ;AAAA,EAAA;AAAA,EAGD,WAAW;AACH,WAAA;AAAA,MACN,SAAS,iBAAiB,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS;AAAA,MACrE,gBAAgB;AAAA,IACjB;AAAA,EAAA;AAEF;AAQO,MAAM,kCAAkC,uBAAuB;AAAA,EACrE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,0BAA4C;AAAA,EACxD,WAAW,gBAAwB,eAAuB;AAClD,WAAA,gBAAgB,gBAAgB,eAAe,CAAC,EAAE,kBAAkB,iBAAiB,oBAAoB;AAC/G,UACC,iBAAiB,SAAS,gBAAgB,QAC1C,KAA6B,iBAAiB,UAAU,KACxD,KAA6B,kBAAkB,UAAU,KACzD,CAAC,gBAAgB,YACjB,iBAAiB,UAChB;AACD,eAAO,gCAAgC,mBAAmB;AAAA,UACzD,YAAY,cAAc;AAAA,UAC1B,WAAW,gBAAgB;AAAA,QAAA,CAC3B;AAAA,MAAA;AAEK,aAAA;AAAA,IAAA,CACP;AAAA,EAAA;AAEH;"}
1
+ {"version":3,"file":"MakeRelationNotNullModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/MakeRelationNotNullModification.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport { getEntity, tryGetColumnName } from '@contember/schema-utils'\nimport { isIt } from '../../utils/isIt'\nimport { updateRelations } from '../utils/diffUtils'\n\nexport class MakeRelationNotNullModificationHandler implements ModificationHandler<MakeRelationNotNullModificationData> {\n\tconstructor(private readonly data: MakeRelationNotNullModificationData, private readonly schema: Schema) {}\n\n\tpublic createSql(builder: MigrationBuilder): void {\n\t\tconst entity = getEntity(this.schema.model, this.data.entityName)\n\t\tif (entity.view) {\n\t\t\treturn\n\t\t}\n\t\tconst columnName = tryGetColumnName(this.schema.model, entity, this.data.fieldName)\n\t\tif (!columnName) {\n\t\t\treturn\n\t\t}\n\t\tbuilder.alterColumn(entity.tableName, columnName, {\n\t\t\tnotNull: true,\n\t\t})\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\tconst { entityName, fieldName } = this.data\n\t\treturn updateModel(\n\t\t\tupdateEntity(\n\t\t\t\tentityName,\n\t\t\t\tupdateField<Model.AnyRelation & Model.NullableRelation>(fieldName, ({ field }) => ({\n\t\t\t\t\t...field,\n\t\t\t\t\tnullable: false,\n\t\t\t\t})),\n\t\t\t),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn {\n\t\t\tmessage: `Make relation ${this.data.entityName}.${this.data.fieldName} not-nullable`,\n\t\t\tfailureWarning: 'Changing to not-null may fail in runtime',\n\t\t}\n\t}\n}\n\nexport interface MakeRelationNotNullModificationData {\n\tentityName: string\n\tfieldName: string\n\t// todo fillValue\n}\n\nexport const makeRelationNotNullModification = createModificationType({\n\tid: 'makeRelationNotNull',\n\thandler: MakeRelationNotNullModificationHandler,\n})\n\nexport class MakeRelationNotNullDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn updateRelations(originalSchema, updatedSchema, ({ originalRelation, updatedRelation, updatedEntity }) => {\n\t\t\tif (\n\t\t\t\toriginalRelation.type === updatedRelation.type\n\t\t\t\t&& isIt<Model.NullableRelation>(updatedRelation, 'nullable')\n\t\t\t\t&& isIt<Model.NullableRelation>(originalRelation, 'nullable')\n\t\t\t\t&& !updatedRelation.nullable\n\t\t\t\t&& originalRelation.nullable\n\t\t\t) {\n\t\t\t\treturn makeRelationNotNullModification.createModification({\n\t\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\t\tfieldName: updatedRelation.name,\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn undefined\n\t\t})\n\t}\n}\n"],"names":[],"mappings":";;;;;AAQO,MAAM,uCAA2G;AAAA,EACvH,YAA6B,MAA4D,QAAgB;AAA5E,SAAA,OAAA;AAA4D,SAAA,SAAA;AAAA,EAAiB;AAAA,EAEnG,UAAU,SAAiC;AACjD,UAAM,SAAS,UAAU,KAAK,OAAO,OAAO,KAAK,KAAK,UAAU;AAChE,QAAI,OAAO,MAAM;AAChB;AAAA,IACD;AACA,UAAM,aAAa,iBAAiB,KAAK,OAAO,OAAO,QAAQ,KAAK,KAAK,SAAS;AAClF,QAAI,CAAC,YAAY;AAChB;AAAA,IACD;AACA,YAAQ,YAAY,OAAO,WAAW,YAAY;AAAA,MACjD,SAAS;AAAA,IAAA,CACT;AAAA,EACF;AAAA,EAEO,mBAAkC;AACxC,UAAM,EAAE,YAAY,UAAA,IAAc,KAAK;AACvC,WAAO;AAAA,MACN;AAAA,QACC;AAAA,QACA,YAAwD,WAAW,CAAC,EAAE,aAAa;AAAA,UAClF,GAAG;AAAA,UACH,UAAU;AAAA,QAAA,EACT;AAAA,MAAA;AAAA,IACH;AAAA,EAEF;AAAA,EAEA,WAAW;AACV,WAAO;AAAA,MACN,SAAS,iBAAiB,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS;AAAA,MACrE,gBAAgB;AAAA,IAAA;AAAA,EAElB;AACD;AAQO,MAAM,kCAAkC,uBAAuB;AAAA,EACrE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,0BAA4C;AAAA,EACxD,WAAW,gBAAwB,eAAuB;AACzD,WAAO,gBAAgB,gBAAgB,eAAe,CAAC,EAAE,kBAAkB,iBAAiB,oBAAoB;AAC/G,UACC,iBAAiB,SAAS,gBAAgB,QACvC,KAA6B,iBAAiB,UAAU,KACxD,KAA6B,kBAAkB,UAAU,KACzD,CAAC,gBAAgB,YACjB,iBAAiB,UACnB;AACD,eAAO,gCAAgC,mBAAmB;AAAA,UACzD,YAAY,cAAc;AAAA,UAC1B,WAAW,gBAAgB;AAAA,QAAA,CAC3B;AAAA,MACF;AACA,aAAO;AAAA,IACR,CAAC;AAAA,EACF;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"MakeRelationNullableModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/MakeRelationNullableModification.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport { getEntity, tryGetColumnName } from '@contember/schema-utils'\nimport { isIt } from '../../utils/isIt'\nimport { updateRelations } from '../utils/diffUtils'\n\nexport class MakeRelationNullableModificationHandler implements ModificationHandler<MakeRelationNullableModificationData> {\n\tconstructor(private readonly data: MakeRelationNullableModificationData, private readonly schema: Schema) {}\n\n\tpublic createSql(builder: MigrationBuilder): void {\n\t\tconst entity = getEntity(this.schema.model, this.data.entityName)\n\t\tif (entity.view) {\n\t\t\treturn\n\t\t}\n\t\tconst columnName = tryGetColumnName(this.schema.model, entity, this.data.fieldName)\n\t\tif (!columnName) {\n\t\t\treturn\n\t\t}\n\t\tbuilder.alterColumn(entity.tableName, columnName, {\n\t\t\tnotNull: false,\n\t\t})\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\tconst { entityName, fieldName } = this.data\n\t\treturn updateModel(\n\t\t\tupdateEntity(\n\t\t\t\tentityName,\n\t\t\t\tupdateField<Model.AnyRelation & Model.NullableRelation>(fieldName, ({ field }) => ({\n\t\t\t\t\t...field,\n\t\t\t\t\tnullable: true,\n\t\t\t\t})),\n\t\t\t),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn {\n\t\t\tmessage: `Make relation ${this.data.entityName}.${this.data.fieldName} nullable`,\n\t\t}\n\t}\n\n}\n\nexport interface MakeRelationNullableModificationData {\n\tentityName: string\n\tfieldName: string\n}\n\n\nexport const makeRelationNullableModification = createModificationType({\n\tid: 'makeRelationNullable',\n\thandler: MakeRelationNullableModificationHandler,\n})\n\nexport class MakeRelationNullableDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn updateRelations(originalSchema, updatedSchema, ({ originalRelation, updatedRelation, updatedEntity }) => {\n\t\t\tif (\n\t\t\t\toriginalRelation.type === updatedRelation.type &&\n\t\t\t\tisIt<Model.NullableRelation>(updatedRelation, 'nullable') &&\n\t\t\t\tisIt<Model.NullableRelation>(originalRelation, 'nullable') &&\n\t\t\t\tupdatedRelation.nullable &&\n\t\t\t\t!originalRelation.nullable\n\t\t\t) {\n\t\t\t\treturn makeRelationNullableModification.createModification({\n\t\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\t\tfieldName: updatedRelation.name,\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn undefined\n\t\t})\n\t}\n}\n"],"names":["getEntity","tryGetColumnName","updateModel","updateEntity","updateField","createModificationType","updateRelations","isIt"],"mappings":";;;;;;;AAQO,MAAM,wCAA6G;AAAA,EACzH,YAA6B,MAA6D,QAAgB;AAA7E,SAAA,OAAA;AAA6D,SAAA,SAAA;AAAA,EAAA;AAAA,EAEnF,UAAU,SAAiC;AACjD,UAAM,SAASA,YAAU,UAAA,KAAK,OAAO,OAAO,KAAK,KAAK,UAAU;AAChE,QAAI,OAAO,MAAM;AAChB;AAAA,IAAA;AAEK,UAAA,aAAaC,6BAAiB,KAAK,OAAO,OAAO,QAAQ,KAAK,KAAK,SAAS;AAClF,QAAI,CAAC,YAAY;AAChB;AAAA,IAAA;AAEO,YAAA,YAAY,OAAO,WAAW,YAAY;AAAA,MACjD,SAAS;AAAA,IAAA,CACT;AAAA,EAAA;AAAA,EAGK,mBAAkC;AACxC,UAAM,EAAE,YAAY,UAAU,IAAI,KAAK;AAChC,WAAAC,kBAAA;AAAA,MACNC,kBAAA;AAAA,QACC;AAAA,QACAC,kBAAAA,YAAwD,WAAW,CAAC,EAAE,aAAa;AAAA,UAClF,GAAG;AAAA,UACH,UAAU;AAAA,QAAA,EACT;AAAA,MAAA;AAAA,IAEJ;AAAA,EAAA;AAAA,EAGD,WAAW;AACH,WAAA;AAAA,MACN,SAAS,iBAAiB,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS;AAAA,IACtE;AAAA,EAAA;AAGF;AAQO,MAAM,mCAAmCC,oBAAAA,uBAAuB;AAAA,EACtE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,2BAA6C;AAAA,EACzD,WAAW,gBAAwB,eAAuB;AAClD,WAAAC,UAAAA,gBAAgB,gBAAgB,eAAe,CAAC,EAAE,kBAAkB,iBAAiB,oBAAoB;AAC/G,UACC,iBAAiB,SAAS,gBAAgB,QAC1CC,KAAAA,KAA6B,iBAAiB,UAAU,KACxDA,KAAAA,KAA6B,kBAAkB,UAAU,KACzD,gBAAgB,YAChB,CAAC,iBAAiB,UACjB;AACD,eAAO,iCAAiC,mBAAmB;AAAA,UAC1D,YAAY,cAAc;AAAA,UAC1B,WAAW,gBAAgB;AAAA,QAAA,CAC3B;AAAA,MAAA;AAEK,aAAA;AAAA,IAAA,CACP;AAAA,EAAA;AAEH;;;;"}
1
+ {"version":3,"file":"MakeRelationNullableModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/MakeRelationNullableModification.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport { getEntity, tryGetColumnName } from '@contember/schema-utils'\nimport { isIt } from '../../utils/isIt'\nimport { updateRelations } from '../utils/diffUtils'\n\nexport class MakeRelationNullableModificationHandler implements ModificationHandler<MakeRelationNullableModificationData> {\n\tconstructor(private readonly data: MakeRelationNullableModificationData, private readonly schema: Schema) {}\n\n\tpublic createSql(builder: MigrationBuilder): void {\n\t\tconst entity = getEntity(this.schema.model, this.data.entityName)\n\t\tif (entity.view) {\n\t\t\treturn\n\t\t}\n\t\tconst columnName = tryGetColumnName(this.schema.model, entity, this.data.fieldName)\n\t\tif (!columnName) {\n\t\t\treturn\n\t\t}\n\t\tbuilder.alterColumn(entity.tableName, columnName, {\n\t\t\tnotNull: false,\n\t\t})\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\tconst { entityName, fieldName } = this.data\n\t\treturn updateModel(\n\t\t\tupdateEntity(\n\t\t\t\tentityName,\n\t\t\t\tupdateField<Model.AnyRelation & Model.NullableRelation>(fieldName, ({ field }) => ({\n\t\t\t\t\t...field,\n\t\t\t\t\tnullable: true,\n\t\t\t\t})),\n\t\t\t),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn {\n\t\t\tmessage: `Make relation ${this.data.entityName}.${this.data.fieldName} nullable`,\n\t\t}\n\t}\n}\n\nexport interface MakeRelationNullableModificationData {\n\tentityName: string\n\tfieldName: string\n}\n\nexport const makeRelationNullableModification = createModificationType({\n\tid: 'makeRelationNullable',\n\thandler: MakeRelationNullableModificationHandler,\n})\n\nexport class MakeRelationNullableDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn updateRelations(originalSchema, updatedSchema, ({ originalRelation, updatedRelation, updatedEntity }) => {\n\t\t\tif (\n\t\t\t\toriginalRelation.type === updatedRelation.type\n\t\t\t\t&& isIt<Model.NullableRelation>(updatedRelation, 'nullable')\n\t\t\t\t&& isIt<Model.NullableRelation>(originalRelation, 'nullable')\n\t\t\t\t&& updatedRelation.nullable\n\t\t\t\t&& !originalRelation.nullable\n\t\t\t) {\n\t\t\t\treturn makeRelationNullableModification.createModification({\n\t\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\t\tfieldName: updatedRelation.name,\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn undefined\n\t\t})\n\t}\n}\n"],"names":["getEntity","tryGetColumnName","updateModel","updateEntity","updateField","createModificationType","updateRelations","isIt"],"mappings":";;;;;;;AAQO,MAAM,wCAA6G;AAAA,EACzH,YAA6B,MAA6D,QAAgB;AAA7E,SAAA,OAAA;AAA6D,SAAA,SAAA;AAAA,EAAiB;AAAA,EAEpG,UAAU,SAAiC;AACjD,UAAM,SAASA,YAAAA,UAAU,KAAK,OAAO,OAAO,KAAK,KAAK,UAAU;AAChE,QAAI,OAAO,MAAM;AAChB;AAAA,IACD;AACA,UAAM,aAAaC,6BAAiB,KAAK,OAAO,OAAO,QAAQ,KAAK,KAAK,SAAS;AAClF,QAAI,CAAC,YAAY;AAChB;AAAA,IACD;AACA,YAAQ,YAAY,OAAO,WAAW,YAAY;AAAA,MACjD,SAAS;AAAA,IAAA,CACT;AAAA,EACF;AAAA,EAEO,mBAAkC;AACxC,UAAM,EAAE,YAAY,UAAA,IAAc,KAAK;AACvC,WAAOC,kBAAAA;AAAAA,MACNC,kBAAAA;AAAAA,QACC;AAAA,QACAC,kBAAAA,YAAwD,WAAW,CAAC,EAAE,aAAa;AAAA,UAClF,GAAG;AAAA,UACH,UAAU;AAAA,QAAA,EACT;AAAA,MAAA;AAAA,IACH;AAAA,EAEF;AAAA,EAEA,WAAW;AACV,WAAO;AAAA,MACN,SAAS,iBAAiB,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS;AAAA,IAAA;AAAA,EAEvE;AACD;AAOO,MAAM,mCAAmCC,oBAAAA,uBAAuB;AAAA,EACtE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,2BAA6C;AAAA,EACzD,WAAW,gBAAwB,eAAuB;AACzD,WAAOC,UAAAA,gBAAgB,gBAAgB,eAAe,CAAC,EAAE,kBAAkB,iBAAiB,oBAAoB;AAC/G,UACC,iBAAiB,SAAS,gBAAgB,QACvCC,KAAAA,KAA6B,iBAAiB,UAAU,KACxDA,KAAAA,KAA6B,kBAAkB,UAAU,KACzD,gBAAgB,YAChB,CAAC,iBAAiB,UACpB;AACD,eAAO,iCAAiC,mBAAmB;AAAA,UAC1D,YAAY,cAAc;AAAA,UAC1B,WAAW,gBAAgB;AAAA,QAAA,CAC3B;AAAA,MACF;AACA,aAAO;AAAA,IACR,CAAC;AAAA,EACF;AACD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"MakeRelationNullableModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/MakeRelationNullableModification.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport { getEntity, tryGetColumnName } from '@contember/schema-utils'\nimport { isIt } from '../../utils/isIt'\nimport { updateRelations } from '../utils/diffUtils'\n\nexport class MakeRelationNullableModificationHandler implements ModificationHandler<MakeRelationNullableModificationData> {\n\tconstructor(private readonly data: MakeRelationNullableModificationData, private readonly schema: Schema) {}\n\n\tpublic createSql(builder: MigrationBuilder): void {\n\t\tconst entity = getEntity(this.schema.model, this.data.entityName)\n\t\tif (entity.view) {\n\t\t\treturn\n\t\t}\n\t\tconst columnName = tryGetColumnName(this.schema.model, entity, this.data.fieldName)\n\t\tif (!columnName) {\n\t\t\treturn\n\t\t}\n\t\tbuilder.alterColumn(entity.tableName, columnName, {\n\t\t\tnotNull: false,\n\t\t})\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\tconst { entityName, fieldName } = this.data\n\t\treturn updateModel(\n\t\t\tupdateEntity(\n\t\t\t\tentityName,\n\t\t\t\tupdateField<Model.AnyRelation & Model.NullableRelation>(fieldName, ({ field }) => ({\n\t\t\t\t\t...field,\n\t\t\t\t\tnullable: true,\n\t\t\t\t})),\n\t\t\t),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn {\n\t\t\tmessage: `Make relation ${this.data.entityName}.${this.data.fieldName} nullable`,\n\t\t}\n\t}\n\n}\n\nexport interface MakeRelationNullableModificationData {\n\tentityName: string\n\tfieldName: string\n}\n\n\nexport const makeRelationNullableModification = createModificationType({\n\tid: 'makeRelationNullable',\n\thandler: MakeRelationNullableModificationHandler,\n})\n\nexport class MakeRelationNullableDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn updateRelations(originalSchema, updatedSchema, ({ originalRelation, updatedRelation, updatedEntity }) => {\n\t\t\tif (\n\t\t\t\toriginalRelation.type === updatedRelation.type &&\n\t\t\t\tisIt<Model.NullableRelation>(updatedRelation, 'nullable') &&\n\t\t\t\tisIt<Model.NullableRelation>(originalRelation, 'nullable') &&\n\t\t\t\tupdatedRelation.nullable &&\n\t\t\t\t!originalRelation.nullable\n\t\t\t) {\n\t\t\t\treturn makeRelationNullableModification.createModification({\n\t\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\t\tfieldName: updatedRelation.name,\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn undefined\n\t\t})\n\t}\n}\n"],"names":[],"mappings":";;;;;AAQO,MAAM,wCAA6G;AAAA,EACzH,YAA6B,MAA6D,QAAgB;AAA7E,SAAA,OAAA;AAA6D,SAAA,SAAA;AAAA,EAAA;AAAA,EAEnF,UAAU,SAAiC;AACjD,UAAM,SAAS,UAAU,KAAK,OAAO,OAAO,KAAK,KAAK,UAAU;AAChE,QAAI,OAAO,MAAM;AAChB;AAAA,IAAA;AAEK,UAAA,aAAa,iBAAiB,KAAK,OAAO,OAAO,QAAQ,KAAK,KAAK,SAAS;AAClF,QAAI,CAAC,YAAY;AAChB;AAAA,IAAA;AAEO,YAAA,YAAY,OAAO,WAAW,YAAY;AAAA,MACjD,SAAS;AAAA,IAAA,CACT;AAAA,EAAA;AAAA,EAGK,mBAAkC;AACxC,UAAM,EAAE,YAAY,UAAU,IAAI,KAAK;AAChC,WAAA;AAAA,MACN;AAAA,QACC;AAAA,QACA,YAAwD,WAAW,CAAC,EAAE,aAAa;AAAA,UAClF,GAAG;AAAA,UACH,UAAU;AAAA,QAAA,EACT;AAAA,MAAA;AAAA,IAEJ;AAAA,EAAA;AAAA,EAGD,WAAW;AACH,WAAA;AAAA,MACN,SAAS,iBAAiB,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS;AAAA,IACtE;AAAA,EAAA;AAGF;AAQO,MAAM,mCAAmC,uBAAuB;AAAA,EACtE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,2BAA6C;AAAA,EACzD,WAAW,gBAAwB,eAAuB;AAClD,WAAA,gBAAgB,gBAAgB,eAAe,CAAC,EAAE,kBAAkB,iBAAiB,oBAAoB;AAC/G,UACC,iBAAiB,SAAS,gBAAgB,QAC1C,KAA6B,iBAAiB,UAAU,KACxD,KAA6B,kBAAkB,UAAU,KACzD,gBAAgB,YAChB,CAAC,iBAAiB,UACjB;AACD,eAAO,iCAAiC,mBAAmB;AAAA,UAC1D,YAAY,cAAc;AAAA,UAC1B,WAAW,gBAAgB;AAAA,QAAA,CAC3B;AAAA,MAAA;AAEK,aAAA;AAAA,IAAA,CACP;AAAA,EAAA;AAEH;"}
1
+ {"version":3,"file":"MakeRelationNullableModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/MakeRelationNullableModification.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport { getEntity, tryGetColumnName } from '@contember/schema-utils'\nimport { isIt } from '../../utils/isIt'\nimport { updateRelations } from '../utils/diffUtils'\n\nexport class MakeRelationNullableModificationHandler implements ModificationHandler<MakeRelationNullableModificationData> {\n\tconstructor(private readonly data: MakeRelationNullableModificationData, private readonly schema: Schema) {}\n\n\tpublic createSql(builder: MigrationBuilder): void {\n\t\tconst entity = getEntity(this.schema.model, this.data.entityName)\n\t\tif (entity.view) {\n\t\t\treturn\n\t\t}\n\t\tconst columnName = tryGetColumnName(this.schema.model, entity, this.data.fieldName)\n\t\tif (!columnName) {\n\t\t\treturn\n\t\t}\n\t\tbuilder.alterColumn(entity.tableName, columnName, {\n\t\t\tnotNull: false,\n\t\t})\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\tconst { entityName, fieldName } = this.data\n\t\treturn updateModel(\n\t\t\tupdateEntity(\n\t\t\t\tentityName,\n\t\t\t\tupdateField<Model.AnyRelation & Model.NullableRelation>(fieldName, ({ field }) => ({\n\t\t\t\t\t...field,\n\t\t\t\t\tnullable: true,\n\t\t\t\t})),\n\t\t\t),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn {\n\t\t\tmessage: `Make relation ${this.data.entityName}.${this.data.fieldName} nullable`,\n\t\t}\n\t}\n}\n\nexport interface MakeRelationNullableModificationData {\n\tentityName: string\n\tfieldName: string\n}\n\nexport const makeRelationNullableModification = createModificationType({\n\tid: 'makeRelationNullable',\n\thandler: MakeRelationNullableModificationHandler,\n})\n\nexport class MakeRelationNullableDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn updateRelations(originalSchema, updatedSchema, ({ originalRelation, updatedRelation, updatedEntity }) => {\n\t\t\tif (\n\t\t\t\toriginalRelation.type === updatedRelation.type\n\t\t\t\t&& isIt<Model.NullableRelation>(updatedRelation, 'nullable')\n\t\t\t\t&& isIt<Model.NullableRelation>(originalRelation, 'nullable')\n\t\t\t\t&& updatedRelation.nullable\n\t\t\t\t&& !originalRelation.nullable\n\t\t\t) {\n\t\t\t\treturn makeRelationNullableModification.createModification({\n\t\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\t\tfieldName: updatedRelation.name,\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn undefined\n\t\t})\n\t}\n}\n"],"names":[],"mappings":";;;;;AAQO,MAAM,wCAA6G;AAAA,EACzH,YAA6B,MAA6D,QAAgB;AAA7E,SAAA,OAAA;AAA6D,SAAA,SAAA;AAAA,EAAiB;AAAA,EAEpG,UAAU,SAAiC;AACjD,UAAM,SAAS,UAAU,KAAK,OAAO,OAAO,KAAK,KAAK,UAAU;AAChE,QAAI,OAAO,MAAM;AAChB;AAAA,IACD;AACA,UAAM,aAAa,iBAAiB,KAAK,OAAO,OAAO,QAAQ,KAAK,KAAK,SAAS;AAClF,QAAI,CAAC,YAAY;AAChB;AAAA,IACD;AACA,YAAQ,YAAY,OAAO,WAAW,YAAY;AAAA,MACjD,SAAS;AAAA,IAAA,CACT;AAAA,EACF;AAAA,EAEO,mBAAkC;AACxC,UAAM,EAAE,YAAY,UAAA,IAAc,KAAK;AACvC,WAAO;AAAA,MACN;AAAA,QACC;AAAA,QACA,YAAwD,WAAW,CAAC,EAAE,aAAa;AAAA,UAClF,GAAG;AAAA,UACH,UAAU;AAAA,QAAA,EACT;AAAA,MAAA;AAAA,IACH;AAAA,EAEF;AAAA,EAEA,WAAW;AACV,WAAO;AAAA,MACN,SAAS,iBAAiB,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS;AAAA,IAAA;AAAA,EAEvE;AACD;AAOO,MAAM,mCAAmC,uBAAuB;AAAA,EACtE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,2BAA6C;AAAA,EACzD,WAAW,gBAAwB,eAAuB;AACzD,WAAO,gBAAgB,gBAAgB,eAAe,CAAC,EAAE,kBAAkB,iBAAiB,oBAAoB;AAC/G,UACC,iBAAiB,SAAS,gBAAgB,QACvC,KAA6B,iBAAiB,UAAU,KACxD,KAA6B,kBAAkB,UAAU,KACzD,gBAAgB,YAChB,CAAC,iBAAiB,UACpB;AACD,eAAO,iCAAiC,mBAAmB;AAAA,UAC1D,YAAY,cAAc;AAAA,UAC1B,WAAW,gBAAgB;AAAA,QAAA,CAC3B;AAAA,MACF;AACA,aAAO;AAAA,IACR,CAAC;AAAA,EACF;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToggleJunctionEventLogModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/ToggleJunctionEventLogModification.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils'\nimport {\n\tcreateModificationType,\n\tDiffer,\n\tModificationHandler,\n\tModificationHandlerCreateSqlOptions,\n} from '../ModificationHandler'\nimport {\n\tcreateEventTrigger,\n\tcreateEventTrxTrigger,\n\tdropEventTrigger,\n\tdropEventTrxTrigger,\n} from '../utils/sqlUpdateUtils'\nimport { isOwningRelation, isRelation } from '@contember/schema-utils'\nimport { updateRelations } from '../utils/diffUtils'\nimport { isIt } from '../../utils/isIt'\n\nexport class ToggleJunctionEventLogModificationHandler implements ModificationHandler<ToggleJunctionEventLogModificationData> {\n\n\tconstructor(\n\t\tprivate readonly data: ToggleJunctionEventLogModificationData,\n\t\tprivate readonly schema: Schema,\n\t) {\n\t}\n\n\tpublic createSql(builder: MigrationBuilder, { systemSchema }: ModificationHandlerCreateSqlOptions): void {\n\t\tconst entity = this.schema.model.entities[this.data.entityName]\n\t\tconst relation = entity.fields[this.data.fieldName]\n\t\tif (!isRelation(relation) || relation.type !== Model.RelationType.ManyHasMany || !isOwningRelation(relation)) {\n\t\t\tthrow new Error('invalid field')\n\t\t}\n\t\tconst tableName = relation.joiningTable.tableName\n\t\tif (this.data.enabled) {\n\t\t\tconst primaryColumns = [\n\t\t\t\trelation.joiningTable.joiningColumn.columnName,\n\t\t\t\trelation.joiningTable.inverseJoiningColumn.columnName,\n\t\t\t]\n\t\t\tcreateEventTrigger(builder, systemSchema, tableName, primaryColumns)\n\t\t\tcreateEventTrxTrigger(builder, systemSchema, tableName)\n\t\t} else {\n\t\t\tdropEventTrigger(builder, tableName)\n\t\t\tdropEventTrxTrigger(builder, tableName)\n\t\t}\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\tconst { entityName, fieldName, enabled } = this.data\n\t\treturn updateModel(\n\t\t\tupdateEntity(\n\t\t\t\tentityName,\n\t\t\t\tupdateField<Model.ManyHasManyOwningRelation>(fieldName, ({ field: { joiningTable: { eventLog, ...joiningTable }, ...field } }) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...field,\n\t\t\t\t\t\tjoiningTable: {\n\t\t\t\t\t\t\t...joiningTable,\n\t\t\t\t\t\t\teventLog: {\n\t\t\t\t\t\t\t\tenabled,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn {\n\t\t\tmessage: `${this.data.enabled ? 'Enable' : 'Disable'} event log for ${this.data.entityName}.${this.data.fieldName}`,\n\t\t}\n\t}\n}\n\nexport interface ToggleJunctionEventLogModificationData {\n\tentityName: string\n\tfieldName: string\n\tenabled: boolean\n}\n\nexport const toggleJunctionEventLogModification = createModificationType({\n\tid: 'toggleJunctionEventLog',\n\thandler: ToggleJunctionEventLogModificationHandler,\n})\n\nexport class ToggleJunctionEventLogDiffer implements Differ {\n\t createDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn updateRelations(originalSchema, updatedSchema, ({ originalRelation, updatedRelation, updatedEntity }) => {\n\t\t\tif (\n\t\t\t\toriginalRelation.type === updatedRelation.type &&\n\t\t\t\tisIt<Model.JoiningTableRelation>(updatedRelation, 'joiningTable') &&\n\t\t\t\tisIt<Model.JoiningTableRelation>(originalRelation, 'joiningTable')\n\t\t\t) {\n\t\t\t\tconst newValue = updatedRelation.joiningTable.eventLog?.enabled ?? false\n\t\t\t\tconst oldValue = originalRelation.joiningTable.eventLog?.enabled ?? false\n\t\t\t\tif (newValue !== oldValue) {\n\t\t\t\t\treturn toggleJunctionEventLogModification.createModification({\n\t\t\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\t\t\tfieldName: updatedRelation.name,\n\t\t\t\t\t\tenabled: newValue,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn undefined\n\t\t})\n\n\t}\n}\n"],"names":["schema","isRelation","Model","isOwningRelation","createEventTrigger","createEventTrxTrigger","dropEventTrigger","dropEventTrxTrigger","updateModel","updateEntity","updateField","createModificationType","updateRelations","isIt"],"mappings":";;;;;;;;;AAmBO,MAAM,0CAAiH;AAAA,EAE7H,YACkB,MACAA,SAChB;AAFgB,SAAA,OAAA;AACA,SAAA,SAAAA;AAAA,EAAA;AAAA,EAIX,UAAU,SAA2B,EAAE,gBAA2D;AACxG,UAAM,SAAS,KAAK,OAAO,MAAM,SAAS,KAAK,KAAK,UAAU;AAC9D,UAAM,WAAW,OAAO,OAAO,KAAK,KAAK,SAAS;AAClD,QAAI,CAACC,YAAA,WAAW,QAAQ,KAAK,SAAS,SAASC,aAAM,aAAa,eAAe,CAACC,YAAiB,iBAAA,QAAQ,GAAG;AACvG,YAAA,IAAI,MAAM,eAAe;AAAA,IAAA;AAE1B,UAAA,YAAY,SAAS,aAAa;AACpC,QAAA,KAAK,KAAK,SAAS;AACtB,YAAM,iBAAiB;AAAA,QACtB,SAAS,aAAa,cAAc;AAAA,QACpC,SAAS,aAAa,qBAAqB;AAAA,MAC5C;AACmBC,qBAAAA,mBAAA,SAAS,cAAc,WAAW,cAAc;AAC7CC,2CAAA,SAAS,cAAc,SAAS;AAAA,IAAA,OAChD;AACNC,qBAAA,iBAAiB,SAAS,SAAS;AACnCC,qBAAA,oBAAoB,SAAS,SAAS;AAAA,IAAA;AAAA,EACvC;AAAA,EAGM,mBAAkC;AACxC,UAAM,EAAE,YAAY,WAAW,YAAY,KAAK;AACzC,WAAAC,kBAAA;AAAA,MACNC,kBAAA;AAAA,QACC;AAAA,QACAC,kBAAAA,YAA6C,WAAW,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,GAAG,aAAa,GAAG,GAAG,cAAc;AAC1H,iBAAA;AAAA,YACN,GAAG;AAAA,YACH,cAAc;AAAA,cACb,GAAG;AAAA,cACH,UAAU;AAAA,gBACT;AAAA,cAAA;AAAA,YACD;AAAA,UAEF;AAAA,QACA,CAAA;AAAA,MAAA;AAAA,IAEH;AAAA,EAAA;AAAA,EAGD,WAAW;AACH,WAAA;AAAA,MACN,SAAS,GAAG,KAAK,KAAK,UAAU,WAAW,SAAS,kBAAkB,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS;AAAA,IAClH;AAAA,EAAA;AAEF;AAQO,MAAM,qCAAqCC,oBAAAA,uBAAuB;AAAA,EACxE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,6BAA+C;AAAA,EAC1D,WAAW,gBAAwB,eAAuB;AACnD,WAAAC,UAAAA,gBAAgB,gBAAgB,eAAe,CAAC,EAAE,kBAAkB,iBAAiB,oBAAoB;AAE9G,UAAA,iBAAiB,SAAS,gBAAgB,QAC1CC,KAAA,KAAiC,iBAAiB,cAAc,KAChEA,KAAAA,KAAiC,kBAAkB,cAAc,GAChE;AACD,cAAM,WAAW,gBAAgB,aAAa,UAAU,WAAW;AACnE,cAAM,WAAW,iBAAiB,aAAa,UAAU,WAAW;AACpE,YAAI,aAAa,UAAU;AAC1B,iBAAO,mCAAmC,mBAAmB;AAAA,YAC5D,YAAY,cAAc;AAAA,YAC1B,WAAW,gBAAgB;AAAA,YAC3B,SAAS;AAAA,UAAA,CACT;AAAA,QAAA;AAAA,MACF;AAEM,aAAA;AAAA,IAAA,CACP;AAAA,EAAA;AAGH;;;;"}
1
+ {"version":3,"file":"ToggleJunctionEventLogModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/ToggleJunctionEventLogModification.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler, ModificationHandlerCreateSqlOptions } from '../ModificationHandler'\nimport { createEventTrigger, createEventTrxTrigger, dropEventTrigger, dropEventTrxTrigger } from '../utils/sqlUpdateUtils'\nimport { isOwningRelation, isRelation } from '@contember/schema-utils'\nimport { updateRelations } from '../utils/diffUtils'\nimport { isIt } from '../../utils/isIt'\n\nexport class ToggleJunctionEventLogModificationHandler implements ModificationHandler<ToggleJunctionEventLogModificationData> {\n\tconstructor(\n\t\tprivate readonly data: ToggleJunctionEventLogModificationData,\n\t\tprivate readonly schema: Schema,\n\t) {\n\t}\n\n\tpublic createSql(builder: MigrationBuilder, { systemSchema }: ModificationHandlerCreateSqlOptions): void {\n\t\tconst entity = this.schema.model.entities[this.data.entityName]\n\t\tconst relation = entity.fields[this.data.fieldName]\n\t\tif (!isRelation(relation) || relation.type !== Model.RelationType.ManyHasMany || !isOwningRelation(relation)) {\n\t\t\tthrow new Error('invalid field')\n\t\t}\n\t\tconst tableName = relation.joiningTable.tableName\n\t\tif (this.data.enabled) {\n\t\t\tconst primaryColumns = [\n\t\t\t\trelation.joiningTable.joiningColumn.columnName,\n\t\t\t\trelation.joiningTable.inverseJoiningColumn.columnName,\n\t\t\t]\n\t\t\tcreateEventTrigger(builder, systemSchema, tableName, primaryColumns)\n\t\t\tcreateEventTrxTrigger(builder, systemSchema, tableName)\n\t\t} else {\n\t\t\tdropEventTrigger(builder, tableName)\n\t\t\tdropEventTrxTrigger(builder, tableName)\n\t\t}\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\tconst { entityName, fieldName, enabled } = this.data\n\t\treturn updateModel(\n\t\t\tupdateEntity(\n\t\t\t\tentityName,\n\t\t\t\tupdateField<Model.ManyHasManyOwningRelation>(fieldName, ({ field: { joiningTable: { eventLog, ...joiningTable }, ...field } }) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...field,\n\t\t\t\t\t\tjoiningTable: {\n\t\t\t\t\t\t\t...joiningTable,\n\t\t\t\t\t\t\teventLog: {\n\t\t\t\t\t\t\t\tenabled,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn {\n\t\t\tmessage: `${this.data.enabled ? 'Enable' : 'Disable'} event log for ${this.data.entityName}.${this.data.fieldName}`,\n\t\t}\n\t}\n}\n\nexport interface ToggleJunctionEventLogModificationData {\n\tentityName: string\n\tfieldName: string\n\tenabled: boolean\n}\n\nexport const toggleJunctionEventLogModification = createModificationType({\n\tid: 'toggleJunctionEventLog',\n\thandler: ToggleJunctionEventLogModificationHandler,\n})\n\nexport class ToggleJunctionEventLogDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn updateRelations(originalSchema, updatedSchema, ({ originalRelation, updatedRelation, updatedEntity }) => {\n\t\t\tif (\n\t\t\t\toriginalRelation.type === updatedRelation.type\n\t\t\t\t&& isIt<Model.JoiningTableRelation>(updatedRelation, 'joiningTable')\n\t\t\t\t&& isIt<Model.JoiningTableRelation>(originalRelation, 'joiningTable')\n\t\t\t) {\n\t\t\t\tconst newValue = updatedRelation.joiningTable.eventLog?.enabled ?? false\n\t\t\t\tconst oldValue = originalRelation.joiningTable.eventLog?.enabled ?? false\n\t\t\t\tif (newValue !== oldValue) {\n\t\t\t\t\treturn toggleJunctionEventLogModification.createModification({\n\t\t\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\t\t\tfieldName: updatedRelation.name,\n\t\t\t\t\t\tenabled: newValue,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn undefined\n\t\t})\n\t}\n}\n"],"names":["schema","isRelation","Model","isOwningRelation","createEventTrigger","createEventTrxTrigger","dropEventTrigger","dropEventTrxTrigger","updateModel","updateEntity","updateField","createModificationType","updateRelations","isIt"],"mappings":";;;;;;;;;AASO,MAAM,0CAAiH;AAAA,EAC7H,YACkB,MACAA,SAChB;AAFgB,SAAA,OAAA;AACA,SAAA,SAAAA;AAAA,EAElB;AAAA,EAEO,UAAU,SAA2B,EAAE,gBAA2D;AACxG,UAAM,SAAS,KAAK,OAAO,MAAM,SAAS,KAAK,KAAK,UAAU;AAC9D,UAAM,WAAW,OAAO,OAAO,KAAK,KAAK,SAAS;AAClD,QAAI,CAACC,YAAAA,WAAW,QAAQ,KAAK,SAAS,SAASC,aAAM,aAAa,eAAe,CAACC,YAAAA,iBAAiB,QAAQ,GAAG;AAC7G,YAAM,IAAI,MAAM,eAAe;AAAA,IAChC;AACA,UAAM,YAAY,SAAS,aAAa;AACxC,QAAI,KAAK,KAAK,SAAS;AACtB,YAAM,iBAAiB;AAAA,QACtB,SAAS,aAAa,cAAc;AAAA,QACpC,SAAS,aAAa,qBAAqB;AAAA,MAAA;AAE5CC,qBAAAA,mBAAmB,SAAS,cAAc,WAAW,cAAc;AACnEC,2CAAsB,SAAS,cAAc,SAAS;AAAA,IACvD,OAAO;AACNC,qBAAAA,iBAAiB,SAAS,SAAS;AACnCC,qBAAAA,oBAAoB,SAAS,SAAS;AAAA,IACvC;AAAA,EACD;AAAA,EAEO,mBAAkC;AACxC,UAAM,EAAE,YAAY,WAAW,QAAA,IAAY,KAAK;AAChD,WAAOC,kBAAAA;AAAAA,MACNC,kBAAAA;AAAAA,QACC;AAAA,QACAC,kBAAAA,YAA6C,WAAW,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,GAAG,aAAA,GAAgB,GAAG,MAAA,QAAc;AACjI,iBAAO;AAAA,YACN,GAAG;AAAA,YACH,cAAc;AAAA,cACb,GAAG;AAAA,cACH,UAAU;AAAA,gBACT;AAAA,cAAA;AAAA,YACD;AAAA,UACD;AAAA,QAEF,CAAC;AAAA,MAAA;AAAA,IACF;AAAA,EAEF;AAAA,EAEA,WAAW;AACV,WAAO;AAAA,MACN,SAAS,GAAG,KAAK,KAAK,UAAU,WAAW,SAAS,kBAAkB,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS;AAAA,IAAA;AAAA,EAEnH;AACD;AAQO,MAAM,qCAAqCC,oBAAAA,uBAAuB;AAAA,EACxE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,6BAA+C;AAAA,EAC3D,WAAW,gBAAwB,eAAuB;AACzD,WAAOC,UAAAA,gBAAgB,gBAAgB,eAAe,CAAC,EAAE,kBAAkB,iBAAiB,oBAAoB;AAC/G,UACC,iBAAiB,SAAS,gBAAgB,QACvCC,KAAAA,KAAiC,iBAAiB,cAAc,KAChEA,KAAAA,KAAiC,kBAAkB,cAAc,GACnE;AACD,cAAM,WAAW,gBAAgB,aAAa,UAAU,WAAW;AACnE,cAAM,WAAW,iBAAiB,aAAa,UAAU,WAAW;AACpE,YAAI,aAAa,UAAU;AAC1B,iBAAO,mCAAmC,mBAAmB;AAAA,YAC5D,YAAY,cAAc;AAAA,YAC1B,WAAW,gBAAgB;AAAA,YAC3B,SAAS;AAAA,UAAA,CACT;AAAA,QACF;AAAA,MACD;AACA,aAAO;AAAA,IACR,CAAC;AAAA,EACF;AACD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToggleJunctionEventLogModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/ToggleJunctionEventLogModification.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils'\nimport {\n\tcreateModificationType,\n\tDiffer,\n\tModificationHandler,\n\tModificationHandlerCreateSqlOptions,\n} from '../ModificationHandler'\nimport {\n\tcreateEventTrigger,\n\tcreateEventTrxTrigger,\n\tdropEventTrigger,\n\tdropEventTrxTrigger,\n} from '../utils/sqlUpdateUtils'\nimport { isOwningRelation, isRelation } from '@contember/schema-utils'\nimport { updateRelations } from '../utils/diffUtils'\nimport { isIt } from '../../utils/isIt'\n\nexport class ToggleJunctionEventLogModificationHandler implements ModificationHandler<ToggleJunctionEventLogModificationData> {\n\n\tconstructor(\n\t\tprivate readonly data: ToggleJunctionEventLogModificationData,\n\t\tprivate readonly schema: Schema,\n\t) {\n\t}\n\n\tpublic createSql(builder: MigrationBuilder, { systemSchema }: ModificationHandlerCreateSqlOptions): void {\n\t\tconst entity = this.schema.model.entities[this.data.entityName]\n\t\tconst relation = entity.fields[this.data.fieldName]\n\t\tif (!isRelation(relation) || relation.type !== Model.RelationType.ManyHasMany || !isOwningRelation(relation)) {\n\t\t\tthrow new Error('invalid field')\n\t\t}\n\t\tconst tableName = relation.joiningTable.tableName\n\t\tif (this.data.enabled) {\n\t\t\tconst primaryColumns = [\n\t\t\t\trelation.joiningTable.joiningColumn.columnName,\n\t\t\t\trelation.joiningTable.inverseJoiningColumn.columnName,\n\t\t\t]\n\t\t\tcreateEventTrigger(builder, systemSchema, tableName, primaryColumns)\n\t\t\tcreateEventTrxTrigger(builder, systemSchema, tableName)\n\t\t} else {\n\t\t\tdropEventTrigger(builder, tableName)\n\t\t\tdropEventTrxTrigger(builder, tableName)\n\t\t}\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\tconst { entityName, fieldName, enabled } = this.data\n\t\treturn updateModel(\n\t\t\tupdateEntity(\n\t\t\t\tentityName,\n\t\t\t\tupdateField<Model.ManyHasManyOwningRelation>(fieldName, ({ field: { joiningTable: { eventLog, ...joiningTable }, ...field } }) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...field,\n\t\t\t\t\t\tjoiningTable: {\n\t\t\t\t\t\t\t...joiningTable,\n\t\t\t\t\t\t\teventLog: {\n\t\t\t\t\t\t\t\tenabled,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn {\n\t\t\tmessage: `${this.data.enabled ? 'Enable' : 'Disable'} event log for ${this.data.entityName}.${this.data.fieldName}`,\n\t\t}\n\t}\n}\n\nexport interface ToggleJunctionEventLogModificationData {\n\tentityName: string\n\tfieldName: string\n\tenabled: boolean\n}\n\nexport const toggleJunctionEventLogModification = createModificationType({\n\tid: 'toggleJunctionEventLog',\n\thandler: ToggleJunctionEventLogModificationHandler,\n})\n\nexport class ToggleJunctionEventLogDiffer implements Differ {\n\t createDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn updateRelations(originalSchema, updatedSchema, ({ originalRelation, updatedRelation, updatedEntity }) => {\n\t\t\tif (\n\t\t\t\toriginalRelation.type === updatedRelation.type &&\n\t\t\t\tisIt<Model.JoiningTableRelation>(updatedRelation, 'joiningTable') &&\n\t\t\t\tisIt<Model.JoiningTableRelation>(originalRelation, 'joiningTable')\n\t\t\t) {\n\t\t\t\tconst newValue = updatedRelation.joiningTable.eventLog?.enabled ?? false\n\t\t\t\tconst oldValue = originalRelation.joiningTable.eventLog?.enabled ?? false\n\t\t\t\tif (newValue !== oldValue) {\n\t\t\t\t\treturn toggleJunctionEventLogModification.createModification({\n\t\t\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\t\t\tfieldName: updatedRelation.name,\n\t\t\t\t\t\tenabled: newValue,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn undefined\n\t\t})\n\n\t}\n}\n"],"names":[],"mappings":";;;;;;;AAmBO,MAAM,0CAAiH;AAAA,EAE7H,YACkB,MACA,QAChB;AAFgB,SAAA,OAAA;AACA,SAAA,SAAA;AAAA,EAAA;AAAA,EAIX,UAAU,SAA2B,EAAE,gBAA2D;AACxG,UAAM,SAAS,KAAK,OAAO,MAAM,SAAS,KAAK,KAAK,UAAU;AAC9D,UAAM,WAAW,OAAO,OAAO,KAAK,KAAK,SAAS;AAClD,QAAI,CAAC,WAAW,QAAQ,KAAK,SAAS,SAAS,MAAM,aAAa,eAAe,CAAC,iBAAiB,QAAQ,GAAG;AACvG,YAAA,IAAI,MAAM,eAAe;AAAA,IAAA;AAE1B,UAAA,YAAY,SAAS,aAAa;AACpC,QAAA,KAAK,KAAK,SAAS;AACtB,YAAM,iBAAiB;AAAA,QACtB,SAAS,aAAa,cAAc;AAAA,QACpC,SAAS,aAAa,qBAAqB;AAAA,MAC5C;AACmB,yBAAA,SAAS,cAAc,WAAW,cAAc;AAC7C,4BAAA,SAAS,cAAc,SAAS;AAAA,IAAA,OAChD;AACN,uBAAiB,SAAS,SAAS;AACnC,0BAAoB,SAAS,SAAS;AAAA,IAAA;AAAA,EACvC;AAAA,EAGM,mBAAkC;AACxC,UAAM,EAAE,YAAY,WAAW,YAAY,KAAK;AACzC,WAAA;AAAA,MACN;AAAA,QACC;AAAA,QACA,YAA6C,WAAW,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,GAAG,aAAa,GAAG,GAAG,cAAc;AAC1H,iBAAA;AAAA,YACN,GAAG;AAAA,YACH,cAAc;AAAA,cACb,GAAG;AAAA,cACH,UAAU;AAAA,gBACT;AAAA,cAAA;AAAA,YACD;AAAA,UAEF;AAAA,QACA,CAAA;AAAA,MAAA;AAAA,IAEH;AAAA,EAAA;AAAA,EAGD,WAAW;AACH,WAAA;AAAA,MACN,SAAS,GAAG,KAAK,KAAK,UAAU,WAAW,SAAS,kBAAkB,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS;AAAA,IAClH;AAAA,EAAA;AAEF;AAQO,MAAM,qCAAqC,uBAAuB;AAAA,EACxE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,6BAA+C;AAAA,EAC1D,WAAW,gBAAwB,eAAuB;AACnD,WAAA,gBAAgB,gBAAgB,eAAe,CAAC,EAAE,kBAAkB,iBAAiB,oBAAoB;AAE9G,UAAA,iBAAiB,SAAS,gBAAgB,QAC1C,KAAiC,iBAAiB,cAAc,KAChE,KAAiC,kBAAkB,cAAc,GAChE;AACD,cAAM,WAAW,gBAAgB,aAAa,UAAU,WAAW;AACnE,cAAM,WAAW,iBAAiB,aAAa,UAAU,WAAW;AACpE,YAAI,aAAa,UAAU;AAC1B,iBAAO,mCAAmC,mBAAmB;AAAA,YAC5D,YAAY,cAAc;AAAA,YAC1B,WAAW,gBAAgB;AAAA,YAC3B,SAAS;AAAA,UAAA,CACT;AAAA,QAAA;AAAA,MACF;AAEM,aAAA;AAAA,IAAA,CACP;AAAA,EAAA;AAGH;"}
1
+ {"version":3,"file":"ToggleJunctionEventLogModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/ToggleJunctionEventLogModification.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler, ModificationHandlerCreateSqlOptions } from '../ModificationHandler'\nimport { createEventTrigger, createEventTrxTrigger, dropEventTrigger, dropEventTrxTrigger } from '../utils/sqlUpdateUtils'\nimport { isOwningRelation, isRelation } from '@contember/schema-utils'\nimport { updateRelations } from '../utils/diffUtils'\nimport { isIt } from '../../utils/isIt'\n\nexport class ToggleJunctionEventLogModificationHandler implements ModificationHandler<ToggleJunctionEventLogModificationData> {\n\tconstructor(\n\t\tprivate readonly data: ToggleJunctionEventLogModificationData,\n\t\tprivate readonly schema: Schema,\n\t) {\n\t}\n\n\tpublic createSql(builder: MigrationBuilder, { systemSchema }: ModificationHandlerCreateSqlOptions): void {\n\t\tconst entity = this.schema.model.entities[this.data.entityName]\n\t\tconst relation = entity.fields[this.data.fieldName]\n\t\tif (!isRelation(relation) || relation.type !== Model.RelationType.ManyHasMany || !isOwningRelation(relation)) {\n\t\t\tthrow new Error('invalid field')\n\t\t}\n\t\tconst tableName = relation.joiningTable.tableName\n\t\tif (this.data.enabled) {\n\t\t\tconst primaryColumns = [\n\t\t\t\trelation.joiningTable.joiningColumn.columnName,\n\t\t\t\trelation.joiningTable.inverseJoiningColumn.columnName,\n\t\t\t]\n\t\t\tcreateEventTrigger(builder, systemSchema, tableName, primaryColumns)\n\t\t\tcreateEventTrxTrigger(builder, systemSchema, tableName)\n\t\t} else {\n\t\t\tdropEventTrigger(builder, tableName)\n\t\t\tdropEventTrxTrigger(builder, tableName)\n\t\t}\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\tconst { entityName, fieldName, enabled } = this.data\n\t\treturn updateModel(\n\t\t\tupdateEntity(\n\t\t\t\tentityName,\n\t\t\t\tupdateField<Model.ManyHasManyOwningRelation>(fieldName, ({ field: { joiningTable: { eventLog, ...joiningTable }, ...field } }) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...field,\n\t\t\t\t\t\tjoiningTable: {\n\t\t\t\t\t\t\t...joiningTable,\n\t\t\t\t\t\t\teventLog: {\n\t\t\t\t\t\t\t\tenabled,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn {\n\t\t\tmessage: `${this.data.enabled ? 'Enable' : 'Disable'} event log for ${this.data.entityName}.${this.data.fieldName}`,\n\t\t}\n\t}\n}\n\nexport interface ToggleJunctionEventLogModificationData {\n\tentityName: string\n\tfieldName: string\n\tenabled: boolean\n}\n\nexport const toggleJunctionEventLogModification = createModificationType({\n\tid: 'toggleJunctionEventLog',\n\thandler: ToggleJunctionEventLogModificationHandler,\n})\n\nexport class ToggleJunctionEventLogDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn updateRelations(originalSchema, updatedSchema, ({ originalRelation, updatedRelation, updatedEntity }) => {\n\t\t\tif (\n\t\t\t\toriginalRelation.type === updatedRelation.type\n\t\t\t\t&& isIt<Model.JoiningTableRelation>(updatedRelation, 'joiningTable')\n\t\t\t\t&& isIt<Model.JoiningTableRelation>(originalRelation, 'joiningTable')\n\t\t\t) {\n\t\t\t\tconst newValue = updatedRelation.joiningTable.eventLog?.enabled ?? false\n\t\t\t\tconst oldValue = originalRelation.joiningTable.eventLog?.enabled ?? false\n\t\t\t\tif (newValue !== oldValue) {\n\t\t\t\t\treturn toggleJunctionEventLogModification.createModification({\n\t\t\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\t\t\tfieldName: updatedRelation.name,\n\t\t\t\t\t\tenabled: newValue,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn undefined\n\t\t})\n\t}\n}\n"],"names":[],"mappings":";;;;;;;AASO,MAAM,0CAAiH;AAAA,EAC7H,YACkB,MACA,QAChB;AAFgB,SAAA,OAAA;AACA,SAAA,SAAA;AAAA,EAElB;AAAA,EAEO,UAAU,SAA2B,EAAE,gBAA2D;AACxG,UAAM,SAAS,KAAK,OAAO,MAAM,SAAS,KAAK,KAAK,UAAU;AAC9D,UAAM,WAAW,OAAO,OAAO,KAAK,KAAK,SAAS;AAClD,QAAI,CAAC,WAAW,QAAQ,KAAK,SAAS,SAAS,MAAM,aAAa,eAAe,CAAC,iBAAiB,QAAQ,GAAG;AAC7G,YAAM,IAAI,MAAM,eAAe;AAAA,IAChC;AACA,UAAM,YAAY,SAAS,aAAa;AACxC,QAAI,KAAK,KAAK,SAAS;AACtB,YAAM,iBAAiB;AAAA,QACtB,SAAS,aAAa,cAAc;AAAA,QACpC,SAAS,aAAa,qBAAqB;AAAA,MAAA;AAE5C,yBAAmB,SAAS,cAAc,WAAW,cAAc;AACnE,4BAAsB,SAAS,cAAc,SAAS;AAAA,IACvD,OAAO;AACN,uBAAiB,SAAS,SAAS;AACnC,0BAAoB,SAAS,SAAS;AAAA,IACvC;AAAA,EACD;AAAA,EAEO,mBAAkC;AACxC,UAAM,EAAE,YAAY,WAAW,QAAA,IAAY,KAAK;AAChD,WAAO;AAAA,MACN;AAAA,QACC;AAAA,QACA,YAA6C,WAAW,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,GAAG,aAAA,GAAgB,GAAG,MAAA,QAAc;AACjI,iBAAO;AAAA,YACN,GAAG;AAAA,YACH,cAAc;AAAA,cACb,GAAG;AAAA,cACH,UAAU;AAAA,gBACT;AAAA,cAAA;AAAA,YACD;AAAA,UACD;AAAA,QAEF,CAAC;AAAA,MAAA;AAAA,IACF;AAAA,EAEF;AAAA,EAEA,WAAW;AACV,WAAO;AAAA,MACN,SAAS,GAAG,KAAK,KAAK,UAAU,WAAW,SAAS,kBAAkB,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS;AAAA,IAAA;AAAA,EAEnH;AACD;AAQO,MAAM,qCAAqC,uBAAuB;AAAA,EACxE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,6BAA+C;AAAA,EAC3D,WAAW,gBAAwB,eAAuB;AACzD,WAAO,gBAAgB,gBAAgB,eAAe,CAAC,EAAE,kBAAkB,iBAAiB,oBAAoB;AAC/G,UACC,iBAAiB,SAAS,gBAAgB,QACvC,KAAiC,iBAAiB,cAAc,KAChE,KAAiC,kBAAkB,cAAc,GACnE;AACD,cAAM,WAAW,gBAAgB,aAAa,UAAU,WAAW;AACnE,cAAM,WAAW,iBAAiB,aAAa,UAAU,WAAW;AACpE,YAAI,aAAa,UAAU;AAC1B,iBAAO,mCAAmC,mBAAmB;AAAA,YAC5D,YAAY,cAAc;AAAA,YAC1B,WAAW,gBAAgB;AAAA,YAC3B,SAAS;AAAA,UAAA,CACT;AAAA,QACF;AAAA,MACD;AACA,aAAO;AAAA,IACR,CAAC;AAAA,EACF;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateRelationOnDeleteModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/UpdateRelationOnDeleteModification.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils'\nimport {\n\tcreateModificationType,\n\tDiffer,\n\tModificationHandler,\n\tModificationHandlerCreateSqlOptions,\n} from '../ModificationHandler'\nimport { isIt } from '../../utils/isIt'\nimport { updateRelations } from '../utils/diffUtils'\nimport { acceptRelationTypeVisitor } from '@contember/schema-utils'\nimport { addForeignKeyConstraint } from './helpers'\n\nexport class UpdateRelationOnDeleteModificationHandler implements ModificationHandler<UpdateRelationOnDeleteModificationData> {\n\tconstructor(\n\t\tprivate readonly data: UpdateRelationOnDeleteModificationData,\n\t\tprivate readonly schema: Schema,\n\t) {}\n\n\tpublic createSql(builder: MigrationBuilder, { databaseMetadata, invalidateDatabaseMetadata }: ModificationHandlerCreateSqlOptions): void {\n\t\tconst updatedSchema = this.getSchemaUpdater()({ schema: this.schema })\n\t\tconst entity = updatedSchema.model.entities[this.data.entityName]\n\t\tif (entity.view) {\n\t\t\treturn\n\t\t}\n\n\t\tacceptRelationTypeVisitor(updatedSchema.model, entity, this.data.fieldName, {\n\t\t\tvisitManyHasOne: ({ entity, relation, targetEntity }) => {\n\t\t\t\taddForeignKeyConstraint({ builder, entity, targetEntity, relation, recreate: true, databaseMetadata, invalidateDatabaseMetadata })\n\t\t\t},\n\t\t\tvisitOneHasOneOwning: ({ entity, relation, targetEntity }) => {\n\t\t\t\taddForeignKeyConstraint({ builder, entity, targetEntity, relation, recreate: true, databaseMetadata, invalidateDatabaseMetadata })\n\t\t\t},\n\t\t\tvisitOneHasMany: () => {},\n\t\t\tvisitOneHasOneInverse: () => {},\n\t\t\tvisitManyHasManyOwning: () => {},\n\t\t\tvisitManyHasManyInverse: () => {},\n\t\t})\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\tconst { entityName, fieldName, onDelete } = this.data\n\t\treturn updateModel(\n\t\t\tupdateEntity(\n\t\t\t\tentityName,\n\t\t\t\tupdateField<Model.AnyRelation & Model.JoiningColumnRelation>(fieldName, ({ field }) => ({\n\t\t\t\t\t...field,\n\t\t\t\t\tjoiningColumn: { ...field.joiningColumn, onDelete },\n\t\t\t\t})),\n\t\t\t),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Change on-delete policy of relation ${this.data.entityName}.${this.data.fieldName}` }\n\t}\n}\n\nexport interface UpdateRelationOnDeleteModificationData {\n\tentityName: string\n\tfieldName: string\n\tonDelete: Model.OnDelete\n}\n\nexport const updateRelationOnDeleteModification = createModificationType({\n\tid: 'updateRelationOnDelete',\n\thandler: UpdateRelationOnDeleteModificationHandler,\n})\n\nexport class UpdateRelationOnDeleteDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn updateRelations(originalSchema, updatedSchema, ({ originalRelation, updatedRelation, updatedEntity }) => {\n\t\t\tif (\n\t\t\t\toriginalRelation.type === updatedRelation.type &&\n\t\t\t\tisIt<Model.JoiningColumnRelation>(updatedRelation, 'joiningColumn') &&\n\t\t\t\tisIt<Model.JoiningColumnRelation>(originalRelation, 'joiningColumn') &&\n\t\t\t\tupdatedRelation.joiningColumn.onDelete !== originalRelation.joiningColumn.onDelete\n\t\t\t) {\n\t\t\t\treturn updateRelationOnDeleteModification.createModification({\n\t\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\t\tfieldName: updatedRelation.name,\n\t\t\t\t\tonDelete: updatedRelation.joiningColumn.onDelete,\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn undefined\n\t\t})\n\t}\n}\n"],"names":["acceptRelationTypeVisitor","entity","addForeignKeyConstraint","updateModel","updateEntity","updateField","createModificationType","updateRelations","isIt"],"mappings":";;;;;;;;AAcO,MAAM,0CAAiH;AAAA,EAC7H,YACkB,MACA,QAChB;AAFgB,SAAA,OAAA;AACA,SAAA,SAAA;AAAA,EAAA;AAAA,EAGX,UAAU,SAA2B,EAAE,kBAAkB,8BAAyE;AAClI,UAAA,gBAAgB,KAAK,iBAAiB,EAAE,EAAE,QAAQ,KAAK,QAAQ;AACrE,UAAM,SAAS,cAAc,MAAM,SAAS,KAAK,KAAK,UAAU;AAChE,QAAI,OAAO,MAAM;AAChB;AAAA,IAAA;AAGDA,gBAAA,0BAA0B,cAAc,OAAO,QAAQ,KAAK,KAAK,WAAW;AAAA,MAC3E,iBAAiB,CAAC,EAAE,QAAAC,SAAQ,UAAU,mBAAmB;AAChCC,gBAAAA,wBAAA,EAAE,SAAS,QAAAD,SAAQ,cAAc,UAAU,UAAU,MAAM,kBAAkB,2BAAA,CAA4B;AAAA,MAClI;AAAA,MACA,sBAAsB,CAAC,EAAE,QAAAA,SAAQ,UAAU,mBAAmB;AACrCC,gBAAAA,wBAAA,EAAE,SAAS,QAAAD,SAAQ,cAAc,UAAU,UAAU,MAAM,kBAAkB,2BAAA,CAA4B;AAAA,MAClI;AAAA,MACA,iBAAiB,MAAM;AAAA,MAAC;AAAA,MACxB,uBAAuB,MAAM;AAAA,MAAC;AAAA,MAC9B,wBAAwB,MAAM;AAAA,MAAC;AAAA,MAC/B,yBAAyB,MAAM;AAAA,MAAA;AAAA,IAAC,CAChC;AAAA,EAAA;AAAA,EAGK,mBAAkC;AACxC,UAAM,EAAE,YAAY,WAAW,aAAa,KAAK;AAC1C,WAAAE,kBAAA;AAAA,MACNC,kBAAA;AAAA,QACC;AAAA,QACAC,kBAAAA,YAA6D,WAAW,CAAC,EAAE,aAAa;AAAA,UACvF,GAAG;AAAA,UACH,eAAe,EAAE,GAAG,MAAM,eAAe,SAAS;AAAA,QAAA,EACjD;AAAA,MAAA;AAAA,IAEJ;AAAA,EAAA;AAAA,EAGD,WAAW;AACH,WAAA,EAAE,SAAS,uCAAuC,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS,GAAG;AAAA,EAAA;AAEzG;AAQO,MAAM,qCAAqCC,oBAAAA,uBAAuB;AAAA,EACxE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,6BAA+C;AAAA,EAC3D,WAAW,gBAAwB,eAAuB;AAClD,WAAAC,UAAAA,gBAAgB,gBAAgB,eAAe,CAAC,EAAE,kBAAkB,iBAAiB,oBAAoB;AAC/G,UACC,iBAAiB,SAAS,gBAAgB,QAC1CC,UAAkC,iBAAiB,eAAe,KAClEA,KAAAA,KAAkC,kBAAkB,eAAe,KACnE,gBAAgB,cAAc,aAAa,iBAAiB,cAAc,UACzE;AACD,eAAO,mCAAmC,mBAAmB;AAAA,UAC5D,YAAY,cAAc;AAAA,UAC1B,WAAW,gBAAgB;AAAA,UAC3B,UAAU,gBAAgB,cAAc;AAAA,QAAA,CACxC;AAAA,MAAA;AAEK,aAAA;AAAA,IAAA,CACP;AAAA,EAAA;AAEH;;;;"}
1
+ {"version":3,"file":"UpdateRelationOnDeleteModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/UpdateRelationOnDeleteModification.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler, ModificationHandlerCreateSqlOptions } from '../ModificationHandler'\nimport { isIt } from '../../utils/isIt'\nimport { updateRelations } from '../utils/diffUtils'\nimport { acceptRelationTypeVisitor } from '@contember/schema-utils'\nimport { addForeignKeyConstraint } from './helpers'\n\nexport class UpdateRelationOnDeleteModificationHandler implements ModificationHandler<UpdateRelationOnDeleteModificationData> {\n\tconstructor(\n\t\tprivate readonly data: UpdateRelationOnDeleteModificationData,\n\t\tprivate readonly schema: Schema,\n\t) {}\n\n\tpublic createSql(builder: MigrationBuilder, { databaseMetadata, invalidateDatabaseMetadata }: ModificationHandlerCreateSqlOptions): void {\n\t\tconst updatedSchema = this.getSchemaUpdater()({ schema: this.schema })\n\t\tconst entity = updatedSchema.model.entities[this.data.entityName]\n\t\tif (entity.view) {\n\t\t\treturn\n\t\t}\n\n\t\tacceptRelationTypeVisitor(updatedSchema.model, entity, this.data.fieldName, {\n\t\t\tvisitManyHasOne: ({ entity, relation, targetEntity }) => {\n\t\t\t\taddForeignKeyConstraint({ builder, entity, targetEntity, relation, recreate: true, databaseMetadata, invalidateDatabaseMetadata })\n\t\t\t},\n\t\t\tvisitOneHasOneOwning: ({ entity, relation, targetEntity }) => {\n\t\t\t\taddForeignKeyConstraint({ builder, entity, targetEntity, relation, recreate: true, databaseMetadata, invalidateDatabaseMetadata })\n\t\t\t},\n\t\t\tvisitOneHasMany: () => {},\n\t\t\tvisitOneHasOneInverse: () => {},\n\t\t\tvisitManyHasManyOwning: () => {},\n\t\t\tvisitManyHasManyInverse: () => {},\n\t\t})\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\tconst { entityName, fieldName, onDelete } = this.data\n\t\treturn updateModel(\n\t\t\tupdateEntity(\n\t\t\t\tentityName,\n\t\t\t\tupdateField<Model.AnyRelation & Model.JoiningColumnRelation>(fieldName, ({ field }) => ({\n\t\t\t\t\t...field,\n\t\t\t\t\tjoiningColumn: { ...field.joiningColumn, onDelete },\n\t\t\t\t})),\n\t\t\t),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Change on-delete policy of relation ${this.data.entityName}.${this.data.fieldName}` }\n\t}\n}\n\nexport interface UpdateRelationOnDeleteModificationData {\n\tentityName: string\n\tfieldName: string\n\tonDelete: Model.OnDelete\n}\n\nexport const updateRelationOnDeleteModification = createModificationType({\n\tid: 'updateRelationOnDelete',\n\thandler: UpdateRelationOnDeleteModificationHandler,\n})\n\nexport class UpdateRelationOnDeleteDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn updateRelations(originalSchema, updatedSchema, ({ originalRelation, updatedRelation, updatedEntity }) => {\n\t\t\tif (\n\t\t\t\toriginalRelation.type === updatedRelation.type\n\t\t\t\t&& isIt<Model.JoiningColumnRelation>(updatedRelation, 'joiningColumn')\n\t\t\t\t&& isIt<Model.JoiningColumnRelation>(originalRelation, 'joiningColumn')\n\t\t\t\t&& updatedRelation.joiningColumn.onDelete !== originalRelation.joiningColumn.onDelete\n\t\t\t) {\n\t\t\t\treturn updateRelationOnDeleteModification.createModification({\n\t\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\t\tfieldName: updatedRelation.name,\n\t\t\t\t\tonDelete: updatedRelation.joiningColumn.onDelete,\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn undefined\n\t\t})\n\t}\n}\n"],"names":["acceptRelationTypeVisitor","entity","addForeignKeyConstraint","updateModel","updateEntity","updateField","createModificationType","updateRelations","isIt"],"mappings":";;;;;;;;AASO,MAAM,0CAAiH;AAAA,EAC7H,YACkB,MACA,QAChB;AAFgB,SAAA,OAAA;AACA,SAAA,SAAA;AAAA,EACf;AAAA,EAEI,UAAU,SAA2B,EAAE,kBAAkB,8BAAyE;AACxI,UAAM,gBAAgB,KAAK,iBAAA,EAAmB,EAAE,QAAQ,KAAK,QAAQ;AACrE,UAAM,SAAS,cAAc,MAAM,SAAS,KAAK,KAAK,UAAU;AAChE,QAAI,OAAO,MAAM;AAChB;AAAA,IACD;AAEAA,gBAAAA,0BAA0B,cAAc,OAAO,QAAQ,KAAK,KAAK,WAAW;AAAA,MAC3E,iBAAiB,CAAC,EAAE,QAAAC,SAAQ,UAAU,mBAAmB;AACxDC,gBAAAA,wBAAwB,EAAE,SAAS,QAAAD,SAAQ,cAAc,UAAU,UAAU,MAAM,kBAAkB,2BAAA,CAA4B;AAAA,MAClI;AAAA,MACA,sBAAsB,CAAC,EAAE,QAAAA,SAAQ,UAAU,mBAAmB;AAC7DC,gBAAAA,wBAAwB,EAAE,SAAS,QAAAD,SAAQ,cAAc,UAAU,UAAU,MAAM,kBAAkB,2BAAA,CAA4B;AAAA,MAClI;AAAA,MACA,iBAAiB,MAAM;AAAA,MAAC;AAAA,MACxB,uBAAuB,MAAM;AAAA,MAAC;AAAA,MAC9B,wBAAwB,MAAM;AAAA,MAAC;AAAA,MAC/B,yBAAyB,MAAM;AAAA,MAAC;AAAA,IAAA,CAChC;AAAA,EACF;AAAA,EAEO,mBAAkC;AACxC,UAAM,EAAE,YAAY,WAAW,SAAA,IAAa,KAAK;AACjD,WAAOE,kBAAAA;AAAAA,MACNC,kBAAAA;AAAAA,QACC;AAAA,QACAC,kBAAAA,YAA6D,WAAW,CAAC,EAAE,aAAa;AAAA,UACvF,GAAG;AAAA,UACH,eAAe,EAAE,GAAG,MAAM,eAAe,SAAA;AAAA,QAAS,EACjD;AAAA,MAAA;AAAA,IACH;AAAA,EAEF;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,uCAAuC,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS,GAAA;AAAA,EACrG;AACD;AAQO,MAAM,qCAAqCC,oBAAAA,uBAAuB;AAAA,EACxE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,6BAA+C;AAAA,EAC3D,WAAW,gBAAwB,eAAuB;AACzD,WAAOC,UAAAA,gBAAgB,gBAAgB,eAAe,CAAC,EAAE,kBAAkB,iBAAiB,oBAAoB;AAC/G,UACC,iBAAiB,SAAS,gBAAgB,QACvCC,UAAkC,iBAAiB,eAAe,KAClEA,KAAAA,KAAkC,kBAAkB,eAAe,KACnE,gBAAgB,cAAc,aAAa,iBAAiB,cAAc,UAC5E;AACD,eAAO,mCAAmC,mBAAmB;AAAA,UAC5D,YAAY,cAAc;AAAA,UAC1B,WAAW,gBAAgB;AAAA,UAC3B,UAAU,gBAAgB,cAAc;AAAA,QAAA,CACxC;AAAA,MACF;AACA,aAAO;AAAA,IACR,CAAC;AAAA,EACF;AACD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateRelationOnDeleteModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/UpdateRelationOnDeleteModification.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils'\nimport {\n\tcreateModificationType,\n\tDiffer,\n\tModificationHandler,\n\tModificationHandlerCreateSqlOptions,\n} from '../ModificationHandler'\nimport { isIt } from '../../utils/isIt'\nimport { updateRelations } from '../utils/diffUtils'\nimport { acceptRelationTypeVisitor } from '@contember/schema-utils'\nimport { addForeignKeyConstraint } from './helpers'\n\nexport class UpdateRelationOnDeleteModificationHandler implements ModificationHandler<UpdateRelationOnDeleteModificationData> {\n\tconstructor(\n\t\tprivate readonly data: UpdateRelationOnDeleteModificationData,\n\t\tprivate readonly schema: Schema,\n\t) {}\n\n\tpublic createSql(builder: MigrationBuilder, { databaseMetadata, invalidateDatabaseMetadata }: ModificationHandlerCreateSqlOptions): void {\n\t\tconst updatedSchema = this.getSchemaUpdater()({ schema: this.schema })\n\t\tconst entity = updatedSchema.model.entities[this.data.entityName]\n\t\tif (entity.view) {\n\t\t\treturn\n\t\t}\n\n\t\tacceptRelationTypeVisitor(updatedSchema.model, entity, this.data.fieldName, {\n\t\t\tvisitManyHasOne: ({ entity, relation, targetEntity }) => {\n\t\t\t\taddForeignKeyConstraint({ builder, entity, targetEntity, relation, recreate: true, databaseMetadata, invalidateDatabaseMetadata })\n\t\t\t},\n\t\t\tvisitOneHasOneOwning: ({ entity, relation, targetEntity }) => {\n\t\t\t\taddForeignKeyConstraint({ builder, entity, targetEntity, relation, recreate: true, databaseMetadata, invalidateDatabaseMetadata })\n\t\t\t},\n\t\t\tvisitOneHasMany: () => {},\n\t\t\tvisitOneHasOneInverse: () => {},\n\t\t\tvisitManyHasManyOwning: () => {},\n\t\t\tvisitManyHasManyInverse: () => {},\n\t\t})\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\tconst { entityName, fieldName, onDelete } = this.data\n\t\treturn updateModel(\n\t\t\tupdateEntity(\n\t\t\t\tentityName,\n\t\t\t\tupdateField<Model.AnyRelation & Model.JoiningColumnRelation>(fieldName, ({ field }) => ({\n\t\t\t\t\t...field,\n\t\t\t\t\tjoiningColumn: { ...field.joiningColumn, onDelete },\n\t\t\t\t})),\n\t\t\t),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Change on-delete policy of relation ${this.data.entityName}.${this.data.fieldName}` }\n\t}\n}\n\nexport interface UpdateRelationOnDeleteModificationData {\n\tentityName: string\n\tfieldName: string\n\tonDelete: Model.OnDelete\n}\n\nexport const updateRelationOnDeleteModification = createModificationType({\n\tid: 'updateRelationOnDelete',\n\thandler: UpdateRelationOnDeleteModificationHandler,\n})\n\nexport class UpdateRelationOnDeleteDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn updateRelations(originalSchema, updatedSchema, ({ originalRelation, updatedRelation, updatedEntity }) => {\n\t\t\tif (\n\t\t\t\toriginalRelation.type === updatedRelation.type &&\n\t\t\t\tisIt<Model.JoiningColumnRelation>(updatedRelation, 'joiningColumn') &&\n\t\t\t\tisIt<Model.JoiningColumnRelation>(originalRelation, 'joiningColumn') &&\n\t\t\t\tupdatedRelation.joiningColumn.onDelete !== originalRelation.joiningColumn.onDelete\n\t\t\t) {\n\t\t\t\treturn updateRelationOnDeleteModification.createModification({\n\t\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\t\tfieldName: updatedRelation.name,\n\t\t\t\t\tonDelete: updatedRelation.joiningColumn.onDelete,\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn undefined\n\t\t})\n\t}\n}\n"],"names":["entity"],"mappings":";;;;;;AAcO,MAAM,0CAAiH;AAAA,EAC7H,YACkB,MACA,QAChB;AAFgB,SAAA,OAAA;AACA,SAAA,SAAA;AAAA,EAAA;AAAA,EAGX,UAAU,SAA2B,EAAE,kBAAkB,8BAAyE;AAClI,UAAA,gBAAgB,KAAK,iBAAiB,EAAE,EAAE,QAAQ,KAAK,QAAQ;AACrE,UAAM,SAAS,cAAc,MAAM,SAAS,KAAK,KAAK,UAAU;AAChE,QAAI,OAAO,MAAM;AAChB;AAAA,IAAA;AAGD,8BAA0B,cAAc,OAAO,QAAQ,KAAK,KAAK,WAAW;AAAA,MAC3E,iBAAiB,CAAC,EAAE,QAAAA,SAAQ,UAAU,mBAAmB;AAChC,gCAAA,EAAE,SAAS,QAAAA,SAAQ,cAAc,UAAU,UAAU,MAAM,kBAAkB,2BAAA,CAA4B;AAAA,MAClI;AAAA,MACA,sBAAsB,CAAC,EAAE,QAAAA,SAAQ,UAAU,mBAAmB;AACrC,gCAAA,EAAE,SAAS,QAAAA,SAAQ,cAAc,UAAU,UAAU,MAAM,kBAAkB,2BAAA,CAA4B;AAAA,MAClI;AAAA,MACA,iBAAiB,MAAM;AAAA,MAAC;AAAA,MACxB,uBAAuB,MAAM;AAAA,MAAC;AAAA,MAC9B,wBAAwB,MAAM;AAAA,MAAC;AAAA,MAC/B,yBAAyB,MAAM;AAAA,MAAA;AAAA,IAAC,CAChC;AAAA,EAAA;AAAA,EAGK,mBAAkC;AACxC,UAAM,EAAE,YAAY,WAAW,aAAa,KAAK;AAC1C,WAAA;AAAA,MACN;AAAA,QACC;AAAA,QACA,YAA6D,WAAW,CAAC,EAAE,aAAa;AAAA,UACvF,GAAG;AAAA,UACH,eAAe,EAAE,GAAG,MAAM,eAAe,SAAS;AAAA,QAAA,EACjD;AAAA,MAAA;AAAA,IAEJ;AAAA,EAAA;AAAA,EAGD,WAAW;AACH,WAAA,EAAE,SAAS,uCAAuC,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS,GAAG;AAAA,EAAA;AAEzG;AAQO,MAAM,qCAAqC,uBAAuB;AAAA,EACxE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,6BAA+C;AAAA,EAC3D,WAAW,gBAAwB,eAAuB;AAClD,WAAA,gBAAgB,gBAAgB,eAAe,CAAC,EAAE,kBAAkB,iBAAiB,oBAAoB;AAC/G,UACC,iBAAiB,SAAS,gBAAgB,QAC1C,KAAkC,iBAAiB,eAAe,KAClE,KAAkC,kBAAkB,eAAe,KACnE,gBAAgB,cAAc,aAAa,iBAAiB,cAAc,UACzE;AACD,eAAO,mCAAmC,mBAAmB;AAAA,UAC5D,YAAY,cAAc;AAAA,UAC1B,WAAW,gBAAgB;AAAA,UAC3B,UAAU,gBAAgB,cAAc;AAAA,QAAA,CACxC;AAAA,MAAA;AAEK,aAAA;AAAA,IAAA,CACP;AAAA,EAAA;AAEH;"}
1
+ {"version":3,"file":"UpdateRelationOnDeleteModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/UpdateRelationOnDeleteModification.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler, ModificationHandlerCreateSqlOptions } from '../ModificationHandler'\nimport { isIt } from '../../utils/isIt'\nimport { updateRelations } from '../utils/diffUtils'\nimport { acceptRelationTypeVisitor } from '@contember/schema-utils'\nimport { addForeignKeyConstraint } from './helpers'\n\nexport class UpdateRelationOnDeleteModificationHandler implements ModificationHandler<UpdateRelationOnDeleteModificationData> {\n\tconstructor(\n\t\tprivate readonly data: UpdateRelationOnDeleteModificationData,\n\t\tprivate readonly schema: Schema,\n\t) {}\n\n\tpublic createSql(builder: MigrationBuilder, { databaseMetadata, invalidateDatabaseMetadata }: ModificationHandlerCreateSqlOptions): void {\n\t\tconst updatedSchema = this.getSchemaUpdater()({ schema: this.schema })\n\t\tconst entity = updatedSchema.model.entities[this.data.entityName]\n\t\tif (entity.view) {\n\t\t\treturn\n\t\t}\n\n\t\tacceptRelationTypeVisitor(updatedSchema.model, entity, this.data.fieldName, {\n\t\t\tvisitManyHasOne: ({ entity, relation, targetEntity }) => {\n\t\t\t\taddForeignKeyConstraint({ builder, entity, targetEntity, relation, recreate: true, databaseMetadata, invalidateDatabaseMetadata })\n\t\t\t},\n\t\t\tvisitOneHasOneOwning: ({ entity, relation, targetEntity }) => {\n\t\t\t\taddForeignKeyConstraint({ builder, entity, targetEntity, relation, recreate: true, databaseMetadata, invalidateDatabaseMetadata })\n\t\t\t},\n\t\t\tvisitOneHasMany: () => {},\n\t\t\tvisitOneHasOneInverse: () => {},\n\t\t\tvisitManyHasManyOwning: () => {},\n\t\t\tvisitManyHasManyInverse: () => {},\n\t\t})\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\tconst { entityName, fieldName, onDelete } = this.data\n\t\treturn updateModel(\n\t\t\tupdateEntity(\n\t\t\t\tentityName,\n\t\t\t\tupdateField<Model.AnyRelation & Model.JoiningColumnRelation>(fieldName, ({ field }) => ({\n\t\t\t\t\t...field,\n\t\t\t\t\tjoiningColumn: { ...field.joiningColumn, onDelete },\n\t\t\t\t})),\n\t\t\t),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Change on-delete policy of relation ${this.data.entityName}.${this.data.fieldName}` }\n\t}\n}\n\nexport interface UpdateRelationOnDeleteModificationData {\n\tentityName: string\n\tfieldName: string\n\tonDelete: Model.OnDelete\n}\n\nexport const updateRelationOnDeleteModification = createModificationType({\n\tid: 'updateRelationOnDelete',\n\thandler: UpdateRelationOnDeleteModificationHandler,\n})\n\nexport class UpdateRelationOnDeleteDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn updateRelations(originalSchema, updatedSchema, ({ originalRelation, updatedRelation, updatedEntity }) => {\n\t\t\tif (\n\t\t\t\toriginalRelation.type === updatedRelation.type\n\t\t\t\t&& isIt<Model.JoiningColumnRelation>(updatedRelation, 'joiningColumn')\n\t\t\t\t&& isIt<Model.JoiningColumnRelation>(originalRelation, 'joiningColumn')\n\t\t\t\t&& updatedRelation.joiningColumn.onDelete !== originalRelation.joiningColumn.onDelete\n\t\t\t) {\n\t\t\t\treturn updateRelationOnDeleteModification.createModification({\n\t\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\t\tfieldName: updatedRelation.name,\n\t\t\t\t\tonDelete: updatedRelation.joiningColumn.onDelete,\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn undefined\n\t\t})\n\t}\n}\n"],"names":["entity"],"mappings":";;;;;;AASO,MAAM,0CAAiH;AAAA,EAC7H,YACkB,MACA,QAChB;AAFgB,SAAA,OAAA;AACA,SAAA,SAAA;AAAA,EACf;AAAA,EAEI,UAAU,SAA2B,EAAE,kBAAkB,8BAAyE;AACxI,UAAM,gBAAgB,KAAK,iBAAA,EAAmB,EAAE,QAAQ,KAAK,QAAQ;AACrE,UAAM,SAAS,cAAc,MAAM,SAAS,KAAK,KAAK,UAAU;AAChE,QAAI,OAAO,MAAM;AAChB;AAAA,IACD;AAEA,8BAA0B,cAAc,OAAO,QAAQ,KAAK,KAAK,WAAW;AAAA,MAC3E,iBAAiB,CAAC,EAAE,QAAAA,SAAQ,UAAU,mBAAmB;AACxD,gCAAwB,EAAE,SAAS,QAAAA,SAAQ,cAAc,UAAU,UAAU,MAAM,kBAAkB,2BAAA,CAA4B;AAAA,MAClI;AAAA,MACA,sBAAsB,CAAC,EAAE,QAAAA,SAAQ,UAAU,mBAAmB;AAC7D,gCAAwB,EAAE,SAAS,QAAAA,SAAQ,cAAc,UAAU,UAAU,MAAM,kBAAkB,2BAAA,CAA4B;AAAA,MAClI;AAAA,MACA,iBAAiB,MAAM;AAAA,MAAC;AAAA,MACxB,uBAAuB,MAAM;AAAA,MAAC;AAAA,MAC9B,wBAAwB,MAAM;AAAA,MAAC;AAAA,MAC/B,yBAAyB,MAAM;AAAA,MAAC;AAAA,IAAA,CAChC;AAAA,EACF;AAAA,EAEO,mBAAkC;AACxC,UAAM,EAAE,YAAY,WAAW,SAAA,IAAa,KAAK;AACjD,WAAO;AAAA,MACN;AAAA,QACC;AAAA,QACA,YAA6D,WAAW,CAAC,EAAE,aAAa;AAAA,UACvF,GAAG;AAAA,UACH,eAAe,EAAE,GAAG,MAAM,eAAe,SAAA;AAAA,QAAS,EACjD;AAAA,MAAA;AAAA,IACH;AAAA,EAEF;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,uCAAuC,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS,GAAA;AAAA,EACrG;AACD;AAQO,MAAM,qCAAqC,uBAAuB;AAAA,EACxE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,6BAA+C;AAAA,EAC3D,WAAW,gBAAwB,eAAuB;AACzD,WAAO,gBAAgB,gBAAgB,eAAe,CAAC,EAAE,kBAAkB,iBAAiB,oBAAoB;AAC/G,UACC,iBAAiB,SAAS,gBAAgB,QACvC,KAAkC,iBAAiB,eAAe,KAClE,KAAkC,kBAAkB,eAAe,KACnE,gBAAgB,cAAc,aAAa,iBAAiB,cAAc,UAC5E;AACD,eAAO,mCAAmC,mBAAmB;AAAA,UAC5D,YAAY,cAAc;AAAA,UAC1B,WAAW,gBAAgB;AAAA,UAC3B,UAAU,gBAAgB,cAAc;AAAA,QAAA,CACxC;AAAA,MACF;AACA,aAAO;AAAA,IACR,CAAC;AAAA,EACF;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateRelationOrderByModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/UpdateRelationOrderByModification.ts"],"sourcesContent":["import { Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport deepEqual from 'fast-deep-equal'\nimport { updateRelations } from '../utils/diffUtils'\n\nexport class UpdateRelationOrderByModificationHandler implements ModificationHandler<UpdateRelationOrderByModificationData> {\n\n\tconstructor(private readonly data: UpdateRelationOrderByModificationData, private readonly schema: Schema) {}\n\n\tpublic createSql(): void {}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\tconst { entityName, fieldName, orderBy } = this.data\n\t\treturn updateModel(\n\t\t\tupdateEntity(\n\t\t\t\tentityName,\n\t\t\t\tupdateField<Model.AnyRelation & Model.OrderableRelation>(fieldName, ({ field }) => ({\n\t\t\t\t\t...field,\n\t\t\t\t\torderBy,\n\t\t\t\t})),\n\t\t\t),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Update order-by of relation ${this.data.entityName}.${this.data.fieldName}` }\n\t}\n}\n\nexport interface UpdateRelationOrderByModificationData {\n\tentityName: string\n\tfieldName: string\n\torderBy: readonly Model.OrderBy[]\n}\n\nexport const updateRelationOrderByModification = createModificationType({\n\tid: 'updateRelationOrderBy',\n\thandler: UpdateRelationOrderByModificationHandler,\n})\n\nexport class UpdateRelationOrderByDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn updateRelations(originalSchema, updatedSchema, ({ updatedRelation, originalRelation, updatedEntity }) => {\n\t\t\tconst isItOrderable = (relation: Model.AnyRelation): relation is Model.OrderableRelation & Model.AnyRelation =>\n\t\t\t\trelation.type === Model.RelationType.ManyHasMany || relation.type === Model.RelationType.OneHasMany\n\t\t\tif (\n\t\t\t\tupdatedRelation.type === originalRelation.type &&\n\t\t\t\tisItOrderable(updatedRelation) &&\n\t\t\t\tisItOrderable(originalRelation) &&\n\t\t\t\t!deepEqual(updatedRelation.orderBy || [], originalRelation.orderBy || [])\n\t\t\t) {\n\t\t\t\treturn updateRelationOrderByModification.createModification({\n\t\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\t\tfieldName: updatedRelation.name,\n\t\t\t\t\torderBy: updatedRelation.orderBy || [],\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn undefined\n\t\t})\n\t}\n}\n"],"names":["schema","updateModel","updateEntity","updateField","createModificationType","updateRelations","Model"],"mappings":";;;;;;;AAMO,MAAM,yCAA+G;AAAA,EAE3H,YAA6B,MAA8DA,SAAgB;AAA9E,SAAA,OAAA;AAA8D,SAAA,SAAAA;AAAA,EAAA;AAAA,EAEpF,YAAkB;AAAA,EAAA;AAAA,EAElB,mBAAkC;AACxC,UAAM,EAAE,YAAY,WAAW,YAAY,KAAK;AACzC,WAAAC,kBAAA;AAAA,MACNC,kBAAA;AAAA,QACC;AAAA,QACAC,kBAAAA,YAAyD,WAAW,CAAC,EAAE,aAAa;AAAA,UACnF,GAAG;AAAA,UACH;AAAA,QAAA,EACC;AAAA,MAAA;AAAA,IAEJ;AAAA,EAAA;AAAA,EAGD,WAAW;AACH,WAAA,EAAE,SAAS,+BAA+B,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS,GAAG;AAAA,EAAA;AAEjG;AAQO,MAAM,oCAAoCC,oBAAAA,uBAAuB;AAAA,EACvE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,4BAA8C;AAAA,EAC1D,WAAW,gBAAwB,eAAuB;AAClD,WAAAC,UAAAA,gBAAgB,gBAAgB,eAAe,CAAC,EAAE,iBAAiB,kBAAkB,oBAAoB;AACzG,YAAA,gBAAgB,CAAC,aACtB,SAAS,SAASC,OAAM,MAAA,aAAa,eAAe,SAAS,SAASA,OAAA,MAAM,aAAa;AAEzF,UAAA,gBAAgB,SAAS,iBAAiB,QAC1C,cAAc,eAAe,KAC7B,cAAc,gBAAgB,KAC9B,CAAC,UAAU,gBAAgB,WAAW,CAAC,GAAG,iBAAiB,WAAW,CAAA,CAAE,GACvE;AACD,eAAO,kCAAkC,mBAAmB;AAAA,UAC3D,YAAY,cAAc;AAAA,UAC1B,WAAW,gBAAgB;AAAA,UAC3B,SAAS,gBAAgB,WAAW,CAAA;AAAA,QAAC,CACrC;AAAA,MAAA;AAEK,aAAA;AAAA,IAAA,CACP;AAAA,EAAA;AAEH;;;;"}
1
+ {"version":3,"file":"UpdateRelationOrderByModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/UpdateRelationOrderByModification.ts"],"sourcesContent":["import { Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport deepEqual from 'fast-deep-equal'\nimport { updateRelations } from '../utils/diffUtils'\n\nexport class UpdateRelationOrderByModificationHandler implements ModificationHandler<UpdateRelationOrderByModificationData> {\n\tconstructor(private readonly data: UpdateRelationOrderByModificationData, private readonly schema: Schema) {}\n\n\tpublic createSql(): void {}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\tconst { entityName, fieldName, orderBy } = this.data\n\t\treturn updateModel(\n\t\t\tupdateEntity(\n\t\t\t\tentityName,\n\t\t\t\tupdateField<Model.AnyRelation & Model.OrderableRelation>(fieldName, ({ field }) => ({\n\t\t\t\t\t...field,\n\t\t\t\t\torderBy,\n\t\t\t\t})),\n\t\t\t),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Update order-by of relation ${this.data.entityName}.${this.data.fieldName}` }\n\t}\n}\n\nexport interface UpdateRelationOrderByModificationData {\n\tentityName: string\n\tfieldName: string\n\torderBy: readonly Model.OrderBy[]\n}\n\nexport const updateRelationOrderByModification = createModificationType({\n\tid: 'updateRelationOrderBy',\n\thandler: UpdateRelationOrderByModificationHandler,\n})\n\nexport class UpdateRelationOrderByDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn updateRelations(originalSchema, updatedSchema, ({ updatedRelation, originalRelation, updatedEntity }) => {\n\t\t\tconst isItOrderable = (relation: Model.AnyRelation): relation is Model.OrderableRelation & Model.AnyRelation =>\n\t\t\t\trelation.type === Model.RelationType.ManyHasMany || relation.type === Model.RelationType.OneHasMany\n\t\t\tif (\n\t\t\t\tupdatedRelation.type === originalRelation.type\n\t\t\t\t&& isItOrderable(updatedRelation)\n\t\t\t\t&& isItOrderable(originalRelation)\n\t\t\t\t&& !deepEqual(updatedRelation.orderBy || [], originalRelation.orderBy || [])\n\t\t\t) {\n\t\t\t\treturn updateRelationOrderByModification.createModification({\n\t\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\t\tfieldName: updatedRelation.name,\n\t\t\t\t\torderBy: updatedRelation.orderBy || [],\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn undefined\n\t\t})\n\t}\n}\n"],"names":["schema","updateModel","updateEntity","updateField","createModificationType","updateRelations","Model"],"mappings":";;;;;;;AAMO,MAAM,yCAA+G;AAAA,EAC3H,YAA6B,MAA8DA,SAAgB;AAA9E,SAAA,OAAA;AAA8D,SAAA,SAAAA;AAAA,EAAiB;AAAA,EAErG,YAAkB;AAAA,EAAC;AAAA,EAEnB,mBAAkC;AACxC,UAAM,EAAE,YAAY,WAAW,QAAA,IAAY,KAAK;AAChD,WAAOC,kBAAAA;AAAAA,MACNC,kBAAAA;AAAAA,QACC;AAAA,QACAC,kBAAAA,YAAyD,WAAW,CAAC,EAAE,aAAa;AAAA,UACnF,GAAG;AAAA,UACH;AAAA,QAAA,EACC;AAAA,MAAA;AAAA,IACH;AAAA,EAEF;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,+BAA+B,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS,GAAA;AAAA,EAC7F;AACD;AAQO,MAAM,oCAAoCC,oBAAAA,uBAAuB;AAAA,EACvE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,4BAA8C;AAAA,EAC1D,WAAW,gBAAwB,eAAuB;AACzD,WAAOC,UAAAA,gBAAgB,gBAAgB,eAAe,CAAC,EAAE,iBAAiB,kBAAkB,oBAAoB;AAC/G,YAAM,gBAAgB,CAAC,aACtB,SAAS,SAASC,OAAAA,MAAM,aAAa,eAAe,SAAS,SAASA,OAAAA,MAAM,aAAa;AAC1F,UACC,gBAAgB,SAAS,iBAAiB,QACvC,cAAc,eAAe,KAC7B,cAAc,gBAAgB,KAC9B,CAAC,UAAU,gBAAgB,WAAW,CAAA,GAAI,iBAAiB,WAAW,CAAA,CAAE,GAC1E;AACD,eAAO,kCAAkC,mBAAmB;AAAA,UAC3D,YAAY,cAAc;AAAA,UAC1B,WAAW,gBAAgB;AAAA,UAC3B,SAAS,gBAAgB,WAAW,CAAA;AAAA,QAAC,CACrC;AAAA,MACF;AACA,aAAO;AAAA,IACR,CAAC;AAAA,EACF;AACD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateRelationOrderByModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/UpdateRelationOrderByModification.ts"],"sourcesContent":["import { Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport deepEqual from 'fast-deep-equal'\nimport { updateRelations } from '../utils/diffUtils'\n\nexport class UpdateRelationOrderByModificationHandler implements ModificationHandler<UpdateRelationOrderByModificationData> {\n\n\tconstructor(private readonly data: UpdateRelationOrderByModificationData, private readonly schema: Schema) {}\n\n\tpublic createSql(): void {}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\tconst { entityName, fieldName, orderBy } = this.data\n\t\treturn updateModel(\n\t\t\tupdateEntity(\n\t\t\t\tentityName,\n\t\t\t\tupdateField<Model.AnyRelation & Model.OrderableRelation>(fieldName, ({ field }) => ({\n\t\t\t\t\t...field,\n\t\t\t\t\torderBy,\n\t\t\t\t})),\n\t\t\t),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Update order-by of relation ${this.data.entityName}.${this.data.fieldName}` }\n\t}\n}\n\nexport interface UpdateRelationOrderByModificationData {\n\tentityName: string\n\tfieldName: string\n\torderBy: readonly Model.OrderBy[]\n}\n\nexport const updateRelationOrderByModification = createModificationType({\n\tid: 'updateRelationOrderBy',\n\thandler: UpdateRelationOrderByModificationHandler,\n})\n\nexport class UpdateRelationOrderByDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn updateRelations(originalSchema, updatedSchema, ({ updatedRelation, originalRelation, updatedEntity }) => {\n\t\t\tconst isItOrderable = (relation: Model.AnyRelation): relation is Model.OrderableRelation & Model.AnyRelation =>\n\t\t\t\trelation.type === Model.RelationType.ManyHasMany || relation.type === Model.RelationType.OneHasMany\n\t\t\tif (\n\t\t\t\tupdatedRelation.type === originalRelation.type &&\n\t\t\t\tisItOrderable(updatedRelation) &&\n\t\t\t\tisItOrderable(originalRelation) &&\n\t\t\t\t!deepEqual(updatedRelation.orderBy || [], originalRelation.orderBy || [])\n\t\t\t) {\n\t\t\t\treturn updateRelationOrderByModification.createModification({\n\t\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\t\tfieldName: updatedRelation.name,\n\t\t\t\t\torderBy: updatedRelation.orderBy || [],\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn undefined\n\t\t})\n\t}\n}\n"],"names":[],"mappings":";;;;;AAMO,MAAM,yCAA+G;AAAA,EAE3H,YAA6B,MAA8D,QAAgB;AAA9E,SAAA,OAAA;AAA8D,SAAA,SAAA;AAAA,EAAA;AAAA,EAEpF,YAAkB;AAAA,EAAA;AAAA,EAElB,mBAAkC;AACxC,UAAM,EAAE,YAAY,WAAW,YAAY,KAAK;AACzC,WAAA;AAAA,MACN;AAAA,QACC;AAAA,QACA,YAAyD,WAAW,CAAC,EAAE,aAAa;AAAA,UACnF,GAAG;AAAA,UACH;AAAA,QAAA,EACC;AAAA,MAAA;AAAA,IAEJ;AAAA,EAAA;AAAA,EAGD,WAAW;AACH,WAAA,EAAE,SAAS,+BAA+B,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS,GAAG;AAAA,EAAA;AAEjG;AAQO,MAAM,oCAAoC,uBAAuB;AAAA,EACvE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,4BAA8C;AAAA,EAC1D,WAAW,gBAAwB,eAAuB;AAClD,WAAA,gBAAgB,gBAAgB,eAAe,CAAC,EAAE,iBAAiB,kBAAkB,oBAAoB;AACzG,YAAA,gBAAgB,CAAC,aACtB,SAAS,SAAS,MAAM,aAAa,eAAe,SAAS,SAAS,MAAM,aAAa;AAEzF,UAAA,gBAAgB,SAAS,iBAAiB,QAC1C,cAAc,eAAe,KAC7B,cAAc,gBAAgB,KAC9B,CAAC,UAAU,gBAAgB,WAAW,CAAC,GAAG,iBAAiB,WAAW,CAAA,CAAE,GACvE;AACD,eAAO,kCAAkC,mBAAmB;AAAA,UAC3D,YAAY,cAAc;AAAA,UAC1B,WAAW,gBAAgB;AAAA,UAC3B,SAAS,gBAAgB,WAAW,CAAA;AAAA,QAAC,CACrC;AAAA,MAAA;AAEK,aAAA;AAAA,IAAA,CACP;AAAA,EAAA;AAEH;"}
1
+ {"version":3,"file":"UpdateRelationOrderByModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/UpdateRelationOrderByModification.ts"],"sourcesContent":["import { Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport deepEqual from 'fast-deep-equal'\nimport { updateRelations } from '../utils/diffUtils'\n\nexport class UpdateRelationOrderByModificationHandler implements ModificationHandler<UpdateRelationOrderByModificationData> {\n\tconstructor(private readonly data: UpdateRelationOrderByModificationData, private readonly schema: Schema) {}\n\n\tpublic createSql(): void {}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\tconst { entityName, fieldName, orderBy } = this.data\n\t\treturn updateModel(\n\t\t\tupdateEntity(\n\t\t\t\tentityName,\n\t\t\t\tupdateField<Model.AnyRelation & Model.OrderableRelation>(fieldName, ({ field }) => ({\n\t\t\t\t\t...field,\n\t\t\t\t\torderBy,\n\t\t\t\t})),\n\t\t\t),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Update order-by of relation ${this.data.entityName}.${this.data.fieldName}` }\n\t}\n}\n\nexport interface UpdateRelationOrderByModificationData {\n\tentityName: string\n\tfieldName: string\n\torderBy: readonly Model.OrderBy[]\n}\n\nexport const updateRelationOrderByModification = createModificationType({\n\tid: 'updateRelationOrderBy',\n\thandler: UpdateRelationOrderByModificationHandler,\n})\n\nexport class UpdateRelationOrderByDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn updateRelations(originalSchema, updatedSchema, ({ updatedRelation, originalRelation, updatedEntity }) => {\n\t\t\tconst isItOrderable = (relation: Model.AnyRelation): relation is Model.OrderableRelation & Model.AnyRelation =>\n\t\t\t\trelation.type === Model.RelationType.ManyHasMany || relation.type === Model.RelationType.OneHasMany\n\t\t\tif (\n\t\t\t\tupdatedRelation.type === originalRelation.type\n\t\t\t\t&& isItOrderable(updatedRelation)\n\t\t\t\t&& isItOrderable(originalRelation)\n\t\t\t\t&& !deepEqual(updatedRelation.orderBy || [], originalRelation.orderBy || [])\n\t\t\t) {\n\t\t\t\treturn updateRelationOrderByModification.createModification({\n\t\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\t\tfieldName: updatedRelation.name,\n\t\t\t\t\torderBy: updatedRelation.orderBy || [],\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn undefined\n\t\t})\n\t}\n}\n"],"names":[],"mappings":";;;;;AAMO,MAAM,yCAA+G;AAAA,EAC3H,YAA6B,MAA8D,QAAgB;AAA9E,SAAA,OAAA;AAA8D,SAAA,SAAA;AAAA,EAAiB;AAAA,EAErG,YAAkB;AAAA,EAAC;AAAA,EAEnB,mBAAkC;AACxC,UAAM,EAAE,YAAY,WAAW,QAAA,IAAY,KAAK;AAChD,WAAO;AAAA,MACN;AAAA,QACC;AAAA,QACA,YAAyD,WAAW,CAAC,EAAE,aAAa;AAAA,UACnF,GAAG;AAAA,UACH;AAAA,QAAA,EACC;AAAA,MAAA;AAAA,IACH;AAAA,EAEF;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,+BAA+B,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS,GAAA;AAAA,EAC7F;AACD;AAQO,MAAM,oCAAoC,uBAAuB;AAAA,EACvE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,4BAA8C;AAAA,EAC1D,WAAW,gBAAwB,eAAuB;AACzD,WAAO,gBAAgB,gBAAgB,eAAe,CAAC,EAAE,iBAAiB,kBAAkB,oBAAoB;AAC/G,YAAM,gBAAgB,CAAC,aACtB,SAAS,SAAS,MAAM,aAAa,eAAe,SAAS,SAAS,MAAM,aAAa;AAC1F,UACC,gBAAgB,SAAS,iBAAiB,QACvC,cAAc,eAAe,KAC7B,cAAc,gBAAgB,KAC9B,CAAC,UAAU,gBAAgB,WAAW,CAAA,GAAI,iBAAiB,WAAW,CAAA,CAAE,GAC1E;AACD,eAAO,kCAAkC,mBAAmB;AAAA,UAC3D,YAAY,cAAc;AAAA,UAC1B,WAAW,gBAAgB;AAAA,UAC3B,SAAS,gBAAgB,WAAW,CAAA;AAAA,QAAC,CACrC;AAAA,MACF;AACA,aAAO;AAAA,IACR,CAAC;AAAA,EACF;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/helpers.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { Model } from '@contember/schema'\nimport { wrapIdentifier } from '../../utils/dbHelpers'\nimport { DatabaseMetadata } from '@contember/database'\n\nexport const addForeignKeyConstraint = ({ builder, entity, relation, targetEntity, recreate = false, databaseMetadata, invalidateDatabaseMetadata }: {\n\trecreate?: boolean\n\tbuilder: MigrationBuilder\n\tentity: Model.Entity\n\ttargetEntity: Model.Entity\n\trelation: Model.OneHasOneOwningRelation | Model.ManyHasOneRelation\n\tdatabaseMetadata: DatabaseMetadata\n\tinvalidateDatabaseMetadata: () => void\n}) => {\n\tif (recreate) {\n\t\tconst fkNames = databaseMetadata.foreignKeys.filter(\n\t\t\t{\n\t\t\t\tfromTable: entity.tableName,\n\t\t\t\tfromColumn: relation.joiningColumn.columnName,\n\t\t\t\ttoTable: targetEntity.tableName,\n\t\t\t\ttoColumn: targetEntity.primaryColumn,\n\t\t\t},\n\t\t).getNames()\n\t\tfor (const name of fkNames) {\n\t\t\tbuilder.sql(`ALTER TABLE ${wrapIdentifier(entity.tableName)} DROP CONSTRAINT ${wrapIdentifier(name)}`)\n\t\t}\n\t}\n\n\tconst onDelete = ({\n\t\t[Model.OnDelete.setNull]: 'SET NULL',\n\t\t[Model.OnDelete.cascade]: 'CASCADE',\n\t\t[Model.OnDelete.restrict]: 'NO ACTION',\n\t} as const)[relation.joiningColumn.onDelete]\n\tbuilder.sql(`ALTER TABLE ${wrapIdentifier(entity.tableName)}\n\t\tADD FOREIGN KEY (${wrapIdentifier(relation.joiningColumn.columnName)}) \n\t\tREFERENCES ${wrapIdentifier(targetEntity.tableName)}(${wrapIdentifier(targetEntity.primaryColumn)}) ON DELETE ${onDelete} DEFERRABLE INITIALLY IMMEDIATE`)\n\n\tinvalidateDatabaseMetadata()\n}\n"],"names":["wrapIdentifier","Model"],"mappings":";;;;AAKa,MAAA,0BAA0B,CAAC,EAAE,SAAS,QAAQ,UAAU,cAAc,WAAW,OAAO,kBAAkB,iCAQjH;AACL,MAAI,UAAU;AACP,UAAA,UAAU,iBAAiB,YAAY;AAAA,MAC5C;AAAA,QACC,WAAW,OAAO;AAAA,QAClB,YAAY,SAAS,cAAc;AAAA,QACnC,SAAS,aAAa;AAAA,QACtB,UAAU,aAAa;AAAA,MAAA;AAAA,MAEvB,SAAS;AACX,eAAW,QAAQ,SAAS;AACnB,cAAA,IAAI,eAAeA,UAAA,eAAe,OAAO,SAAS,CAAC,oBAAoBA,UAAAA,eAAe,IAAI,CAAC,EAAE;AAAA,IAAA;AAAA,EACtG;AAGD,QAAM,WAAY;AAAA,IACjB,CAACC,OAAA,MAAM,SAAS,OAAO,GAAG;AAAA,IAC1B,CAACA,OAAA,MAAM,SAAS,OAAO,GAAG;AAAA,IAC1B,CAACA,OAAA,MAAM,SAAS,QAAQ,GAAG;AAAA,EAAA,EAChB,SAAS,cAAc,QAAQ;AAC3C,UAAQ,IAAI,eAAeD,UAAAA,eAAe,OAAO,SAAS,CAAC;AAAA,qBACvCA,yBAAe,SAAS,cAAc,UAAU,CAAC;AAAA,eACvDA,yBAAe,aAAa,SAAS,CAAC,IAAIA,UAAAA,eAAe,aAAa,aAAa,CAAC,eAAe,QAAQ,iCAAiC;AAE/H,6BAAA;AAC5B;;"}
1
+ {"version":3,"file":"helpers.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/helpers.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { Model } from '@contember/schema'\nimport { wrapIdentifier } from '../../utils/dbHelpers'\nimport { DatabaseMetadata } from '@contember/database'\n\nexport const addForeignKeyConstraint = ({ builder, entity, relation, targetEntity, recreate = false, databaseMetadata, invalidateDatabaseMetadata }: {\n\trecreate?: boolean\n\tbuilder: MigrationBuilder\n\tentity: Model.Entity\n\ttargetEntity: Model.Entity\n\trelation: Model.OneHasOneOwningRelation | Model.ManyHasOneRelation\n\tdatabaseMetadata: DatabaseMetadata\n\tinvalidateDatabaseMetadata: () => void\n}) => {\n\tif (recreate) {\n\t\tconst fkNames = databaseMetadata.foreignKeys.filter(\n\t\t\t{\n\t\t\t\tfromTable: entity.tableName,\n\t\t\t\tfromColumn: relation.joiningColumn.columnName,\n\t\t\t\ttoTable: targetEntity.tableName,\n\t\t\t\ttoColumn: targetEntity.primaryColumn,\n\t\t\t},\n\t\t).getNames()\n\t\tfor (const name of fkNames) {\n\t\t\tbuilder.sql(`ALTER TABLE ${wrapIdentifier(entity.tableName)} DROP CONSTRAINT ${wrapIdentifier(name)}`)\n\t\t}\n\t}\n\n\tconst onDelete = ({\n\t\t[Model.OnDelete.setNull]: 'SET NULL',\n\t\t[Model.OnDelete.cascade]: 'CASCADE',\n\t\t[Model.OnDelete.restrict]: 'NO ACTION',\n\t} as const)[relation.joiningColumn.onDelete]\n\tbuilder.sql(`ALTER TABLE ${wrapIdentifier(entity.tableName)}\n\t\tADD FOREIGN KEY (${wrapIdentifier(relation.joiningColumn.columnName)}) \n\t\tREFERENCES ${wrapIdentifier(targetEntity.tableName)}(${\n\t\twrapIdentifier(targetEntity.primaryColumn)\n\t}) ON DELETE ${onDelete} DEFERRABLE INITIALLY IMMEDIATE`)\n\n\tinvalidateDatabaseMetadata()\n}\n"],"names":["wrapIdentifier","Model"],"mappings":";;;;AAKO,MAAM,0BAA0B,CAAC,EAAE,SAAS,QAAQ,UAAU,cAAc,WAAW,OAAO,kBAAkB,iCAQjH;AACL,MAAI,UAAU;AACb,UAAM,UAAU,iBAAiB,YAAY;AAAA,MAC5C;AAAA,QACC,WAAW,OAAO;AAAA,QAClB,YAAY,SAAS,cAAc;AAAA,QACnC,SAAS,aAAa;AAAA,QACtB,UAAU,aAAa;AAAA,MAAA;AAAA,IACxB,EACC,SAAA;AACF,eAAW,QAAQ,SAAS;AAC3B,cAAQ,IAAI,eAAeA,UAAAA,eAAe,OAAO,SAAS,CAAC,oBAAoBA,UAAAA,eAAe,IAAI,CAAC,EAAE;AAAA,IACtG;AAAA,EACD;AAEA,QAAM,WAAY;AAAA,IACjB,CAACC,OAAAA,MAAM,SAAS,OAAO,GAAG;AAAA,IAC1B,CAACA,OAAAA,MAAM,SAAS,OAAO,GAAG;AAAA,IAC1B,CAACA,OAAAA,MAAM,SAAS,QAAQ,GAAG;AAAA,EAAA,EAChB,SAAS,cAAc,QAAQ;AAC3C,UAAQ,IAAI,eAAeD,UAAAA,eAAe,OAAO,SAAS,CAAC;AAAA,qBACvCA,yBAAe,SAAS,cAAc,UAAU,CAAC;AAAA,eACvDA,yBAAe,aAAa,SAAS,CAAC,IACnDA,UAAAA,eAAe,aAAa,aAAa,CAC1C,eAAe,QAAQ,iCAAiC;AAExD,6BAAA;AACD;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/helpers.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { Model } from '@contember/schema'\nimport { wrapIdentifier } from '../../utils/dbHelpers'\nimport { DatabaseMetadata } from '@contember/database'\n\nexport const addForeignKeyConstraint = ({ builder, entity, relation, targetEntity, recreate = false, databaseMetadata, invalidateDatabaseMetadata }: {\n\trecreate?: boolean\n\tbuilder: MigrationBuilder\n\tentity: Model.Entity\n\ttargetEntity: Model.Entity\n\trelation: Model.OneHasOneOwningRelation | Model.ManyHasOneRelation\n\tdatabaseMetadata: DatabaseMetadata\n\tinvalidateDatabaseMetadata: () => void\n}) => {\n\tif (recreate) {\n\t\tconst fkNames = databaseMetadata.foreignKeys.filter(\n\t\t\t{\n\t\t\t\tfromTable: entity.tableName,\n\t\t\t\tfromColumn: relation.joiningColumn.columnName,\n\t\t\t\ttoTable: targetEntity.tableName,\n\t\t\t\ttoColumn: targetEntity.primaryColumn,\n\t\t\t},\n\t\t).getNames()\n\t\tfor (const name of fkNames) {\n\t\t\tbuilder.sql(`ALTER TABLE ${wrapIdentifier(entity.tableName)} DROP CONSTRAINT ${wrapIdentifier(name)}`)\n\t\t}\n\t}\n\n\tconst onDelete = ({\n\t\t[Model.OnDelete.setNull]: 'SET NULL',\n\t\t[Model.OnDelete.cascade]: 'CASCADE',\n\t\t[Model.OnDelete.restrict]: 'NO ACTION',\n\t} as const)[relation.joiningColumn.onDelete]\n\tbuilder.sql(`ALTER TABLE ${wrapIdentifier(entity.tableName)}\n\t\tADD FOREIGN KEY (${wrapIdentifier(relation.joiningColumn.columnName)}) \n\t\tREFERENCES ${wrapIdentifier(targetEntity.tableName)}(${wrapIdentifier(targetEntity.primaryColumn)}) ON DELETE ${onDelete} DEFERRABLE INITIALLY IMMEDIATE`)\n\n\tinvalidateDatabaseMetadata()\n}\n"],"names":[],"mappings":";;AAKa,MAAA,0BAA0B,CAAC,EAAE,SAAS,QAAQ,UAAU,cAAc,WAAW,OAAO,kBAAkB,iCAQjH;AACL,MAAI,UAAU;AACP,UAAA,UAAU,iBAAiB,YAAY;AAAA,MAC5C;AAAA,QACC,WAAW,OAAO;AAAA,QAClB,YAAY,SAAS,cAAc;AAAA,QACnC,SAAS,aAAa;AAAA,QACtB,UAAU,aAAa;AAAA,MAAA;AAAA,MAEvB,SAAS;AACX,eAAW,QAAQ,SAAS;AACnB,cAAA,IAAI,eAAe,eAAe,OAAO,SAAS,CAAC,oBAAoB,eAAe,IAAI,CAAC,EAAE;AAAA,IAAA;AAAA,EACtG;AAGD,QAAM,WAAY;AAAA,IACjB,CAAC,MAAM,SAAS,OAAO,GAAG;AAAA,IAC1B,CAAC,MAAM,SAAS,OAAO,GAAG;AAAA,IAC1B,CAAC,MAAM,SAAS,QAAQ,GAAG;AAAA,EAAA,EAChB,SAAS,cAAc,QAAQ;AAC3C,UAAQ,IAAI,eAAe,eAAe,OAAO,SAAS,CAAC;AAAA,qBACvC,eAAe,SAAS,cAAc,UAAU,CAAC;AAAA,eACvD,eAAe,aAAa,SAAS,CAAC,IAAI,eAAe,aAAa,aAAa,CAAC,eAAe,QAAQ,iCAAiC;AAE/H,6BAAA;AAC5B;"}
1
+ {"version":3,"file":"helpers.js","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/helpers.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { Model } from '@contember/schema'\nimport { wrapIdentifier } from '../../utils/dbHelpers'\nimport { DatabaseMetadata } from '@contember/database'\n\nexport const addForeignKeyConstraint = ({ builder, entity, relation, targetEntity, recreate = false, databaseMetadata, invalidateDatabaseMetadata }: {\n\trecreate?: boolean\n\tbuilder: MigrationBuilder\n\tentity: Model.Entity\n\ttargetEntity: Model.Entity\n\trelation: Model.OneHasOneOwningRelation | Model.ManyHasOneRelation\n\tdatabaseMetadata: DatabaseMetadata\n\tinvalidateDatabaseMetadata: () => void\n}) => {\n\tif (recreate) {\n\t\tconst fkNames = databaseMetadata.foreignKeys.filter(\n\t\t\t{\n\t\t\t\tfromTable: entity.tableName,\n\t\t\t\tfromColumn: relation.joiningColumn.columnName,\n\t\t\t\ttoTable: targetEntity.tableName,\n\t\t\t\ttoColumn: targetEntity.primaryColumn,\n\t\t\t},\n\t\t).getNames()\n\t\tfor (const name of fkNames) {\n\t\t\tbuilder.sql(`ALTER TABLE ${wrapIdentifier(entity.tableName)} DROP CONSTRAINT ${wrapIdentifier(name)}`)\n\t\t}\n\t}\n\n\tconst onDelete = ({\n\t\t[Model.OnDelete.setNull]: 'SET NULL',\n\t\t[Model.OnDelete.cascade]: 'CASCADE',\n\t\t[Model.OnDelete.restrict]: 'NO ACTION',\n\t} as const)[relation.joiningColumn.onDelete]\n\tbuilder.sql(`ALTER TABLE ${wrapIdentifier(entity.tableName)}\n\t\tADD FOREIGN KEY (${wrapIdentifier(relation.joiningColumn.columnName)}) \n\t\tREFERENCES ${wrapIdentifier(targetEntity.tableName)}(${\n\t\twrapIdentifier(targetEntity.primaryColumn)\n\t}) ON DELETE ${onDelete} DEFERRABLE INITIALLY IMMEDIATE`)\n\n\tinvalidateDatabaseMetadata()\n}\n"],"names":[],"mappings":";;AAKO,MAAM,0BAA0B,CAAC,EAAE,SAAS,QAAQ,UAAU,cAAc,WAAW,OAAO,kBAAkB,iCAQjH;AACL,MAAI,UAAU;AACb,UAAM,UAAU,iBAAiB,YAAY;AAAA,MAC5C;AAAA,QACC,WAAW,OAAO;AAAA,QAClB,YAAY,SAAS,cAAc;AAAA,QACnC,SAAS,aAAa;AAAA,QACtB,UAAU,aAAa;AAAA,MAAA;AAAA,IACxB,EACC,SAAA;AACF,eAAW,QAAQ,SAAS;AAC3B,cAAQ,IAAI,eAAe,eAAe,OAAO,SAAS,CAAC,oBAAoB,eAAe,IAAI,CAAC,EAAE;AAAA,IACtG;AAAA,EACD;AAEA,QAAM,WAAY;AAAA,IACjB,CAAC,MAAM,SAAS,OAAO,GAAG;AAAA,IAC1B,CAAC,MAAM,SAAS,OAAO,GAAG;AAAA,IAC1B,CAAC,MAAM,SAAS,QAAQ,GAAG;AAAA,EAAA,EAChB,SAAS,cAAc,QAAQ;AAC3C,UAAQ,IAAI,eAAe,eAAe,OAAO,SAAS,CAAC;AAAA,qBACvC,eAAe,SAAS,cAAc,UAAU,CAAC;AAAA,eACvD,eAAe,aAAa,SAAS,CAAC,IACnD,eAAe,aAAa,aAAa,CAC1C,eAAe,QAAQ,iCAAiC;AAExD,6BAAA;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"normalization.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/normalization.ts"],"sourcesContent":["import { Model } from '@contember/schema'\n\ntype SomePartial<E, K extends keyof E> = Omit<E, K> & Partial<Pick<E, K>>\n\nexport type PartialManyHasManyRelation =\n\t& Omit<Model.ManyHasManyOwningRelation, 'joiningTable'>\n\t& {\n\t\tjoiningTable: SomePartial<Model.JoiningTable, 'eventLog'>\n\t}\n\nexport const normalizeManyHasManyRelation = (rel: PartialManyHasManyRelation): Model.ManyHasManyOwningRelation => {\n\treturn {\n\t\t...rel,\n\t\tjoiningTable: {\n\t\t\teventLog: {\n\t\t\t\tenabled: true,\n\t\t\t},\n\t\t\t...rel.joiningTable,\n\t\t},\n\t}\n}\n"],"names":[],"mappings":";;AAUa,MAAA,+BAA+B,CAAC,QAAqE;AAC1G,SAAA;AAAA,IACN,GAAG;AAAA,IACH,cAAc;AAAA,MACb,UAAU;AAAA,QACT,SAAS;AAAA,MACV;AAAA,MACA,GAAG,IAAI;AAAA,IAAA;AAAA,EAET;AACD;;"}
1
+ {"version":3,"file":"normalization.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/normalization.ts"],"sourcesContent":["import { Model } from '@contember/schema'\n\ntype SomePartial<E, K extends keyof E> = Omit<E, K> & Partial<Pick<E, K>>\n\nexport type PartialManyHasManyRelation =\n\t& Omit<Model.ManyHasManyOwningRelation, 'joiningTable'>\n\t& {\n\t\tjoiningTable: SomePartial<Model.JoiningTable, 'eventLog'>\n\t}\n\nexport const normalizeManyHasManyRelation = (rel: PartialManyHasManyRelation): Model.ManyHasManyOwningRelation => {\n\treturn {\n\t\t...rel,\n\t\tjoiningTable: {\n\t\t\teventLog: {\n\t\t\t\tenabled: true,\n\t\t\t},\n\t\t\t...rel.joiningTable,\n\t\t},\n\t}\n}\n"],"names":[],"mappings":";;AAUO,MAAM,+BAA+B,CAAC,QAAqE;AACjH,SAAO;AAAA,IACN,GAAG;AAAA,IACH,cAAc;AAAA,MACb,UAAU;AAAA,QACT,SAAS;AAAA,MAAA;AAAA,MAEV,GAAG,IAAI;AAAA,IAAA;AAAA,EACR;AAEF;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"normalization.js","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/normalization.ts"],"sourcesContent":["import { Model } from '@contember/schema'\n\ntype SomePartial<E, K extends keyof E> = Omit<E, K> & Partial<Pick<E, K>>\n\nexport type PartialManyHasManyRelation =\n\t& Omit<Model.ManyHasManyOwningRelation, 'joiningTable'>\n\t& {\n\t\tjoiningTable: SomePartial<Model.JoiningTable, 'eventLog'>\n\t}\n\nexport const normalizeManyHasManyRelation = (rel: PartialManyHasManyRelation): Model.ManyHasManyOwningRelation => {\n\treturn {\n\t\t...rel,\n\t\tjoiningTable: {\n\t\t\teventLog: {\n\t\t\t\tenabled: true,\n\t\t\t},\n\t\t\t...rel.joiningTable,\n\t\t},\n\t}\n}\n"],"names":[],"mappings":"AAUa,MAAA,+BAA+B,CAAC,QAAqE;AAC1G,SAAA;AAAA,IACN,GAAG;AAAA,IACH,cAAc;AAAA,MACb,UAAU;AAAA,QACT,SAAS;AAAA,MACV;AAAA,MACA,GAAG,IAAI;AAAA,IAAA;AAAA,EAET;AACD;"}
1
+ {"version":3,"file":"normalization.js","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/normalization.ts"],"sourcesContent":["import { Model } from '@contember/schema'\n\ntype SomePartial<E, K extends keyof E> = Omit<E, K> & Partial<Pick<E, K>>\n\nexport type PartialManyHasManyRelation =\n\t& Omit<Model.ManyHasManyOwningRelation, 'joiningTable'>\n\t& {\n\t\tjoiningTable: SomePartial<Model.JoiningTable, 'eventLog'>\n\t}\n\nexport const normalizeManyHasManyRelation = (rel: PartialManyHasManyRelation): Model.ManyHasManyOwningRelation => {\n\treturn {\n\t\t...rel,\n\t\tjoiningTable: {\n\t\t\teventLog: {\n\t\t\t\tenabled: true,\n\t\t\t},\n\t\t\t...rel.joiningTable,\n\t\t},\n\t}\n}\n"],"names":[],"mappings":"AAUO,MAAM,+BAA+B,CAAC,QAAqE;AACjH,SAAO;AAAA,IACN,GAAG;AAAA,IACH,cAAc;AAAA,MACb,UAAU;AAAA,QACT,SAAS;AAAA,MAAA;AAAA,MAEV,GAAG,IAAI;AAAA,IAAA;AAAA,EACR;AAEF;"}
@@ -33,10 +33,12 @@ const updateSettingsModification = ModificationHandler.createModificationType({
33
33
  });
34
34
  class UpdateSettingsDiffer {
35
35
  createDiff(originalSchema, updatedSchema) {
36
- const allKeys = Array.from(/* @__PURE__ */ new Set([
37
- ...Object.keys(originalSchema.settings),
38
- ...Object.keys(updatedSchema.settings)
39
- ]));
36
+ const allKeys = Array.from(
37
+ /* @__PURE__ */ new Set([
38
+ ...Object.keys(originalSchema.settings),
39
+ ...Object.keys(updatedSchema.settings)
40
+ ])
41
+ );
40
42
  return allKeys.filter((key) => !deepEqual(originalSchema.settings[key], updatedSchema.settings[key])).map((key) => {
41
43
  const value = updatedSchema.settings[key];
42
44
  if (value === void 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateSettingsModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/settings/UpdateSettingsModification.ts"],"sourcesContent":["import { Schema, Settings } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport deepEqual from 'fast-deep-equal'\n\nexport class UpdateSettingsModificationHandler implements ModificationHandler<UpdateSettingsModificationData> {\n\tconstructor(\n\t\tprivate readonly data: UpdateSettingsModificationData,\n\t) {\n\t}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\tconst { [this.data.key]: _, ...settings } = schema.settings\n\t\t\tif (this.data.op === 'unset') {\n\t\t\t\treturn {\n\t\t\t\t\t...schema,\n\t\t\t\t\tsettings,\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t...schema,\n\t\t\t\tsettings: { ...settings, [this.data.key]: this.data.value },\n\t\t\t}\n\t\t}\n\t}\n\n\n\tdescribe() {\n\t\treturn { message: `Change settings of ${this.data.key}` }\n\t}\n\n}\n\nexport const updateSettingsModification = createModificationType({\n\tid: 'updateSettings',\n\thandler: UpdateSettingsModificationHandler,\n})\n\nexport class UpdateSettingsDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\tconst allKeys = Array.from(new Set([\n\t\t\t...Object.keys(originalSchema.settings),\n\t\t\t...Object.keys(updatedSchema.settings),\n\t\t] as (keyof Settings.Schema)[]))\n\n\t\treturn allKeys\n\t\t\t.filter(key => !deepEqual(originalSchema.settings[key], updatedSchema.settings[key]))\n\t\t\t.map(key => {\n\t\t\t\tconst value = updatedSchema.settings[key]\n\t\t\t\tif (value === undefined) {\n\t\t\t\t\treturn updateSettingsModification.createModification({\n\t\t\t\t\t\top: 'unset',\n\t\t\t\t\t\tkey,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\treturn updateSettingsModification.createModification({\n\t\t\t\t\top: 'set',\n\t\t\t\t\tkey,\n\t\t\t\t\tvalue,\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n\n\n\nexport interface SetSettingsModificationData<K extends keyof Settings.Schema = keyof Settings.Schema> {\n\top: 'set'\n\tkey: K\n\tvalue: Settings.Schema[K]\n}\n\n\nexport interface UnsetSettingsModificationData<K extends keyof Settings.Schema = keyof Settings.Schema> {\n\top: 'unset'\n\tkey: K\n}\n\n\nexport type UpdateSettingsModificationData =\n\t| SetSettingsModificationData\n\t| UnsetSettingsModificationData\n"],"names":["createModificationType"],"mappings":";;;;AAKO,MAAM,kCAAiG;AAAA,EAC7G,YACkB,MAChB;AADgB,SAAA,OAAA;AAAA,EAAA;AAAA,EAIX,YAAkB;AAAA,EAAA;AAAA,EAGlB,mBAAkC;AACjC,WAAA,CAAC,EAAE,aAAa;AAChB,YAAA,EAAE,CAAC,KAAK,KAAK,GAAG,GAAG,GAAG,GAAG,aAAa,OAAO;AAC/C,UAAA,KAAK,KAAK,OAAO,SAAS;AACtB,eAAA;AAAA,UACN,GAAG;AAAA,UACH;AAAA,QACD;AAAA,MAAA;AAEM,aAAA;AAAA,QACN,GAAG;AAAA,QACH,UAAU,EAAE,GAAG,UAAU,CAAC,KAAK,KAAK,GAAG,GAAG,KAAK,KAAK,MAAM;AAAA,MAC3D;AAAA,IACD;AAAA,EAAA;AAAA,EAID,WAAW;AACV,WAAO,EAAE,SAAS,sBAAsB,KAAK,KAAK,GAAG,GAAG;AAAA,EAAA;AAG1D;AAEO,MAAM,6BAA6BA,oBAAAA,uBAAuB;AAAA,EAChE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,qBAAuC;AAAA,EACnD,WAAW,gBAAwB,eAAuB;AACzD,UAAM,UAAU,MAAM,KAAK,oBAAI,IAAI;AAAA,MAClC,GAAG,OAAO,KAAK,eAAe,QAAQ;AAAA,MACtC,GAAG,OAAO,KAAK,cAAc,QAAQ;AAAA,IAAA,CACR,CAAC;AAE/B,WAAO,QACL,OAAO,CAAA,QAAO,CAAC,UAAU,eAAe,SAAS,GAAG,GAAG,cAAc,SAAS,GAAG,CAAC,CAAC,EACnF,IAAI,CAAO,QAAA;AACL,YAAA,QAAQ,cAAc,SAAS,GAAG;AACxC,UAAI,UAAU,QAAW;AACxB,eAAO,2BAA2B,mBAAmB;AAAA,UACpD,IAAI;AAAA,UACJ;AAAA,QAAA,CACA;AAAA,MAAA;AAEF,aAAO,2BAA2B,mBAAmB;AAAA,QACpD,IAAI;AAAA,QACJ;AAAA,QACA;AAAA,MAAA,CACA;AAAA,IAAA,CACD;AAAA,EAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"UpdateSettingsModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/settings/UpdateSettingsModification.ts"],"sourcesContent":["import { Schema, Settings } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport deepEqual from 'fast-deep-equal'\n\nexport class UpdateSettingsModificationHandler implements ModificationHandler<UpdateSettingsModificationData> {\n\tconstructor(\n\t\tprivate readonly data: UpdateSettingsModificationData,\n\t) {\n\t}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\tconst { [this.data.key]: _, ...settings } = schema.settings\n\t\t\tif (this.data.op === 'unset') {\n\t\t\t\treturn {\n\t\t\t\t\t...schema,\n\t\t\t\t\tsettings,\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t...schema,\n\t\t\t\tsettings: { ...settings, [this.data.key]: this.data.value },\n\t\t\t}\n\t\t}\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Change settings of ${this.data.key}` }\n\t}\n}\n\nexport const updateSettingsModification = createModificationType({\n\tid: 'updateSettings',\n\thandler: UpdateSettingsModificationHandler,\n})\n\nexport class UpdateSettingsDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\tconst allKeys = Array.from(\n\t\t\tnew Set([\n\t\t\t\t...Object.keys(originalSchema.settings),\n\t\t\t\t...Object.keys(updatedSchema.settings),\n\t\t\t] as (keyof Settings.Schema)[]),\n\t\t)\n\n\t\treturn allKeys\n\t\t\t.filter(key => !deepEqual(originalSchema.settings[key], updatedSchema.settings[key]))\n\t\t\t.map(key => {\n\t\t\t\tconst value = updatedSchema.settings[key]\n\t\t\t\tif (value === undefined) {\n\t\t\t\t\treturn updateSettingsModification.createModification({\n\t\t\t\t\t\top: 'unset',\n\t\t\t\t\t\tkey,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\treturn updateSettingsModification.createModification({\n\t\t\t\t\top: 'set',\n\t\t\t\t\tkey,\n\t\t\t\t\tvalue,\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n\nexport interface SetSettingsModificationData<K extends keyof Settings.Schema = keyof Settings.Schema> {\n\top: 'set'\n\tkey: K\n\tvalue: Settings.Schema[K]\n}\n\nexport interface UnsetSettingsModificationData<K extends keyof Settings.Schema = keyof Settings.Schema> {\n\top: 'unset'\n\tkey: K\n}\n\nexport type UpdateSettingsModificationData =\n\t| SetSettingsModificationData\n\t| UnsetSettingsModificationData\n"],"names":["createModificationType"],"mappings":";;;;AAKO,MAAM,kCAAiG;AAAA,EAC7G,YACkB,MAChB;AADgB,SAAA,OAAA;AAAA,EAElB;AAAA,EAEO,YAAkB;AAAA,EACzB;AAAA,EAEO,mBAAkC;AACxC,WAAO,CAAC,EAAE,aAAa;AACtB,YAAM,EAAE,CAAC,KAAK,KAAK,GAAG,GAAG,GAAG,GAAG,aAAa,OAAO;AACnD,UAAI,KAAK,KAAK,OAAO,SAAS;AAC7B,eAAO;AAAA,UACN,GAAG;AAAA,UACH;AAAA,QAAA;AAAA,MAEF;AACA,aAAO;AAAA,QACN,GAAG;AAAA,QACH,UAAU,EAAE,GAAG,UAAU,CAAC,KAAK,KAAK,GAAG,GAAG,KAAK,KAAK,MAAA;AAAA,MAAM;AAAA,IAE5D;AAAA,EACD;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,sBAAsB,KAAK,KAAK,GAAG,GAAA;AAAA,EACtD;AACD;AAEO,MAAM,6BAA6BA,oBAAAA,uBAAuB;AAAA,EAChE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,qBAAuC;AAAA,EACnD,WAAW,gBAAwB,eAAuB;AACzD,UAAM,UAAU,MAAM;AAAA,0BACjB,IAAI;AAAA,QACP,GAAG,OAAO,KAAK,eAAe,QAAQ;AAAA,QACtC,GAAG,OAAO,KAAK,cAAc,QAAQ;AAAA,MAAA,CACR;AAAA,IAAA;AAG/B,WAAO,QACL,OAAO,CAAA,QAAO,CAAC,UAAU,eAAe,SAAS,GAAG,GAAG,cAAc,SAAS,GAAG,CAAC,CAAC,EACnF,IAAI,CAAA,QAAO;AACX,YAAM,QAAQ,cAAc,SAAS,GAAG;AACxC,UAAI,UAAU,QAAW;AACxB,eAAO,2BAA2B,mBAAmB;AAAA,UACpD,IAAI;AAAA,UACJ;AAAA,QAAA,CACA;AAAA,MACF;AACA,aAAO,2BAA2B,mBAAmB;AAAA,QACpD,IAAI;AAAA,QACJ;AAAA,QACA;AAAA,MAAA,CACA;AAAA,IACF,CAAC;AAAA,EACH;AACD;;;;"}
@@ -31,10 +31,12 @@ const updateSettingsModification = createModificationType({
31
31
  });
32
32
  class UpdateSettingsDiffer {
33
33
  createDiff(originalSchema, updatedSchema) {
34
- const allKeys = Array.from(/* @__PURE__ */ new Set([
35
- ...Object.keys(originalSchema.settings),
36
- ...Object.keys(updatedSchema.settings)
37
- ]));
34
+ const allKeys = Array.from(
35
+ /* @__PURE__ */ new Set([
36
+ ...Object.keys(originalSchema.settings),
37
+ ...Object.keys(updatedSchema.settings)
38
+ ])
39
+ );
38
40
  return allKeys.filter((key) => !deepEqual(originalSchema.settings[key], updatedSchema.settings[key])).map((key) => {
39
41
  const value = updatedSchema.settings[key];
40
42
  if (value === void 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateSettingsModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/settings/UpdateSettingsModification.ts"],"sourcesContent":["import { Schema, Settings } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport deepEqual from 'fast-deep-equal'\n\nexport class UpdateSettingsModificationHandler implements ModificationHandler<UpdateSettingsModificationData> {\n\tconstructor(\n\t\tprivate readonly data: UpdateSettingsModificationData,\n\t) {\n\t}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\tconst { [this.data.key]: _, ...settings } = schema.settings\n\t\t\tif (this.data.op === 'unset') {\n\t\t\t\treturn {\n\t\t\t\t\t...schema,\n\t\t\t\t\tsettings,\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t...schema,\n\t\t\t\tsettings: { ...settings, [this.data.key]: this.data.value },\n\t\t\t}\n\t\t}\n\t}\n\n\n\tdescribe() {\n\t\treturn { message: `Change settings of ${this.data.key}` }\n\t}\n\n}\n\nexport const updateSettingsModification = createModificationType({\n\tid: 'updateSettings',\n\thandler: UpdateSettingsModificationHandler,\n})\n\nexport class UpdateSettingsDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\tconst allKeys = Array.from(new Set([\n\t\t\t...Object.keys(originalSchema.settings),\n\t\t\t...Object.keys(updatedSchema.settings),\n\t\t] as (keyof Settings.Schema)[]))\n\n\t\treturn allKeys\n\t\t\t.filter(key => !deepEqual(originalSchema.settings[key], updatedSchema.settings[key]))\n\t\t\t.map(key => {\n\t\t\t\tconst value = updatedSchema.settings[key]\n\t\t\t\tif (value === undefined) {\n\t\t\t\t\treturn updateSettingsModification.createModification({\n\t\t\t\t\t\top: 'unset',\n\t\t\t\t\t\tkey,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\treturn updateSettingsModification.createModification({\n\t\t\t\t\top: 'set',\n\t\t\t\t\tkey,\n\t\t\t\t\tvalue,\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n\n\n\nexport interface SetSettingsModificationData<K extends keyof Settings.Schema = keyof Settings.Schema> {\n\top: 'set'\n\tkey: K\n\tvalue: Settings.Schema[K]\n}\n\n\nexport interface UnsetSettingsModificationData<K extends keyof Settings.Schema = keyof Settings.Schema> {\n\top: 'unset'\n\tkey: K\n}\n\n\nexport type UpdateSettingsModificationData =\n\t| SetSettingsModificationData\n\t| UnsetSettingsModificationData\n"],"names":[],"mappings":";;AAKO,MAAM,kCAAiG;AAAA,EAC7G,YACkB,MAChB;AADgB,SAAA,OAAA;AAAA,EAAA;AAAA,EAIX,YAAkB;AAAA,EAAA;AAAA,EAGlB,mBAAkC;AACjC,WAAA,CAAC,EAAE,aAAa;AAChB,YAAA,EAAE,CAAC,KAAK,KAAK,GAAG,GAAG,GAAG,GAAG,aAAa,OAAO;AAC/C,UAAA,KAAK,KAAK,OAAO,SAAS;AACtB,eAAA;AAAA,UACN,GAAG;AAAA,UACH;AAAA,QACD;AAAA,MAAA;AAEM,aAAA;AAAA,QACN,GAAG;AAAA,QACH,UAAU,EAAE,GAAG,UAAU,CAAC,KAAK,KAAK,GAAG,GAAG,KAAK,KAAK,MAAM;AAAA,MAC3D;AAAA,IACD;AAAA,EAAA;AAAA,EAID,WAAW;AACV,WAAO,EAAE,SAAS,sBAAsB,KAAK,KAAK,GAAG,GAAG;AAAA,EAAA;AAG1D;AAEO,MAAM,6BAA6B,uBAAuB;AAAA,EAChE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,qBAAuC;AAAA,EACnD,WAAW,gBAAwB,eAAuB;AACzD,UAAM,UAAU,MAAM,KAAK,oBAAI,IAAI;AAAA,MAClC,GAAG,OAAO,KAAK,eAAe,QAAQ;AAAA,MACtC,GAAG,OAAO,KAAK,cAAc,QAAQ;AAAA,IAAA,CACR,CAAC;AAE/B,WAAO,QACL,OAAO,CAAA,QAAO,CAAC,UAAU,eAAe,SAAS,GAAG,GAAG,cAAc,SAAS,GAAG,CAAC,CAAC,EACnF,IAAI,CAAO,QAAA;AACL,YAAA,QAAQ,cAAc,SAAS,GAAG;AACxC,UAAI,UAAU,QAAW;AACxB,eAAO,2BAA2B,mBAAmB;AAAA,UACpD,IAAI;AAAA,UACJ;AAAA,QAAA,CACA;AAAA,MAAA;AAEF,aAAO,2BAA2B,mBAAmB;AAAA,QACpD,IAAI;AAAA,QACJ;AAAA,QACA;AAAA,MAAA,CACA;AAAA,IAAA,CACD;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"UpdateSettingsModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/settings/UpdateSettingsModification.ts"],"sourcesContent":["import { Schema, Settings } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport deepEqual from 'fast-deep-equal'\n\nexport class UpdateSettingsModificationHandler implements ModificationHandler<UpdateSettingsModificationData> {\n\tconstructor(\n\t\tprivate readonly data: UpdateSettingsModificationData,\n\t) {\n\t}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\tconst { [this.data.key]: _, ...settings } = schema.settings\n\t\t\tif (this.data.op === 'unset') {\n\t\t\t\treturn {\n\t\t\t\t\t...schema,\n\t\t\t\t\tsettings,\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t...schema,\n\t\t\t\tsettings: { ...settings, [this.data.key]: this.data.value },\n\t\t\t}\n\t\t}\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Change settings of ${this.data.key}` }\n\t}\n}\n\nexport const updateSettingsModification = createModificationType({\n\tid: 'updateSettings',\n\thandler: UpdateSettingsModificationHandler,\n})\n\nexport class UpdateSettingsDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\tconst allKeys = Array.from(\n\t\t\tnew Set([\n\t\t\t\t...Object.keys(originalSchema.settings),\n\t\t\t\t...Object.keys(updatedSchema.settings),\n\t\t\t] as (keyof Settings.Schema)[]),\n\t\t)\n\n\t\treturn allKeys\n\t\t\t.filter(key => !deepEqual(originalSchema.settings[key], updatedSchema.settings[key]))\n\t\t\t.map(key => {\n\t\t\t\tconst value = updatedSchema.settings[key]\n\t\t\t\tif (value === undefined) {\n\t\t\t\t\treturn updateSettingsModification.createModification({\n\t\t\t\t\t\top: 'unset',\n\t\t\t\t\t\tkey,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\treturn updateSettingsModification.createModification({\n\t\t\t\t\top: 'set',\n\t\t\t\t\tkey,\n\t\t\t\t\tvalue,\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n\nexport interface SetSettingsModificationData<K extends keyof Settings.Schema = keyof Settings.Schema> {\n\top: 'set'\n\tkey: K\n\tvalue: Settings.Schema[K]\n}\n\nexport interface UnsetSettingsModificationData<K extends keyof Settings.Schema = keyof Settings.Schema> {\n\top: 'unset'\n\tkey: K\n}\n\nexport type UpdateSettingsModificationData =\n\t| SetSettingsModificationData\n\t| UnsetSettingsModificationData\n"],"names":[],"mappings":";;AAKO,MAAM,kCAAiG;AAAA,EAC7G,YACkB,MAChB;AADgB,SAAA,OAAA;AAAA,EAElB;AAAA,EAEO,YAAkB;AAAA,EACzB;AAAA,EAEO,mBAAkC;AACxC,WAAO,CAAC,EAAE,aAAa;AACtB,YAAM,EAAE,CAAC,KAAK,KAAK,GAAG,GAAG,GAAG,GAAG,aAAa,OAAO;AACnD,UAAI,KAAK,KAAK,OAAO,SAAS;AAC7B,eAAO;AAAA,UACN,GAAG;AAAA,UACH;AAAA,QAAA;AAAA,MAEF;AACA,aAAO;AAAA,QACN,GAAG;AAAA,QACH,UAAU,EAAE,GAAG,UAAU,CAAC,KAAK,KAAK,GAAG,GAAG,KAAK,KAAK,MAAA;AAAA,MAAM;AAAA,IAE5D;AAAA,EACD;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,sBAAsB,KAAK,KAAK,GAAG,GAAA;AAAA,EACtD;AACD;AAEO,MAAM,6BAA6B,uBAAuB;AAAA,EAChE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,qBAAuC;AAAA,EACnD,WAAW,gBAAwB,eAAuB;AACzD,UAAM,UAAU,MAAM;AAAA,0BACjB,IAAI;AAAA,QACP,GAAG,OAAO,KAAK,eAAe,QAAQ;AAAA,QACtC,GAAG,OAAO,KAAK,cAAc,QAAQ;AAAA,MAAA,CACR;AAAA,IAAA;AAG/B,WAAO,QACL,OAAO,CAAA,QAAO,CAAC,UAAU,eAAe,SAAS,GAAG,GAAG,cAAc,SAAS,GAAG,CAAC,CAAC,EACnF,IAAI,CAAA,QAAO;AACX,YAAM,QAAQ,cAAc,SAAS,GAAG;AACxC,UAAI,UAAU,QAAW;AACxB,eAAO,2BAA2B,mBAAmB;AAAA,UACpD,IAAI;AAAA,UACJ;AAAA,QAAA,CACA;AAAA,MACF;AACA,aAAO,2BAA2B,mBAAmB;AAAA,QACpD,IAAI;AAAA,QACJ;AAAA,QACA;AAAA,MAAA,CACA;AAAA,IACF,CAAC;AAAA,EACH;AACD;"}
@@ -3,8 +3,6 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const schemaUpdateUtils = require("../utils/schemaUpdateUtils.cjs");
4
4
  const ModificationHandler = require("../ModificationHandler.cjs");
5
5
  class RemoveIndexNamesModificationHandler {
6
- constructor() {
7
- }
8
6
  createSql() {
9
7
  }
10
8
  getSchemaUpdater() {
@@ -1 +1 @@
1
- {"version":3,"file":"RemoveIndexNamesModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/upgrade/RemoveIndexNamesModification.ts"],"sourcesContent":["import { Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEveryEntity, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\n\nexport class RemoveIndexNamesModificationHandler implements ModificationHandler<RemoveIndexNamesModificationData> {\n\tconstructor() {}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn updateModel(\n\t\t\tupdateEveryEntity(({ entity }) => {\n\t\t\t\treturn {\n\t\t\t\t\t...entity,\n\t\t\t\t\tindexes: entity.indexes.map(({ name, ...other }) => other),\n\t\t\t\t\tunique: entity.unique.map(it => {\n\t\t\t\t\t\tif ('name' in it) {\n\t\t\t\t\t\t\tconst { name, ...other } = it\n\t\t\t\t\t\t\treturn other\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn it\n\t\t\t\t\t}),\n\t\t\t\t}\n\t\t\t}),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Schema upgrade: remove names of indexes and unique constraints` }\n\t}\n}\n\nexport const removeIndexNamesModification = createModificationType({\n\tid: 'removeIndexNames',\n\thandler: RemoveIndexNamesModificationHandler,\n})\n\n\nexport type RemoveIndexNamesModificationData = {}\n\nexport class RemoveIndexNamesDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema) {\n\t\tconst hasNames = !!Object.values(originalSchema.model.entities).find(it => {\n\t\t\treturn it.indexes.find(it => !!it.name) || it.unique.find(it => 'name' in it && !!it.name)\n\t\t})\n\t\tif (hasNames) {\n\t\t\treturn [removeIndexNamesModification.createModification({})]\n\t\t}\n\t\treturn []\n\t}\n}\n"],"names":["updateModel","updateEveryEntity","createModificationType","it"],"mappings":";;;;AAIO,MAAM,oCAAsG;AAAA,EAClH,cAAc;AAAA,EAAA;AAAA,EAEP,YAAkB;AAAA,EAAA;AAAA,EAGlB,mBAAkC;AACjC,WAAAA,kBAAA;AAAA,MACNC,oCAAkB,CAAC,EAAE,aAAa;AAC1B,eAAA;AAAA,UACN,GAAG;AAAA,UACH,SAAS,OAAO,QAAQ,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,MAAM,KAAK;AAAA,UACzD,QAAQ,OAAO,OAAO,IAAI,CAAM,OAAA;AAC/B,gBAAI,UAAU,IAAI;AACjB,oBAAM,EAAE,MAAM,GAAG,MAAA,IAAU;AACpB,qBAAA;AAAA,YAAA;AAED,mBAAA;AAAA,UACP,CAAA;AAAA,QACF;AAAA,MACA,CAAA;AAAA,IACF;AAAA,EAAA;AAAA,EAGD,WAAW;AACH,WAAA,EAAE,SAAS,iEAAiE;AAAA,EAAA;AAErF;AAEO,MAAM,+BAA+BC,oBAAAA,uBAAuB;AAAA,EAClE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAKM,MAAM,uBAAyC;AAAA,EACrD,WAAW,gBAAwB;AAC5B,UAAA,WAAW,CAAC,CAAC,OAAO,OAAO,eAAe,MAAM,QAAQ,EAAE,KAAK,CAAM,OAAA;AACnE,aAAA,GAAG,QAAQ,KAAK,CAAAC,QAAM,CAAC,CAACA,IAAG,IAAI,KAAK,GAAG,OAAO,KAAK,CAAAA,QAAM,UAAUA,OAAM,CAAC,CAACA,IAAG,IAAI;AAAA,IAAA,CACzF;AACD,QAAI,UAAU;AACb,aAAO,CAAC,6BAA6B,mBAAmB,CAAA,CAAE,CAAC;AAAA,IAAA;AAE5D,WAAO,CAAC;AAAA,EAAA;AAEV;;;;"}
1
+ {"version":3,"file":"RemoveIndexNamesModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/upgrade/RemoveIndexNamesModification.ts"],"sourcesContent":["import { Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEveryEntity, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\n\nexport class RemoveIndexNamesModificationHandler implements ModificationHandler<RemoveIndexNamesModificationData> {\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn updateModel(\n\t\t\tupdateEveryEntity(({ entity }) => {\n\t\t\t\treturn {\n\t\t\t\t\t...entity,\n\t\t\t\t\tindexes: entity.indexes.map(({ name, ...other }) => other),\n\t\t\t\t\tunique: entity.unique.map(it => {\n\t\t\t\t\t\tif ('name' in it) {\n\t\t\t\t\t\t\tconst { name, ...other } = it\n\t\t\t\t\t\t\treturn other\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn it\n\t\t\t\t\t}),\n\t\t\t\t}\n\t\t\t}),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Schema upgrade: remove names of indexes and unique constraints` }\n\t}\n}\n\nexport const removeIndexNamesModification = createModificationType({\n\tid: 'removeIndexNames',\n\thandler: RemoveIndexNamesModificationHandler,\n})\n\nexport type RemoveIndexNamesModificationData = {}\n\nexport class RemoveIndexNamesDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema) {\n\t\tconst hasNames = !!Object.values(originalSchema.model.entities).find(it => {\n\t\t\treturn it.indexes.find(it => !!it.name) || it.unique.find(it => 'name' in it && !!it.name)\n\t\t})\n\t\tif (hasNames) {\n\t\t\treturn [removeIndexNamesModification.createModification({})]\n\t\t}\n\t\treturn []\n\t}\n}\n"],"names":["updateModel","updateEveryEntity","createModificationType","it"],"mappings":";;;;AAIO,MAAM,oCAAqG;AAAA,EAC1G,YAAkB;AAAA,EACzB;AAAA,EAEO,mBAAkC;AACxC,WAAOA,kBAAAA;AAAAA,MACNC,oCAAkB,CAAC,EAAE,aAAa;AACjC,eAAO;AAAA,UACN,GAAG;AAAA,UACH,SAAS,OAAO,QAAQ,IAAI,CAAC,EAAE,MAAM,GAAG,MAAA,MAAY,KAAK;AAAA,UACzD,QAAQ,OAAO,OAAO,IAAI,CAAA,OAAM;AAC/B,gBAAI,UAAU,IAAI;AACjB,oBAAM,EAAE,MAAM,GAAG,MAAA,IAAU;AAC3B,qBAAO;AAAA,YACR;AACA,mBAAO;AAAA,UACR,CAAC;AAAA,QAAA;AAAA,MAEH,CAAC;AAAA,IAAA;AAAA,EAEH;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,iEAAA;AAAA,EACnB;AACD;AAEO,MAAM,+BAA+BC,oBAAAA,uBAAuB;AAAA,EAClE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAIM,MAAM,uBAAyC;AAAA,EACrD,WAAW,gBAAwB;AAClC,UAAM,WAAW,CAAC,CAAC,OAAO,OAAO,eAAe,MAAM,QAAQ,EAAE,KAAK,CAAA,OAAM;AAC1E,aAAO,GAAG,QAAQ,KAAK,CAAAC,QAAM,CAAC,CAACA,IAAG,IAAI,KAAK,GAAG,OAAO,KAAK,CAAAA,QAAM,UAAUA,OAAM,CAAC,CAACA,IAAG,IAAI;AAAA,IAC1F,CAAC;AACD,QAAI,UAAU;AACb,aAAO,CAAC,6BAA6B,mBAAmB,CAAA,CAAE,CAAC;AAAA,IAC5D;AACA,WAAO,CAAA;AAAA,EACR;AACD;;;;"}
@@ -1,8 +1,6 @@
1
1
  import { updateModel, updateEveryEntity } from "../utils/schemaUpdateUtils.js";
2
2
  import { createModificationType } from "../ModificationHandler.js";
3
3
  class RemoveIndexNamesModificationHandler {
4
- constructor() {
5
- }
6
4
  createSql() {
7
5
  }
8
6
  getSchemaUpdater() {
@@ -1 +1 @@
1
- {"version":3,"file":"RemoveIndexNamesModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/upgrade/RemoveIndexNamesModification.ts"],"sourcesContent":["import { Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEveryEntity, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\n\nexport class RemoveIndexNamesModificationHandler implements ModificationHandler<RemoveIndexNamesModificationData> {\n\tconstructor() {}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn updateModel(\n\t\t\tupdateEveryEntity(({ entity }) => {\n\t\t\t\treturn {\n\t\t\t\t\t...entity,\n\t\t\t\t\tindexes: entity.indexes.map(({ name, ...other }) => other),\n\t\t\t\t\tunique: entity.unique.map(it => {\n\t\t\t\t\t\tif ('name' in it) {\n\t\t\t\t\t\t\tconst { name, ...other } = it\n\t\t\t\t\t\t\treturn other\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn it\n\t\t\t\t\t}),\n\t\t\t\t}\n\t\t\t}),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Schema upgrade: remove names of indexes and unique constraints` }\n\t}\n}\n\nexport const removeIndexNamesModification = createModificationType({\n\tid: 'removeIndexNames',\n\thandler: RemoveIndexNamesModificationHandler,\n})\n\n\nexport type RemoveIndexNamesModificationData = {}\n\nexport class RemoveIndexNamesDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema) {\n\t\tconst hasNames = !!Object.values(originalSchema.model.entities).find(it => {\n\t\t\treturn it.indexes.find(it => !!it.name) || it.unique.find(it => 'name' in it && !!it.name)\n\t\t})\n\t\tif (hasNames) {\n\t\t\treturn [removeIndexNamesModification.createModification({})]\n\t\t}\n\t\treturn []\n\t}\n}\n"],"names":["it"],"mappings":";;AAIO,MAAM,oCAAsG;AAAA,EAClH,cAAc;AAAA,EAAA;AAAA,EAEP,YAAkB;AAAA,EAAA;AAAA,EAGlB,mBAAkC;AACjC,WAAA;AAAA,MACN,kBAAkB,CAAC,EAAE,aAAa;AAC1B,eAAA;AAAA,UACN,GAAG;AAAA,UACH,SAAS,OAAO,QAAQ,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,MAAM,KAAK;AAAA,UACzD,QAAQ,OAAO,OAAO,IAAI,CAAM,OAAA;AAC/B,gBAAI,UAAU,IAAI;AACjB,oBAAM,EAAE,MAAM,GAAG,MAAA,IAAU;AACpB,qBAAA;AAAA,YAAA;AAED,mBAAA;AAAA,UACP,CAAA;AAAA,QACF;AAAA,MACA,CAAA;AAAA,IACF;AAAA,EAAA;AAAA,EAGD,WAAW;AACH,WAAA,EAAE,SAAS,iEAAiE;AAAA,EAAA;AAErF;AAEO,MAAM,+BAA+B,uBAAuB;AAAA,EAClE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAKM,MAAM,uBAAyC;AAAA,EACrD,WAAW,gBAAwB;AAC5B,UAAA,WAAW,CAAC,CAAC,OAAO,OAAO,eAAe,MAAM,QAAQ,EAAE,KAAK,CAAM,OAAA;AACnE,aAAA,GAAG,QAAQ,KAAK,CAAAA,QAAM,CAAC,CAACA,IAAG,IAAI,KAAK,GAAG,OAAO,KAAK,CAAAA,QAAM,UAAUA,OAAM,CAAC,CAACA,IAAG,IAAI;AAAA,IAAA,CACzF;AACD,QAAI,UAAU;AACb,aAAO,CAAC,6BAA6B,mBAAmB,CAAA,CAAE,CAAC;AAAA,IAAA;AAE5D,WAAO,CAAC;AAAA,EAAA;AAEV;"}
1
+ {"version":3,"file":"RemoveIndexNamesModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/upgrade/RemoveIndexNamesModification.ts"],"sourcesContent":["import { Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEveryEntity, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\n\nexport class RemoveIndexNamesModificationHandler implements ModificationHandler<RemoveIndexNamesModificationData> {\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn updateModel(\n\t\t\tupdateEveryEntity(({ entity }) => {\n\t\t\t\treturn {\n\t\t\t\t\t...entity,\n\t\t\t\t\tindexes: entity.indexes.map(({ name, ...other }) => other),\n\t\t\t\t\tunique: entity.unique.map(it => {\n\t\t\t\t\t\tif ('name' in it) {\n\t\t\t\t\t\t\tconst { name, ...other } = it\n\t\t\t\t\t\t\treturn other\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn it\n\t\t\t\t\t}),\n\t\t\t\t}\n\t\t\t}),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Schema upgrade: remove names of indexes and unique constraints` }\n\t}\n}\n\nexport const removeIndexNamesModification = createModificationType({\n\tid: 'removeIndexNames',\n\thandler: RemoveIndexNamesModificationHandler,\n})\n\nexport type RemoveIndexNamesModificationData = {}\n\nexport class RemoveIndexNamesDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema) {\n\t\tconst hasNames = !!Object.values(originalSchema.model.entities).find(it => {\n\t\t\treturn it.indexes.find(it => !!it.name) || it.unique.find(it => 'name' in it && !!it.name)\n\t\t})\n\t\tif (hasNames) {\n\t\t\treturn [removeIndexNamesModification.createModification({})]\n\t\t}\n\t\treturn []\n\t}\n}\n"],"names":["it"],"mappings":";;AAIO,MAAM,oCAAqG;AAAA,EAC1G,YAAkB;AAAA,EACzB;AAAA,EAEO,mBAAkC;AACxC,WAAO;AAAA,MACN,kBAAkB,CAAC,EAAE,aAAa;AACjC,eAAO;AAAA,UACN,GAAG;AAAA,UACH,SAAS,OAAO,QAAQ,IAAI,CAAC,EAAE,MAAM,GAAG,MAAA,MAAY,KAAK;AAAA,UACzD,QAAQ,OAAO,OAAO,IAAI,CAAA,OAAM;AAC/B,gBAAI,UAAU,IAAI;AACjB,oBAAM,EAAE,MAAM,GAAG,MAAA,IAAU;AAC3B,qBAAO;AAAA,YACR;AACA,mBAAO;AAAA,UACR,CAAC;AAAA,QAAA;AAAA,MAEH,CAAC;AAAA,IAAA;AAAA,EAEH;AAAA,EAEA,WAAW;AACV,WAAO,EAAE,SAAS,iEAAA;AAAA,EACnB;AACD;AAEO,MAAM,+BAA+B,uBAAuB;AAAA,EAClE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAIM,MAAM,uBAAyC;AAAA,EACrD,WAAW,gBAAwB;AAClC,UAAM,WAAW,CAAC,CAAC,OAAO,OAAO,eAAe,MAAM,QAAQ,EAAE,KAAK,CAAA,OAAM;AAC1E,aAAO,GAAG,QAAQ,KAAK,CAAAA,QAAM,CAAC,CAACA,IAAG,IAAI,KAAK,GAAG,OAAO,KAAK,CAAAA,QAAM,UAAUA,OAAM,CAAC,CAACA,IAAG,IAAI;AAAA,IAC1F,CAAC;AACD,QAAI,UAAU;AACb,aAAO,CAAC,6BAA6B,mBAAmB,CAAA,CAAE,CAAC;AAAA,IAC5D;AACA,WAAO,CAAA;AAAA,EACR;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"columnUtils.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/utils/columnUtils.ts"],"sourcesContent":["import { Model } from '@contember/schema'\n\nexport const getColumnSqlType = (column: Pick<Model.AnyColumn, 'type' | 'columnType' | 'list'>) =>\n\t(column.type === Model.ColumnType.Enum\n\t\t? `\"${column.columnType}\"`\n\t\t: column.columnType\n\t)\n\t+ (column.list ? '[]' : '')\n"],"names":["Model"],"mappings":";;;AAEO,MAAM,mBAAmB,CAAC,YAC/B,OAAO,SAASA,aAAM,WAAW,OAC/B,IAAI,OAAO,UAAU,MACrB,OAAO,eAEP,OAAO,OAAO,OAAO;;"}
1
+ {"version":3,"file":"columnUtils.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/utils/columnUtils.ts"],"sourcesContent":["import { Model } from '@contember/schema'\n\nexport const getColumnSqlType = (column: Pick<Model.AnyColumn, 'type' | 'columnType' | 'list'>) =>\n\t(column.type === Model.ColumnType.Enum\n\t\t? `\"${column.columnType}\"`\n\t\t: column.columnType)\n\t+ (column.list ? '[]' : '')\n"],"names":["Model"],"mappings":";;;AAEO,MAAM,mBAAmB,CAAC,YAC/B,OAAO,SAASA,aAAM,WAAW,OAC/B,IAAI,OAAO,UAAU,MACrB,OAAO,eACP,OAAO,OAAO,OAAO;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"columnUtils.js","sources":["../../../../../../packages/schema-migrations/src/modifications/utils/columnUtils.ts"],"sourcesContent":["import { Model } from '@contember/schema'\n\nexport const getColumnSqlType = (column: Pick<Model.AnyColumn, 'type' | 'columnType' | 'list'>) =>\n\t(column.type === Model.ColumnType.Enum\n\t\t? `\"${column.columnType}\"`\n\t\t: column.columnType\n\t)\n\t+ (column.list ? '[]' : '')\n"],"names":[],"mappings":";AAEO,MAAM,mBAAmB,CAAC,YAC/B,OAAO,SAAS,MAAM,WAAW,OAC/B,IAAI,OAAO,UAAU,MACrB,OAAO,eAEP,OAAO,OAAO,OAAO;"}
1
+ {"version":3,"file":"columnUtils.js","sources":["../../../../../../packages/schema-migrations/src/modifications/utils/columnUtils.ts"],"sourcesContent":["import { Model } from '@contember/schema'\n\nexport const getColumnSqlType = (column: Pick<Model.AnyColumn, 'type' | 'columnType' | 'list'>) =>\n\t(column.type === Model.ColumnType.Enum\n\t\t? `\"${column.columnType}\"`\n\t\t: column.columnType)\n\t+ (column.list ? '[]' : '')\n"],"names":[],"mappings":";AAEO,MAAM,mBAAmB,CAAC,YAC/B,OAAO,SAAS,MAAM,WAAW,OAC/B,IAAI,OAAO,UAAU,MACrB,OAAO,eACP,OAAO,OAAO,OAAO;"}
@@ -1 +1 @@
1
- {"version":3,"file":"createJunctionTable.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/utils/createJunctionTable.ts"],"sourcesContent":["import { createEventTrigger, createEventTrxTrigger } from './sqlUpdateUtils'\nimport { MigrationBuilder } from '@contember/database-migrations'\nimport { Model, Schema } from '@contember/schema'\nimport { getPrimaryColumnType } from './getPrimaryColumnType'\nimport { wrapIdentifier } from '../../utils/dbHelpers'\n\nexport const createJunctionTableSql = (\n\tbuilder: MigrationBuilder,\n\tsystemSchema: string,\n\tschema: Schema,\n\tentity: Model.Entity,\n\ttargetEntity: Model.Entity,\n\trelation: Model.ManyHasManyOwningRelation,\n) => {\n\tconst primaryColumns = [\n\t\trelation.joiningTable.joiningColumn.columnName,\n\t\trelation.joiningTable.inverseJoiningColumn.columnName,\n\t]\n\tbuilder.createTable(\n\t\trelation.joiningTable.tableName,\n\t\t{\n\t\t\t[relation.joiningTable.joiningColumn.columnName]: {\n\t\t\t\ttype: getPrimaryColumnType(entity),\n\t\t\t\tnotNull: true,\n\t\t\t\treferences: `\"${entity.tableName}\"(\"${entity.primaryColumn}\")`,\n\t\t\t\tonDelete: 'CASCADE',\n\t\t\t},\n\t\t\t[relation.joiningTable.inverseJoiningColumn.columnName]: {\n\t\t\t\ttype: getPrimaryColumnType(targetEntity),\n\t\t\t\tnotNull: true,\n\t\t\t\treferences: `\"${targetEntity.tableName}\"(\"${targetEntity.primaryColumn}\")`,\n\t\t\t\tonDelete: 'CASCADE',\n\t\t\t},\n\t\t},\n\t)\n\n\tconst tableNameId = wrapIdentifier(relation.joiningTable.tableName)\n\tconst columnNameId = primaryColumns.map(wrapIdentifier)\n\tbuilder.sql(`ALTER TABLE ${tableNameId} ADD PRIMARY KEY (${columnNameId.join(', ')})`)\n\n\tif (relation.joiningTable.eventLog.enabled) {\n\t\tcreateEventTrigger(builder, systemSchema, relation.joiningTable.tableName, primaryColumns)\n\t\tcreateEventTrxTrigger(builder, systemSchema, relation.joiningTable.tableName)\n\t}\n}\n"],"names":["getPrimaryColumnType","wrapIdentifier","createEventTrigger","createEventTrxTrigger"],"mappings":";;;;;AAMO,MAAM,yBAAyB,CACrC,SACA,cACA,QACA,QACA,cACA,aACI;AACJ,QAAM,iBAAiB;AAAA,IACtB,SAAS,aAAa,cAAc;AAAA,IACpC,SAAS,aAAa,qBAAqB;AAAA,EAC5C;AACQ,UAAA;AAAA,IACP,SAAS,aAAa;AAAA,IACtB;AAAA,MACC,CAAC,SAAS,aAAa,cAAc,UAAU,GAAG;AAAA,QACjD,MAAMA,0CAAqB,MAAM;AAAA,QACjC,SAAS;AAAA,QACT,YAAY,IAAI,OAAO,SAAS,MAAM,OAAO,aAAa;AAAA,QAC1D,UAAU;AAAA,MACX;AAAA,MACA,CAAC,SAAS,aAAa,qBAAqB,UAAU,GAAG;AAAA,QACxD,MAAMA,0CAAqB,YAAY;AAAA,QACvC,SAAS;AAAA,QACT,YAAY,IAAI,aAAa,SAAS,MAAM,aAAa,aAAa;AAAA,QACtE,UAAU;AAAA,MAAA;AAAA,IACX;AAAA,EAEF;AAEA,QAAM,cAAcC,UAAA,eAAe,SAAS,aAAa,SAAS;AAC5D,QAAA,eAAe,eAAe,IAAIA,wBAAc;AAC9C,UAAA,IAAI,eAAe,WAAW,qBAAqB,aAAa,KAAK,IAAI,CAAC,GAAG;AAEjF,MAAA,SAAS,aAAa,SAAS,SAAS;AAC3CC,mBAAA,mBAAmB,SAAS,cAAc,SAAS,aAAa,WAAW,cAAc;AACzFC,mBAAAA,sBAAsB,SAAS,cAAc,SAAS,aAAa,SAAS;AAAA,EAAA;AAE9E;;"}
1
+ {"version":3,"file":"createJunctionTable.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/utils/createJunctionTable.ts"],"sourcesContent":["import { createEventTrigger, createEventTrxTrigger } from './sqlUpdateUtils'\nimport { MigrationBuilder } from '@contember/database-migrations'\nimport { Model, Schema } from '@contember/schema'\nimport { getPrimaryColumnType } from './getPrimaryColumnType'\nimport { wrapIdentifier } from '../../utils/dbHelpers'\n\nexport const createJunctionTableSql = (\n\tbuilder: MigrationBuilder,\n\tsystemSchema: string,\n\tschema: Schema,\n\tentity: Model.Entity,\n\ttargetEntity: Model.Entity,\n\trelation: Model.ManyHasManyOwningRelation,\n) => {\n\tconst primaryColumns = [\n\t\trelation.joiningTable.joiningColumn.columnName,\n\t\trelation.joiningTable.inverseJoiningColumn.columnName,\n\t]\n\tbuilder.createTable(\n\t\trelation.joiningTable.tableName,\n\t\t{\n\t\t\t[relation.joiningTable.joiningColumn.columnName]: {\n\t\t\t\ttype: getPrimaryColumnType(entity),\n\t\t\t\tnotNull: true,\n\t\t\t\treferences: `\"${entity.tableName}\"(\"${entity.primaryColumn}\")`,\n\t\t\t\tonDelete: 'CASCADE',\n\t\t\t},\n\t\t\t[relation.joiningTable.inverseJoiningColumn.columnName]: {\n\t\t\t\ttype: getPrimaryColumnType(targetEntity),\n\t\t\t\tnotNull: true,\n\t\t\t\treferences: `\"${targetEntity.tableName}\"(\"${targetEntity.primaryColumn}\")`,\n\t\t\t\tonDelete: 'CASCADE',\n\t\t\t},\n\t\t},\n\t)\n\n\tconst tableNameId = wrapIdentifier(relation.joiningTable.tableName)\n\tconst columnNameId = primaryColumns.map(wrapIdentifier)\n\tbuilder.sql(`ALTER TABLE ${tableNameId} ADD PRIMARY KEY (${columnNameId.join(', ')})`)\n\n\tif (relation.joiningTable.eventLog.enabled) {\n\t\tcreateEventTrigger(builder, systemSchema, relation.joiningTable.tableName, primaryColumns)\n\t\tcreateEventTrxTrigger(builder, systemSchema, relation.joiningTable.tableName)\n\t}\n}\n"],"names":["getPrimaryColumnType","wrapIdentifier","createEventTrigger","createEventTrxTrigger"],"mappings":";;;;;AAMO,MAAM,yBAAyB,CACrC,SACA,cACA,QACA,QACA,cACA,aACI;AACJ,QAAM,iBAAiB;AAAA,IACtB,SAAS,aAAa,cAAc;AAAA,IACpC,SAAS,aAAa,qBAAqB;AAAA,EAAA;AAE5C,UAAQ;AAAA,IACP,SAAS,aAAa;AAAA,IACtB;AAAA,MACC,CAAC,SAAS,aAAa,cAAc,UAAU,GAAG;AAAA,QACjD,MAAMA,qBAAAA,qBAAqB,MAAM;AAAA,QACjC,SAAS;AAAA,QACT,YAAY,IAAI,OAAO,SAAS,MAAM,OAAO,aAAa;AAAA,QAC1D,UAAU;AAAA,MAAA;AAAA,MAEX,CAAC,SAAS,aAAa,qBAAqB,UAAU,GAAG;AAAA,QACxD,MAAMA,qBAAAA,qBAAqB,YAAY;AAAA,QACvC,SAAS;AAAA,QACT,YAAY,IAAI,aAAa,SAAS,MAAM,aAAa,aAAa;AAAA,QACtE,UAAU;AAAA,MAAA;AAAA,IACX;AAAA,EACD;AAGD,QAAM,cAAcC,UAAAA,eAAe,SAAS,aAAa,SAAS;AAClE,QAAM,eAAe,eAAe,IAAIA,wBAAc;AACtD,UAAQ,IAAI,eAAe,WAAW,qBAAqB,aAAa,KAAK,IAAI,CAAC,GAAG;AAErF,MAAI,SAAS,aAAa,SAAS,SAAS;AAC3CC,mBAAAA,mBAAmB,SAAS,cAAc,SAAS,aAAa,WAAW,cAAc;AACzFC,mBAAAA,sBAAsB,SAAS,cAAc,SAAS,aAAa,SAAS;AAAA,EAC7E;AACD;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"createJunctionTable.js","sources":["../../../../../../packages/schema-migrations/src/modifications/utils/createJunctionTable.ts"],"sourcesContent":["import { createEventTrigger, createEventTrxTrigger } from './sqlUpdateUtils'\nimport { MigrationBuilder } from '@contember/database-migrations'\nimport { Model, Schema } from '@contember/schema'\nimport { getPrimaryColumnType } from './getPrimaryColumnType'\nimport { wrapIdentifier } from '../../utils/dbHelpers'\n\nexport const createJunctionTableSql = (\n\tbuilder: MigrationBuilder,\n\tsystemSchema: string,\n\tschema: Schema,\n\tentity: Model.Entity,\n\ttargetEntity: Model.Entity,\n\trelation: Model.ManyHasManyOwningRelation,\n) => {\n\tconst primaryColumns = [\n\t\trelation.joiningTable.joiningColumn.columnName,\n\t\trelation.joiningTable.inverseJoiningColumn.columnName,\n\t]\n\tbuilder.createTable(\n\t\trelation.joiningTable.tableName,\n\t\t{\n\t\t\t[relation.joiningTable.joiningColumn.columnName]: {\n\t\t\t\ttype: getPrimaryColumnType(entity),\n\t\t\t\tnotNull: true,\n\t\t\t\treferences: `\"${entity.tableName}\"(\"${entity.primaryColumn}\")`,\n\t\t\t\tonDelete: 'CASCADE',\n\t\t\t},\n\t\t\t[relation.joiningTable.inverseJoiningColumn.columnName]: {\n\t\t\t\ttype: getPrimaryColumnType(targetEntity),\n\t\t\t\tnotNull: true,\n\t\t\t\treferences: `\"${targetEntity.tableName}\"(\"${targetEntity.primaryColumn}\")`,\n\t\t\t\tonDelete: 'CASCADE',\n\t\t\t},\n\t\t},\n\t)\n\n\tconst tableNameId = wrapIdentifier(relation.joiningTable.tableName)\n\tconst columnNameId = primaryColumns.map(wrapIdentifier)\n\tbuilder.sql(`ALTER TABLE ${tableNameId} ADD PRIMARY KEY (${columnNameId.join(', ')})`)\n\n\tif (relation.joiningTable.eventLog.enabled) {\n\t\tcreateEventTrigger(builder, systemSchema, relation.joiningTable.tableName, primaryColumns)\n\t\tcreateEventTrxTrigger(builder, systemSchema, relation.joiningTable.tableName)\n\t}\n}\n"],"names":[],"mappings":";;;AAMO,MAAM,yBAAyB,CACrC,SACA,cACA,QACA,QACA,cACA,aACI;AACJ,QAAM,iBAAiB;AAAA,IACtB,SAAS,aAAa,cAAc;AAAA,IACpC,SAAS,aAAa,qBAAqB;AAAA,EAC5C;AACQ,UAAA;AAAA,IACP,SAAS,aAAa;AAAA,IACtB;AAAA,MACC,CAAC,SAAS,aAAa,cAAc,UAAU,GAAG;AAAA,QACjD,MAAM,qBAAqB,MAAM;AAAA,QACjC,SAAS;AAAA,QACT,YAAY,IAAI,OAAO,SAAS,MAAM,OAAO,aAAa;AAAA,QAC1D,UAAU;AAAA,MACX;AAAA,MACA,CAAC,SAAS,aAAa,qBAAqB,UAAU,GAAG;AAAA,QACxD,MAAM,qBAAqB,YAAY;AAAA,QACvC,SAAS;AAAA,QACT,YAAY,IAAI,aAAa,SAAS,MAAM,aAAa,aAAa;AAAA,QACtE,UAAU;AAAA,MAAA;AAAA,IACX;AAAA,EAEF;AAEA,QAAM,cAAc,eAAe,SAAS,aAAa,SAAS;AAC5D,QAAA,eAAe,eAAe,IAAI,cAAc;AAC9C,UAAA,IAAI,eAAe,WAAW,qBAAqB,aAAa,KAAK,IAAI,CAAC,GAAG;AAEjF,MAAA,SAAS,aAAa,SAAS,SAAS;AAC3C,uBAAmB,SAAS,cAAc,SAAS,aAAa,WAAW,cAAc;AACzF,0BAAsB,SAAS,cAAc,SAAS,aAAa,SAAS;AAAA,EAAA;AAE9E;"}
1
+ {"version":3,"file":"createJunctionTable.js","sources":["../../../../../../packages/schema-migrations/src/modifications/utils/createJunctionTable.ts"],"sourcesContent":["import { createEventTrigger, createEventTrxTrigger } from './sqlUpdateUtils'\nimport { MigrationBuilder } from '@contember/database-migrations'\nimport { Model, Schema } from '@contember/schema'\nimport { getPrimaryColumnType } from './getPrimaryColumnType'\nimport { wrapIdentifier } from '../../utils/dbHelpers'\n\nexport const createJunctionTableSql = (\n\tbuilder: MigrationBuilder,\n\tsystemSchema: string,\n\tschema: Schema,\n\tentity: Model.Entity,\n\ttargetEntity: Model.Entity,\n\trelation: Model.ManyHasManyOwningRelation,\n) => {\n\tconst primaryColumns = [\n\t\trelation.joiningTable.joiningColumn.columnName,\n\t\trelation.joiningTable.inverseJoiningColumn.columnName,\n\t]\n\tbuilder.createTable(\n\t\trelation.joiningTable.tableName,\n\t\t{\n\t\t\t[relation.joiningTable.joiningColumn.columnName]: {\n\t\t\t\ttype: getPrimaryColumnType(entity),\n\t\t\t\tnotNull: true,\n\t\t\t\treferences: `\"${entity.tableName}\"(\"${entity.primaryColumn}\")`,\n\t\t\t\tonDelete: 'CASCADE',\n\t\t\t},\n\t\t\t[relation.joiningTable.inverseJoiningColumn.columnName]: {\n\t\t\t\ttype: getPrimaryColumnType(targetEntity),\n\t\t\t\tnotNull: true,\n\t\t\t\treferences: `\"${targetEntity.tableName}\"(\"${targetEntity.primaryColumn}\")`,\n\t\t\t\tonDelete: 'CASCADE',\n\t\t\t},\n\t\t},\n\t)\n\n\tconst tableNameId = wrapIdentifier(relation.joiningTable.tableName)\n\tconst columnNameId = primaryColumns.map(wrapIdentifier)\n\tbuilder.sql(`ALTER TABLE ${tableNameId} ADD PRIMARY KEY (${columnNameId.join(', ')})`)\n\n\tif (relation.joiningTable.eventLog.enabled) {\n\t\tcreateEventTrigger(builder, systemSchema, relation.joiningTable.tableName, primaryColumns)\n\t\tcreateEventTrxTrigger(builder, systemSchema, relation.joiningTable.tableName)\n\t}\n}\n"],"names":[],"mappings":";;;AAMO,MAAM,yBAAyB,CACrC,SACA,cACA,QACA,QACA,cACA,aACI;AACJ,QAAM,iBAAiB;AAAA,IACtB,SAAS,aAAa,cAAc;AAAA,IACpC,SAAS,aAAa,qBAAqB;AAAA,EAAA;AAE5C,UAAQ;AAAA,IACP,SAAS,aAAa;AAAA,IACtB;AAAA,MACC,CAAC,SAAS,aAAa,cAAc,UAAU,GAAG;AAAA,QACjD,MAAM,qBAAqB,MAAM;AAAA,QACjC,SAAS;AAAA,QACT,YAAY,IAAI,OAAO,SAAS,MAAM,OAAO,aAAa;AAAA,QAC1D,UAAU;AAAA,MAAA;AAAA,MAEX,CAAC,SAAS,aAAa,qBAAqB,UAAU,GAAG;AAAA,QACxD,MAAM,qBAAqB,YAAY;AAAA,QACvC,SAAS;AAAA,QACT,YAAY,IAAI,aAAa,SAAS,MAAM,aAAa,aAAa;AAAA,QACtE,UAAU;AAAA,MAAA;AAAA,IACX;AAAA,EACD;AAGD,QAAM,cAAc,eAAe,SAAS,aAAa,SAAS;AAClE,QAAM,eAAe,eAAe,IAAI,cAAc;AACtD,UAAQ,IAAI,eAAe,WAAW,qBAAqB,aAAa,KAAK,IAAI,CAAC,GAAG;AAErF,MAAI,SAAS,aAAa,SAAS,SAAS;AAC3C,uBAAmB,SAAS,cAAc,SAAS,aAAa,WAAW,cAAc;AACzF,0BAAsB,SAAS,cAAc,SAAS,aAAa,SAAS;AAAA,EAC7E;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"diffUtils.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/utils/diffUtils.ts"],"sourcesContent":["import { Model, Schema } from '@contember/schema'\nimport { Migration } from '../../Migration'\nimport { isColumn, isRelation } from '@contember/schema-utils'\nimport { isDefined } from '../../utils/isDefined'\nimport deepEqual from 'fast-deep-equal'\n\nexport const updateFields = <Data = { [field: string]: any }>(\n\toriginalSchema: Schema,\n\tupdatedSchema: Schema,\n\tmodificationGenerator: (args: {\n\t\toriginalEntity: Model.Entity\n\t\tupdatedEntity: Model.Entity\n\t\toriginalField: Model.AnyField\n\t\tupdatedField: Model.AnyField\n\t}) => Migration.Modification<Data> | Migration.Modification<Data>[] | undefined,\n): Migration.Modification<Data>[] => {\n\treturn Object.values(updatedSchema.model.entities)\n\t\t.filter(({ name }) => originalSchema.model.entities[name])\n\t\t.flatMap(updatedEntity => {\n\t\t\tconst originalEntity = originalSchema.model.entities[updatedEntity.name]\n\n\t\t\treturn Object.values(updatedEntity.fields)\n\t\t\t\t.flatMap(updatedField => {\n\t\t\t\t\tconst originalField = originalEntity.fields[updatedField.name]\n\t\t\t\t\tif (!originalField) {\n\t\t\t\t\t\treturn undefined\n\t\t\t\t\t}\n\t\t\t\t\tif (deepEqual(originalField, updatedField)) {\n\t\t\t\t\t\treturn undefined\n\t\t\t\t\t}\n\t\t\t\t\tconst result = modificationGenerator({\n\t\t\t\t\t\toriginalEntity,\n\t\t\t\t\t\tupdatedEntity,\n\t\t\t\t\t\toriginalField,\n\t\t\t\t\t\tupdatedField,\n\t\t\t\t\t})\n\t\t\t\t\tif (result !== undefined && !Array.isArray(result)) {\n\t\t\t\t\t\treturn [result]\n\t\t\t\t\t}\n\t\t\t\t\treturn result\n\t\t\t\t})\n\t\t\t\t.filter(isDefined)\n\t\t})\n}\n\nexport const updateColumns = <Data = { [field: string]: any }>(\n\toriginalSchema: Schema,\n\tupdatedSchema: Schema,\n\tmodificationGenerator: (args: {\n\t\toriginalEntity: Model.Entity\n\t\toriginalColumn: Model.AnyColumn\n\t\tupdatedEntity: Model.Entity\n\t\tupdatedColumn: Model.AnyColumn\n\t}) => Migration.Modification<Data> | undefined,\n): Migration.Modification<Data>[] => {\n\treturn updateFields(\n\t\toriginalSchema,\n\t\tupdatedSchema,\n\t\t({ updatedEntity, originalEntity, originalField, updatedField }) => {\n\t\t\tif (!isColumn(updatedField) || !isColumn(originalField)) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\treturn modificationGenerator({\n\t\t\t\toriginalEntity,\n\t\t\t\tupdatedEntity,\n\t\t\t\toriginalColumn: originalField,\n\t\t\t\tupdatedColumn: updatedField,\n\t\t\t})\n\t\t},\n\t)\n}\n\nexport const updateRelations = <Data = { [field: string]: any }>(\n\toriginalSchema: Schema,\n\tupdatedSchema: Schema,\n\tmodificationGenerator: (args: {\n\t\toriginalEntity: Model.Entity\n\t\toriginalRelation: Model.AnyRelation\n\t\tupdatedEntity: Model.Entity\n\t\tupdatedRelation: Model.AnyRelation\n\t}) => Migration.Modification<Data> | undefined,\n): Migration.Modification<Data>[] => {\n\treturn updateFields(\n\t\toriginalSchema,\n\t\tupdatedSchema,\n\t\t({ updatedEntity, originalEntity, originalField, updatedField }) => {\n\t\t\tif (!isRelation(updatedField) || !isRelation(originalField)) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\treturn modificationGenerator({\n\t\t\t\toriginalEntity,\n\t\t\t\tupdatedEntity,\n\t\t\t\toriginalRelation: originalField,\n\t\t\t\tupdatedRelation: updatedField,\n\t\t\t})\n\t\t},\n\t)\n}\n\nexport const createFields = <Data = { [field: string]: any }>(\n\toriginalSchema: Schema,\n\tupdatedSchema: Schema,\n\tmodificationGenerator: (args: {\n\t\toriginalEntity: Model.Entity\n\t\tupdatedEntity: Model.Entity\n\t\tnewField: Model.AnyField\n\t}) => Migration.Modification<Data> | undefined,\n): Migration.Modification<Data>[] => {\n\treturn Object.values(updatedSchema.model.entities)\n\t\t.filter(({ name }) => originalSchema.model.entities[name])\n\t\t.flatMap(updatedEntity => {\n\t\t\tconst originalEntity = originalSchema.model.entities[updatedEntity.name]\n\n\t\t\treturn Object.values(updatedEntity.fields)\n\t\t\t\t.filter(it => !originalEntity.fields[it.name])\n\t\t\t\t.map(newField => {\n\t\t\t\t\treturn modificationGenerator({\n\t\t\t\t\t\tnewField,\n\t\t\t\t\t\tupdatedEntity,\n\t\t\t\t\t\toriginalEntity,\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t\t.filter(isDefined)\n\t\t})\n}\n"],"names":["isDefined","isColumn","isRelation"],"mappings":";;;;;AAMO,MAAM,eAAe,CAC3B,gBACA,eACA,0BAMoC;AACpC,SAAO,OAAO,OAAO,cAAc,MAAM,QAAQ,EAC/C,OAAO,CAAC,EAAE,KAAK,MAAM,eAAe,MAAM,SAAS,IAAI,CAAC,EACxD,QAAQ,CAAiB,kBAAA;AACzB,UAAM,iBAAiB,eAAe,MAAM,SAAS,cAAc,IAAI;AAEvE,WAAO,OAAO,OAAO,cAAc,MAAM,EACvC,QAAQ,CAAgB,iBAAA;AACxB,YAAM,gBAAgB,eAAe,OAAO,aAAa,IAAI;AAC7D,UAAI,CAAC,eAAe;AACZ,eAAA;AAAA,MAAA;AAEJ,UAAA,UAAU,eAAe,YAAY,GAAG;AACpC,eAAA;AAAA,MAAA;AAER,YAAM,SAAS,sBAAsB;AAAA,QACpC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACA;AACD,UAAI,WAAW,UAAa,CAAC,MAAM,QAAQ,MAAM,GAAG;AACnD,eAAO,CAAC,MAAM;AAAA,MAAA;AAER,aAAA;AAAA,IAAA,CACP,EACA,OAAOA,mBAAS;AAAA,EAAA,CAClB;AACH;AAEO,MAAM,gBAAgB,CAC5B,gBACA,eACA,0BAMoC;AAC7B,SAAA;AAAA,IACN;AAAA,IACA;AAAA,IACA,CAAC,EAAE,eAAe,gBAAgB,eAAe,mBAAmB;AACnE,UAAI,CAACC,YAAS,SAAA,YAAY,KAAK,CAACA,YAAA,SAAS,aAAa,GAAG;AACjD,eAAA;AAAA,MAAA;AAER,aAAO,sBAAsB;AAAA,QAC5B;AAAA,QACA;AAAA,QACA,gBAAgB;AAAA,QAChB,eAAe;AAAA,MAAA,CACf;AAAA,IAAA;AAAA,EAEH;AACD;AAEO,MAAM,kBAAkB,CAC9B,gBACA,eACA,0BAMoC;AAC7B,SAAA;AAAA,IACN;AAAA,IACA;AAAA,IACA,CAAC,EAAE,eAAe,gBAAgB,eAAe,mBAAmB;AACnE,UAAI,CAACC,YAAW,WAAA,YAAY,KAAK,CAACA,YAAA,WAAW,aAAa,GAAG;AACrD,eAAA;AAAA,MAAA;AAER,aAAO,sBAAsB;AAAA,QAC5B;AAAA,QACA;AAAA,QACA,kBAAkB;AAAA,QAClB,iBAAiB;AAAA,MAAA,CACjB;AAAA,IAAA;AAAA,EAEH;AACD;AAEO,MAAM,eAAe,CAC3B,gBACA,eACA,0BAKoC;AACpC,SAAO,OAAO,OAAO,cAAc,MAAM,QAAQ,EAC/C,OAAO,CAAC,EAAE,KAAK,MAAM,eAAe,MAAM,SAAS,IAAI,CAAC,EACxD,QAAQ,CAAiB,kBAAA;AACzB,UAAM,iBAAiB,eAAe,MAAM,SAAS,cAAc,IAAI;AAEvE,WAAO,OAAO,OAAO,cAAc,MAAM,EACvC,OAAO,CAAA,OAAM,CAAC,eAAe,OAAO,GAAG,IAAI,CAAC,EAC5C,IAAI,CAAY,aAAA;AAChB,aAAO,sBAAsB;AAAA,QAC5B;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACA;AAAA,IAAA,CACD,EACA,OAAOF,mBAAS;AAAA,EAAA,CAClB;AACH;;;;;"}
1
+ {"version":3,"file":"diffUtils.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/utils/diffUtils.ts"],"sourcesContent":["import { Model, Schema } from '@contember/schema'\nimport { Migration } from '../../Migration'\nimport { isColumn, isRelation } from '@contember/schema-utils'\nimport { isDefined } from '../../utils/isDefined'\nimport deepEqual from 'fast-deep-equal'\n\nexport const updateFields = <Data = { [field: string]: any }>(\n\toriginalSchema: Schema,\n\tupdatedSchema: Schema,\n\tmodificationGenerator: (args: {\n\t\toriginalEntity: Model.Entity\n\t\tupdatedEntity: Model.Entity\n\t\toriginalField: Model.AnyField\n\t\tupdatedField: Model.AnyField\n\t}) => Migration.Modification<Data> | Migration.Modification<Data>[] | undefined,\n): Migration.Modification<Data>[] => {\n\treturn Object.values(updatedSchema.model.entities)\n\t\t.filter(({ name }) => originalSchema.model.entities[name])\n\t\t.flatMap(updatedEntity => {\n\t\t\tconst originalEntity = originalSchema.model.entities[updatedEntity.name]\n\n\t\t\treturn Object.values(updatedEntity.fields)\n\t\t\t\t.flatMap(updatedField => {\n\t\t\t\t\tconst originalField = originalEntity.fields[updatedField.name]\n\t\t\t\t\tif (!originalField) {\n\t\t\t\t\t\treturn undefined\n\t\t\t\t\t}\n\t\t\t\t\tif (deepEqual(originalField, updatedField)) {\n\t\t\t\t\t\treturn undefined\n\t\t\t\t\t}\n\t\t\t\t\tconst result = modificationGenerator({\n\t\t\t\t\t\toriginalEntity,\n\t\t\t\t\t\tupdatedEntity,\n\t\t\t\t\t\toriginalField,\n\t\t\t\t\t\tupdatedField,\n\t\t\t\t\t})\n\t\t\t\t\tif (result !== undefined && !Array.isArray(result)) {\n\t\t\t\t\t\treturn [result]\n\t\t\t\t\t}\n\t\t\t\t\treturn result\n\t\t\t\t})\n\t\t\t\t.filter(isDefined)\n\t\t})\n}\n\nexport const updateColumns = <Data = { [field: string]: any }>(\n\toriginalSchema: Schema,\n\tupdatedSchema: Schema,\n\tmodificationGenerator: (args: {\n\t\toriginalEntity: Model.Entity\n\t\toriginalColumn: Model.AnyColumn\n\t\tupdatedEntity: Model.Entity\n\t\tupdatedColumn: Model.AnyColumn\n\t}) => Migration.Modification<Data> | undefined,\n): Migration.Modification<Data>[] => {\n\treturn updateFields(\n\t\toriginalSchema,\n\t\tupdatedSchema,\n\t\t({ updatedEntity, originalEntity, originalField, updatedField }) => {\n\t\t\tif (!isColumn(updatedField) || !isColumn(originalField)) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\treturn modificationGenerator({\n\t\t\t\toriginalEntity,\n\t\t\t\tupdatedEntity,\n\t\t\t\toriginalColumn: originalField,\n\t\t\t\tupdatedColumn: updatedField,\n\t\t\t})\n\t\t},\n\t)\n}\n\nexport const updateRelations = <Data = { [field: string]: any }>(\n\toriginalSchema: Schema,\n\tupdatedSchema: Schema,\n\tmodificationGenerator: (args: {\n\t\toriginalEntity: Model.Entity\n\t\toriginalRelation: Model.AnyRelation\n\t\tupdatedEntity: Model.Entity\n\t\tupdatedRelation: Model.AnyRelation\n\t}) => Migration.Modification<Data> | undefined,\n): Migration.Modification<Data>[] => {\n\treturn updateFields(\n\t\toriginalSchema,\n\t\tupdatedSchema,\n\t\t({ updatedEntity, originalEntity, originalField, updatedField }) => {\n\t\t\tif (!isRelation(updatedField) || !isRelation(originalField)) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\treturn modificationGenerator({\n\t\t\t\toriginalEntity,\n\t\t\t\tupdatedEntity,\n\t\t\t\toriginalRelation: originalField,\n\t\t\t\tupdatedRelation: updatedField,\n\t\t\t})\n\t\t},\n\t)\n}\n\nexport const createFields = <Data = { [field: string]: any }>(\n\toriginalSchema: Schema,\n\tupdatedSchema: Schema,\n\tmodificationGenerator: (args: {\n\t\toriginalEntity: Model.Entity\n\t\tupdatedEntity: Model.Entity\n\t\tnewField: Model.AnyField\n\t}) => Migration.Modification<Data> | undefined,\n): Migration.Modification<Data>[] => {\n\treturn Object.values(updatedSchema.model.entities)\n\t\t.filter(({ name }) => originalSchema.model.entities[name])\n\t\t.flatMap(updatedEntity => {\n\t\t\tconst originalEntity = originalSchema.model.entities[updatedEntity.name]\n\n\t\t\treturn Object.values(updatedEntity.fields)\n\t\t\t\t.filter(it => !originalEntity.fields[it.name])\n\t\t\t\t.map(newField => {\n\t\t\t\t\treturn modificationGenerator({\n\t\t\t\t\t\tnewField,\n\t\t\t\t\t\tupdatedEntity,\n\t\t\t\t\t\toriginalEntity,\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t\t.filter(isDefined)\n\t\t})\n}\n"],"names":["isDefined","isColumn","isRelation"],"mappings":";;;;;AAMO,MAAM,eAAe,CAC3B,gBACA,eACA,0BAMoC;AACpC,SAAO,OAAO,OAAO,cAAc,MAAM,QAAQ,EAC/C,OAAO,CAAC,EAAE,KAAA,MAAW,eAAe,MAAM,SAAS,IAAI,CAAC,EACxD,QAAQ,CAAA,kBAAiB;AACzB,UAAM,iBAAiB,eAAe,MAAM,SAAS,cAAc,IAAI;AAEvE,WAAO,OAAO,OAAO,cAAc,MAAM,EACvC,QAAQ,CAAA,iBAAgB;AACxB,YAAM,gBAAgB,eAAe,OAAO,aAAa,IAAI;AAC7D,UAAI,CAAC,eAAe;AACnB,eAAO;AAAA,MACR;AACA,UAAI,UAAU,eAAe,YAAY,GAAG;AAC3C,eAAO;AAAA,MACR;AACA,YAAM,SAAS,sBAAsB;AAAA,QACpC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACA;AACD,UAAI,WAAW,UAAa,CAAC,MAAM,QAAQ,MAAM,GAAG;AACnD,eAAO,CAAC,MAAM;AAAA,MACf;AACA,aAAO;AAAA,IACR,CAAC,EACA,OAAOA,mBAAS;AAAA,EACnB,CAAC;AACH;AAEO,MAAM,gBAAgB,CAC5B,gBACA,eACA,0BAMoC;AACpC,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA,CAAC,EAAE,eAAe,gBAAgB,eAAe,mBAAmB;AACnE,UAAI,CAACC,YAAAA,SAAS,YAAY,KAAK,CAACA,YAAAA,SAAS,aAAa,GAAG;AACxD,eAAO;AAAA,MACR;AACA,aAAO,sBAAsB;AAAA,QAC5B;AAAA,QACA;AAAA,QACA,gBAAgB;AAAA,QAChB,eAAe;AAAA,MAAA,CACf;AAAA,IACF;AAAA,EAAA;AAEF;AAEO,MAAM,kBAAkB,CAC9B,gBACA,eACA,0BAMoC;AACpC,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA,CAAC,EAAE,eAAe,gBAAgB,eAAe,mBAAmB;AACnE,UAAI,CAACC,YAAAA,WAAW,YAAY,KAAK,CAACA,YAAAA,WAAW,aAAa,GAAG;AAC5D,eAAO;AAAA,MACR;AACA,aAAO,sBAAsB;AAAA,QAC5B;AAAA,QACA;AAAA,QACA,kBAAkB;AAAA,QAClB,iBAAiB;AAAA,MAAA,CACjB;AAAA,IACF;AAAA,EAAA;AAEF;AAEO,MAAM,eAAe,CAC3B,gBACA,eACA,0BAKoC;AACpC,SAAO,OAAO,OAAO,cAAc,MAAM,QAAQ,EAC/C,OAAO,CAAC,EAAE,KAAA,MAAW,eAAe,MAAM,SAAS,IAAI,CAAC,EACxD,QAAQ,CAAA,kBAAiB;AACzB,UAAM,iBAAiB,eAAe,MAAM,SAAS,cAAc,IAAI;AAEvE,WAAO,OAAO,OAAO,cAAc,MAAM,EACvC,OAAO,CAAA,OAAM,CAAC,eAAe,OAAO,GAAG,IAAI,CAAC,EAC5C,IAAI,CAAA,aAAY;AAChB,aAAO,sBAAsB;AAAA,QAC5B;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACA;AAAA,IACF,CAAC,EACA,OAAOF,mBAAS;AAAA,EACnB,CAAC;AACH;;;;;"}