@contember/schema-migrations 2.0.0-alpha.9 → 2.0.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 (325) hide show
  1. package/dist/development/src/MigrationDescriber.cjs.map +1 -1
  2. package/dist/development/src/MigrationDescriber.js.map +1 -1
  3. package/dist/development/src/SchemaDiffer.cjs +4 -3
  4. package/dist/development/src/SchemaDiffer.cjs.map +1 -1
  5. package/dist/development/src/SchemaDiffer.js +5 -4
  6. package/dist/development/src/SchemaDiffer.js.map +1 -1
  7. package/dist/development/src/SchemaMigrator.cjs.map +1 -1
  8. package/dist/development/src/SchemaMigrator.js.map +1 -1
  9. package/dist/development/src/modifications/ModificationHandler.cjs.map +1 -1
  10. package/dist/development/src/modifications/ModificationHandler.js.map +1 -1
  11. package/dist/development/src/modifications/ModificationHandlerFactory.cjs.map +1 -1
  12. package/dist/development/src/modifications/ModificationHandlerFactory.js.map +1 -1
  13. package/dist/development/src/modifications/NoopModification.cjs.map +1 -1
  14. package/dist/development/src/modifications/NoopModification.js.map +1 -1
  15. package/dist/development/src/modifications/acl/PatchAclSchemaModification.cjs.map +1 -1
  16. package/dist/development/src/modifications/acl/PatchAclSchemaModification.js.map +1 -1
  17. package/dist/development/src/modifications/acl/UpdateAclSchemaModification.cjs +4 -1
  18. package/dist/development/src/modifications/acl/UpdateAclSchemaModification.cjs.map +1 -1
  19. package/dist/development/src/modifications/acl/UpdateAclSchemaModification.js +4 -1
  20. package/dist/development/src/modifications/acl/UpdateAclSchemaModification.js.map +1 -1
  21. package/dist/development/src/modifications/actions/CreateTargetModification.cjs.map +1 -1
  22. package/dist/development/src/modifications/actions/CreateTargetModification.js.map +1 -1
  23. package/dist/development/src/modifications/actions/CreateTriggerModification.cjs.map +1 -1
  24. package/dist/development/src/modifications/actions/CreateTriggerModification.js.map +1 -1
  25. package/dist/development/src/modifications/actions/RemoveTargetModification.cjs.map +1 -1
  26. package/dist/development/src/modifications/actions/RemoveTargetModification.js.map +1 -1
  27. package/dist/development/src/modifications/actions/RemoveTriggerModification.cjs.map +1 -1
  28. package/dist/development/src/modifications/actions/RemoveTriggerModification.js.map +1 -1
  29. package/dist/development/src/modifications/actions/UpdateTargetModification.cjs.map +1 -1
  30. package/dist/development/src/modifications/actions/UpdateTargetModification.js.map +1 -1
  31. package/dist/development/src/modifications/actions/UpdateTriggerModification.cjs.map +1 -1
  32. package/dist/development/src/modifications/actions/UpdateTriggerModification.js.map +1 -1
  33. package/dist/development/src/modifications/columns/CreateColumnModification.cjs.map +1 -1
  34. package/dist/development/src/modifications/columns/CreateColumnModification.js.map +1 -1
  35. package/dist/development/src/modifications/columns/UpdateColumnDefinitionModification.cjs.map +1 -1
  36. package/dist/development/src/modifications/columns/UpdateColumnDefinitionModification.js.map +1 -1
  37. package/dist/development/src/modifications/columns/UpdateColumnNameModification.cjs.map +1 -1
  38. package/dist/development/src/modifications/columns/UpdateColumnNameModification.js.map +1 -1
  39. package/dist/development/src/modifications/columns/columnUtils.cjs +1 -1
  40. package/dist/development/src/modifications/columns/columnUtils.cjs.map +1 -1
  41. package/dist/development/src/modifications/columns/columnUtils.js +1 -1
  42. package/dist/development/src/modifications/columns/columnUtils.js.map +1 -1
  43. package/dist/development/src/modifications/constraints/CreateUniqueConstraintModification.cjs.map +1 -1
  44. package/dist/development/src/modifications/constraints/CreateUniqueConstraintModification.js.map +1 -1
  45. package/dist/development/src/modifications/constraints/RemoveUniqueConstraintModification.cjs.map +1 -1
  46. package/dist/development/src/modifications/constraints/RemoveUniqueConstraintModification.js.map +1 -1
  47. package/dist/development/src/modifications/constraints/utils.cjs.map +1 -1
  48. package/dist/development/src/modifications/constraints/utils.js.map +1 -1
  49. package/dist/development/src/modifications/differs/RemoveChangedFieldDiffer.cjs.map +1 -1
  50. package/dist/development/src/modifications/differs/RemoveChangedFieldDiffer.js.map +1 -1
  51. package/dist/development/src/modifications/differs/RemoveViewDiffer.cjs.map +1 -1
  52. package/dist/development/src/modifications/differs/RemoveViewDiffer.js.map +1 -1
  53. package/dist/development/src/modifications/entities/CreateEntityModification.cjs.map +1 -1
  54. package/dist/development/src/modifications/entities/CreateEntityModification.js.map +1 -1
  55. package/dist/development/src/modifications/entities/CreateViewModification.cjs.map +1 -1
  56. package/dist/development/src/modifications/entities/CreateViewModification.js.map +1 -1
  57. package/dist/development/src/modifications/entities/RemoveEntityModification.cjs +18 -1
  58. package/dist/development/src/modifications/entities/RemoveEntityModification.cjs.map +1 -1
  59. package/dist/development/src/modifications/entities/RemoveEntityModification.js +19 -2
  60. package/dist/development/src/modifications/entities/RemoveEntityModification.js.map +1 -1
  61. package/dist/development/src/modifications/entities/ToggleEventLogModification.cjs.map +1 -1
  62. package/dist/development/src/modifications/entities/ToggleEventLogModification.js.map +1 -1
  63. package/dist/development/src/modifications/entities/UpdateEntityNameModification.cjs.map +1 -1
  64. package/dist/development/src/modifications/entities/UpdateEntityNameModification.js.map +1 -1
  65. package/dist/development/src/modifications/entities/UpdateEntityOrderByModification.cjs.map +1 -1
  66. package/dist/development/src/modifications/entities/UpdateEntityOrderByModification.js.map +1 -1
  67. package/dist/development/src/modifications/entities/UpdateEntityTableNameModification.cjs.map +1 -1
  68. package/dist/development/src/modifications/entities/UpdateEntityTableNameModification.js.map +1 -1
  69. package/dist/development/src/modifications/entities/UpdateViewModification.cjs.map +1 -1
  70. package/dist/development/src/modifications/entities/UpdateViewModification.js.map +1 -1
  71. package/dist/development/src/modifications/enums/CreateEnumModification.cjs.map +1 -1
  72. package/dist/development/src/modifications/enums/CreateEnumModification.js.map +1 -1
  73. package/dist/development/src/modifications/enums/RemoveEnumModification.cjs.map +1 -1
  74. package/dist/development/src/modifications/enums/RemoveEnumModification.js.map +1 -1
  75. package/dist/development/src/modifications/enums/UpdateEnumModification.cjs.map +1 -1
  76. package/dist/development/src/modifications/enums/UpdateEnumModification.js.map +1 -1
  77. package/dist/development/src/modifications/enums/enumUtils.cjs.map +1 -1
  78. package/dist/development/src/modifications/fields/RemoveFieldModification.cjs.map +1 -1
  79. package/dist/development/src/modifications/fields/RemoveFieldModification.js.map +1 -1
  80. package/dist/development/src/modifications/fields/UpdateFieldNameModification.cjs.map +1 -1
  81. package/dist/development/src/modifications/fields/UpdateFieldNameModification.js.map +1 -1
  82. package/dist/development/src/modifications/indexes/CreateIndexModification.cjs.map +1 -1
  83. package/dist/development/src/modifications/indexes/CreateIndexModification.js.map +1 -1
  84. package/dist/development/src/modifications/indexes/RemoveIndexModification.cjs.map +1 -1
  85. package/dist/development/src/modifications/indexes/RemoveIndexModification.js.map +1 -1
  86. package/dist/development/src/modifications/indexes/utils.cjs.map +1 -1
  87. package/dist/development/src/modifications/indexes/utils.js.map +1 -1
  88. package/dist/development/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.cjs.map +1 -1
  89. package/dist/development/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.js.map +1 -1
  90. package/dist/development/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.cjs.map +1 -1
  91. package/dist/development/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.js.map +1 -1
  92. package/dist/development/src/modifications/relations/ConvertOneToManyRelationModification.cjs.map +1 -1
  93. package/dist/development/src/modifications/relations/ConvertOneToManyRelationModification.js.map +1 -1
  94. package/dist/development/src/modifications/relations/CreateRelationInverseSideModification.cjs.map +1 -1
  95. package/dist/development/src/modifications/relations/CreateRelationInverseSideModification.js.map +1 -1
  96. package/dist/development/src/modifications/relations/CreateRelationModification.cjs.map +1 -1
  97. package/dist/development/src/modifications/relations/CreateRelationModification.js.map +1 -1
  98. package/dist/development/src/modifications/relations/DisableOrphanRemovalModification.cjs.map +1 -1
  99. package/dist/development/src/modifications/relations/DisableOrphanRemovalModification.js.map +1 -1
  100. package/dist/development/src/modifications/relations/EnableOrphanRemovalModification.cjs.map +1 -1
  101. package/dist/development/src/modifications/relations/EnableOrphanRemovalModification.js.map +1 -1
  102. package/dist/development/src/modifications/relations/MakeRelationNotNullModification.cjs.map +1 -1
  103. package/dist/development/src/modifications/relations/MakeRelationNotNullModification.js.map +1 -1
  104. package/dist/development/src/modifications/relations/MakeRelationNullableModification.cjs.map +1 -1
  105. package/dist/development/src/modifications/relations/MakeRelationNullableModification.js.map +1 -1
  106. package/dist/development/src/modifications/relations/ToggleJunctionEventLogModification.cjs.map +1 -1
  107. package/dist/development/src/modifications/relations/ToggleJunctionEventLogModification.js.map +1 -1
  108. package/dist/development/src/modifications/relations/UpdateRelationOnDeleteModification.cjs.map +1 -1
  109. package/dist/development/src/modifications/relations/UpdateRelationOnDeleteModification.js.map +1 -1
  110. package/dist/development/src/modifications/relations/UpdateRelationOrderByModification.cjs.map +1 -1
  111. package/dist/development/src/modifications/relations/UpdateRelationOrderByModification.js.map +1 -1
  112. package/dist/development/src/modifications/relations/helpers.cjs.map +1 -1
  113. package/dist/development/src/modifications/relations/helpers.js.map +1 -1
  114. package/dist/development/src/modifications/relations/normalization.cjs.map +1 -1
  115. package/dist/development/src/modifications/relations/normalization.js.map +1 -1
  116. package/dist/development/src/modifications/settings/UpdateSettingsModification.cjs.map +1 -1
  117. package/dist/development/src/modifications/settings/UpdateSettingsModification.js.map +1 -1
  118. package/dist/development/src/modifications/upgrade/RemoveIndexNamesModification.cjs.map +1 -1
  119. package/dist/development/src/modifications/upgrade/RemoveIndexNamesModification.js.map +1 -1
  120. package/dist/development/src/modifications/utils/createJunctionTable.cjs.map +1 -1
  121. package/dist/development/src/modifications/utils/createJunctionTable.js.map +1 -1
  122. package/dist/development/src/modifications/utils/diffUtils.cjs.map +1 -1
  123. package/dist/development/src/modifications/utils/diffUtils.js.map +1 -1
  124. package/dist/development/src/modifications/utils/schemaUpdateUtils.cjs.map +1 -1
  125. package/dist/development/src/modifications/utils/schemaUpdateUtils.js.map +1 -1
  126. package/dist/development/src/modifications/utils/sqlUpdateUtils.cjs.map +1 -1
  127. package/dist/development/src/modifications/utils/sqlUpdateUtils.js.map +1 -1
  128. package/dist/development/src/modifications/utils/viewDependencies.cjs.map +1 -1
  129. package/dist/development/src/modifications/utils/viewDependencies.js.map +1 -1
  130. package/dist/development/src/modifications/validation/PatchValidationSchemaModification.cjs.map +1 -1
  131. package/dist/development/src/modifications/validation/PatchValidationSchemaModification.js.map +1 -1
  132. package/dist/development/src/modifications/validation/UpdateValidationSchemaModification.cjs +4 -1
  133. package/dist/development/src/modifications/validation/UpdateValidationSchemaModification.cjs.map +1 -1
  134. package/dist/development/src/modifications/validation/UpdateValidationSchemaModification.js +4 -1
  135. package/dist/development/src/modifications/validation/UpdateValidationSchemaModification.js.map +1 -1
  136. package/dist/development/src/utils/deepCopy.cjs.map +1 -1
  137. package/dist/development/src/utils/deepCopy.js.map +1 -1
  138. package/dist/production/src/MigrationDescriber.cjs.map +1 -1
  139. package/dist/production/src/MigrationDescriber.js.map +1 -1
  140. package/dist/production/src/SchemaDiffer.cjs +4 -3
  141. package/dist/production/src/SchemaDiffer.cjs.map +1 -1
  142. package/dist/production/src/SchemaDiffer.js +5 -4
  143. package/dist/production/src/SchemaDiffer.js.map +1 -1
  144. package/dist/production/src/SchemaMigrator.cjs.map +1 -1
  145. package/dist/production/src/SchemaMigrator.js.map +1 -1
  146. package/dist/production/src/modifications/ModificationHandler.cjs.map +1 -1
  147. package/dist/production/src/modifications/ModificationHandler.js.map +1 -1
  148. package/dist/production/src/modifications/ModificationHandlerFactory.cjs.map +1 -1
  149. package/dist/production/src/modifications/ModificationHandlerFactory.js.map +1 -1
  150. package/dist/production/src/modifications/NoopModification.cjs.map +1 -1
  151. package/dist/production/src/modifications/NoopModification.js.map +1 -1
  152. package/dist/production/src/modifications/acl/PatchAclSchemaModification.cjs.map +1 -1
  153. package/dist/production/src/modifications/acl/PatchAclSchemaModification.js.map +1 -1
  154. package/dist/production/src/modifications/acl/UpdateAclSchemaModification.cjs +4 -1
  155. package/dist/production/src/modifications/acl/UpdateAclSchemaModification.cjs.map +1 -1
  156. package/dist/production/src/modifications/acl/UpdateAclSchemaModification.js +4 -1
  157. package/dist/production/src/modifications/acl/UpdateAclSchemaModification.js.map +1 -1
  158. package/dist/production/src/modifications/actions/CreateTargetModification.cjs.map +1 -1
  159. package/dist/production/src/modifications/actions/CreateTargetModification.js.map +1 -1
  160. package/dist/production/src/modifications/actions/CreateTriggerModification.cjs.map +1 -1
  161. package/dist/production/src/modifications/actions/CreateTriggerModification.js.map +1 -1
  162. package/dist/production/src/modifications/actions/RemoveTargetModification.cjs.map +1 -1
  163. package/dist/production/src/modifications/actions/RemoveTargetModification.js.map +1 -1
  164. package/dist/production/src/modifications/actions/RemoveTriggerModification.cjs.map +1 -1
  165. package/dist/production/src/modifications/actions/RemoveTriggerModification.js.map +1 -1
  166. package/dist/production/src/modifications/actions/UpdateTargetModification.cjs.map +1 -1
  167. package/dist/production/src/modifications/actions/UpdateTargetModification.js.map +1 -1
  168. package/dist/production/src/modifications/actions/UpdateTriggerModification.cjs.map +1 -1
  169. package/dist/production/src/modifications/actions/UpdateTriggerModification.js.map +1 -1
  170. package/dist/production/src/modifications/columns/CreateColumnModification.cjs.map +1 -1
  171. package/dist/production/src/modifications/columns/CreateColumnModification.js.map +1 -1
  172. package/dist/production/src/modifications/columns/UpdateColumnDefinitionModification.cjs.map +1 -1
  173. package/dist/production/src/modifications/columns/UpdateColumnDefinitionModification.js.map +1 -1
  174. package/dist/production/src/modifications/columns/UpdateColumnNameModification.cjs.map +1 -1
  175. package/dist/production/src/modifications/columns/UpdateColumnNameModification.js.map +1 -1
  176. package/dist/production/src/modifications/columns/columnUtils.cjs +1 -1
  177. package/dist/production/src/modifications/columns/columnUtils.cjs.map +1 -1
  178. package/dist/production/src/modifications/columns/columnUtils.js +1 -1
  179. package/dist/production/src/modifications/columns/columnUtils.js.map +1 -1
  180. package/dist/production/src/modifications/constraints/CreateUniqueConstraintModification.cjs.map +1 -1
  181. package/dist/production/src/modifications/constraints/CreateUniqueConstraintModification.js.map +1 -1
  182. package/dist/production/src/modifications/constraints/RemoveUniqueConstraintModification.cjs.map +1 -1
  183. package/dist/production/src/modifications/constraints/RemoveUniqueConstraintModification.js.map +1 -1
  184. package/dist/production/src/modifications/constraints/utils.cjs.map +1 -1
  185. package/dist/production/src/modifications/constraints/utils.js.map +1 -1
  186. package/dist/production/src/modifications/differs/RemoveChangedFieldDiffer.cjs.map +1 -1
  187. package/dist/production/src/modifications/differs/RemoveChangedFieldDiffer.js.map +1 -1
  188. package/dist/production/src/modifications/differs/RemoveViewDiffer.cjs.map +1 -1
  189. package/dist/production/src/modifications/differs/RemoveViewDiffer.js.map +1 -1
  190. package/dist/production/src/modifications/entities/CreateEntityModification.cjs.map +1 -1
  191. package/dist/production/src/modifications/entities/CreateEntityModification.js.map +1 -1
  192. package/dist/production/src/modifications/entities/CreateViewModification.cjs.map +1 -1
  193. package/dist/production/src/modifications/entities/CreateViewModification.js.map +1 -1
  194. package/dist/production/src/modifications/entities/RemoveEntityModification.cjs +18 -1
  195. package/dist/production/src/modifications/entities/RemoveEntityModification.cjs.map +1 -1
  196. package/dist/production/src/modifications/entities/RemoveEntityModification.js +19 -2
  197. package/dist/production/src/modifications/entities/RemoveEntityModification.js.map +1 -1
  198. package/dist/production/src/modifications/entities/ToggleEventLogModification.cjs.map +1 -1
  199. package/dist/production/src/modifications/entities/ToggleEventLogModification.js.map +1 -1
  200. package/dist/production/src/modifications/entities/UpdateEntityNameModification.cjs.map +1 -1
  201. package/dist/production/src/modifications/entities/UpdateEntityNameModification.js.map +1 -1
  202. package/dist/production/src/modifications/entities/UpdateEntityOrderByModification.cjs.map +1 -1
  203. package/dist/production/src/modifications/entities/UpdateEntityOrderByModification.js.map +1 -1
  204. package/dist/production/src/modifications/entities/UpdateEntityTableNameModification.cjs.map +1 -1
  205. package/dist/production/src/modifications/entities/UpdateEntityTableNameModification.js.map +1 -1
  206. package/dist/production/src/modifications/entities/UpdateViewModification.cjs.map +1 -1
  207. package/dist/production/src/modifications/entities/UpdateViewModification.js.map +1 -1
  208. package/dist/production/src/modifications/enums/CreateEnumModification.cjs.map +1 -1
  209. package/dist/production/src/modifications/enums/CreateEnumModification.js.map +1 -1
  210. package/dist/production/src/modifications/enums/RemoveEnumModification.cjs.map +1 -1
  211. package/dist/production/src/modifications/enums/RemoveEnumModification.js.map +1 -1
  212. package/dist/production/src/modifications/enums/UpdateEnumModification.cjs.map +1 -1
  213. package/dist/production/src/modifications/enums/UpdateEnumModification.js.map +1 -1
  214. package/dist/production/src/modifications/enums/enumUtils.cjs.map +1 -1
  215. package/dist/production/src/modifications/fields/RemoveFieldModification.cjs.map +1 -1
  216. package/dist/production/src/modifications/fields/RemoveFieldModification.js.map +1 -1
  217. package/dist/production/src/modifications/fields/UpdateFieldNameModification.cjs.map +1 -1
  218. package/dist/production/src/modifications/fields/UpdateFieldNameModification.js.map +1 -1
  219. package/dist/production/src/modifications/indexes/CreateIndexModification.cjs.map +1 -1
  220. package/dist/production/src/modifications/indexes/CreateIndexModification.js.map +1 -1
  221. package/dist/production/src/modifications/indexes/RemoveIndexModification.cjs.map +1 -1
  222. package/dist/production/src/modifications/indexes/RemoveIndexModification.js.map +1 -1
  223. package/dist/production/src/modifications/indexes/utils.cjs.map +1 -1
  224. package/dist/production/src/modifications/indexes/utils.js.map +1 -1
  225. package/dist/production/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.cjs.map +1 -1
  226. package/dist/production/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.js.map +1 -1
  227. package/dist/production/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.cjs.map +1 -1
  228. package/dist/production/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.js.map +1 -1
  229. package/dist/production/src/modifications/relations/ConvertOneToManyRelationModification.cjs.map +1 -1
  230. package/dist/production/src/modifications/relations/ConvertOneToManyRelationModification.js.map +1 -1
  231. package/dist/production/src/modifications/relations/CreateRelationInverseSideModification.cjs.map +1 -1
  232. package/dist/production/src/modifications/relations/CreateRelationInverseSideModification.js.map +1 -1
  233. package/dist/production/src/modifications/relations/CreateRelationModification.cjs.map +1 -1
  234. package/dist/production/src/modifications/relations/CreateRelationModification.js.map +1 -1
  235. package/dist/production/src/modifications/relations/DisableOrphanRemovalModification.cjs.map +1 -1
  236. package/dist/production/src/modifications/relations/DisableOrphanRemovalModification.js.map +1 -1
  237. package/dist/production/src/modifications/relations/EnableOrphanRemovalModification.cjs.map +1 -1
  238. package/dist/production/src/modifications/relations/EnableOrphanRemovalModification.js.map +1 -1
  239. package/dist/production/src/modifications/relations/MakeRelationNotNullModification.cjs.map +1 -1
  240. package/dist/production/src/modifications/relations/MakeRelationNotNullModification.js.map +1 -1
  241. package/dist/production/src/modifications/relations/MakeRelationNullableModification.cjs.map +1 -1
  242. package/dist/production/src/modifications/relations/MakeRelationNullableModification.js.map +1 -1
  243. package/dist/production/src/modifications/relations/ToggleJunctionEventLogModification.cjs.map +1 -1
  244. package/dist/production/src/modifications/relations/ToggleJunctionEventLogModification.js.map +1 -1
  245. package/dist/production/src/modifications/relations/UpdateRelationOnDeleteModification.cjs.map +1 -1
  246. package/dist/production/src/modifications/relations/UpdateRelationOnDeleteModification.js.map +1 -1
  247. package/dist/production/src/modifications/relations/UpdateRelationOrderByModification.cjs.map +1 -1
  248. package/dist/production/src/modifications/relations/UpdateRelationOrderByModification.js.map +1 -1
  249. package/dist/production/src/modifications/relations/helpers.cjs.map +1 -1
  250. package/dist/production/src/modifications/relations/helpers.js.map +1 -1
  251. package/dist/production/src/modifications/relations/normalization.cjs.map +1 -1
  252. package/dist/production/src/modifications/relations/normalization.js.map +1 -1
  253. package/dist/production/src/modifications/settings/UpdateSettingsModification.cjs.map +1 -1
  254. package/dist/production/src/modifications/settings/UpdateSettingsModification.js.map +1 -1
  255. package/dist/production/src/modifications/upgrade/RemoveIndexNamesModification.cjs.map +1 -1
  256. package/dist/production/src/modifications/upgrade/RemoveIndexNamesModification.js.map +1 -1
  257. package/dist/production/src/modifications/utils/createJunctionTable.cjs.map +1 -1
  258. package/dist/production/src/modifications/utils/createJunctionTable.js.map +1 -1
  259. package/dist/production/src/modifications/utils/diffUtils.cjs.map +1 -1
  260. package/dist/production/src/modifications/utils/diffUtils.js.map +1 -1
  261. package/dist/production/src/modifications/utils/schemaUpdateUtils.cjs.map +1 -1
  262. package/dist/production/src/modifications/utils/schemaUpdateUtils.js.map +1 -1
  263. package/dist/production/src/modifications/utils/sqlUpdateUtils.cjs.map +1 -1
  264. package/dist/production/src/modifications/utils/sqlUpdateUtils.js.map +1 -1
  265. package/dist/production/src/modifications/utils/viewDependencies.cjs.map +1 -1
  266. package/dist/production/src/modifications/utils/viewDependencies.js.map +1 -1
  267. package/dist/production/src/modifications/validation/PatchValidationSchemaModification.cjs.map +1 -1
  268. package/dist/production/src/modifications/validation/PatchValidationSchemaModification.js.map +1 -1
  269. package/dist/production/src/modifications/validation/UpdateValidationSchemaModification.cjs +4 -1
  270. package/dist/production/src/modifications/validation/UpdateValidationSchemaModification.cjs.map +1 -1
  271. package/dist/production/src/modifications/validation/UpdateValidationSchemaModification.js +4 -1
  272. package/dist/production/src/modifications/validation/UpdateValidationSchemaModification.js.map +1 -1
  273. package/dist/production/src/utils/deepCopy.cjs.map +1 -1
  274. package/dist/production/src/utils/deepCopy.js.map +1 -1
  275. package/dist/tests/src/tests.d.ts +1 -1
  276. package/dist/tests/src/tests.d.ts.map +1 -1
  277. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  278. package/dist/types/SchemaDiffer.d.ts +4 -1
  279. package/dist/types/SchemaDiffer.d.ts.map +1 -1
  280. package/dist/types/modifications/acl/UpdateAclSchemaModification.d.ts +4 -0
  281. package/dist/types/modifications/acl/UpdateAclSchemaModification.d.ts.map +1 -1
  282. package/dist/types/modifications/entities/RemoveEntityModification.d.ts.map +1 -1
  283. package/dist/types/modifications/validation/UpdateValidationSchemaModification.d.ts +4 -0
  284. package/dist/types/modifications/validation/UpdateValidationSchemaModification.d.ts.map +1 -1
  285. package/dist/types/tsconfig.tsbuildinfo +1 -1
  286. package/package.json +9 -9
  287. package/src/SchemaDiffer.ts +8 -3
  288. package/src/modifications/acl/UpdateAclSchemaModification.ts +8 -1
  289. package/src/modifications/columns/columnUtils.ts +1 -1
  290. package/src/modifications/entities/RemoveEntityModification.ts +15 -3
  291. package/src/modifications/validation/UpdateValidationSchemaModification.ts +8 -1
  292. package/tests/cases/integration/convertManyHasOneToOneHasOneRelation.test.ts +23 -19
  293. package/tests/cases/integration/convertOneHasManyToManyHasManyRelation.test.ts +57 -55
  294. package/tests/cases/integration/convertOneToManyRelation.test.ts +46 -42
  295. package/tests/cases/integration/createAndDropIndex.test.ts +5 -4
  296. package/tests/cases/integration/createColumn.test.ts +79 -8
  297. package/tests/cases/integration/createEntity.test.ts +5 -4
  298. package/tests/cases/integration/createEnum.test.ts +3 -2
  299. package/tests/cases/integration/createManyHasMany.test.ts +3 -2
  300. package/tests/cases/integration/createManyHasOne.test.ts +3 -2
  301. package/tests/cases/integration/createOneHasMany.test.ts +3 -2
  302. package/tests/cases/integration/createOneHasOne.test.ts +3 -2
  303. package/tests/cases/integration/createRelationInverseSide.test.ts +5 -4
  304. package/tests/cases/integration/createUnique.test.ts +11 -10
  305. package/tests/cases/integration/createView.test.ts +5 -4
  306. package/tests/cases/integration/disableOrphanRemoval.test.ts +3 -2
  307. package/tests/cases/integration/enableOrphanRemoval.test.ts +3 -2
  308. package/tests/cases/integration/makeColumnNotNull.test.ts +3 -2
  309. package/tests/cases/integration/makeRelationNotNull.test.ts +3 -2
  310. package/tests/cases/integration/makeRelationNullable.test.ts +5 -4
  311. package/tests/cases/integration/patchAclSchema.test.ts +3 -2
  312. package/tests/cases/integration/removeEntity.test.ts +103 -6
  313. package/tests/cases/integration/removeEnum.test.ts +3 -2
  314. package/tests/cases/integration/removeField.test.ts +13 -12
  315. package/tests/cases/integration/toggleEventLog.test.ts +5 -4
  316. package/tests/cases/integration/toggleJunctionEventLog.test.ts +5 -4
  317. package/tests/cases/integration/updateColumnDefinition.test.ts +11 -10
  318. package/tests/cases/integration/updateEntityName.test.ts +9 -8
  319. package/tests/cases/integration/updateEntityOrderBy.test.ts +5 -4
  320. package/tests/cases/integration/updateEnum.test.ts +3 -2
  321. package/tests/cases/integration/updateFieldName.test.ts +13 -12
  322. package/tests/cases/integration/updateRelationOnDelete.test.ts +4 -2
  323. package/tests/cases/integration/updateRelationOrderBy.test.ts +3 -2
  324. package/tests/cases/integration/updateView.test.ts +9 -8
  325. package/tests/src/tests.ts +17 -19
@@ -1 +1 @@
1
- {"version":3,"file":"ConvertOneToManyRelationModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/ConvertOneToManyRelationModification.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateField, updateModel, updateSchema } from '../utils/schemaUpdateUtils'\nimport {\n\tcreateModificationType,\n\tDiffer,\n\tModificationHandler,\n\tModificationHandlerCreateSqlOptions,\n\tModificationHandlerOptions,\n} from '../ModificationHandler'\nimport { isOwningRelation } from '@contember/schema-utils'\nimport { updateRelations } from '../utils/diffUtils'\nimport { NoopModification } from '../NoopModification'\nimport { updateFieldNameModification } from '../fields'\nimport { wrapIdentifier } from '../../utils/dbHelpers'\n\nexport class ConvertOneToManyRelationModificationHandler implements ModificationHandler<ConvertOneToManyRelationModificationData> {\n\tprivate subModification: ModificationHandler<any>\n\n\tconstructor(\n\t\tprivate readonly data: ConvertOneToManyRelationModificationData,\n\t\tprivate readonly schema: Schema,\n\t\tprivate readonly options: ModificationHandlerOptions,\n\t) {\n\t\tconst { relation } = this.getRelation()\n\t\tthis.subModification = data.newInverseSideFieldName && relation.inversedBy ?\n\t\t\tupdateFieldNameModification.createHandler(\n\t\t\t\t{\n\t\t\t\t\tentityName: relation.target,\n\t\t\t\t\tfieldName: relation.inversedBy,\n\t\t\t\t\tnewFieldName: data.newInverseSideFieldName,\n\t\t\t\t},\n\t\t\t\tschema,\n\t\t\t\tthis.options,\n\t\t\t)\n\t\t\t: new NoopModification()\n\t}\n\n\tpublic createSql(builder: MigrationBuilder, options: ModificationHandlerCreateSqlOptions): void {\n\t\tconst { entity, relation } = this.getRelation()\n\t\tconst columnName = relation.joiningColumn.columnName\n\n\t\tconst tableNameId = wrapIdentifier(entity.tableName)\n\t\tconst columnNameId = wrapIdentifier(columnName)\n\t\tbuilder.sql(`CREATE INDEX ON ${tableNameId} (${columnNameId})`)\n\n\t\tconst uniqueConstraintNames = options.databaseMetadata.uniqueConstraints.filter({\n\t\t\ttableName: entity.tableName,\n\t\t\tcolumnNames: [columnName],\n\t\t}).getNames()\n\n\t\tfor (const name of uniqueConstraintNames) {\n\t\t\tbuilder.sql(`ALTER TABLE ${wrapIdentifier(entity.tableName)} DROP CONSTRAINT ${wrapIdentifier(name)}`)\n\t\t}\n\t\toptions.invalidateDatabaseMetadata()\n\n\t\tthis.subModification.createSql(builder, options)\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\tconst { relation } = this.getRelation()\n\t\tconst { entityName, fieldName } = this.data\n\n\t\tconst inverseFieldName = this.data.newInverseSideFieldName ?? relation.inversedBy\n\t\treturn updateSchema(\n\t\t\tupdateModel(\n\t\t\t\tupdateEntity(\n\t\t\t\t\tentityName,\n\t\t\t\t\tupdateField<Model.OneHasOneOwningRelation, Model.ManyHasOneRelation>(\n\t\t\t\t\t\tfieldName,\n\t\t\t\t\t\t({ field: { type, orphanRemoval, ...field } }) => ({\n\t\t\t\t\t\t\ttype: Model.RelationType.ManyHasOne,\n\t\t\t\t\t\t\t...field,\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\tthis.subModification.getSchemaUpdater(),\n\t\t\tinverseFieldName ?\n\t\t\t\tupdateModel(\n\t\t\t\t\tupdateEntity(\n\t\t\t\t\t\trelation.target,\n\t\t\t\t\t\tupdateField<Model.OneHasOneInverseRelation, Model.OneHasManyRelation>(\n\t\t\t\t\t\t\tinverseFieldName,\n\t\t\t\t\t\t\t({ field: { type, nullable, ...field } }) => ({\n\t\t\t\t\t\t\t\ttype: Model.RelationType.OneHasMany,\n\t\t\t\t\t\t\t\t...field,\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) : undefined,\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn {\n\t\t\tmessage: `Converts OneHasOne relation to ManyHasOne on ${this.data.entityName}.${this.data.fieldName}`,\n\t\t}\n\t}\n\n\tprivate getRelation() {\n\t\tconst entity = this.schema.model.entities[this.data.entityName]\n\t\tconst relation = entity.fields[this.data.fieldName]\n\t\tif (relation.type !== Model.RelationType.OneHasOne || !isOwningRelation(relation)) {\n\t\t\tthrow new Error()\n\t\t}\n\t\treturn { entity, relation }\n\t}\n}\n\nexport interface ConvertOneToManyRelationModificationData {\n\tentityName: string\n\tfieldName: string\n\tnewInverseSideFieldName?: string\n}\n\nexport const convertOneToManyRelationModification = createModificationType({\n\tid: 'convertOneToManyRelation',\n\thandler: ConvertOneToManyRelationModificationHandler,\n})\n\nexport class ConvertOneToManyRelationDiffer 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\tisOwningRelation(originalRelation) &&\n\t\t\t\tisOwningRelation(updatedRelation) &&\n\t\t\t\toriginalRelation.type === Model.RelationType.OneHasOne &&\n\t\t\t\tupdatedRelation.type === Model.RelationType.ManyHasOne\n\t\t\t) {\n\t\t\t\tconst isInverseSideRenamed = originalRelation.inversedBy && updatedRelation.inversedBy && originalRelation.inversedBy !== updatedRelation.inversedBy\n\t\t\t\treturn convertOneToManyRelationModification.createModification({\n\t\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\t\tfieldName: updatedRelation.name,\n\t\t\t\t\t...(isInverseSideRenamed ? {\n\t\t\t\t\t\tnewInverseSideFieldName: updatedRelation.inversedBy,\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","updateFieldNameModification","NoopModification","wrapIdentifier","updateSchema","updateModel","updateEntity","updateField","Model","isOwningRelation","createModificationType","updateRelations"],"mappings":"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"}
1
+ {"version":3,"file":"ConvertOneToManyRelationModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/ConvertOneToManyRelationModification.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateField, updateModel, updateSchema } from '../utils/schemaUpdateUtils'\nimport {\n\tcreateModificationType,\n\tDiffer,\n\tModificationHandler,\n\tModificationHandlerCreateSqlOptions,\n\tModificationHandlerOptions,\n} from '../ModificationHandler'\nimport { isOwningRelation } from '@contember/schema-utils'\nimport { updateRelations } from '../utils/diffUtils'\nimport { NoopModification } from '../NoopModification'\nimport { updateFieldNameModification } from '../fields'\nimport { wrapIdentifier } from '../../utils/dbHelpers'\n\nexport class ConvertOneToManyRelationModificationHandler implements ModificationHandler<ConvertOneToManyRelationModificationData> {\n\tprivate subModification: ModificationHandler<any>\n\n\tconstructor(\n\t\tprivate readonly data: ConvertOneToManyRelationModificationData,\n\t\tprivate readonly schema: Schema,\n\t\tprivate readonly options: ModificationHandlerOptions,\n\t) {\n\t\tconst { relation } = this.getRelation()\n\t\tthis.subModification = data.newInverseSideFieldName && relation.inversedBy ?\n\t\t\tupdateFieldNameModification.createHandler(\n\t\t\t\t{\n\t\t\t\t\tentityName: relation.target,\n\t\t\t\t\tfieldName: relation.inversedBy,\n\t\t\t\t\tnewFieldName: data.newInverseSideFieldName,\n\t\t\t\t},\n\t\t\t\tschema,\n\t\t\t\tthis.options,\n\t\t\t)\n\t\t\t: new NoopModification()\n\t}\n\n\tpublic createSql(builder: MigrationBuilder, options: ModificationHandlerCreateSqlOptions): void {\n\t\tconst { entity, relation } = this.getRelation()\n\t\tconst columnName = relation.joiningColumn.columnName\n\n\t\tconst tableNameId = wrapIdentifier(entity.tableName)\n\t\tconst columnNameId = wrapIdentifier(columnName)\n\t\tbuilder.sql(`CREATE INDEX ON ${tableNameId} (${columnNameId})`)\n\n\t\tconst uniqueConstraintNames = options.databaseMetadata.uniqueConstraints.filter({\n\t\t\ttableName: entity.tableName,\n\t\t\tcolumnNames: [columnName],\n\t\t}).getNames()\n\n\t\tfor (const name of uniqueConstraintNames) {\n\t\t\tbuilder.sql(`ALTER TABLE ${wrapIdentifier(entity.tableName)} DROP CONSTRAINT ${wrapIdentifier(name)}`)\n\t\t}\n\t\toptions.invalidateDatabaseMetadata()\n\n\t\tthis.subModification.createSql(builder, options)\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\tconst { relation } = this.getRelation()\n\t\tconst { entityName, fieldName } = this.data\n\n\t\tconst inverseFieldName = this.data.newInverseSideFieldName ?? relation.inversedBy\n\t\treturn updateSchema(\n\t\t\tupdateModel(\n\t\t\t\tupdateEntity(\n\t\t\t\t\tentityName,\n\t\t\t\t\tupdateField<Model.OneHasOneOwningRelation, Model.ManyHasOneRelation>(\n\t\t\t\t\t\tfieldName,\n\t\t\t\t\t\t({ field: { type, orphanRemoval, ...field } }) => ({\n\t\t\t\t\t\t\ttype: Model.RelationType.ManyHasOne,\n\t\t\t\t\t\t\t...field,\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\tthis.subModification.getSchemaUpdater(),\n\t\t\tinverseFieldName ?\n\t\t\t\tupdateModel(\n\t\t\t\t\tupdateEntity(\n\t\t\t\t\t\trelation.target,\n\t\t\t\t\t\tupdateField<Model.OneHasOneInverseRelation, Model.OneHasManyRelation>(\n\t\t\t\t\t\t\tinverseFieldName,\n\t\t\t\t\t\t\t({ field: { type, nullable, ...field } }) => ({\n\t\t\t\t\t\t\t\ttype: Model.RelationType.OneHasMany,\n\t\t\t\t\t\t\t\t...field,\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) : undefined,\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn {\n\t\t\tmessage: `Converts OneHasOne relation to ManyHasOne on ${this.data.entityName}.${this.data.fieldName}`,\n\t\t}\n\t}\n\n\tprivate getRelation() {\n\t\tconst entity = this.schema.model.entities[this.data.entityName]\n\t\tconst relation = entity.fields[this.data.fieldName]\n\t\tif (relation.type !== Model.RelationType.OneHasOne || !isOwningRelation(relation)) {\n\t\t\tthrow new Error()\n\t\t}\n\t\treturn { entity, relation }\n\t}\n}\n\nexport interface ConvertOneToManyRelationModificationData {\n\tentityName: string\n\tfieldName: string\n\tnewInverseSideFieldName?: string\n}\n\nexport const convertOneToManyRelationModification = createModificationType({\n\tid: 'convertOneToManyRelation',\n\thandler: ConvertOneToManyRelationModificationHandler,\n})\n\nexport class ConvertOneToManyRelationDiffer 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\tisOwningRelation(originalRelation) &&\n\t\t\t\tisOwningRelation(updatedRelation) &&\n\t\t\t\toriginalRelation.type === Model.RelationType.OneHasOne &&\n\t\t\t\tupdatedRelation.type === Model.RelationType.ManyHasOne\n\t\t\t) {\n\t\t\t\tconst isInverseSideRenamed = originalRelation.inversedBy && updatedRelation.inversedBy && originalRelation.inversedBy !== updatedRelation.inversedBy\n\t\t\t\treturn convertOneToManyRelationModification.createModification({\n\t\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\t\tfieldName: updatedRelation.name,\n\t\t\t\t\t...(isInverseSideRenamed ? {\n\t\t\t\t\t\tnewInverseSideFieldName: updatedRelation.inversedBy,\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","updateFieldNameModification","NoopModification","wrapIdentifier","updateSchema","updateModel","updateEntity","updateField","Model","isOwningRelation","createModificationType","updateRelations"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ConvertOneToManyRelationModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/ConvertOneToManyRelationModification.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateField, updateModel, updateSchema } from '../utils/schemaUpdateUtils'\nimport {\n\tcreateModificationType,\n\tDiffer,\n\tModificationHandler,\n\tModificationHandlerCreateSqlOptions,\n\tModificationHandlerOptions,\n} from '../ModificationHandler'\nimport { isOwningRelation } from '@contember/schema-utils'\nimport { updateRelations } from '../utils/diffUtils'\nimport { NoopModification } from '../NoopModification'\nimport { updateFieldNameModification } from '../fields'\nimport { wrapIdentifier } from '../../utils/dbHelpers'\n\nexport class ConvertOneToManyRelationModificationHandler implements ModificationHandler<ConvertOneToManyRelationModificationData> {\n\tprivate subModification: ModificationHandler<any>\n\n\tconstructor(\n\t\tprivate readonly data: ConvertOneToManyRelationModificationData,\n\t\tprivate readonly schema: Schema,\n\t\tprivate readonly options: ModificationHandlerOptions,\n\t) {\n\t\tconst { relation } = this.getRelation()\n\t\tthis.subModification = data.newInverseSideFieldName && relation.inversedBy ?\n\t\t\tupdateFieldNameModification.createHandler(\n\t\t\t\t{\n\t\t\t\t\tentityName: relation.target,\n\t\t\t\t\tfieldName: relation.inversedBy,\n\t\t\t\t\tnewFieldName: data.newInverseSideFieldName,\n\t\t\t\t},\n\t\t\t\tschema,\n\t\t\t\tthis.options,\n\t\t\t)\n\t\t\t: new NoopModification()\n\t}\n\n\tpublic createSql(builder: MigrationBuilder, options: ModificationHandlerCreateSqlOptions): void {\n\t\tconst { entity, relation } = this.getRelation()\n\t\tconst columnName = relation.joiningColumn.columnName\n\n\t\tconst tableNameId = wrapIdentifier(entity.tableName)\n\t\tconst columnNameId = wrapIdentifier(columnName)\n\t\tbuilder.sql(`CREATE INDEX ON ${tableNameId} (${columnNameId})`)\n\n\t\tconst uniqueConstraintNames = options.databaseMetadata.uniqueConstraints.filter({\n\t\t\ttableName: entity.tableName,\n\t\t\tcolumnNames: [columnName],\n\t\t}).getNames()\n\n\t\tfor (const name of uniqueConstraintNames) {\n\t\t\tbuilder.sql(`ALTER TABLE ${wrapIdentifier(entity.tableName)} DROP CONSTRAINT ${wrapIdentifier(name)}`)\n\t\t}\n\t\toptions.invalidateDatabaseMetadata()\n\n\t\tthis.subModification.createSql(builder, options)\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\tconst { relation } = this.getRelation()\n\t\tconst { entityName, fieldName } = this.data\n\n\t\tconst inverseFieldName = this.data.newInverseSideFieldName ?? relation.inversedBy\n\t\treturn updateSchema(\n\t\t\tupdateModel(\n\t\t\t\tupdateEntity(\n\t\t\t\t\tentityName,\n\t\t\t\t\tupdateField<Model.OneHasOneOwningRelation, Model.ManyHasOneRelation>(\n\t\t\t\t\t\tfieldName,\n\t\t\t\t\t\t({ field: { type, orphanRemoval, ...field } }) => ({\n\t\t\t\t\t\t\ttype: Model.RelationType.ManyHasOne,\n\t\t\t\t\t\t\t...field,\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\tthis.subModification.getSchemaUpdater(),\n\t\t\tinverseFieldName ?\n\t\t\t\tupdateModel(\n\t\t\t\t\tupdateEntity(\n\t\t\t\t\t\trelation.target,\n\t\t\t\t\t\tupdateField<Model.OneHasOneInverseRelation, Model.OneHasManyRelation>(\n\t\t\t\t\t\t\tinverseFieldName,\n\t\t\t\t\t\t\t({ field: { type, nullable, ...field } }) => ({\n\t\t\t\t\t\t\t\ttype: Model.RelationType.OneHasMany,\n\t\t\t\t\t\t\t\t...field,\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) : undefined,\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn {\n\t\t\tmessage: `Converts OneHasOne relation to ManyHasOne on ${this.data.entityName}.${this.data.fieldName}`,\n\t\t}\n\t}\n\n\tprivate getRelation() {\n\t\tconst entity = this.schema.model.entities[this.data.entityName]\n\t\tconst relation = entity.fields[this.data.fieldName]\n\t\tif (relation.type !== Model.RelationType.OneHasOne || !isOwningRelation(relation)) {\n\t\t\tthrow new Error()\n\t\t}\n\t\treturn { entity, relation }\n\t}\n}\n\nexport interface ConvertOneToManyRelationModificationData {\n\tentityName: string\n\tfieldName: string\n\tnewInverseSideFieldName?: string\n}\n\nexport const convertOneToManyRelationModification = createModificationType({\n\tid: 'convertOneToManyRelation',\n\thandler: ConvertOneToManyRelationModificationHandler,\n})\n\nexport class ConvertOneToManyRelationDiffer 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\tisOwningRelation(originalRelation) &&\n\t\t\t\tisOwningRelation(updatedRelation) &&\n\t\t\t\toriginalRelation.type === Model.RelationType.OneHasOne &&\n\t\t\t\tupdatedRelation.type === Model.RelationType.ManyHasOne\n\t\t\t) {\n\t\t\t\tconst isInverseSideRenamed = originalRelation.inversedBy && updatedRelation.inversedBy && originalRelation.inversedBy !== updatedRelation.inversedBy\n\t\t\t\treturn convertOneToManyRelationModification.createModification({\n\t\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\t\tfieldName: updatedRelation.name,\n\t\t\t\t\t...(isInverseSideRenamed ? {\n\t\t\t\t\t\tnewInverseSideFieldName: updatedRelation.inversedBy,\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":"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"}
1
+ {"version":3,"file":"ConvertOneToManyRelationModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/ConvertOneToManyRelationModification.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateField, updateModel, updateSchema } from '../utils/schemaUpdateUtils'\nimport {\n\tcreateModificationType,\n\tDiffer,\n\tModificationHandler,\n\tModificationHandlerCreateSqlOptions,\n\tModificationHandlerOptions,\n} from '../ModificationHandler'\nimport { isOwningRelation } from '@contember/schema-utils'\nimport { updateRelations } from '../utils/diffUtils'\nimport { NoopModification } from '../NoopModification'\nimport { updateFieldNameModification } from '../fields'\nimport { wrapIdentifier } from '../../utils/dbHelpers'\n\nexport class ConvertOneToManyRelationModificationHandler implements ModificationHandler<ConvertOneToManyRelationModificationData> {\n\tprivate subModification: ModificationHandler<any>\n\n\tconstructor(\n\t\tprivate readonly data: ConvertOneToManyRelationModificationData,\n\t\tprivate readonly schema: Schema,\n\t\tprivate readonly options: ModificationHandlerOptions,\n\t) {\n\t\tconst { relation } = this.getRelation()\n\t\tthis.subModification = data.newInverseSideFieldName && relation.inversedBy ?\n\t\t\tupdateFieldNameModification.createHandler(\n\t\t\t\t{\n\t\t\t\t\tentityName: relation.target,\n\t\t\t\t\tfieldName: relation.inversedBy,\n\t\t\t\t\tnewFieldName: data.newInverseSideFieldName,\n\t\t\t\t},\n\t\t\t\tschema,\n\t\t\t\tthis.options,\n\t\t\t)\n\t\t\t: new NoopModification()\n\t}\n\n\tpublic createSql(builder: MigrationBuilder, options: ModificationHandlerCreateSqlOptions): void {\n\t\tconst { entity, relation } = this.getRelation()\n\t\tconst columnName = relation.joiningColumn.columnName\n\n\t\tconst tableNameId = wrapIdentifier(entity.tableName)\n\t\tconst columnNameId = wrapIdentifier(columnName)\n\t\tbuilder.sql(`CREATE INDEX ON ${tableNameId} (${columnNameId})`)\n\n\t\tconst uniqueConstraintNames = options.databaseMetadata.uniqueConstraints.filter({\n\t\t\ttableName: entity.tableName,\n\t\t\tcolumnNames: [columnName],\n\t\t}).getNames()\n\n\t\tfor (const name of uniqueConstraintNames) {\n\t\t\tbuilder.sql(`ALTER TABLE ${wrapIdentifier(entity.tableName)} DROP CONSTRAINT ${wrapIdentifier(name)}`)\n\t\t}\n\t\toptions.invalidateDatabaseMetadata()\n\n\t\tthis.subModification.createSql(builder, options)\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\tconst { relation } = this.getRelation()\n\t\tconst { entityName, fieldName } = this.data\n\n\t\tconst inverseFieldName = this.data.newInverseSideFieldName ?? relation.inversedBy\n\t\treturn updateSchema(\n\t\t\tupdateModel(\n\t\t\t\tupdateEntity(\n\t\t\t\t\tentityName,\n\t\t\t\t\tupdateField<Model.OneHasOneOwningRelation, Model.ManyHasOneRelation>(\n\t\t\t\t\t\tfieldName,\n\t\t\t\t\t\t({ field: { type, orphanRemoval, ...field } }) => ({\n\t\t\t\t\t\t\ttype: Model.RelationType.ManyHasOne,\n\t\t\t\t\t\t\t...field,\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\tthis.subModification.getSchemaUpdater(),\n\t\t\tinverseFieldName ?\n\t\t\t\tupdateModel(\n\t\t\t\t\tupdateEntity(\n\t\t\t\t\t\trelation.target,\n\t\t\t\t\t\tupdateField<Model.OneHasOneInverseRelation, Model.OneHasManyRelation>(\n\t\t\t\t\t\t\tinverseFieldName,\n\t\t\t\t\t\t\t({ field: { type, nullable, ...field } }) => ({\n\t\t\t\t\t\t\t\ttype: Model.RelationType.OneHasMany,\n\t\t\t\t\t\t\t\t...field,\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) : undefined,\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn {\n\t\t\tmessage: `Converts OneHasOne relation to ManyHasOne on ${this.data.entityName}.${this.data.fieldName}`,\n\t\t}\n\t}\n\n\tprivate getRelation() {\n\t\tconst entity = this.schema.model.entities[this.data.entityName]\n\t\tconst relation = entity.fields[this.data.fieldName]\n\t\tif (relation.type !== Model.RelationType.OneHasOne || !isOwningRelation(relation)) {\n\t\t\tthrow new Error()\n\t\t}\n\t\treturn { entity, relation }\n\t}\n}\n\nexport interface ConvertOneToManyRelationModificationData {\n\tentityName: string\n\tfieldName: string\n\tnewInverseSideFieldName?: string\n}\n\nexport const convertOneToManyRelationModification = createModificationType({\n\tid: 'convertOneToManyRelation',\n\thandler: ConvertOneToManyRelationModificationHandler,\n})\n\nexport class ConvertOneToManyRelationDiffer 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\tisOwningRelation(originalRelation) &&\n\t\t\t\tisOwningRelation(updatedRelation) &&\n\t\t\t\toriginalRelation.type === Model.RelationType.OneHasOne &&\n\t\t\t\tupdatedRelation.type === Model.RelationType.ManyHasOne\n\t\t\t) {\n\t\t\t\tconst isInverseSideRenamed = originalRelation.inversedBy && updatedRelation.inversedBy && originalRelation.inversedBy !== updatedRelation.inversedBy\n\t\t\t\treturn convertOneToManyRelationModification.createModification({\n\t\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\t\tfieldName: updatedRelation.name,\n\t\t\t\t\t...(isInverseSideRenamed ? {\n\t\t\t\t\t\tnewInverseSideFieldName: updatedRelation.inversedBy,\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":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CreateRelationInverseSideModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/CreateRelationInverseSideModification.ts"],"sourcesContent":["import { Model, Schema } from '@contember/schema'\nimport { addField, SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport { createFields } from '../utils/diffUtils'\nimport { isInverseRelation, isRelation } from '@contember/schema-utils'\n\nexport class CreateRelationInverseSideModificationHandler implements ModificationHandler<CreateRelationInverseSideModificationData> {\n\tconstructor(private readonly data: CreateRelationInverseSideModificationData, private readonly schema: Schema) {}\n\n\tpublic createSql(): void {}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn updateModel(\n\t\t\tupdateEntity(this.data.entityName, addField(this.data.relation)),\n\t\t\tupdateEntity(\n\t\t\t\tthis.data.relation.target,\n\t\t\t\tupdateField<Model.AnyRelation & Model.OwningRelation>(this.data.relation.ownedBy, ({ field }) => ({\n\t\t\t\t\t...field,\n\t\t\t\t\tinversedBy: this.data.relation.name,\n\t\t\t\t})),\n\t\t\t),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Add relation ${this.data.entityName}.${this.data.relation.name}` }\n\t}\n}\n\nexport interface CreateRelationInverseSideModificationData {\n\tentityName: string\n\trelation: Model.AnyRelation & Model.InverseRelation\n}\n\nexport const createRelationInverseSideModification = createModificationType({\n\tid: 'createRelationInverseSide',\n\thandler: CreateRelationInverseSideModificationHandler,\n})\n\nexport class CreateRelationInverseSideDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn createFields(originalSchema, updatedSchema, ({ newField, updatedEntity }) => {\n\t\t\tif (!isRelation(newField) || !isInverseRelation(newField)) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\treturn createRelationInverseSideModification.createModification({\n\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\trelation: newField,\n\t\t\t})\n\t\t})\n\t}\n}\n"],"names":["updateModel","updateEntity","addField","updateField","createModificationType","createFields","isRelation","isInverseRelation"],"mappings":";;;;;;AAMO,MAAM,6CAAuH;AAAA,EACnI,YAA6B,MAAkE,QAAgB;AAAlF,SAAA,OAAA;AAAkE,SAAA,SAAA;AAAA,EAAiB;AAAA,EAEzG,YAAkB;AAAA,EAAC;AAAA,EAEnB,mBAAkC;AACjC,WAAAA,kBAAA;AAAA,MACNC,+BAAa,KAAK,KAAK,YAAYC,2BAAS,KAAK,KAAK,QAAQ,CAAC;AAAA,MAC/DD,kBAAA;AAAA,QACC,KAAK,KAAK,SAAS;AAAA,QACnBE,kBAAA,YAAsD,KAAK,KAAK,SAAS,SAAS,CAAC,EAAE,aAAa;AAAA,UACjG,GAAG;AAAA,UACH,YAAY,KAAK,KAAK,SAAS;AAAA,QAAA,EAC9B;AAAA,MACH;AAAA,IAAA;AAAA,EAEF;AAAA,EAEA,WAAW;AACH,WAAA,EAAE,SAAS,gBAAgB,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS,IAAI,GAAG;AAAA,EACrF;AACD;AAOO,MAAM,wCAAwCC,oBAAAA,uBAAuB;AAAA,EAC3E,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,gCAAkD;AAAA,EAC9D,WAAW,gBAAwB,eAAuB;AACzD,WAAOC,UAAAA,aAAa,gBAAgB,eAAe,CAAC,EAAE,UAAU,oBAAoB;AACnF,UAAI,CAACC,YAAW,WAAA,QAAQ,KAAK,CAACC,YAAA,kBAAkB,QAAQ,GAAG;AACnD,eAAA;AAAA,MACR;AACA,aAAO,sCAAsC,mBAAmB;AAAA,QAC/D,YAAY,cAAc;AAAA,QAC1B,UAAU;AAAA,MAAA,CACV;AAAA,IAAA,CACD;AAAA,EACF;AACD;;;;"}
1
+ {"version":3,"file":"CreateRelationInverseSideModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/CreateRelationInverseSideModification.ts"],"sourcesContent":["import { Model, Schema } from '@contember/schema'\nimport { addField, SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport { createFields } from '../utils/diffUtils'\nimport { isInverseRelation, isRelation } from '@contember/schema-utils'\n\nexport class CreateRelationInverseSideModificationHandler implements ModificationHandler<CreateRelationInverseSideModificationData> {\n\tconstructor(private readonly data: CreateRelationInverseSideModificationData, private readonly schema: Schema) {}\n\n\tpublic createSql(): void {}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn updateModel(\n\t\t\tupdateEntity(this.data.entityName, addField(this.data.relation)),\n\t\t\tupdateEntity(\n\t\t\t\tthis.data.relation.target,\n\t\t\t\tupdateField<Model.AnyRelation & Model.OwningRelation>(this.data.relation.ownedBy, ({ field }) => ({\n\t\t\t\t\t...field,\n\t\t\t\t\tinversedBy: this.data.relation.name,\n\t\t\t\t})),\n\t\t\t),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Add relation ${this.data.entityName}.${this.data.relation.name}` }\n\t}\n}\n\nexport interface CreateRelationInverseSideModificationData {\n\tentityName: string\n\trelation: Model.AnyRelation & Model.InverseRelation\n}\n\nexport const createRelationInverseSideModification = createModificationType({\n\tid: 'createRelationInverseSide',\n\thandler: CreateRelationInverseSideModificationHandler,\n})\n\nexport class CreateRelationInverseSideDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn createFields(originalSchema, updatedSchema, ({ newField, updatedEntity }) => {\n\t\t\tif (!isRelation(newField) || !isInverseRelation(newField)) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\treturn createRelationInverseSideModification.createModification({\n\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\trelation: newField,\n\t\t\t})\n\t\t})\n\t}\n}\n"],"names":["updateModel","updateEntity","addField","updateField","createModificationType","createFields","isRelation","isInverseRelation"],"mappings":";;;;;;AAMO,MAAM,6CAAuH;AAAA,EACnI,YAA6B,MAAkE,QAAgB;AAAlF,SAAA,OAAA;AAAkE,SAAA,SAAA;AAAA,EAAA;AAAA,EAExF,YAAkB;AAAA,EAAA;AAAA,EAElB,mBAAkC;AACjC,WAAAA,kBAAA;AAAA,MACNC,+BAAa,KAAK,KAAK,YAAYC,2BAAS,KAAK,KAAK,QAAQ,CAAC;AAAA,MAC/DD,kBAAA;AAAA,QACC,KAAK,KAAK,SAAS;AAAA,QACnBE,kBAAA,YAAsD,KAAK,KAAK,SAAS,SAAS,CAAC,EAAE,aAAa;AAAA,UACjG,GAAG;AAAA,UACH,YAAY,KAAK,KAAK,SAAS;AAAA,QAAA,EAC9B;AAAA,MAAA;AAAA,IAEJ;AAAA,EAAA;AAAA,EAGD,WAAW;AACH,WAAA,EAAE,SAAS,gBAAgB,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS,IAAI,GAAG;AAAA,EAAA;AAEtF;AAOO,MAAM,wCAAwCC,oBAAAA,uBAAuB;AAAA,EAC3E,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,gCAAkD;AAAA,EAC9D,WAAW,gBAAwB,eAAuB;AACzD,WAAOC,UAAAA,aAAa,gBAAgB,eAAe,CAAC,EAAE,UAAU,oBAAoB;AACnF,UAAI,CAACC,YAAW,WAAA,QAAQ,KAAK,CAACC,YAAA,kBAAkB,QAAQ,GAAG;AACnD,eAAA;AAAA,MAAA;AAER,aAAO,sCAAsC,mBAAmB;AAAA,QAC/D,YAAY,cAAc;AAAA,QAC1B,UAAU;AAAA,MAAA,CACV;AAAA,IAAA,CACD;AAAA,EAAA;AAEH;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"CreateRelationInverseSideModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/CreateRelationInverseSideModification.ts"],"sourcesContent":["import { Model, Schema } from '@contember/schema'\nimport { addField, SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport { createFields } from '../utils/diffUtils'\nimport { isInverseRelation, isRelation } from '@contember/schema-utils'\n\nexport class CreateRelationInverseSideModificationHandler implements ModificationHandler<CreateRelationInverseSideModificationData> {\n\tconstructor(private readonly data: CreateRelationInverseSideModificationData, private readonly schema: Schema) {}\n\n\tpublic createSql(): void {}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn updateModel(\n\t\t\tupdateEntity(this.data.entityName, addField(this.data.relation)),\n\t\t\tupdateEntity(\n\t\t\t\tthis.data.relation.target,\n\t\t\t\tupdateField<Model.AnyRelation & Model.OwningRelation>(this.data.relation.ownedBy, ({ field }) => ({\n\t\t\t\t\t...field,\n\t\t\t\t\tinversedBy: this.data.relation.name,\n\t\t\t\t})),\n\t\t\t),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Add relation ${this.data.entityName}.${this.data.relation.name}` }\n\t}\n}\n\nexport interface CreateRelationInverseSideModificationData {\n\tentityName: string\n\trelation: Model.AnyRelation & Model.InverseRelation\n}\n\nexport const createRelationInverseSideModification = createModificationType({\n\tid: 'createRelationInverseSide',\n\thandler: CreateRelationInverseSideModificationHandler,\n})\n\nexport class CreateRelationInverseSideDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn createFields(originalSchema, updatedSchema, ({ newField, updatedEntity }) => {\n\t\t\tif (!isRelation(newField) || !isInverseRelation(newField)) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\treturn createRelationInverseSideModification.createModification({\n\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\trelation: newField,\n\t\t\t})\n\t\t})\n\t}\n}\n"],"names":[],"mappings":";;;;AAMO,MAAM,6CAAuH;AAAA,EACnI,YAA6B,MAAkE,QAAgB;AAAlF,SAAA,OAAA;AAAkE,SAAA,SAAA;AAAA,EAAiB;AAAA,EAEzG,YAAkB;AAAA,EAAC;AAAA,EAEnB,mBAAkC;AACjC,WAAA;AAAA,MACN,aAAa,KAAK,KAAK,YAAY,SAAS,KAAK,KAAK,QAAQ,CAAC;AAAA,MAC/D;AAAA,QACC,KAAK,KAAK,SAAS;AAAA,QACnB,YAAsD,KAAK,KAAK,SAAS,SAAS,CAAC,EAAE,aAAa;AAAA,UACjG,GAAG;AAAA,UACH,YAAY,KAAK,KAAK,SAAS;AAAA,QAAA,EAC9B;AAAA,MACH;AAAA,IAAA;AAAA,EAEF;AAAA,EAEA,WAAW;AACH,WAAA,EAAE,SAAS,gBAAgB,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS,IAAI,GAAG;AAAA,EACrF;AACD;AAOO,MAAM,wCAAwC,uBAAuB;AAAA,EAC3E,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,gCAAkD;AAAA,EAC9D,WAAW,gBAAwB,eAAuB;AACzD,WAAO,aAAa,gBAAgB,eAAe,CAAC,EAAE,UAAU,oBAAoB;AACnF,UAAI,CAAC,WAAW,QAAQ,KAAK,CAAC,kBAAkB,QAAQ,GAAG;AACnD,eAAA;AAAA,MACR;AACA,aAAO,sCAAsC,mBAAmB;AAAA,QAC/D,YAAY,cAAc;AAAA,QAC1B,UAAU;AAAA,MAAA,CACV;AAAA,IAAA,CACD;AAAA,EACF;AACD;"}
1
+ {"version":3,"file":"CreateRelationInverseSideModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/CreateRelationInverseSideModification.ts"],"sourcesContent":["import { Model, Schema } from '@contember/schema'\nimport { addField, SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport { createFields } from '../utils/diffUtils'\nimport { isInverseRelation, isRelation } from '@contember/schema-utils'\n\nexport class CreateRelationInverseSideModificationHandler implements ModificationHandler<CreateRelationInverseSideModificationData> {\n\tconstructor(private readonly data: CreateRelationInverseSideModificationData, private readonly schema: Schema) {}\n\n\tpublic createSql(): void {}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn updateModel(\n\t\t\tupdateEntity(this.data.entityName, addField(this.data.relation)),\n\t\t\tupdateEntity(\n\t\t\t\tthis.data.relation.target,\n\t\t\t\tupdateField<Model.AnyRelation & Model.OwningRelation>(this.data.relation.ownedBy, ({ field }) => ({\n\t\t\t\t\t...field,\n\t\t\t\t\tinversedBy: this.data.relation.name,\n\t\t\t\t})),\n\t\t\t),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Add relation ${this.data.entityName}.${this.data.relation.name}` }\n\t}\n}\n\nexport interface CreateRelationInverseSideModificationData {\n\tentityName: string\n\trelation: Model.AnyRelation & Model.InverseRelation\n}\n\nexport const createRelationInverseSideModification = createModificationType({\n\tid: 'createRelationInverseSide',\n\thandler: CreateRelationInverseSideModificationHandler,\n})\n\nexport class CreateRelationInverseSideDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn createFields(originalSchema, updatedSchema, ({ newField, updatedEntity }) => {\n\t\t\tif (!isRelation(newField) || !isInverseRelation(newField)) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\treturn createRelationInverseSideModification.createModification({\n\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\trelation: newField,\n\t\t\t})\n\t\t})\n\t}\n}\n"],"names":[],"mappings":";;;;AAMO,MAAM,6CAAuH;AAAA,EACnI,YAA6B,MAAkE,QAAgB;AAAlF,SAAA,OAAA;AAAkE,SAAA,SAAA;AAAA,EAAA;AAAA,EAExF,YAAkB;AAAA,EAAA;AAAA,EAElB,mBAAkC;AACjC,WAAA;AAAA,MACN,aAAa,KAAK,KAAK,YAAY,SAAS,KAAK,KAAK,QAAQ,CAAC;AAAA,MAC/D;AAAA,QACC,KAAK,KAAK,SAAS;AAAA,QACnB,YAAsD,KAAK,KAAK,SAAS,SAAS,CAAC,EAAE,aAAa;AAAA,UACjG,GAAG;AAAA,UACH,YAAY,KAAK,KAAK,SAAS;AAAA,QAAA,EAC9B;AAAA,MAAA;AAAA,IAEJ;AAAA,EAAA;AAAA,EAGD,WAAW;AACH,WAAA,EAAE,SAAS,gBAAgB,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS,IAAI,GAAG;AAAA,EAAA;AAEtF;AAOO,MAAM,wCAAwC,uBAAuB;AAAA,EAC3E,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,gCAAkD;AAAA,EAC9D,WAAW,gBAAwB,eAAuB;AACzD,WAAO,aAAa,gBAAgB,eAAe,CAAC,EAAE,UAAU,oBAAoB;AACnF,UAAI,CAAC,WAAW,QAAQ,KAAK,CAAC,kBAAkB,QAAQ,GAAG;AACnD,eAAA;AAAA,MAAA;AAER,aAAO,sCAAsC,mBAAmB;AAAA,QAC/D,YAAY,cAAc;AAAA,QAC1B,UAAU;AAAA,MAAA,CACV;AAAA,IAAA,CACD;AAAA,EAAA;AAEH;"}
@@ -1 +1 @@
1
- {"version":3,"file":"CreateRelationModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/CreateRelationModification.ts"],"sourcesContent":["import { Model, Schema } from '@contember/schema'\nimport { acceptRelationTypeVisitor, isInverseRelation, isOwningRelation, isRelation } from '@contember/schema-utils'\nimport { MigrationBuilder } from '@contember/database-migrations'\nimport { addField, SchemaUpdater, updateEntity, updateModel, updateSchema } from '../utils/schemaUpdateUtils'\nimport {\n\tcreateModificationType,\n\tDiffer,\n\tModificationHandler, ModificationHandlerCreateSqlOptions,\n\tModificationHandlerOptions,\n} from '../ModificationHandler'\nimport { isIt } from '../../utils/isIt'\nimport { createFields } from '../utils/diffUtils'\nimport { getPrimaryColumnType } from '../utils/getPrimaryColumnType'\nimport { createJunctionTableSql } from '../utils/createJunctionTable'\nimport { normalizeManyHasManyRelation, PartialManyHasManyRelation } from './normalization'\nimport { addForeignKeyConstraint } from './helpers'\nimport { wrapIdentifier } from '../../utils/dbHelpers'\n\n\nexport class CreateRelationModificationHandler implements ModificationHandler<CreateRelationModificationData> {\n\n\tconstructor(\n\t\tprivate readonly data: CreateRelationModificationData,\n\t\tprivate readonly schema: Schema,\n\t\tprivate readonly options: ModificationHandlerOptions,\n\t) {}\n\n\tpublic createSql(builder: MigrationBuilder, {\n\t\tdatabaseMetadata,\n\t\tsystemSchema,\n\t\tinvalidateDatabaseMetadata,\n\t}: ModificationHandlerCreateSqlOptions): void {\n\t\tconst entity = this.schema.model.entities[this.data.entityName]\n\t\tif (entity.view) {\n\t\t\treturn\n\t\t}\n\t\tconst targetEntity = this.schema.model.entities[this.data.owningSide.target]\n\t\tconst createOwningSide = (relation: Model.OneHasOneOwningRelation | Model.ManyHasOneRelation) => {\n\t\t\tbuilder.addColumn(entity.tableName, {\n\t\t\t\t[relation.joiningColumn.columnName]: {\n\t\t\t\t\ttype: getPrimaryColumnType(targetEntity),\n\t\t\t\t\tnotNull: !relation.nullable,\n\t\t\t\t},\n\t\t\t})\n\t\t\taddForeignKeyConstraint({ builder, entity, targetEntity, relation, databaseMetadata, invalidateDatabaseMetadata })\n\t\t}\n\t\tacceptRelationTypeVisitor(this.schema.model, entity, this.getNormalizedOwningSide(), {\n\t\t\tvisitManyHasOne: ({ relation }) => {\n\t\t\t\tcreateOwningSide(relation)\n\t\t\t\tconst columnName = relation.joiningColumn.columnName\n\t\t\t\tconst tableNameId = wrapIdentifier(entity.tableName)\n\t\t\t\tconst columnNameId = wrapIdentifier(columnName)\n\t\t\t\tbuilder.sql(`CREATE INDEX ON ${tableNameId} (${columnNameId})`)\n\t\t\t\tinvalidateDatabaseMetadata()\n\t\t\t},\n\t\t\tvisitOneHasMany: () => {},\n\t\t\tvisitOneHasOneOwning: ({ relation }) => {\n\t\t\t\tcreateOwningSide(relation)\n\t\t\t\tconst tableNameId = wrapIdentifier(entity.tableName)\n\t\t\t\tconst columnNameId = wrapIdentifier(relation.joiningColumn.columnName)\n\t\t\t\tbuilder.sql(`ALTER TABLE ${tableNameId} ADD UNIQUE (${columnNameId})`)\n\t\t\t\tinvalidateDatabaseMetadata()\n\t\t\t},\n\t\t\tvisitOneHasOneInverse: () => {},\n\t\t\tvisitManyHasManyOwning: ({ relation }) => {\n\t\t\t\tcreateJunctionTableSql(builder, systemSchema, this.schema, entity, targetEntity, relation)\n\t\t\t},\n\t\t\tvisitManyHasManyInverse: () => {},\n\t\t})\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn updateSchema(\n\t\t\tupdateModel(\n\t\t\t\tupdateEntity(this.data.entityName, addField(this.getNormalizedOwningSide())),\n\t\t\t\tthis.data.inverseSide !== undefined\n\t\t\t\t\t? updateEntity(this.data.owningSide.target, addField(this.data.inverseSide))\n\t\t\t\t\t: undefined,\n\t\t\t),\n\t\t)\n\t}\n\n\tdescribe({ createdEntities }: { createdEntities: string[] }) {\n\t\tconst notNull = isIt<Model.NullableRelation>(this.data.owningSide, 'nullable') && !this.data.owningSide.nullable\n\t\tconst failureWarning =\n\t\t\tnotNull && !createdEntities.includes(this.data.entityName)\n\t\t\t\t? `May fail in runtime, because relation is not-null`\n\t\t\t\t: undefined\n\t\treturn { message: `Add relation ${this.data.entityName}.${this.data.owningSide.name}`, failureWarning }\n\t}\n\n\n\tprivate getNormalizedOwningSide(): Model.AnyOwningRelation {\n\t\tif (this.data.owningSide.type === Model.RelationType.ManyHasMany) {\n\t\t\treturn normalizeManyHasManyRelation(this.data.owningSide)\n\t\t}\n\t\treturn this.data.owningSide\n\t}\n}\n\n\nexport type CreateRelationModificationData = {\n\tentityName: string\n\towningSide:\n\t\t| Model.ManyHasOneRelation\n\t\t| Model.OneHasOneOwningRelation\n\t\t| PartialManyHasManyRelation\n\tinverseSide?: Model.AnyInverseRelation\n}\n\nexport const createRelationModification = createModificationType({\n\tid: 'createRelation',\n\thandler: CreateRelationModificationHandler,\n})\n\nexport class CreateRelationDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn createFields(originalSchema, updatedSchema, ({ newField, updatedEntity }) => {\n\t\t\tif (!isRelation(newField) || !isOwningRelation(newField)) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\tconst inverseSide = newField.inversedBy\n\t\t\t\t? updatedSchema.model.entities[newField.target].fields[newField.inversedBy]\n\t\t\t\t: undefined\n\t\t\tif (inverseSide && !(isRelation(inverseSide) && isInverseRelation(inverseSide))) {\n\t\t\t\tthrow new Error()\n\t\t\t}\n\t\t\treturn createRelationModification.createModification({\n\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\towningSide: newField,\n\t\t\t\t...(inverseSide ? { inverseSide } : {}),\n\t\t\t})\n\t\t})\n\t}\n}\n"],"names":["schema","getPrimaryColumnType","addForeignKeyConstraint","acceptRelationTypeVisitor","wrapIdentifier","createJunctionTableSql","updateSchema","updateModel","updateEntity","addField","isIt","Model","normalizeManyHasManyRelation","createModificationType","createFields","isRelation","isOwningRelation","isInverseRelation"],"mappings":";;;;;;;;;;;;;AAmBO,MAAM,kCAAiG;AAAA,EAE7G,YACkB,MACAA,SACA,SAChB;AAHgB,SAAA,OAAA;AACA,SAAA,SAAAA;AACA,SAAA,UAAA;AAAA,EACf;AAAA,EAEI,UAAU,SAA2B;AAAA,IAC3C;AAAA,IACA;AAAA,IACA;AAAA,EAAA,GAC6C;AAC7C,UAAM,SAAS,KAAK,OAAO,MAAM,SAAS,KAAK,KAAK,UAAU;AAC9D,QAAI,OAAO,MAAM;AAChB;AAAA,IACD;AACM,UAAA,eAAe,KAAK,OAAO,MAAM,SAAS,KAAK,KAAK,WAAW,MAAM;AACrE,UAAA,mBAAmB,CAAC,aAAuE;AACxF,cAAA,UAAU,OAAO,WAAW;AAAA,QACnC,CAAC,SAAS,cAAc,UAAU,GAAG;AAAA,UACpC,MAAMC,0CAAqB,YAAY;AAAA,UACvC,SAAS,CAAC,SAAS;AAAA,QACpB;AAAA,MAAA,CACA;AACDC,sCAAwB,EAAE,SAAS,QAAQ,cAAc,UAAU,kBAAkB,4BAA4B;AAAA,IAAA;AAElHC,gBAAA,0BAA0B,KAAK,OAAO,OAAO,QAAQ,KAAK,2BAA2B;AAAA,MACpF,iBAAiB,CAAC,EAAE,eAAe;AAClC,yBAAiB,QAAQ;AACnB,cAAA,aAAa,SAAS,cAAc;AACpC,cAAA,cAAcC,UAAAA,eAAe,OAAO,SAAS;AAC7C,cAAA,eAAeA,yBAAe,UAAU;AAC9C,gBAAQ,IAAI,mBAAmB,WAAW,KAAK,YAAY,GAAG;AACnC;MAC5B;AAAA,MACA,iBAAiB,MAAM;AAAA,MAAC;AAAA,MACxB,sBAAsB,CAAC,EAAE,eAAe;AACvC,yBAAiB,QAAQ;AACnB,cAAA,cAAcA,UAAAA,eAAe,OAAO,SAAS;AACnD,cAAM,eAAeA,UAAA,eAAe,SAAS,cAAc,UAAU;AACrE,gBAAQ,IAAI,eAAe,WAAW,gBAAgB,YAAY,GAAG;AAC1C;MAC5B;AAAA,MACA,uBAAuB,MAAM;AAAA,MAAC;AAAA,MAC9B,wBAAwB,CAAC,EAAE,eAAe;AACzCC,mDAAuB,SAAS,cAAc,KAAK,QAAQ,QAAQ,cAAc,QAAQ;AAAA,MAC1F;AAAA,MACA,yBAAyB,MAAM;AAAA,MAAC;AAAA,IAAA,CAChC;AAAA,EACF;AAAA,EAEO,mBAAkC;AACjC,WAAAC,kBAAA;AAAA,MACNC,kBAAA;AAAA,QACCC,kBAAA,aAAa,KAAK,KAAK,YAAYC,kBAAAA,SAAS,KAAK,wBAAA,CAAyB,CAAC;AAAA,QAC3E,KAAK,KAAK,gBAAgB,SACvBD,kBAAAA,aAAa,KAAK,KAAK,WAAW,QAAQC,kBAAS,SAAA,KAAK,KAAK,WAAW,CAAC,IACzE;AAAA,MACJ;AAAA,IAAA;AAAA,EAEF;AAAA,EAEA,SAAS,EAAE,mBAAkD;AACtD,UAAA,UAAUC,KAAAA,KAA6B,KAAK,KAAK,YAAY,UAAU,KAAK,CAAC,KAAK,KAAK,WAAW;AAClG,UAAA,iBACL,WAAW,CAAC,gBAAgB,SAAS,KAAK,KAAK,UAAU,IACtD,sDACA;AACJ,WAAO,EAAE,SAAS,gBAAgB,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,WAAW,IAAI,IAAI,eAAe;AAAA,EACvG;AAAA,EAGQ,0BAAmD;AAC1D,QAAI,KAAK,KAAK,WAAW,SAASC,OAAA,MAAM,aAAa,aAAa;AAC1D,aAAAC,2CAA6B,KAAK,KAAK,UAAU;AAAA,IACzD;AACA,WAAO,KAAK,KAAK;AAAA,EAClB;AACD;AAYO,MAAM,6BAA6BC,oBAAAA,uBAAuB;AAAA,EAChE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,qBAAuC;AAAA,EACnD,WAAW,gBAAwB,eAAuB;AACzD,WAAOC,UAAAA,aAAa,gBAAgB,eAAe,CAAC,EAAE,UAAU,oBAAoB;AACnF,UAAI,CAACC,YAAW,WAAA,QAAQ,KAAK,CAACC,YAAA,iBAAiB,QAAQ,GAAG;AAClD,eAAA;AAAA,MACR;AACA,YAAM,cAAc,SAAS,aAC1B,cAAc,MAAM,SAAS,SAAS,MAAM,EAAE,OAAO,SAAS,UAAU,IACxE;AACH,UAAI,eAAe,EAAED,uBAAW,WAAW,KAAKE,YAAA,kBAAkB,WAAW,IAAI;AAChF,cAAM,IAAI,MAAM;AAAA,MACjB;AACA,aAAO,2BAA2B,mBAAmB;AAAA,QACpD,YAAY,cAAc;AAAA,QAC1B,YAAY;AAAA,QACZ,GAAI,cAAc,EAAE,YAAA,IAAgB,CAAC;AAAA,MAAA,CACrC;AAAA,IAAA,CACD;AAAA,EACF;AACD;;;;"}
1
+ {"version":3,"file":"CreateRelationModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/CreateRelationModification.ts"],"sourcesContent":["import { Model, Schema } from '@contember/schema'\nimport { acceptRelationTypeVisitor, isInverseRelation, isOwningRelation, isRelation } from '@contember/schema-utils'\nimport { MigrationBuilder } from '@contember/database-migrations'\nimport { addField, SchemaUpdater, updateEntity, updateModel, updateSchema } from '../utils/schemaUpdateUtils'\nimport {\n\tcreateModificationType,\n\tDiffer,\n\tModificationHandler, ModificationHandlerCreateSqlOptions,\n\tModificationHandlerOptions,\n} from '../ModificationHandler'\nimport { isIt } from '../../utils/isIt'\nimport { createFields } from '../utils/diffUtils'\nimport { getPrimaryColumnType } from '../utils/getPrimaryColumnType'\nimport { createJunctionTableSql } from '../utils/createJunctionTable'\nimport { normalizeManyHasManyRelation, PartialManyHasManyRelation } from './normalization'\nimport { addForeignKeyConstraint } from './helpers'\nimport { wrapIdentifier } from '../../utils/dbHelpers'\n\n\nexport class CreateRelationModificationHandler implements ModificationHandler<CreateRelationModificationData> {\n\n\tconstructor(\n\t\tprivate readonly data: CreateRelationModificationData,\n\t\tprivate readonly schema: Schema,\n\t\tprivate readonly options: ModificationHandlerOptions,\n\t) {}\n\n\tpublic createSql(builder: MigrationBuilder, {\n\t\tdatabaseMetadata,\n\t\tsystemSchema,\n\t\tinvalidateDatabaseMetadata,\n\t}: ModificationHandlerCreateSqlOptions): void {\n\t\tconst entity = this.schema.model.entities[this.data.entityName]\n\t\tif (entity.view) {\n\t\t\treturn\n\t\t}\n\t\tconst targetEntity = this.schema.model.entities[this.data.owningSide.target]\n\t\tconst createOwningSide = (relation: Model.OneHasOneOwningRelation | Model.ManyHasOneRelation) => {\n\t\t\tbuilder.addColumn(entity.tableName, {\n\t\t\t\t[relation.joiningColumn.columnName]: {\n\t\t\t\t\ttype: getPrimaryColumnType(targetEntity),\n\t\t\t\t\tnotNull: !relation.nullable,\n\t\t\t\t},\n\t\t\t})\n\t\t\taddForeignKeyConstraint({ builder, entity, targetEntity, relation, databaseMetadata, invalidateDatabaseMetadata })\n\t\t}\n\t\tacceptRelationTypeVisitor(this.schema.model, entity, this.getNormalizedOwningSide(), {\n\t\t\tvisitManyHasOne: ({ relation }) => {\n\t\t\t\tcreateOwningSide(relation)\n\t\t\t\tconst columnName = relation.joiningColumn.columnName\n\t\t\t\tconst tableNameId = wrapIdentifier(entity.tableName)\n\t\t\t\tconst columnNameId = wrapIdentifier(columnName)\n\t\t\t\tbuilder.sql(`CREATE INDEX ON ${tableNameId} (${columnNameId})`)\n\t\t\t\tinvalidateDatabaseMetadata()\n\t\t\t},\n\t\t\tvisitOneHasMany: () => {},\n\t\t\tvisitOneHasOneOwning: ({ relation }) => {\n\t\t\t\tcreateOwningSide(relation)\n\t\t\t\tconst tableNameId = wrapIdentifier(entity.tableName)\n\t\t\t\tconst columnNameId = wrapIdentifier(relation.joiningColumn.columnName)\n\t\t\t\tbuilder.sql(`ALTER TABLE ${tableNameId} ADD UNIQUE (${columnNameId})`)\n\t\t\t\tinvalidateDatabaseMetadata()\n\t\t\t},\n\t\t\tvisitOneHasOneInverse: () => {},\n\t\t\tvisitManyHasManyOwning: ({ relation }) => {\n\t\t\t\tcreateJunctionTableSql(builder, systemSchema, this.schema, entity, targetEntity, relation)\n\t\t\t},\n\t\t\tvisitManyHasManyInverse: () => {},\n\t\t})\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn updateSchema(\n\t\t\tupdateModel(\n\t\t\t\tupdateEntity(this.data.entityName, addField(this.getNormalizedOwningSide())),\n\t\t\t\tthis.data.inverseSide !== undefined\n\t\t\t\t\t? updateEntity(this.data.owningSide.target, addField(this.data.inverseSide))\n\t\t\t\t\t: undefined,\n\t\t\t),\n\t\t)\n\t}\n\n\tdescribe({ createdEntities }: { createdEntities: string[] }) {\n\t\tconst notNull = isIt<Model.NullableRelation>(this.data.owningSide, 'nullable') && !this.data.owningSide.nullable\n\t\tconst failureWarning =\n\t\t\tnotNull && !createdEntities.includes(this.data.entityName)\n\t\t\t\t? `May fail in runtime, because relation is not-null`\n\t\t\t\t: undefined\n\t\treturn { message: `Add relation ${this.data.entityName}.${this.data.owningSide.name}`, failureWarning }\n\t}\n\n\n\tprivate getNormalizedOwningSide(): Model.AnyOwningRelation {\n\t\tif (this.data.owningSide.type === Model.RelationType.ManyHasMany) {\n\t\t\treturn normalizeManyHasManyRelation(this.data.owningSide)\n\t\t}\n\t\treturn this.data.owningSide\n\t}\n}\n\n\nexport type CreateRelationModificationData = {\n\tentityName: string\n\towningSide:\n\t\t| Model.ManyHasOneRelation\n\t\t| Model.OneHasOneOwningRelation\n\t\t| PartialManyHasManyRelation\n\tinverseSide?: Model.AnyInverseRelation\n}\n\nexport const createRelationModification = createModificationType({\n\tid: 'createRelation',\n\thandler: CreateRelationModificationHandler,\n})\n\nexport class CreateRelationDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn createFields(originalSchema, updatedSchema, ({ newField, updatedEntity }) => {\n\t\t\tif (!isRelation(newField) || !isOwningRelation(newField)) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\tconst inverseSide = newField.inversedBy\n\t\t\t\t? updatedSchema.model.entities[newField.target].fields[newField.inversedBy]\n\t\t\t\t: undefined\n\t\t\tif (inverseSide && !(isRelation(inverseSide) && isInverseRelation(inverseSide))) {\n\t\t\t\tthrow new Error()\n\t\t\t}\n\t\t\treturn createRelationModification.createModification({\n\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\towningSide: newField,\n\t\t\t\t...(inverseSide ? { inverseSide } : {}),\n\t\t\t})\n\t\t})\n\t}\n}\n"],"names":["schema","getPrimaryColumnType","addForeignKeyConstraint","acceptRelationTypeVisitor","wrapIdentifier","createJunctionTableSql","updateSchema","updateModel","updateEntity","addField","isIt","Model","normalizeManyHasManyRelation","createModificationType","createFields","isRelation","isOwningRelation","isInverseRelation"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CreateRelationModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/CreateRelationModification.ts"],"sourcesContent":["import { Model, Schema } from '@contember/schema'\nimport { acceptRelationTypeVisitor, isInverseRelation, isOwningRelation, isRelation } from '@contember/schema-utils'\nimport { MigrationBuilder } from '@contember/database-migrations'\nimport { addField, SchemaUpdater, updateEntity, updateModel, updateSchema } from '../utils/schemaUpdateUtils'\nimport {\n\tcreateModificationType,\n\tDiffer,\n\tModificationHandler, ModificationHandlerCreateSqlOptions,\n\tModificationHandlerOptions,\n} from '../ModificationHandler'\nimport { isIt } from '../../utils/isIt'\nimport { createFields } from '../utils/diffUtils'\nimport { getPrimaryColumnType } from '../utils/getPrimaryColumnType'\nimport { createJunctionTableSql } from '../utils/createJunctionTable'\nimport { normalizeManyHasManyRelation, PartialManyHasManyRelation } from './normalization'\nimport { addForeignKeyConstraint } from './helpers'\nimport { wrapIdentifier } from '../../utils/dbHelpers'\n\n\nexport class CreateRelationModificationHandler implements ModificationHandler<CreateRelationModificationData> {\n\n\tconstructor(\n\t\tprivate readonly data: CreateRelationModificationData,\n\t\tprivate readonly schema: Schema,\n\t\tprivate readonly options: ModificationHandlerOptions,\n\t) {}\n\n\tpublic createSql(builder: MigrationBuilder, {\n\t\tdatabaseMetadata,\n\t\tsystemSchema,\n\t\tinvalidateDatabaseMetadata,\n\t}: ModificationHandlerCreateSqlOptions): void {\n\t\tconst entity = this.schema.model.entities[this.data.entityName]\n\t\tif (entity.view) {\n\t\t\treturn\n\t\t}\n\t\tconst targetEntity = this.schema.model.entities[this.data.owningSide.target]\n\t\tconst createOwningSide = (relation: Model.OneHasOneOwningRelation | Model.ManyHasOneRelation) => {\n\t\t\tbuilder.addColumn(entity.tableName, {\n\t\t\t\t[relation.joiningColumn.columnName]: {\n\t\t\t\t\ttype: getPrimaryColumnType(targetEntity),\n\t\t\t\t\tnotNull: !relation.nullable,\n\t\t\t\t},\n\t\t\t})\n\t\t\taddForeignKeyConstraint({ builder, entity, targetEntity, relation, databaseMetadata, invalidateDatabaseMetadata })\n\t\t}\n\t\tacceptRelationTypeVisitor(this.schema.model, entity, this.getNormalizedOwningSide(), {\n\t\t\tvisitManyHasOne: ({ relation }) => {\n\t\t\t\tcreateOwningSide(relation)\n\t\t\t\tconst columnName = relation.joiningColumn.columnName\n\t\t\t\tconst tableNameId = wrapIdentifier(entity.tableName)\n\t\t\t\tconst columnNameId = wrapIdentifier(columnName)\n\t\t\t\tbuilder.sql(`CREATE INDEX ON ${tableNameId} (${columnNameId})`)\n\t\t\t\tinvalidateDatabaseMetadata()\n\t\t\t},\n\t\t\tvisitOneHasMany: () => {},\n\t\t\tvisitOneHasOneOwning: ({ relation }) => {\n\t\t\t\tcreateOwningSide(relation)\n\t\t\t\tconst tableNameId = wrapIdentifier(entity.tableName)\n\t\t\t\tconst columnNameId = wrapIdentifier(relation.joiningColumn.columnName)\n\t\t\t\tbuilder.sql(`ALTER TABLE ${tableNameId} ADD UNIQUE (${columnNameId})`)\n\t\t\t\tinvalidateDatabaseMetadata()\n\t\t\t},\n\t\t\tvisitOneHasOneInverse: () => {},\n\t\t\tvisitManyHasManyOwning: ({ relation }) => {\n\t\t\t\tcreateJunctionTableSql(builder, systemSchema, this.schema, entity, targetEntity, relation)\n\t\t\t},\n\t\t\tvisitManyHasManyInverse: () => {},\n\t\t})\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn updateSchema(\n\t\t\tupdateModel(\n\t\t\t\tupdateEntity(this.data.entityName, addField(this.getNormalizedOwningSide())),\n\t\t\t\tthis.data.inverseSide !== undefined\n\t\t\t\t\t? updateEntity(this.data.owningSide.target, addField(this.data.inverseSide))\n\t\t\t\t\t: undefined,\n\t\t\t),\n\t\t)\n\t}\n\n\tdescribe({ createdEntities }: { createdEntities: string[] }) {\n\t\tconst notNull = isIt<Model.NullableRelation>(this.data.owningSide, 'nullable') && !this.data.owningSide.nullable\n\t\tconst failureWarning =\n\t\t\tnotNull && !createdEntities.includes(this.data.entityName)\n\t\t\t\t? `May fail in runtime, because relation is not-null`\n\t\t\t\t: undefined\n\t\treturn { message: `Add relation ${this.data.entityName}.${this.data.owningSide.name}`, failureWarning }\n\t}\n\n\n\tprivate getNormalizedOwningSide(): Model.AnyOwningRelation {\n\t\tif (this.data.owningSide.type === Model.RelationType.ManyHasMany) {\n\t\t\treturn normalizeManyHasManyRelation(this.data.owningSide)\n\t\t}\n\t\treturn this.data.owningSide\n\t}\n}\n\n\nexport type CreateRelationModificationData = {\n\tentityName: string\n\towningSide:\n\t\t| Model.ManyHasOneRelation\n\t\t| Model.OneHasOneOwningRelation\n\t\t| PartialManyHasManyRelation\n\tinverseSide?: Model.AnyInverseRelation\n}\n\nexport const createRelationModification = createModificationType({\n\tid: 'createRelation',\n\thandler: CreateRelationModificationHandler,\n})\n\nexport class CreateRelationDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn createFields(originalSchema, updatedSchema, ({ newField, updatedEntity }) => {\n\t\t\tif (!isRelation(newField) || !isOwningRelation(newField)) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\tconst inverseSide = newField.inversedBy\n\t\t\t\t? updatedSchema.model.entities[newField.target].fields[newField.inversedBy]\n\t\t\t\t: undefined\n\t\t\tif (inverseSide && !(isRelation(inverseSide) && isInverseRelation(inverseSide))) {\n\t\t\t\tthrow new Error()\n\t\t\t}\n\t\t\treturn createRelationModification.createModification({\n\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\towningSide: newField,\n\t\t\t\t...(inverseSide ? { inverseSide } : {}),\n\t\t\t})\n\t\t})\n\t}\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CreateRelationModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/CreateRelationModification.ts"],"sourcesContent":["import { Model, Schema } from '@contember/schema'\nimport { acceptRelationTypeVisitor, isInverseRelation, isOwningRelation, isRelation } from '@contember/schema-utils'\nimport { MigrationBuilder } from '@contember/database-migrations'\nimport { addField, SchemaUpdater, updateEntity, updateModel, updateSchema } from '../utils/schemaUpdateUtils'\nimport {\n\tcreateModificationType,\n\tDiffer,\n\tModificationHandler, ModificationHandlerCreateSqlOptions,\n\tModificationHandlerOptions,\n} from '../ModificationHandler'\nimport { isIt } from '../../utils/isIt'\nimport { createFields } from '../utils/diffUtils'\nimport { getPrimaryColumnType } from '../utils/getPrimaryColumnType'\nimport { createJunctionTableSql } from '../utils/createJunctionTable'\nimport { normalizeManyHasManyRelation, PartialManyHasManyRelation } from './normalization'\nimport { addForeignKeyConstraint } from './helpers'\nimport { wrapIdentifier } from '../../utils/dbHelpers'\n\n\nexport class CreateRelationModificationHandler implements ModificationHandler<CreateRelationModificationData> {\n\n\tconstructor(\n\t\tprivate readonly data: CreateRelationModificationData,\n\t\tprivate readonly schema: Schema,\n\t\tprivate readonly options: ModificationHandlerOptions,\n\t) {}\n\n\tpublic createSql(builder: MigrationBuilder, {\n\t\tdatabaseMetadata,\n\t\tsystemSchema,\n\t\tinvalidateDatabaseMetadata,\n\t}: ModificationHandlerCreateSqlOptions): void {\n\t\tconst entity = this.schema.model.entities[this.data.entityName]\n\t\tif (entity.view) {\n\t\t\treturn\n\t\t}\n\t\tconst targetEntity = this.schema.model.entities[this.data.owningSide.target]\n\t\tconst createOwningSide = (relation: Model.OneHasOneOwningRelation | Model.ManyHasOneRelation) => {\n\t\t\tbuilder.addColumn(entity.tableName, {\n\t\t\t\t[relation.joiningColumn.columnName]: {\n\t\t\t\t\ttype: getPrimaryColumnType(targetEntity),\n\t\t\t\t\tnotNull: !relation.nullable,\n\t\t\t\t},\n\t\t\t})\n\t\t\taddForeignKeyConstraint({ builder, entity, targetEntity, relation, databaseMetadata, invalidateDatabaseMetadata })\n\t\t}\n\t\tacceptRelationTypeVisitor(this.schema.model, entity, this.getNormalizedOwningSide(), {\n\t\t\tvisitManyHasOne: ({ relation }) => {\n\t\t\t\tcreateOwningSide(relation)\n\t\t\t\tconst columnName = relation.joiningColumn.columnName\n\t\t\t\tconst tableNameId = wrapIdentifier(entity.tableName)\n\t\t\t\tconst columnNameId = wrapIdentifier(columnName)\n\t\t\t\tbuilder.sql(`CREATE INDEX ON ${tableNameId} (${columnNameId})`)\n\t\t\t\tinvalidateDatabaseMetadata()\n\t\t\t},\n\t\t\tvisitOneHasMany: () => {},\n\t\t\tvisitOneHasOneOwning: ({ relation }) => {\n\t\t\t\tcreateOwningSide(relation)\n\t\t\t\tconst tableNameId = wrapIdentifier(entity.tableName)\n\t\t\t\tconst columnNameId = wrapIdentifier(relation.joiningColumn.columnName)\n\t\t\t\tbuilder.sql(`ALTER TABLE ${tableNameId} ADD UNIQUE (${columnNameId})`)\n\t\t\t\tinvalidateDatabaseMetadata()\n\t\t\t},\n\t\t\tvisitOneHasOneInverse: () => {},\n\t\t\tvisitManyHasManyOwning: ({ relation }) => {\n\t\t\t\tcreateJunctionTableSql(builder, systemSchema, this.schema, entity, targetEntity, relation)\n\t\t\t},\n\t\t\tvisitManyHasManyInverse: () => {},\n\t\t})\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn updateSchema(\n\t\t\tupdateModel(\n\t\t\t\tupdateEntity(this.data.entityName, addField(this.getNormalizedOwningSide())),\n\t\t\t\tthis.data.inverseSide !== undefined\n\t\t\t\t\t? updateEntity(this.data.owningSide.target, addField(this.data.inverseSide))\n\t\t\t\t\t: undefined,\n\t\t\t),\n\t\t)\n\t}\n\n\tdescribe({ createdEntities }: { createdEntities: string[] }) {\n\t\tconst notNull = isIt<Model.NullableRelation>(this.data.owningSide, 'nullable') && !this.data.owningSide.nullable\n\t\tconst failureWarning =\n\t\t\tnotNull && !createdEntities.includes(this.data.entityName)\n\t\t\t\t? `May fail in runtime, because relation is not-null`\n\t\t\t\t: undefined\n\t\treturn { message: `Add relation ${this.data.entityName}.${this.data.owningSide.name}`, failureWarning }\n\t}\n\n\n\tprivate getNormalizedOwningSide(): Model.AnyOwningRelation {\n\t\tif (this.data.owningSide.type === Model.RelationType.ManyHasMany) {\n\t\t\treturn normalizeManyHasManyRelation(this.data.owningSide)\n\t\t}\n\t\treturn this.data.owningSide\n\t}\n}\n\n\nexport type CreateRelationModificationData = {\n\tentityName: string\n\towningSide:\n\t\t| Model.ManyHasOneRelation\n\t\t| Model.OneHasOneOwningRelation\n\t\t| PartialManyHasManyRelation\n\tinverseSide?: Model.AnyInverseRelation\n}\n\nexport const createRelationModification = createModificationType({\n\tid: 'createRelation',\n\thandler: CreateRelationModificationHandler,\n})\n\nexport class CreateRelationDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn createFields(originalSchema, updatedSchema, ({ newField, updatedEntity }) => {\n\t\t\tif (!isRelation(newField) || !isOwningRelation(newField)) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\tconst inverseSide = newField.inversedBy\n\t\t\t\t? updatedSchema.model.entities[newField.target].fields[newField.inversedBy]\n\t\t\t\t: undefined\n\t\t\tif (inverseSide && !(isRelation(inverseSide) && isInverseRelation(inverseSide))) {\n\t\t\t\tthrow new Error()\n\t\t\t}\n\t\t\treturn createRelationModification.createModification({\n\t\t\t\tentityName: updatedEntity.name,\n\t\t\t\towningSide: newField,\n\t\t\t\t...(inverseSide ? { inverseSide } : {}),\n\t\t\t})\n\t\t})\n\t}\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DisableOrphanRemovalModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/DisableOrphanRemovalModification.ts"],"sourcesContent":["import { Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport { isOwningRelation } from '@contember/schema-utils'\nimport { updateRelations } from '../utils/diffUtils'\n\nexport class DisableOrphanRemovalModificationHandler implements ModificationHandler<DisableOrphanRemovalModificationData> {\n\n\tconstructor(private readonly data: DisableOrphanRemovalModificationData, private readonly schema: Schema) {}\n\n\tpublic createSql(): void {}\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.OneHasOneOwningRelation>(fieldName, ({ field: { orphanRemoval, ...field } }) => field),\n\t\t\t),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn {\n\t\t\tmessage: `Disable orphan removal on ${this.data.entityName}.${this.data.fieldName}`,\n\t\t}\n\t}\n}\n\nexport interface DisableOrphanRemovalModificationData {\n\tentityName: string\n\tfieldName: string\n}\n\nexport const disableOrphanRemovalModification = createModificationType({\n\tid: 'disableOrphanRemoval',\n\thandler: DisableOrphanRemovalModificationHandler,\n})\n\nexport class DisableOrphanRemovalDiffer 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\tisOwningRelation(originalRelation) &&\n\t\t\t\tisOwningRelation(updatedRelation) &&\n\t\t\t\toriginalRelation.type === Model.RelationType.OneHasOne &&\n\t\t\t\tupdatedRelation.type === Model.RelationType.OneHasOne &&\n\t\t\t\toriginalRelation.orphanRemoval &&\n\t\t\t\t!updatedRelation.orphanRemoval\n\t\t\t) {\n\t\t\t\treturn disableOrphanRemovalModification.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":["schema","updateModel","updateEntity","updateField","createModificationType","updateRelations","isOwningRelation","Model"],"mappings":";;;;;;;AAMO,MAAM,wCAA6G;AAAA,EAEzH,YAA6B,MAA6DA,SAAgB;AAA7E,SAAA,OAAA;AAA6D,SAAA,SAAAA;AAAA,EAAiB;AAAA,EAEpG,YAAkB;AAAA,EAAC;AAAA,EAEnB,mBAAkC;AACxC,UAAM,EAAE,YAAY,cAAc,KAAK;AAChC,WAAAC,kBAAA;AAAA,MACNC,kBAAA;AAAA,QACC;AAAA,QACAC,8BAA2C,WAAW,CAAC,EAAE,OAAO,EAAE,eAAe,GAAG,QAAQ,MAAM,KAAK;AAAA,MACxG;AAAA,IAAA;AAAA,EAEF;AAAA,EAEA,WAAW;AACH,WAAA;AAAA,MACN,SAAS,6BAA6B,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS;AAAA,IAAA;AAAA,EAEnF;AACD;AAOO,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;AAE9G,UAAAC,YAAA,iBAAiB,gBAAgB,KACjCA,YAAA,iBAAiB,eAAe,KAChC,iBAAiB,SAASC,OAAAA,MAAM,aAAa,aAC7C,gBAAgB,SAASA,aAAM,aAAa,aAC5C,iBAAiB,iBACjB,CAAC,gBAAgB,eAChB;AACD,eAAO,iCAAiC,mBAAmB;AAAA,UAC1D,YAAY,cAAc;AAAA,UAC1B,WAAW,gBAAgB;AAAA,QAAA,CAC3B;AAAA,MACF;AACO,aAAA;AAAA,IAAA,CACP;AAAA,EACF;AACD;;;;"}
1
+ {"version":3,"file":"DisableOrphanRemovalModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/DisableOrphanRemovalModification.ts"],"sourcesContent":["import { Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport { isOwningRelation } from '@contember/schema-utils'\nimport { updateRelations } from '../utils/diffUtils'\n\nexport class DisableOrphanRemovalModificationHandler implements ModificationHandler<DisableOrphanRemovalModificationData> {\n\n\tconstructor(private readonly data: DisableOrphanRemovalModificationData, private readonly schema: Schema) {}\n\n\tpublic createSql(): void {}\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.OneHasOneOwningRelation>(fieldName, ({ field: { orphanRemoval, ...field } }) => field),\n\t\t\t),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn {\n\t\t\tmessage: `Disable orphan removal on ${this.data.entityName}.${this.data.fieldName}`,\n\t\t}\n\t}\n}\n\nexport interface DisableOrphanRemovalModificationData {\n\tentityName: string\n\tfieldName: string\n}\n\nexport const disableOrphanRemovalModification = createModificationType({\n\tid: 'disableOrphanRemoval',\n\thandler: DisableOrphanRemovalModificationHandler,\n})\n\nexport class DisableOrphanRemovalDiffer 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\tisOwningRelation(originalRelation) &&\n\t\t\t\tisOwningRelation(updatedRelation) &&\n\t\t\t\toriginalRelation.type === Model.RelationType.OneHasOne &&\n\t\t\t\tupdatedRelation.type === Model.RelationType.OneHasOne &&\n\t\t\t\toriginalRelation.orphanRemoval &&\n\t\t\t\t!updatedRelation.orphanRemoval\n\t\t\t) {\n\t\t\t\treturn disableOrphanRemovalModification.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":["schema","updateModel","updateEntity","updateField","createModificationType","updateRelations","isOwningRelation","Model"],"mappings":";;;;;;;AAMO,MAAM,wCAA6G;AAAA,EAEzH,YAA6B,MAA6DA,SAAgB;AAA7E,SAAA,OAAA;AAA6D,SAAA,SAAAA;AAAA,EAAA;AAAA,EAEnF,YAAkB;AAAA,EAAA;AAAA,EAElB,mBAAkC;AACxC,UAAM,EAAE,YAAY,UAAU,IAAI,KAAK;AAChC,WAAAC,kBAAA;AAAA,MACNC,kBAAA;AAAA,QACC;AAAA,QACAC,8BAA2C,WAAW,CAAC,EAAE,OAAO,EAAE,eAAe,GAAG,MAAQ,EAAA,MAAM,KAAK;AAAA,MAAA;AAAA,IAEzG;AAAA,EAAA;AAAA,EAGD,WAAW;AACH,WAAA;AAAA,MACN,SAAS,6BAA6B,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS;AAAA,IAClF;AAAA,EAAA;AAEF;AAOO,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;AAE9G,UAAAC,YAAA,iBAAiB,gBAAgB,KACjCA,YAAA,iBAAiB,eAAe,KAChC,iBAAiB,SAASC,OAAAA,MAAM,aAAa,aAC7C,gBAAgB,SAASA,aAAM,aAAa,aAC5C,iBAAiB,iBACjB,CAAC,gBAAgB,eAChB;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 +1 @@
1
- {"version":3,"file":"DisableOrphanRemovalModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/DisableOrphanRemovalModification.ts"],"sourcesContent":["import { Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport { isOwningRelation } from '@contember/schema-utils'\nimport { updateRelations } from '../utils/diffUtils'\n\nexport class DisableOrphanRemovalModificationHandler implements ModificationHandler<DisableOrphanRemovalModificationData> {\n\n\tconstructor(private readonly data: DisableOrphanRemovalModificationData, private readonly schema: Schema) {}\n\n\tpublic createSql(): void {}\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.OneHasOneOwningRelation>(fieldName, ({ field: { orphanRemoval, ...field } }) => field),\n\t\t\t),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn {\n\t\t\tmessage: `Disable orphan removal on ${this.data.entityName}.${this.data.fieldName}`,\n\t\t}\n\t}\n}\n\nexport interface DisableOrphanRemovalModificationData {\n\tentityName: string\n\tfieldName: string\n}\n\nexport const disableOrphanRemovalModification = createModificationType({\n\tid: 'disableOrphanRemoval',\n\thandler: DisableOrphanRemovalModificationHandler,\n})\n\nexport class DisableOrphanRemovalDiffer 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\tisOwningRelation(originalRelation) &&\n\t\t\t\tisOwningRelation(updatedRelation) &&\n\t\t\t\toriginalRelation.type === Model.RelationType.OneHasOne &&\n\t\t\t\tupdatedRelation.type === Model.RelationType.OneHasOne &&\n\t\t\t\toriginalRelation.orphanRemoval &&\n\t\t\t\t!updatedRelation.orphanRemoval\n\t\t\t) {\n\t\t\t\treturn disableOrphanRemovalModification.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":";;;;;AAMO,MAAM,wCAA6G;AAAA,EAEzH,YAA6B,MAA6D,QAAgB;AAA7E,SAAA,OAAA;AAA6D,SAAA,SAAA;AAAA,EAAiB;AAAA,EAEpG,YAAkB;AAAA,EAAC;AAAA,EAEnB,mBAAkC;AACxC,UAAM,EAAE,YAAY,cAAc,KAAK;AAChC,WAAA;AAAA,MACN;AAAA,QACC;AAAA,QACA,YAA2C,WAAW,CAAC,EAAE,OAAO,EAAE,eAAe,GAAG,QAAQ,MAAM,KAAK;AAAA,MACxG;AAAA,IAAA;AAAA,EAEF;AAAA,EAEA,WAAW;AACH,WAAA;AAAA,MACN,SAAS,6BAA6B,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS;AAAA,IAAA;AAAA,EAEnF;AACD;AAOO,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;AAE9G,UAAA,iBAAiB,gBAAgB,KACjC,iBAAiB,eAAe,KAChC,iBAAiB,SAAS,MAAM,aAAa,aAC7C,gBAAgB,SAAS,MAAM,aAAa,aAC5C,iBAAiB,iBACjB,CAAC,gBAAgB,eAChB;AACD,eAAO,iCAAiC,mBAAmB;AAAA,UAC1D,YAAY,cAAc;AAAA,UAC1B,WAAW,gBAAgB;AAAA,QAAA,CAC3B;AAAA,MACF;AACO,aAAA;AAAA,IAAA,CACP;AAAA,EACF;AACD;"}
1
+ {"version":3,"file":"DisableOrphanRemovalModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/DisableOrphanRemovalModification.ts"],"sourcesContent":["import { Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport { isOwningRelation } from '@contember/schema-utils'\nimport { updateRelations } from '../utils/diffUtils'\n\nexport class DisableOrphanRemovalModificationHandler implements ModificationHandler<DisableOrphanRemovalModificationData> {\n\n\tconstructor(private readonly data: DisableOrphanRemovalModificationData, private readonly schema: Schema) {}\n\n\tpublic createSql(): void {}\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.OneHasOneOwningRelation>(fieldName, ({ field: { orphanRemoval, ...field } }) => field),\n\t\t\t),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn {\n\t\t\tmessage: `Disable orphan removal on ${this.data.entityName}.${this.data.fieldName}`,\n\t\t}\n\t}\n}\n\nexport interface DisableOrphanRemovalModificationData {\n\tentityName: string\n\tfieldName: string\n}\n\nexport const disableOrphanRemovalModification = createModificationType({\n\tid: 'disableOrphanRemoval',\n\thandler: DisableOrphanRemovalModificationHandler,\n})\n\nexport class DisableOrphanRemovalDiffer 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\tisOwningRelation(originalRelation) &&\n\t\t\t\tisOwningRelation(updatedRelation) &&\n\t\t\t\toriginalRelation.type === Model.RelationType.OneHasOne &&\n\t\t\t\tupdatedRelation.type === Model.RelationType.OneHasOne &&\n\t\t\t\toriginalRelation.orphanRemoval &&\n\t\t\t\t!updatedRelation.orphanRemoval\n\t\t\t) {\n\t\t\t\treturn disableOrphanRemovalModification.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":";;;;;AAMO,MAAM,wCAA6G;AAAA,EAEzH,YAA6B,MAA6D,QAAgB;AAA7E,SAAA,OAAA;AAA6D,SAAA,SAAA;AAAA,EAAA;AAAA,EAEnF,YAAkB;AAAA,EAAA;AAAA,EAElB,mBAAkC;AACxC,UAAM,EAAE,YAAY,UAAU,IAAI,KAAK;AAChC,WAAA;AAAA,MACN;AAAA,QACC;AAAA,QACA,YAA2C,WAAW,CAAC,EAAE,OAAO,EAAE,eAAe,GAAG,MAAQ,EAAA,MAAM,KAAK;AAAA,MAAA;AAAA,IAEzG;AAAA,EAAA;AAAA,EAGD,WAAW;AACH,WAAA;AAAA,MACN,SAAS,6BAA6B,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS;AAAA,IAClF;AAAA,EAAA;AAEF;AAOO,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;AAE9G,UAAA,iBAAiB,gBAAgB,KACjC,iBAAiB,eAAe,KAChC,iBAAiB,SAAS,MAAM,aAAa,aAC7C,gBAAgB,SAAS,MAAM,aAAa,aAC5C,iBAAiB,iBACjB,CAAC,gBAAgB,eAChB;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 +1 @@
1
- {"version":3,"file":"EnableOrphanRemovalModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/EnableOrphanRemovalModification.ts"],"sourcesContent":["import { Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport { isOwningRelation } from '@contember/schema-utils'\nimport { updateRelations } from '../utils/diffUtils'\n\nexport class EnableOrphanRemovalModificationHandler implements ModificationHandler<EnableOrphanRemovalModificationData> {\n\tconstructor(private readonly data: EnableOrphanRemovalModificationData, private readonly schema: Schema) {}\n\n\tpublic createSql(): void {}\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.OneHasOneOwningRelation>(fieldName, ({ field }) => ({\n\t\t\t\t\t...field,\n\t\t\t\t\torphanRemoval: 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: `Enable orphan removal on ${this.data.entityName}.${this.data.fieldName}`,\n\t\t}\n\t}\n\n}\n\nexport interface EnableOrphanRemovalModificationData {\n\tentityName: string\n\tfieldName: string\n}\n\nexport const enableOrphanRemovalModification = createModificationType({\n\tid: 'enableOrphanRemoval',\n\thandler: EnableOrphanRemovalModificationHandler,\n})\n\nexport class EnableOrphanRemovalDiffer 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\tisOwningRelation(originalRelation) &&\n\t\t\t\tisOwningRelation(updatedRelation) &&\n\t\t\t\toriginalRelation.type === Model.RelationType.OneHasOne &&\n\t\t\t\tupdatedRelation.type === Model.RelationType.OneHasOne &&\n\t\t\t\t!originalRelation.orphanRemoval &&\n\t\t\t\tupdatedRelation.orphanRemoval\n\t\t\t) {\n\t\t\t\treturn enableOrphanRemovalModification.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":["schema","updateModel","updateEntity","updateField","createModificationType","updateRelations","isOwningRelation","Model"],"mappings":";;;;;;;AAMO,MAAM,uCAA2G;AAAA,EACvH,YAA6B,MAA4DA,SAAgB;AAA5E,SAAA,OAAA;AAA4D,SAAA,SAAAA;AAAA,EAAiB;AAAA,EAEnG,YAAkB;AAAA,EAAC;AAAA,EAEnB,mBAAkC;AACxC,UAAM,EAAE,YAAY,cAAc,KAAK;AAChC,WAAAC,kBAAA;AAAA,MACNC,kBAAA;AAAA,QACC;AAAA,QACAC,kBAAAA,YAA2C,WAAW,CAAC,EAAE,aAAa;AAAA,UACrE,GAAG;AAAA,UACH,eAAe;AAAA,QAAA,EACd;AAAA,MACH;AAAA,IAAA;AAAA,EAEF;AAAA,EAEA,WAAW;AACH,WAAA;AAAA,MACN,SAAS,4BAA4B,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS;AAAA,IAAA;AAAA,EAElF;AAED;AAOO,MAAM,kCAAkCC,oBAAAA,uBAAuB;AAAA,EACrE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,0BAA4C;AAAA,EACvD,WAAW,gBAAwB,eAAuB;AACnD,WAAAC,UAAAA,gBAAgB,gBAAgB,eAAe,CAAC,EAAE,kBAAkB,iBAAiB,oBAAoB;AAE9G,UAAAC,YAAA,iBAAiB,gBAAgB,KACjCA,YAAA,iBAAiB,eAAe,KAChC,iBAAiB,SAASC,OAAAA,MAAM,aAAa,aAC7C,gBAAgB,SAASA,aAAM,aAAa,aAC5C,CAAC,iBAAiB,iBAClB,gBAAgB,eACf;AACD,eAAO,gCAAgC,mBAAmB;AAAA,UACzD,YAAY,cAAc;AAAA,UAC1B,WAAW,gBAAgB;AAAA,QAAA,CAC3B;AAAA,MACF;AACO,aAAA;AAAA,IAAA,CACP;AAAA,EACF;AACD;;;;"}
1
+ {"version":3,"file":"EnableOrphanRemovalModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/EnableOrphanRemovalModification.ts"],"sourcesContent":["import { Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport { isOwningRelation } from '@contember/schema-utils'\nimport { updateRelations } from '../utils/diffUtils'\n\nexport class EnableOrphanRemovalModificationHandler implements ModificationHandler<EnableOrphanRemovalModificationData> {\n\tconstructor(private readonly data: EnableOrphanRemovalModificationData, private readonly schema: Schema) {}\n\n\tpublic createSql(): void {}\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.OneHasOneOwningRelation>(fieldName, ({ field }) => ({\n\t\t\t\t\t...field,\n\t\t\t\t\torphanRemoval: 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: `Enable orphan removal on ${this.data.entityName}.${this.data.fieldName}`,\n\t\t}\n\t}\n\n}\n\nexport interface EnableOrphanRemovalModificationData {\n\tentityName: string\n\tfieldName: string\n}\n\nexport const enableOrphanRemovalModification = createModificationType({\n\tid: 'enableOrphanRemoval',\n\thandler: EnableOrphanRemovalModificationHandler,\n})\n\nexport class EnableOrphanRemovalDiffer 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\tisOwningRelation(originalRelation) &&\n\t\t\t\tisOwningRelation(updatedRelation) &&\n\t\t\t\toriginalRelation.type === Model.RelationType.OneHasOne &&\n\t\t\t\tupdatedRelation.type === Model.RelationType.OneHasOne &&\n\t\t\t\t!originalRelation.orphanRemoval &&\n\t\t\t\tupdatedRelation.orphanRemoval\n\t\t\t) {\n\t\t\t\treturn enableOrphanRemovalModification.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":["schema","updateModel","updateEntity","updateField","createModificationType","updateRelations","isOwningRelation","Model"],"mappings":";;;;;;;AAMO,MAAM,uCAA2G;AAAA,EACvH,YAA6B,MAA4DA,SAAgB;AAA5E,SAAA,OAAA;AAA4D,SAAA,SAAAA;AAAA,EAAA;AAAA,EAElF,YAAkB;AAAA,EAAA;AAAA,EAElB,mBAAkC;AACxC,UAAM,EAAE,YAAY,UAAU,IAAI,KAAK;AAChC,WAAAC,kBAAA;AAAA,MACNC,kBAAA;AAAA,QACC;AAAA,QACAC,kBAAAA,YAA2C,WAAW,CAAC,EAAE,aAAa;AAAA,UACrE,GAAG;AAAA,UACH,eAAe;AAAA,QAAA,EACd;AAAA,MAAA;AAAA,IAEJ;AAAA,EAAA;AAAA,EAGD,WAAW;AACH,WAAA;AAAA,MACN,SAAS,4BAA4B,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS;AAAA,IACjF;AAAA,EAAA;AAGF;AAOO,MAAM,kCAAkCC,oBAAAA,uBAAuB;AAAA,EACrE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,0BAA4C;AAAA,EACvD,WAAW,gBAAwB,eAAuB;AACnD,WAAAC,UAAAA,gBAAgB,gBAAgB,eAAe,CAAC,EAAE,kBAAkB,iBAAiB,oBAAoB;AAE9G,UAAAC,YAAA,iBAAiB,gBAAgB,KACjCA,YAAA,iBAAiB,eAAe,KAChC,iBAAiB,SAASC,OAAAA,MAAM,aAAa,aAC7C,gBAAgB,SAASA,aAAM,aAAa,aAC5C,CAAC,iBAAiB,iBAClB,gBAAgB,eACf;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 +1 @@
1
- {"version":3,"file":"EnableOrphanRemovalModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/EnableOrphanRemovalModification.ts"],"sourcesContent":["import { Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport { isOwningRelation } from '@contember/schema-utils'\nimport { updateRelations } from '../utils/diffUtils'\n\nexport class EnableOrphanRemovalModificationHandler implements ModificationHandler<EnableOrphanRemovalModificationData> {\n\tconstructor(private readonly data: EnableOrphanRemovalModificationData, private readonly schema: Schema) {}\n\n\tpublic createSql(): void {}\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.OneHasOneOwningRelation>(fieldName, ({ field }) => ({\n\t\t\t\t\t...field,\n\t\t\t\t\torphanRemoval: 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: `Enable orphan removal on ${this.data.entityName}.${this.data.fieldName}`,\n\t\t}\n\t}\n\n}\n\nexport interface EnableOrphanRemovalModificationData {\n\tentityName: string\n\tfieldName: string\n}\n\nexport const enableOrphanRemovalModification = createModificationType({\n\tid: 'enableOrphanRemoval',\n\thandler: EnableOrphanRemovalModificationHandler,\n})\n\nexport class EnableOrphanRemovalDiffer 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\tisOwningRelation(originalRelation) &&\n\t\t\t\tisOwningRelation(updatedRelation) &&\n\t\t\t\toriginalRelation.type === Model.RelationType.OneHasOne &&\n\t\t\t\tupdatedRelation.type === Model.RelationType.OneHasOne &&\n\t\t\t\t!originalRelation.orphanRemoval &&\n\t\t\t\tupdatedRelation.orphanRemoval\n\t\t\t) {\n\t\t\t\treturn enableOrphanRemovalModification.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":";;;;;AAMO,MAAM,uCAA2G;AAAA,EACvH,YAA6B,MAA4D,QAAgB;AAA5E,SAAA,OAAA;AAA4D,SAAA,SAAA;AAAA,EAAiB;AAAA,EAEnG,YAAkB;AAAA,EAAC;AAAA,EAEnB,mBAAkC;AACxC,UAAM,EAAE,YAAY,cAAc,KAAK;AAChC,WAAA;AAAA,MACN;AAAA,QACC;AAAA,QACA,YAA2C,WAAW,CAAC,EAAE,aAAa;AAAA,UACrE,GAAG;AAAA,UACH,eAAe;AAAA,QAAA,EACd;AAAA,MACH;AAAA,IAAA;AAAA,EAEF;AAAA,EAEA,WAAW;AACH,WAAA;AAAA,MACN,SAAS,4BAA4B,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS;AAAA,IAAA;AAAA,EAElF;AAED;AAOO,MAAM,kCAAkC,uBAAuB;AAAA,EACrE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,0BAA4C;AAAA,EACvD,WAAW,gBAAwB,eAAuB;AACnD,WAAA,gBAAgB,gBAAgB,eAAe,CAAC,EAAE,kBAAkB,iBAAiB,oBAAoB;AAE9G,UAAA,iBAAiB,gBAAgB,KACjC,iBAAiB,eAAe,KAChC,iBAAiB,SAAS,MAAM,aAAa,aAC7C,gBAAgB,SAAS,MAAM,aAAa,aAC5C,CAAC,iBAAiB,iBAClB,gBAAgB,eACf;AACD,eAAO,gCAAgC,mBAAmB;AAAA,UACzD,YAAY,cAAc;AAAA,UAC1B,WAAW,gBAAgB;AAAA,QAAA,CAC3B;AAAA,MACF;AACO,aAAA;AAAA,IAAA,CACP;AAAA,EACF;AACD;"}
1
+ {"version":3,"file":"EnableOrphanRemovalModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/EnableOrphanRemovalModification.ts"],"sourcesContent":["import { Model, Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEntity, updateField, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport { isOwningRelation } from '@contember/schema-utils'\nimport { updateRelations } from '../utils/diffUtils'\n\nexport class EnableOrphanRemovalModificationHandler implements ModificationHandler<EnableOrphanRemovalModificationData> {\n\tconstructor(private readonly data: EnableOrphanRemovalModificationData, private readonly schema: Schema) {}\n\n\tpublic createSql(): void {}\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.OneHasOneOwningRelation>(fieldName, ({ field }) => ({\n\t\t\t\t\t...field,\n\t\t\t\t\torphanRemoval: 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: `Enable orphan removal on ${this.data.entityName}.${this.data.fieldName}`,\n\t\t}\n\t}\n\n}\n\nexport interface EnableOrphanRemovalModificationData {\n\tentityName: string\n\tfieldName: string\n}\n\nexport const enableOrphanRemovalModification = createModificationType({\n\tid: 'enableOrphanRemoval',\n\thandler: EnableOrphanRemovalModificationHandler,\n})\n\nexport class EnableOrphanRemovalDiffer 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\tisOwningRelation(originalRelation) &&\n\t\t\t\tisOwningRelation(updatedRelation) &&\n\t\t\t\toriginalRelation.type === Model.RelationType.OneHasOne &&\n\t\t\t\tupdatedRelation.type === Model.RelationType.OneHasOne &&\n\t\t\t\t!originalRelation.orphanRemoval &&\n\t\t\t\tupdatedRelation.orphanRemoval\n\t\t\t) {\n\t\t\t\treturn enableOrphanRemovalModification.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":";;;;;AAMO,MAAM,uCAA2G;AAAA,EACvH,YAA6B,MAA4D,QAAgB;AAA5E,SAAA,OAAA;AAA4D,SAAA,SAAA;AAAA,EAAA;AAAA,EAElF,YAAkB;AAAA,EAAA;AAAA,EAElB,mBAAkC;AACxC,UAAM,EAAE,YAAY,UAAU,IAAI,KAAK;AAChC,WAAA;AAAA,MACN;AAAA,QACC;AAAA,QACA,YAA2C,WAAW,CAAC,EAAE,aAAa;AAAA,UACrE,GAAG;AAAA,UACH,eAAe;AAAA,QAAA,EACd;AAAA,MAAA;AAAA,IAEJ;AAAA,EAAA;AAAA,EAGD,WAAW;AACH,WAAA;AAAA,MACN,SAAS,4BAA4B,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS;AAAA,IACjF;AAAA,EAAA;AAGF;AAOO,MAAM,kCAAkC,uBAAuB;AAAA,EACrE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,0BAA4C;AAAA,EACvD,WAAW,gBAAwB,eAAuB;AACnD,WAAA,gBAAgB,gBAAgB,eAAe,CAAC,EAAE,kBAAkB,iBAAiB,oBAAoB;AAE9G,UAAA,iBAAiB,gBAAgB,KACjC,iBAAiB,eAAe,KAChC,iBAAiB,SAAS,MAAM,aAAa,aAC7C,gBAAgB,SAAS,MAAM,aAAa,aAC5C,CAAC,iBAAiB,iBAClB,gBAAgB,eACf;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 +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,EAAiB;AAAA,EAEnG,UAAU,SAAiC;AACjD,UAAM,SAASA,YAAU,UAAA,KAAK,OAAO,OAAO,KAAK,KAAK,UAAU;AAChE,QAAI,OAAO,MAAM;AAChB;AAAA,IACD;AACM,UAAA,aAAaC,6BAAiB,KAAK,OAAO,OAAO,QAAQ,KAAK,KAAK,SAAS;AAClF,QAAI,CAAC,YAAY;AAChB;AAAA,IACD;AACQ,YAAA,YAAY,OAAO,WAAW,YAAY;AAAA,MACjD,SAAS;AAAA,IAAA,CACT;AAAA,EACF;AAAA,EAEO,mBAAkC;AACxC,UAAM,EAAE,YAAY,cAAc,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,MACH;AAAA,IAAA;AAAA,EAEF;AAAA,EAEA,WAAW;AACH,WAAA;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;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,MACF;AACO,aAAA;AAAA,IAAA,CACP;AAAA,EACF;AACD;;;;"}
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 +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,EAAiB;AAAA,EAEnG,UAAU,SAAiC;AACjD,UAAM,SAAS,UAAU,KAAK,OAAO,OAAO,KAAK,KAAK,UAAU;AAChE,QAAI,OAAO,MAAM;AAChB;AAAA,IACD;AACM,UAAA,aAAa,iBAAiB,KAAK,OAAO,OAAO,QAAQ,KAAK,KAAK,SAAS;AAClF,QAAI,CAAC,YAAY;AAChB;AAAA,IACD;AACQ,YAAA,YAAY,OAAO,WAAW,YAAY;AAAA,MACjD,SAAS;AAAA,IAAA,CACT;AAAA,EACF;AAAA,EAEO,mBAAkC;AACxC,UAAM,EAAE,YAAY,cAAc,KAAK;AAChC,WAAA;AAAA,MACN;AAAA,QACC;AAAA,QACA,YAAwD,WAAW,CAAC,EAAE,aAAa;AAAA,UAClF,GAAG;AAAA,UACH,UAAU;AAAA,QAAA,EACT;AAAA,MACH;AAAA,IAAA;AAAA,EAEF;AAAA,EAEA,WAAW;AACH,WAAA;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;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,MACF;AACO,aAAA;AAAA,IAAA,CACP;AAAA,EACF;AACD;"}
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 +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,EAAiB;AAAA,EAEpG,UAAU,SAAiC;AACjD,UAAM,SAASA,YAAU,UAAA,KAAK,OAAO,OAAO,KAAK,KAAK,UAAU;AAChE,QAAI,OAAO,MAAM;AAChB;AAAA,IACD;AACM,UAAA,aAAaC,6BAAiB,KAAK,OAAO,OAAO,QAAQ,KAAK,KAAK,SAAS;AAClF,QAAI,CAAC,YAAY;AAChB;AAAA,IACD;AACQ,YAAA,YAAY,OAAO,WAAW,YAAY;AAAA,MACjD,SAAS;AAAA,IAAA,CACT;AAAA,EACF;AAAA,EAEO,mBAAkC;AACxC,UAAM,EAAE,YAAY,cAAc,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,MACH;AAAA,IAAA;AAAA,EAEF;AAAA,EAEA,WAAW;AACH,WAAA;AAAA,MACN,SAAS,iBAAiB,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS;AAAA,IAAA;AAAA,EAEvE;AAED;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,MACF;AACO,aAAA;AAAA,IAAA,CACP;AAAA,EACF;AACD;;;;"}
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 +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,EAAiB;AAAA,EAEpG,UAAU,SAAiC;AACjD,UAAM,SAAS,UAAU,KAAK,OAAO,OAAO,KAAK,KAAK,UAAU;AAChE,QAAI,OAAO,MAAM;AAChB;AAAA,IACD;AACM,UAAA,aAAa,iBAAiB,KAAK,OAAO,OAAO,QAAQ,KAAK,KAAK,SAAS;AAClF,QAAI,CAAC,YAAY;AAChB;AAAA,IACD;AACQ,YAAA,YAAY,OAAO,WAAW,YAAY;AAAA,MACjD,SAAS;AAAA,IAAA,CACT;AAAA,EACF;AAAA,EAEO,mBAAkC;AACxC,UAAM,EAAE,YAAY,cAAc,KAAK;AAChC,WAAA;AAAA,MACN;AAAA,QACC;AAAA,QACA,YAAwD,WAAW,CAAC,EAAE,aAAa;AAAA,UAClF,GAAG;AAAA,UACH,UAAU;AAAA,QAAA,EACT;AAAA,MACH;AAAA,IAAA;AAAA,EAEF;AAAA,EAEA,WAAW;AACH,WAAA;AAAA,MACN,SAAS,iBAAiB,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS;AAAA,IAAA;AAAA,EAEvE;AAED;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,MACF;AACO,aAAA;AAAA,IAAA,CACP;AAAA,EACF;AACD;"}
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 +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,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,YAAA,WAAW,QAAQ,KAAK,SAAS,SAASC,aAAM,aAAa,eAAe,CAACC,YAAiB,iBAAA,QAAQ,GAAG;AACvG,YAAA,IAAI,MAAM,eAAe;AAAA,IAChC;AACM,UAAA,YAAY,SAAS,aAAa;AACpC,QAAA,KAAK,KAAK,SAAS;AACtB,YAAM,iBAAiB;AAAA,QACtB,SAAS,aAAa,cAAc;AAAA,QACpC,SAAS,aAAa,qBAAqB;AAAA,MAAA;AAEzBC,qBAAAA,mBAAA,SAAS,cAAc,WAAW,cAAc;AAC7CC,qBAAAA,sBAAA,SAAS,cAAc,SAAS;AAAA,IAAA,OAChD;AACNC,sCAAiB,SAAS,SAAS;AACnCC,yCAAoB,SAAS,SAAS;AAAA,IACvC;AAAA,EACD;AAAA,EAEO,mBAAkC;AACxC,UAAM,EAAE,YAAY,WAAW,QAAA,IAAY,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,cACD;AAAA,YACD;AAAA,UAAA;AAAA,QACD,CACA;AAAA,MACF;AAAA,IAAA;AAAA,EAEF;AAAA,EAEA,WAAW;AACH,WAAA;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,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,QACF;AAAA,MACD;AACO,aAAA;AAAA,IAAA,CACP;AAAA,EAEF;AACD;;;;"}
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 +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,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;AACvG,YAAA,IAAI,MAAM,eAAe;AAAA,IAChC;AACM,UAAA,YAAY,SAAS,aAAa;AACpC,QAAA,KAAK,KAAK,SAAS;AACtB,YAAM,iBAAiB;AAAA,QACtB,SAAS,aAAa,cAAc;AAAA,QACpC,SAAS,aAAa,qBAAqB;AAAA,MAAA;AAEzB,yBAAA,SAAS,cAAc,WAAW,cAAc;AAC7C,4BAAA,SAAS,cAAc,SAAS;AAAA,IAAA,OAChD;AACN,uBAAiB,SAAS,SAAS;AACnC,0BAAoB,SAAS,SAAS;AAAA,IACvC;AAAA,EACD;AAAA,EAEO,mBAAkC;AACxC,UAAM,EAAE,YAAY,WAAW,QAAA,IAAY,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,cACD;AAAA,YACD;AAAA,UAAA;AAAA,QACD,CACA;AAAA,MACF;AAAA,IAAA;AAAA,EAEF;AAAA,EAEA,WAAW;AACH,WAAA;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,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,QACF;AAAA,MACD;AACO,aAAA;AAAA,IAAA,CACP;AAAA,EAEF;AACD;"}
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 +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,EACf;AAAA,EAEI,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,IACD;AAEAA,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,2BAA4B,CAAA;AAAA,MAClI;AAAA,MACA,sBAAsB,CAAC,EAAE,QAAAA,SAAQ,UAAU,mBAAmB;AACrCC,gBAAAA,wBAAA,EAAE,SAAS,QAAAD,SAAQ,cAAc,UAAU,UAAU,MAAM,kBAAkB,2BAA4B,CAAA;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;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,MACH;AAAA,IAAA;AAAA,EAEF;AAAA,EAEA,WAAW;AACH,WAAA,EAAE,SAAS,uCAAuC,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS,GAAG;AAAA,EACxG;AACD;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,MACF;AACO,aAAA;AAAA,IAAA,CACP;AAAA,EACF;AACD;;;;"}
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 +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,EACf;AAAA,EAEI,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,IACD;AAEA,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,2BAA4B,CAAA;AAAA,MAClI;AAAA,MACA,sBAAsB,CAAC,EAAE,QAAAA,SAAQ,UAAU,mBAAmB;AACrC,gCAAA,EAAE,SAAS,QAAAA,SAAQ,cAAc,UAAU,UAAU,MAAM,kBAAkB,2BAA4B,CAAA;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;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,MACH;AAAA,IAAA;AAAA,EAEF;AAAA,EAEA,WAAW;AACH,WAAA,EAAE,SAAS,uCAAuC,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS,GAAG;AAAA,EACxG;AACD;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,MACF;AACO,aAAA;AAAA,IAAA,CACP;AAAA,EACF;AACD;"}
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 +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,EAAiB;AAAA,EAErG,YAAkB;AAAA,EAAC;AAAA,EAEnB,mBAAkC;AACxC,UAAM,EAAE,YAAY,WAAW,QAAA,IAAY,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,MACH;AAAA,IAAA;AAAA,EAEF;AAAA,EAEA,WAAW;AACH,WAAA,EAAE,SAAS,+BAA+B,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS,GAAG;AAAA,EAChG;AACD;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,OAAAA,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,CAAC;AAAA,QAAA,CACrC;AAAA,MACF;AACO,aAAA;AAAA,IAAA,CACP;AAAA,EACF;AACD;;;;"}
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 +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,EAAiB;AAAA,EAErG,YAAkB;AAAA,EAAC;AAAA,EAEnB,mBAAkC;AACxC,UAAM,EAAE,YAAY,WAAW,QAAA,IAAY,KAAK;AACzC,WAAA;AAAA,MACN;AAAA,QACC;AAAA,QACA,YAAyD,WAAW,CAAC,EAAE,aAAa;AAAA,UACnF,GAAG;AAAA,UACH;AAAA,QAAA,EACC;AAAA,MACH;AAAA,IAAA;AAAA,EAEF;AAAA,EAEA,WAAW;AACH,WAAA,EAAE,SAAS,+BAA+B,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS,GAAG;AAAA,EAChG;AACD;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,CAAC;AAAA,QAAA,CACrC;AAAA,MACF;AACO,aAAA;AAAA,IAAA,CACP;AAAA,EACF;AACD;"}
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;"}