@contember/schema-migrations 2.0.0-alpha.32 → 2.0.0-alpha.36

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 (293) 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.map +1 -1
  4. package/dist/development/src/SchemaDiffer.js.map +1 -1
  5. package/dist/development/src/SchemaMigrator.cjs.map +1 -1
  6. package/dist/development/src/SchemaMigrator.js.map +1 -1
  7. package/dist/development/src/modifications/ModificationHandler.cjs.map +1 -1
  8. package/dist/development/src/modifications/ModificationHandler.js.map +1 -1
  9. package/dist/development/src/modifications/ModificationHandlerFactory.cjs.map +1 -1
  10. package/dist/development/src/modifications/ModificationHandlerFactory.js.map +1 -1
  11. package/dist/development/src/modifications/NoopModification.cjs.map +1 -1
  12. package/dist/development/src/modifications/NoopModification.js.map +1 -1
  13. package/dist/development/src/modifications/acl/PatchAclSchemaModification.cjs.map +1 -1
  14. package/dist/development/src/modifications/acl/PatchAclSchemaModification.js.map +1 -1
  15. package/dist/development/src/modifications/acl/UpdateAclSchemaModification.cjs.map +1 -1
  16. package/dist/development/src/modifications/acl/UpdateAclSchemaModification.js.map +1 -1
  17. package/dist/development/src/modifications/actions/CreateTargetModification.cjs.map +1 -1
  18. package/dist/development/src/modifications/actions/CreateTargetModification.js.map +1 -1
  19. package/dist/development/src/modifications/actions/CreateTriggerModification.cjs.map +1 -1
  20. package/dist/development/src/modifications/actions/CreateTriggerModification.js.map +1 -1
  21. package/dist/development/src/modifications/actions/RemoveTargetModification.cjs.map +1 -1
  22. package/dist/development/src/modifications/actions/RemoveTargetModification.js.map +1 -1
  23. package/dist/development/src/modifications/actions/RemoveTriggerModification.cjs.map +1 -1
  24. package/dist/development/src/modifications/actions/RemoveTriggerModification.js.map +1 -1
  25. package/dist/development/src/modifications/actions/UpdateTargetModification.cjs.map +1 -1
  26. package/dist/development/src/modifications/actions/UpdateTargetModification.js.map +1 -1
  27. package/dist/development/src/modifications/actions/UpdateTriggerModification.cjs.map +1 -1
  28. package/dist/development/src/modifications/actions/UpdateTriggerModification.js.map +1 -1
  29. package/dist/development/src/modifications/columns/CreateColumnModification.cjs.map +1 -1
  30. package/dist/development/src/modifications/columns/CreateColumnModification.js.map +1 -1
  31. package/dist/development/src/modifications/columns/UpdateColumnDefinitionModification.cjs.map +1 -1
  32. package/dist/development/src/modifications/columns/UpdateColumnDefinitionModification.js.map +1 -1
  33. package/dist/development/src/modifications/columns/UpdateColumnNameModification.cjs.map +1 -1
  34. package/dist/development/src/modifications/columns/UpdateColumnNameModification.js.map +1 -1
  35. package/dist/development/src/modifications/columns/columnUtils.cjs.map +1 -1
  36. package/dist/development/src/modifications/columns/columnUtils.js.map +1 -1
  37. package/dist/development/src/modifications/constraints/CreateUniqueConstraintModification.cjs.map +1 -1
  38. package/dist/development/src/modifications/constraints/CreateUniqueConstraintModification.js.map +1 -1
  39. package/dist/development/src/modifications/constraints/RemoveUniqueConstraintModification.cjs.map +1 -1
  40. package/dist/development/src/modifications/constraints/RemoveUniqueConstraintModification.js.map +1 -1
  41. package/dist/development/src/modifications/constraints/utils.cjs.map +1 -1
  42. package/dist/development/src/modifications/constraints/utils.js.map +1 -1
  43. package/dist/development/src/modifications/differs/RemoveChangedFieldDiffer.cjs.map +1 -1
  44. package/dist/development/src/modifications/differs/RemoveChangedFieldDiffer.js.map +1 -1
  45. package/dist/development/src/modifications/differs/RemoveViewDiffer.cjs.map +1 -1
  46. package/dist/development/src/modifications/differs/RemoveViewDiffer.js.map +1 -1
  47. package/dist/development/src/modifications/entities/CreateEntityModification.cjs.map +1 -1
  48. package/dist/development/src/modifications/entities/CreateEntityModification.js.map +1 -1
  49. package/dist/development/src/modifications/entities/CreateViewModification.cjs.map +1 -1
  50. package/dist/development/src/modifications/entities/CreateViewModification.js.map +1 -1
  51. package/dist/development/src/modifications/entities/RemoveEntityModification.cjs.map +1 -1
  52. package/dist/development/src/modifications/entities/RemoveEntityModification.js.map +1 -1
  53. package/dist/development/src/modifications/entities/ToggleEventLogModification.cjs.map +1 -1
  54. package/dist/development/src/modifications/entities/ToggleEventLogModification.js.map +1 -1
  55. package/dist/development/src/modifications/entities/UpdateEntityNameModification.cjs.map +1 -1
  56. package/dist/development/src/modifications/entities/UpdateEntityNameModification.js.map +1 -1
  57. package/dist/development/src/modifications/entities/UpdateEntityOrderByModification.cjs.map +1 -1
  58. package/dist/development/src/modifications/entities/UpdateEntityOrderByModification.js.map +1 -1
  59. package/dist/development/src/modifications/entities/UpdateEntityTableNameModification.cjs.map +1 -1
  60. package/dist/development/src/modifications/entities/UpdateEntityTableNameModification.js.map +1 -1
  61. package/dist/development/src/modifications/entities/UpdateViewModification.cjs.map +1 -1
  62. package/dist/development/src/modifications/entities/UpdateViewModification.js.map +1 -1
  63. package/dist/development/src/modifications/enums/CreateEnumModification.cjs.map +1 -1
  64. package/dist/development/src/modifications/enums/CreateEnumModification.js.map +1 -1
  65. package/dist/development/src/modifications/enums/RemoveEnumModification.cjs.map +1 -1
  66. package/dist/development/src/modifications/enums/RemoveEnumModification.js.map +1 -1
  67. package/dist/development/src/modifications/enums/UpdateEnumModification.cjs.map +1 -1
  68. package/dist/development/src/modifications/enums/UpdateEnumModification.js.map +1 -1
  69. package/dist/development/src/modifications/enums/enumUtils.cjs.map +1 -1
  70. package/dist/development/src/modifications/fields/RemoveFieldModification.cjs.map +1 -1
  71. package/dist/development/src/modifications/fields/RemoveFieldModification.js.map +1 -1
  72. package/dist/development/src/modifications/fields/UpdateFieldNameModification.cjs.map +1 -1
  73. package/dist/development/src/modifications/fields/UpdateFieldNameModification.js.map +1 -1
  74. package/dist/development/src/modifications/indexes/CreateIndexModification.cjs.map +1 -1
  75. package/dist/development/src/modifications/indexes/CreateIndexModification.js.map +1 -1
  76. package/dist/development/src/modifications/indexes/RemoveIndexModification.cjs.map +1 -1
  77. package/dist/development/src/modifications/indexes/RemoveIndexModification.js.map +1 -1
  78. package/dist/development/src/modifications/indexes/utils.cjs.map +1 -1
  79. package/dist/development/src/modifications/indexes/utils.js.map +1 -1
  80. package/dist/development/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.cjs.map +1 -1
  81. package/dist/development/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.js.map +1 -1
  82. package/dist/development/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.cjs.map +1 -1
  83. package/dist/development/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.js.map +1 -1
  84. package/dist/development/src/modifications/relations/ConvertOneToManyRelationModification.cjs.map +1 -1
  85. package/dist/development/src/modifications/relations/ConvertOneToManyRelationModification.js.map +1 -1
  86. package/dist/development/src/modifications/relations/CreateRelationInverseSideModification.cjs.map +1 -1
  87. package/dist/development/src/modifications/relations/CreateRelationInverseSideModification.js.map +1 -1
  88. package/dist/development/src/modifications/relations/CreateRelationModification.cjs.map +1 -1
  89. package/dist/development/src/modifications/relations/CreateRelationModification.js.map +1 -1
  90. package/dist/development/src/modifications/relations/DisableOrphanRemovalModification.cjs.map +1 -1
  91. package/dist/development/src/modifications/relations/DisableOrphanRemovalModification.js.map +1 -1
  92. package/dist/development/src/modifications/relations/EnableOrphanRemovalModification.cjs.map +1 -1
  93. package/dist/development/src/modifications/relations/EnableOrphanRemovalModification.js.map +1 -1
  94. package/dist/development/src/modifications/relations/MakeRelationNotNullModification.cjs.map +1 -1
  95. package/dist/development/src/modifications/relations/MakeRelationNotNullModification.js.map +1 -1
  96. package/dist/development/src/modifications/relations/MakeRelationNullableModification.cjs.map +1 -1
  97. package/dist/development/src/modifications/relations/MakeRelationNullableModification.js.map +1 -1
  98. package/dist/development/src/modifications/relations/ToggleJunctionEventLogModification.cjs.map +1 -1
  99. package/dist/development/src/modifications/relations/ToggleJunctionEventLogModification.js.map +1 -1
  100. package/dist/development/src/modifications/relations/UpdateRelationOnDeleteModification.cjs.map +1 -1
  101. package/dist/development/src/modifications/relations/UpdateRelationOnDeleteModification.js.map +1 -1
  102. package/dist/development/src/modifications/relations/UpdateRelationOrderByModification.cjs.map +1 -1
  103. package/dist/development/src/modifications/relations/UpdateRelationOrderByModification.js.map +1 -1
  104. package/dist/development/src/modifications/relations/helpers.cjs.map +1 -1
  105. package/dist/development/src/modifications/relations/helpers.js.map +1 -1
  106. package/dist/development/src/modifications/relations/normalization.cjs.map +1 -1
  107. package/dist/development/src/modifications/relations/normalization.js.map +1 -1
  108. package/dist/development/src/modifications/settings/UpdateSettingsModification.cjs.map +1 -1
  109. package/dist/development/src/modifications/settings/UpdateSettingsModification.js.map +1 -1
  110. package/dist/development/src/modifications/upgrade/RemoveIndexNamesModification.cjs.map +1 -1
  111. package/dist/development/src/modifications/upgrade/RemoveIndexNamesModification.js.map +1 -1
  112. package/dist/development/src/modifications/utils/createJunctionTable.cjs.map +1 -1
  113. package/dist/development/src/modifications/utils/createJunctionTable.js.map +1 -1
  114. package/dist/development/src/modifications/utils/diffUtils.cjs.map +1 -1
  115. package/dist/development/src/modifications/utils/diffUtils.js.map +1 -1
  116. package/dist/development/src/modifications/utils/schemaUpdateUtils.cjs.map +1 -1
  117. package/dist/development/src/modifications/utils/schemaUpdateUtils.js.map +1 -1
  118. package/dist/development/src/modifications/utils/sqlUpdateUtils.cjs.map +1 -1
  119. package/dist/development/src/modifications/utils/sqlUpdateUtils.js.map +1 -1
  120. package/dist/development/src/modifications/utils/viewDependencies.cjs.map +1 -1
  121. package/dist/development/src/modifications/utils/viewDependencies.js.map +1 -1
  122. package/dist/development/src/modifications/validation/PatchValidationSchemaModification.cjs.map +1 -1
  123. package/dist/development/src/modifications/validation/PatchValidationSchemaModification.js.map +1 -1
  124. package/dist/development/src/modifications/validation/UpdateValidationSchemaModification.cjs.map +1 -1
  125. package/dist/development/src/modifications/validation/UpdateValidationSchemaModification.js.map +1 -1
  126. package/dist/development/src/utils/deepCopy.cjs.map +1 -1
  127. package/dist/development/src/utils/deepCopy.js.map +1 -1
  128. package/dist/production/src/MigrationDescriber.cjs.map +1 -1
  129. package/dist/production/src/MigrationDescriber.js.map +1 -1
  130. package/dist/production/src/SchemaDiffer.cjs.map +1 -1
  131. package/dist/production/src/SchemaDiffer.js.map +1 -1
  132. package/dist/production/src/SchemaMigrator.cjs.map +1 -1
  133. package/dist/production/src/SchemaMigrator.js.map +1 -1
  134. package/dist/production/src/modifications/ModificationHandler.cjs.map +1 -1
  135. package/dist/production/src/modifications/ModificationHandler.js.map +1 -1
  136. package/dist/production/src/modifications/ModificationHandlerFactory.cjs.map +1 -1
  137. package/dist/production/src/modifications/ModificationHandlerFactory.js.map +1 -1
  138. package/dist/production/src/modifications/NoopModification.cjs.map +1 -1
  139. package/dist/production/src/modifications/NoopModification.js.map +1 -1
  140. package/dist/production/src/modifications/acl/PatchAclSchemaModification.cjs.map +1 -1
  141. package/dist/production/src/modifications/acl/PatchAclSchemaModification.js.map +1 -1
  142. package/dist/production/src/modifications/acl/UpdateAclSchemaModification.cjs.map +1 -1
  143. package/dist/production/src/modifications/acl/UpdateAclSchemaModification.js.map +1 -1
  144. package/dist/production/src/modifications/actions/CreateTargetModification.cjs.map +1 -1
  145. package/dist/production/src/modifications/actions/CreateTargetModification.js.map +1 -1
  146. package/dist/production/src/modifications/actions/CreateTriggerModification.cjs.map +1 -1
  147. package/dist/production/src/modifications/actions/CreateTriggerModification.js.map +1 -1
  148. package/dist/production/src/modifications/actions/RemoveTargetModification.cjs.map +1 -1
  149. package/dist/production/src/modifications/actions/RemoveTargetModification.js.map +1 -1
  150. package/dist/production/src/modifications/actions/RemoveTriggerModification.cjs.map +1 -1
  151. package/dist/production/src/modifications/actions/RemoveTriggerModification.js.map +1 -1
  152. package/dist/production/src/modifications/actions/UpdateTargetModification.cjs.map +1 -1
  153. package/dist/production/src/modifications/actions/UpdateTargetModification.js.map +1 -1
  154. package/dist/production/src/modifications/actions/UpdateTriggerModification.cjs.map +1 -1
  155. package/dist/production/src/modifications/actions/UpdateTriggerModification.js.map +1 -1
  156. package/dist/production/src/modifications/columns/CreateColumnModification.cjs.map +1 -1
  157. package/dist/production/src/modifications/columns/CreateColumnModification.js.map +1 -1
  158. package/dist/production/src/modifications/columns/UpdateColumnDefinitionModification.cjs.map +1 -1
  159. package/dist/production/src/modifications/columns/UpdateColumnDefinitionModification.js.map +1 -1
  160. package/dist/production/src/modifications/columns/UpdateColumnNameModification.cjs.map +1 -1
  161. package/dist/production/src/modifications/columns/UpdateColumnNameModification.js.map +1 -1
  162. package/dist/production/src/modifications/columns/columnUtils.cjs.map +1 -1
  163. package/dist/production/src/modifications/columns/columnUtils.js.map +1 -1
  164. package/dist/production/src/modifications/constraints/CreateUniqueConstraintModification.cjs.map +1 -1
  165. package/dist/production/src/modifications/constraints/CreateUniqueConstraintModification.js.map +1 -1
  166. package/dist/production/src/modifications/constraints/RemoveUniqueConstraintModification.cjs.map +1 -1
  167. package/dist/production/src/modifications/constraints/RemoveUniqueConstraintModification.js.map +1 -1
  168. package/dist/production/src/modifications/constraints/utils.cjs.map +1 -1
  169. package/dist/production/src/modifications/constraints/utils.js.map +1 -1
  170. package/dist/production/src/modifications/differs/RemoveChangedFieldDiffer.cjs.map +1 -1
  171. package/dist/production/src/modifications/differs/RemoveChangedFieldDiffer.js.map +1 -1
  172. package/dist/production/src/modifications/differs/RemoveViewDiffer.cjs.map +1 -1
  173. package/dist/production/src/modifications/differs/RemoveViewDiffer.js.map +1 -1
  174. package/dist/production/src/modifications/entities/CreateEntityModification.cjs.map +1 -1
  175. package/dist/production/src/modifications/entities/CreateEntityModification.js.map +1 -1
  176. package/dist/production/src/modifications/entities/CreateViewModification.cjs.map +1 -1
  177. package/dist/production/src/modifications/entities/CreateViewModification.js.map +1 -1
  178. package/dist/production/src/modifications/entities/RemoveEntityModification.cjs.map +1 -1
  179. package/dist/production/src/modifications/entities/RemoveEntityModification.js.map +1 -1
  180. package/dist/production/src/modifications/entities/ToggleEventLogModification.cjs.map +1 -1
  181. package/dist/production/src/modifications/entities/ToggleEventLogModification.js.map +1 -1
  182. package/dist/production/src/modifications/entities/UpdateEntityNameModification.cjs.map +1 -1
  183. package/dist/production/src/modifications/entities/UpdateEntityNameModification.js.map +1 -1
  184. package/dist/production/src/modifications/entities/UpdateEntityOrderByModification.cjs.map +1 -1
  185. package/dist/production/src/modifications/entities/UpdateEntityOrderByModification.js.map +1 -1
  186. package/dist/production/src/modifications/entities/UpdateEntityTableNameModification.cjs.map +1 -1
  187. package/dist/production/src/modifications/entities/UpdateEntityTableNameModification.js.map +1 -1
  188. package/dist/production/src/modifications/entities/UpdateViewModification.cjs.map +1 -1
  189. package/dist/production/src/modifications/entities/UpdateViewModification.js.map +1 -1
  190. package/dist/production/src/modifications/enums/CreateEnumModification.cjs.map +1 -1
  191. package/dist/production/src/modifications/enums/CreateEnumModification.js.map +1 -1
  192. package/dist/production/src/modifications/enums/RemoveEnumModification.cjs.map +1 -1
  193. package/dist/production/src/modifications/enums/RemoveEnumModification.js.map +1 -1
  194. package/dist/production/src/modifications/enums/UpdateEnumModification.cjs.map +1 -1
  195. package/dist/production/src/modifications/enums/UpdateEnumModification.js.map +1 -1
  196. package/dist/production/src/modifications/enums/enumUtils.cjs.map +1 -1
  197. package/dist/production/src/modifications/fields/RemoveFieldModification.cjs.map +1 -1
  198. package/dist/production/src/modifications/fields/RemoveFieldModification.js.map +1 -1
  199. package/dist/production/src/modifications/fields/UpdateFieldNameModification.cjs.map +1 -1
  200. package/dist/production/src/modifications/fields/UpdateFieldNameModification.js.map +1 -1
  201. package/dist/production/src/modifications/indexes/CreateIndexModification.cjs.map +1 -1
  202. package/dist/production/src/modifications/indexes/CreateIndexModification.js.map +1 -1
  203. package/dist/production/src/modifications/indexes/RemoveIndexModification.cjs.map +1 -1
  204. package/dist/production/src/modifications/indexes/RemoveIndexModification.js.map +1 -1
  205. package/dist/production/src/modifications/indexes/utils.cjs.map +1 -1
  206. package/dist/production/src/modifications/indexes/utils.js.map +1 -1
  207. package/dist/production/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.cjs.map +1 -1
  208. package/dist/production/src/modifications/relations/ConvertOneHasManyToManyHasManyRelationModification.js.map +1 -1
  209. package/dist/production/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.cjs.map +1 -1
  210. package/dist/production/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.js.map +1 -1
  211. package/dist/production/src/modifications/relations/ConvertOneToManyRelationModification.cjs.map +1 -1
  212. package/dist/production/src/modifications/relations/ConvertOneToManyRelationModification.js.map +1 -1
  213. package/dist/production/src/modifications/relations/CreateRelationInverseSideModification.cjs.map +1 -1
  214. package/dist/production/src/modifications/relations/CreateRelationInverseSideModification.js.map +1 -1
  215. package/dist/production/src/modifications/relations/CreateRelationModification.cjs.map +1 -1
  216. package/dist/production/src/modifications/relations/CreateRelationModification.js.map +1 -1
  217. package/dist/production/src/modifications/relations/DisableOrphanRemovalModification.cjs.map +1 -1
  218. package/dist/production/src/modifications/relations/DisableOrphanRemovalModification.js.map +1 -1
  219. package/dist/production/src/modifications/relations/EnableOrphanRemovalModification.cjs.map +1 -1
  220. package/dist/production/src/modifications/relations/EnableOrphanRemovalModification.js.map +1 -1
  221. package/dist/production/src/modifications/relations/MakeRelationNotNullModification.cjs.map +1 -1
  222. package/dist/production/src/modifications/relations/MakeRelationNotNullModification.js.map +1 -1
  223. package/dist/production/src/modifications/relations/MakeRelationNullableModification.cjs.map +1 -1
  224. package/dist/production/src/modifications/relations/MakeRelationNullableModification.js.map +1 -1
  225. package/dist/production/src/modifications/relations/ToggleJunctionEventLogModification.cjs.map +1 -1
  226. package/dist/production/src/modifications/relations/ToggleJunctionEventLogModification.js.map +1 -1
  227. package/dist/production/src/modifications/relations/UpdateRelationOnDeleteModification.cjs.map +1 -1
  228. package/dist/production/src/modifications/relations/UpdateRelationOnDeleteModification.js.map +1 -1
  229. package/dist/production/src/modifications/relations/UpdateRelationOrderByModification.cjs.map +1 -1
  230. package/dist/production/src/modifications/relations/UpdateRelationOrderByModification.js.map +1 -1
  231. package/dist/production/src/modifications/relations/helpers.cjs.map +1 -1
  232. package/dist/production/src/modifications/relations/helpers.js.map +1 -1
  233. package/dist/production/src/modifications/relations/normalization.cjs.map +1 -1
  234. package/dist/production/src/modifications/relations/normalization.js.map +1 -1
  235. package/dist/production/src/modifications/settings/UpdateSettingsModification.cjs.map +1 -1
  236. package/dist/production/src/modifications/settings/UpdateSettingsModification.js.map +1 -1
  237. package/dist/production/src/modifications/upgrade/RemoveIndexNamesModification.cjs.map +1 -1
  238. package/dist/production/src/modifications/upgrade/RemoveIndexNamesModification.js.map +1 -1
  239. package/dist/production/src/modifications/utils/createJunctionTable.cjs.map +1 -1
  240. package/dist/production/src/modifications/utils/createJunctionTable.js.map +1 -1
  241. package/dist/production/src/modifications/utils/diffUtils.cjs.map +1 -1
  242. package/dist/production/src/modifications/utils/diffUtils.js.map +1 -1
  243. package/dist/production/src/modifications/utils/schemaUpdateUtils.cjs.map +1 -1
  244. package/dist/production/src/modifications/utils/schemaUpdateUtils.js.map +1 -1
  245. package/dist/production/src/modifications/utils/sqlUpdateUtils.cjs.map +1 -1
  246. package/dist/production/src/modifications/utils/sqlUpdateUtils.js.map +1 -1
  247. package/dist/production/src/modifications/utils/viewDependencies.cjs.map +1 -1
  248. package/dist/production/src/modifications/utils/viewDependencies.js.map +1 -1
  249. package/dist/production/src/modifications/validation/PatchValidationSchemaModification.cjs.map +1 -1
  250. package/dist/production/src/modifications/validation/PatchValidationSchemaModification.js.map +1 -1
  251. package/dist/production/src/modifications/validation/UpdateValidationSchemaModification.cjs.map +1 -1
  252. package/dist/production/src/modifications/validation/UpdateValidationSchemaModification.js.map +1 -1
  253. package/dist/production/src/utils/deepCopy.cjs.map +1 -1
  254. package/dist/production/src/utils/deepCopy.js.map +1 -1
  255. package/dist/tests/src/tests.d.ts +1 -1
  256. package/dist/tests/src/tests.d.ts.map +1 -1
  257. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  258. package/dist/types/tsconfig.tsbuildinfo +1 -1
  259. package/package.json +8 -8
  260. package/tests/cases/integration/convertManyHasOneToOneHasOneRelation.test.ts +23 -19
  261. package/tests/cases/integration/convertOneHasManyToManyHasManyRelation.test.ts +57 -55
  262. package/tests/cases/integration/convertOneToManyRelation.test.ts +46 -42
  263. package/tests/cases/integration/createAndDropIndex.test.ts +5 -4
  264. package/tests/cases/integration/createColumn.test.ts +7 -6
  265. package/tests/cases/integration/createEntity.test.ts +5 -4
  266. package/tests/cases/integration/createEnum.test.ts +3 -2
  267. package/tests/cases/integration/createManyHasMany.test.ts +3 -2
  268. package/tests/cases/integration/createManyHasOne.test.ts +3 -2
  269. package/tests/cases/integration/createOneHasMany.test.ts +3 -2
  270. package/tests/cases/integration/createOneHasOne.test.ts +3 -2
  271. package/tests/cases/integration/createRelationInverseSide.test.ts +5 -4
  272. package/tests/cases/integration/createUnique.test.ts +11 -10
  273. package/tests/cases/integration/createView.test.ts +5 -4
  274. package/tests/cases/integration/disableOrphanRemoval.test.ts +3 -2
  275. package/tests/cases/integration/enableOrphanRemoval.test.ts +3 -2
  276. package/tests/cases/integration/makeColumnNotNull.test.ts +3 -2
  277. package/tests/cases/integration/makeRelationNotNull.test.ts +3 -2
  278. package/tests/cases/integration/makeRelationNullable.test.ts +5 -4
  279. package/tests/cases/integration/patchAclSchema.test.ts +3 -2
  280. package/tests/cases/integration/removeEntity.test.ts +15 -14
  281. package/tests/cases/integration/removeEnum.test.ts +3 -2
  282. package/tests/cases/integration/removeField.test.ts +13 -12
  283. package/tests/cases/integration/toggleEventLog.test.ts +5 -4
  284. package/tests/cases/integration/toggleJunctionEventLog.test.ts +5 -4
  285. package/tests/cases/integration/updateColumnDefinition.test.ts +11 -10
  286. package/tests/cases/integration/updateEntityName.test.ts +9 -8
  287. package/tests/cases/integration/updateEntityOrderBy.test.ts +5 -4
  288. package/tests/cases/integration/updateEnum.test.ts +3 -2
  289. package/tests/cases/integration/updateFieldName.test.ts +13 -12
  290. package/tests/cases/integration/updateRelationOnDelete.test.ts +4 -2
  291. package/tests/cases/integration/updateRelationOrderBy.test.ts +3 -2
  292. package/tests/cases/integration/updateView.test.ts +9 -8
  293. package/tests/src/tests.ts +17 -19
@@ -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":"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"}
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;"}
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/helpers.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { Model } from '@contember/schema'\nimport { wrapIdentifier } from '../../utils/dbHelpers'\nimport { DatabaseMetadata } from '@contember/database'\n\nexport const addForeignKeyConstraint = ({ builder, entity, relation, targetEntity, recreate = false, databaseMetadata, invalidateDatabaseMetadata }: {\n\trecreate?: boolean\n\tbuilder: MigrationBuilder\n\tentity: Model.Entity\n\ttargetEntity: Model.Entity\n\trelation: Model.OneHasOneOwningRelation | Model.ManyHasOneRelation\n\tdatabaseMetadata: DatabaseMetadata\n\tinvalidateDatabaseMetadata: () => void\n}) => {\n\tif (recreate) {\n\t\tconst fkNames = databaseMetadata.foreignKeys.filter(\n\t\t\t{\n\t\t\t\tfromTable: entity.tableName,\n\t\t\t\tfromColumn: relation.joiningColumn.columnName,\n\t\t\t\ttoTable: targetEntity.tableName,\n\t\t\t\ttoColumn: targetEntity.primaryColumn,\n\t\t\t},\n\t\t).getNames()\n\t\tfor (const name of fkNames) {\n\t\t\tbuilder.sql(`ALTER TABLE ${wrapIdentifier(entity.tableName)} DROP CONSTRAINT ${wrapIdentifier(name)}`)\n\t\t}\n\t}\n\n\tconst onDelete = ({\n\t\t[Model.OnDelete.setNull]: 'SET NULL',\n\t\t[Model.OnDelete.cascade]: 'CASCADE',\n\t\t[Model.OnDelete.restrict]: 'NO ACTION',\n\t} as const)[relation.joiningColumn.onDelete]\n\tbuilder.sql(`ALTER TABLE ${wrapIdentifier(entity.tableName)}\n\t\tADD FOREIGN KEY (${wrapIdentifier(relation.joiningColumn.columnName)}) \n\t\tREFERENCES ${wrapIdentifier(targetEntity.tableName)}(${wrapIdentifier(targetEntity.primaryColumn)}) ON DELETE ${onDelete} DEFERRABLE INITIALLY IMMEDIATE`)\n\n\tinvalidateDatabaseMetadata()\n}\n"],"names":["wrapIdentifier","Model"],"mappings":";;;;AAKa,MAAA,0BAA0B,CAAC,EAAE,SAAS,QAAQ,UAAU,cAAc,WAAW,OAAO,kBAAkB,iCAQjH;AACL,MAAI,UAAU;AACP,UAAA,UAAU,iBAAiB,YAAY;AAAA,MAC5C;AAAA,QACC,WAAW,OAAO;AAAA,QAClB,YAAY,SAAS,cAAc;AAAA,QACnC,SAAS,aAAa;AAAA,QACtB,UAAU,aAAa;AAAA,MACxB;AAAA,MACC,SAAS;AACX,eAAW,QAAQ,SAAS;AACnB,cAAA,IAAI,eAAeA,UAAA,eAAe,OAAO,SAAS,CAAC,oBAAoBA,UAAA,eAAe,IAAI,CAAC,EAAE;AAAA,IACtG;AAAA,EACD;AAEA,QAAM,WAAY;AAAA,IACjB,CAACC,OAAA,MAAM,SAAS,OAAO,GAAG;AAAA,IAC1B,CAACA,OAAA,MAAM,SAAS,OAAO,GAAG;AAAA,IAC1B,CAACA,OAAA,MAAM,SAAS,QAAQ,GAAG;AAAA,EAAA,EAChB,SAAS,cAAc,QAAQ;AAC3C,UAAQ,IAAI,eAAeD,UAAAA,eAAe,OAAO,SAAS,CAAC;AAAA,qBACvCA,yBAAe,SAAS,cAAc,UAAU,CAAC;AAAA,eACvDA,UAAA,eAAe,aAAa,SAAS,CAAC,IAAIA,UAAe,eAAA,aAAa,aAAa,CAAC,eAAe,QAAQ,iCAAiC;AAE/H;AAC5B;;"}
1
+ {"version":3,"file":"helpers.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/helpers.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { Model } from '@contember/schema'\nimport { wrapIdentifier } from '../../utils/dbHelpers'\nimport { DatabaseMetadata } from '@contember/database'\n\nexport const addForeignKeyConstraint = ({ builder, entity, relation, targetEntity, recreate = false, databaseMetadata, invalidateDatabaseMetadata }: {\n\trecreate?: boolean\n\tbuilder: MigrationBuilder\n\tentity: Model.Entity\n\ttargetEntity: Model.Entity\n\trelation: Model.OneHasOneOwningRelation | Model.ManyHasOneRelation\n\tdatabaseMetadata: DatabaseMetadata\n\tinvalidateDatabaseMetadata: () => void\n}) => {\n\tif (recreate) {\n\t\tconst fkNames = databaseMetadata.foreignKeys.filter(\n\t\t\t{\n\t\t\t\tfromTable: entity.tableName,\n\t\t\t\tfromColumn: relation.joiningColumn.columnName,\n\t\t\t\ttoTable: targetEntity.tableName,\n\t\t\t\ttoColumn: targetEntity.primaryColumn,\n\t\t\t},\n\t\t).getNames()\n\t\tfor (const name of fkNames) {\n\t\t\tbuilder.sql(`ALTER TABLE ${wrapIdentifier(entity.tableName)} DROP CONSTRAINT ${wrapIdentifier(name)}`)\n\t\t}\n\t}\n\n\tconst onDelete = ({\n\t\t[Model.OnDelete.setNull]: 'SET NULL',\n\t\t[Model.OnDelete.cascade]: 'CASCADE',\n\t\t[Model.OnDelete.restrict]: 'NO ACTION',\n\t} as const)[relation.joiningColumn.onDelete]\n\tbuilder.sql(`ALTER TABLE ${wrapIdentifier(entity.tableName)}\n\t\tADD FOREIGN KEY (${wrapIdentifier(relation.joiningColumn.columnName)}) \n\t\tREFERENCES ${wrapIdentifier(targetEntity.tableName)}(${wrapIdentifier(targetEntity.primaryColumn)}) ON DELETE ${onDelete} DEFERRABLE INITIALLY IMMEDIATE`)\n\n\tinvalidateDatabaseMetadata()\n}\n"],"names":["wrapIdentifier","Model"],"mappings":";;;;AAKa,MAAA,0BAA0B,CAAC,EAAE,SAAS,QAAQ,UAAU,cAAc,WAAW,OAAO,kBAAkB,iCAQjH;AACL,MAAI,UAAU;AACP,UAAA,UAAU,iBAAiB,YAAY;AAAA,MAC5C;AAAA,QACC,WAAW,OAAO;AAAA,QAClB,YAAY,SAAS,cAAc;AAAA,QACnC,SAAS,aAAa;AAAA,QACtB,UAAU,aAAa;AAAA,MAAA;AAAA,MAEvB,SAAS;AACX,eAAW,QAAQ,SAAS;AACnB,cAAA,IAAI,eAAeA,UAAA,eAAe,OAAO,SAAS,CAAC,oBAAoBA,UAAAA,eAAe,IAAI,CAAC,EAAE;AAAA,IAAA;AAAA,EACtG;AAGD,QAAM,WAAY;AAAA,IACjB,CAACC,OAAA,MAAM,SAAS,OAAO,GAAG;AAAA,IAC1B,CAACA,OAAA,MAAM,SAAS,OAAO,GAAG;AAAA,IAC1B,CAACA,OAAA,MAAM,SAAS,QAAQ,GAAG;AAAA,EAAA,EAChB,SAAS,cAAc,QAAQ;AAC3C,UAAQ,IAAI,eAAeD,UAAAA,eAAe,OAAO,SAAS,CAAC;AAAA,qBACvCA,yBAAe,SAAS,cAAc,UAAU,CAAC;AAAA,eACvDA,yBAAe,aAAa,SAAS,CAAC,IAAIA,UAAAA,eAAe,aAAa,aAAa,CAAC,eAAe,QAAQ,iCAAiC;AAE/H,6BAAA;AAC5B;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/helpers.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { Model } from '@contember/schema'\nimport { wrapIdentifier } from '../../utils/dbHelpers'\nimport { DatabaseMetadata } from '@contember/database'\n\nexport const addForeignKeyConstraint = ({ builder, entity, relation, targetEntity, recreate = false, databaseMetadata, invalidateDatabaseMetadata }: {\n\trecreate?: boolean\n\tbuilder: MigrationBuilder\n\tentity: Model.Entity\n\ttargetEntity: Model.Entity\n\trelation: Model.OneHasOneOwningRelation | Model.ManyHasOneRelation\n\tdatabaseMetadata: DatabaseMetadata\n\tinvalidateDatabaseMetadata: () => void\n}) => {\n\tif (recreate) {\n\t\tconst fkNames = databaseMetadata.foreignKeys.filter(\n\t\t\t{\n\t\t\t\tfromTable: entity.tableName,\n\t\t\t\tfromColumn: relation.joiningColumn.columnName,\n\t\t\t\ttoTable: targetEntity.tableName,\n\t\t\t\ttoColumn: targetEntity.primaryColumn,\n\t\t\t},\n\t\t).getNames()\n\t\tfor (const name of fkNames) {\n\t\t\tbuilder.sql(`ALTER TABLE ${wrapIdentifier(entity.tableName)} DROP CONSTRAINT ${wrapIdentifier(name)}`)\n\t\t}\n\t}\n\n\tconst onDelete = ({\n\t\t[Model.OnDelete.setNull]: 'SET NULL',\n\t\t[Model.OnDelete.cascade]: 'CASCADE',\n\t\t[Model.OnDelete.restrict]: 'NO ACTION',\n\t} as const)[relation.joiningColumn.onDelete]\n\tbuilder.sql(`ALTER TABLE ${wrapIdentifier(entity.tableName)}\n\t\tADD FOREIGN KEY (${wrapIdentifier(relation.joiningColumn.columnName)}) \n\t\tREFERENCES ${wrapIdentifier(targetEntity.tableName)}(${wrapIdentifier(targetEntity.primaryColumn)}) ON DELETE ${onDelete} DEFERRABLE INITIALLY IMMEDIATE`)\n\n\tinvalidateDatabaseMetadata()\n}\n"],"names":[],"mappings":";;AAKa,MAAA,0BAA0B,CAAC,EAAE,SAAS,QAAQ,UAAU,cAAc,WAAW,OAAO,kBAAkB,iCAQjH;AACL,MAAI,UAAU;AACP,UAAA,UAAU,iBAAiB,YAAY;AAAA,MAC5C;AAAA,QACC,WAAW,OAAO;AAAA,QAClB,YAAY,SAAS,cAAc;AAAA,QACnC,SAAS,aAAa;AAAA,QACtB,UAAU,aAAa;AAAA,MACxB;AAAA,MACC,SAAS;AACX,eAAW,QAAQ,SAAS;AACnB,cAAA,IAAI,eAAe,eAAe,OAAO,SAAS,CAAC,oBAAoB,eAAe,IAAI,CAAC,EAAE;AAAA,IACtG;AAAA,EACD;AAEA,QAAM,WAAY;AAAA,IACjB,CAAC,MAAM,SAAS,OAAO,GAAG;AAAA,IAC1B,CAAC,MAAM,SAAS,OAAO,GAAG;AAAA,IAC1B,CAAC,MAAM,SAAS,QAAQ,GAAG;AAAA,EAAA,EAChB,SAAS,cAAc,QAAQ;AAC3C,UAAQ,IAAI,eAAe,eAAe,OAAO,SAAS,CAAC;AAAA,qBACvC,eAAe,SAAS,cAAc,UAAU,CAAC;AAAA,eACvD,eAAe,aAAa,SAAS,CAAC,IAAI,eAAe,aAAa,aAAa,CAAC,eAAe,QAAQ,iCAAiC;AAE/H;AAC5B;"}
1
+ {"version":3,"file":"helpers.js","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/helpers.ts"],"sourcesContent":["import { MigrationBuilder } from '@contember/database-migrations'\nimport { Model } from '@contember/schema'\nimport { wrapIdentifier } from '../../utils/dbHelpers'\nimport { DatabaseMetadata } from '@contember/database'\n\nexport const addForeignKeyConstraint = ({ builder, entity, relation, targetEntity, recreate = false, databaseMetadata, invalidateDatabaseMetadata }: {\n\trecreate?: boolean\n\tbuilder: MigrationBuilder\n\tentity: Model.Entity\n\ttargetEntity: Model.Entity\n\trelation: Model.OneHasOneOwningRelation | Model.ManyHasOneRelation\n\tdatabaseMetadata: DatabaseMetadata\n\tinvalidateDatabaseMetadata: () => void\n}) => {\n\tif (recreate) {\n\t\tconst fkNames = databaseMetadata.foreignKeys.filter(\n\t\t\t{\n\t\t\t\tfromTable: entity.tableName,\n\t\t\t\tfromColumn: relation.joiningColumn.columnName,\n\t\t\t\ttoTable: targetEntity.tableName,\n\t\t\t\ttoColumn: targetEntity.primaryColumn,\n\t\t\t},\n\t\t).getNames()\n\t\tfor (const name of fkNames) {\n\t\t\tbuilder.sql(`ALTER TABLE ${wrapIdentifier(entity.tableName)} DROP CONSTRAINT ${wrapIdentifier(name)}`)\n\t\t}\n\t}\n\n\tconst onDelete = ({\n\t\t[Model.OnDelete.setNull]: 'SET NULL',\n\t\t[Model.OnDelete.cascade]: 'CASCADE',\n\t\t[Model.OnDelete.restrict]: 'NO ACTION',\n\t} as const)[relation.joiningColumn.onDelete]\n\tbuilder.sql(`ALTER TABLE ${wrapIdentifier(entity.tableName)}\n\t\tADD FOREIGN KEY (${wrapIdentifier(relation.joiningColumn.columnName)}) \n\t\tREFERENCES ${wrapIdentifier(targetEntity.tableName)}(${wrapIdentifier(targetEntity.primaryColumn)}) ON DELETE ${onDelete} DEFERRABLE INITIALLY IMMEDIATE`)\n\n\tinvalidateDatabaseMetadata()\n}\n"],"names":[],"mappings":";;AAKa,MAAA,0BAA0B,CAAC,EAAE,SAAS,QAAQ,UAAU,cAAc,WAAW,OAAO,kBAAkB,iCAQjH;AACL,MAAI,UAAU;AACP,UAAA,UAAU,iBAAiB,YAAY;AAAA,MAC5C;AAAA,QACC,WAAW,OAAO;AAAA,QAClB,YAAY,SAAS,cAAc;AAAA,QACnC,SAAS,aAAa;AAAA,QACtB,UAAU,aAAa;AAAA,MAAA;AAAA,MAEvB,SAAS;AACX,eAAW,QAAQ,SAAS;AACnB,cAAA,IAAI,eAAe,eAAe,OAAO,SAAS,CAAC,oBAAoB,eAAe,IAAI,CAAC,EAAE;AAAA,IAAA;AAAA,EACtG;AAGD,QAAM,WAAY;AAAA,IACjB,CAAC,MAAM,SAAS,OAAO,GAAG;AAAA,IAC1B,CAAC,MAAM,SAAS,OAAO,GAAG;AAAA,IAC1B,CAAC,MAAM,SAAS,QAAQ,GAAG;AAAA,EAAA,EAChB,SAAS,cAAc,QAAQ;AAC3C,UAAQ,IAAI,eAAe,eAAe,OAAO,SAAS,CAAC;AAAA,qBACvC,eAAe,SAAS,cAAc,UAAU,CAAC;AAAA,eACvD,eAAe,aAAa,SAAS,CAAC,IAAI,eAAe,aAAa,aAAa,CAAC,eAAe,QAAQ,iCAAiC;AAE/H,6BAAA;AAC5B;"}
@@ -1 +1 @@
1
- {"version":3,"file":"normalization.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/normalization.ts"],"sourcesContent":["import { Model } from '@contember/schema'\n\ntype SomePartial<E, K extends keyof E> = Omit<E, K> & Partial<Pick<E, K>>\n\nexport type PartialManyHasManyRelation =\n\t& Omit<Model.ManyHasManyOwningRelation, 'joiningTable'>\n\t& {\n\t\tjoiningTable: SomePartial<Model.JoiningTable, 'eventLog'>\n\t}\n\nexport const normalizeManyHasManyRelation = (rel: PartialManyHasManyRelation): Model.ManyHasManyOwningRelation => {\n\treturn {\n\t\t...rel,\n\t\tjoiningTable: {\n\t\t\teventLog: {\n\t\t\t\tenabled: true,\n\t\t\t},\n\t\t\t...rel.joiningTable,\n\t\t},\n\t}\n}\n"],"names":[],"mappings":";;AAUa,MAAA,+BAA+B,CAAC,QAAqE;AAC1G,SAAA;AAAA,IACN,GAAG;AAAA,IACH,cAAc;AAAA,MACb,UAAU;AAAA,QACT,SAAS;AAAA,MACV;AAAA,MACA,GAAG,IAAI;AAAA,IACR;AAAA,EAAA;AAEF;;"}
1
+ {"version":3,"file":"normalization.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/normalization.ts"],"sourcesContent":["import { Model } from '@contember/schema'\n\ntype SomePartial<E, K extends keyof E> = Omit<E, K> & Partial<Pick<E, K>>\n\nexport type PartialManyHasManyRelation =\n\t& Omit<Model.ManyHasManyOwningRelation, 'joiningTable'>\n\t& {\n\t\tjoiningTable: SomePartial<Model.JoiningTable, 'eventLog'>\n\t}\n\nexport const normalizeManyHasManyRelation = (rel: PartialManyHasManyRelation): Model.ManyHasManyOwningRelation => {\n\treturn {\n\t\t...rel,\n\t\tjoiningTable: {\n\t\t\teventLog: {\n\t\t\t\tenabled: true,\n\t\t\t},\n\t\t\t...rel.joiningTable,\n\t\t},\n\t}\n}\n"],"names":[],"mappings":";;AAUa,MAAA,+BAA+B,CAAC,QAAqE;AAC1G,SAAA;AAAA,IACN,GAAG;AAAA,IACH,cAAc;AAAA,MACb,UAAU;AAAA,QACT,SAAS;AAAA,MACV;AAAA,MACA,GAAG,IAAI;AAAA,IAAA;AAAA,EAET;AACD;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"normalization.js","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/normalization.ts"],"sourcesContent":["import { Model } from '@contember/schema'\n\ntype SomePartial<E, K extends keyof E> = Omit<E, K> & Partial<Pick<E, K>>\n\nexport type PartialManyHasManyRelation =\n\t& Omit<Model.ManyHasManyOwningRelation, 'joiningTable'>\n\t& {\n\t\tjoiningTable: SomePartial<Model.JoiningTable, 'eventLog'>\n\t}\n\nexport const normalizeManyHasManyRelation = (rel: PartialManyHasManyRelation): Model.ManyHasManyOwningRelation => {\n\treturn {\n\t\t...rel,\n\t\tjoiningTable: {\n\t\t\teventLog: {\n\t\t\t\tenabled: true,\n\t\t\t},\n\t\t\t...rel.joiningTable,\n\t\t},\n\t}\n}\n"],"names":[],"mappings":"AAUa,MAAA,+BAA+B,CAAC,QAAqE;AAC1G,SAAA;AAAA,IACN,GAAG;AAAA,IACH,cAAc;AAAA,MACb,UAAU;AAAA,QACT,SAAS;AAAA,MACV;AAAA,MACA,GAAG,IAAI;AAAA,IACR;AAAA,EAAA;AAEF;"}
1
+ {"version":3,"file":"normalization.js","sources":["../../../../../../packages/schema-migrations/src/modifications/relations/normalization.ts"],"sourcesContent":["import { Model } from '@contember/schema'\n\ntype SomePartial<E, K extends keyof E> = Omit<E, K> & Partial<Pick<E, K>>\n\nexport type PartialManyHasManyRelation =\n\t& Omit<Model.ManyHasManyOwningRelation, 'joiningTable'>\n\t& {\n\t\tjoiningTable: SomePartial<Model.JoiningTable, 'eventLog'>\n\t}\n\nexport const normalizeManyHasManyRelation = (rel: PartialManyHasManyRelation): Model.ManyHasManyOwningRelation => {\n\treturn {\n\t\t...rel,\n\t\tjoiningTable: {\n\t\t\teventLog: {\n\t\t\t\tenabled: true,\n\t\t\t},\n\t\t\t...rel.joiningTable,\n\t\t},\n\t}\n}\n"],"names":[],"mappings":"AAUa,MAAA,+BAA+B,CAAC,QAAqE;AAC1G,SAAA;AAAA,IACN,GAAG;AAAA,IACH,cAAc;AAAA,MACb,UAAU;AAAA,QACT,SAAS;AAAA,MACV;AAAA,MACA,GAAG,IAAI;AAAA,IAAA;AAAA,EAET;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateSettingsModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/settings/UpdateSettingsModification.ts"],"sourcesContent":["import { Schema, Settings } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport deepEqual from 'fast-deep-equal'\n\nexport class UpdateSettingsModificationHandler implements ModificationHandler<UpdateSettingsModificationData> {\n\tconstructor(\n\t\tprivate readonly data: UpdateSettingsModificationData,\n\t) {\n\t}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\tconst { [this.data.key]: _, ...settings } = schema.settings\n\t\t\tif (this.data.op === 'unset') {\n\t\t\t\treturn {\n\t\t\t\t\t...schema,\n\t\t\t\t\tsettings,\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t...schema,\n\t\t\t\tsettings: { ...settings, [this.data.key]: this.data.value },\n\t\t\t}\n\t\t}\n\t}\n\n\n\tdescribe() {\n\t\treturn { message: `Change settings of ${this.data.key}` }\n\t}\n\n}\n\nexport const updateSettingsModification = createModificationType({\n\tid: 'updateSettings',\n\thandler: UpdateSettingsModificationHandler,\n})\n\nexport class UpdateSettingsDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\tconst allKeys = Array.from(new Set([\n\t\t\t...Object.keys(originalSchema.settings),\n\t\t\t...Object.keys(updatedSchema.settings),\n\t\t] as (keyof Settings.Schema)[]))\n\n\t\treturn allKeys\n\t\t\t.filter(key => !deepEqual(originalSchema.settings[key], updatedSchema.settings[key]))\n\t\t\t.map(key => {\n\t\t\t\tconst value = updatedSchema.settings[key]\n\t\t\t\tif (value === undefined) {\n\t\t\t\t\treturn updateSettingsModification.createModification({\n\t\t\t\t\t\top: 'unset',\n\t\t\t\t\t\tkey,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\treturn updateSettingsModification.createModification({\n\t\t\t\t\top: 'set',\n\t\t\t\t\tkey,\n\t\t\t\t\tvalue,\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n\n\n\nexport interface SetSettingsModificationData<K extends keyof Settings.Schema = keyof Settings.Schema> {\n\top: 'set'\n\tkey: K\n\tvalue: Settings.Schema[K]\n}\n\n\nexport interface UnsetSettingsModificationData<K extends keyof Settings.Schema = keyof Settings.Schema> {\n\top: 'unset'\n\tkey: K\n}\n\n\nexport type UpdateSettingsModificationData =\n\t| SetSettingsModificationData\n\t| UnsetSettingsModificationData\n"],"names":["createModificationType"],"mappings":";;;;AAKO,MAAM,kCAAiG;AAAA,EAC7G,YACkB,MAChB;AADgB,SAAA,OAAA;AAAA,EAElB;AAAA,EAEO,YAAkB;AAAA,EACzB;AAAA,EAEO,mBAAkC;AACjC,WAAA,CAAC,EAAE,aAAa;AAChB,YAAA,EAAE,CAAC,KAAK,KAAK,GAAG,GAAG,GAAG,GAAG,SAAS,IAAI,OAAO;AAC/C,UAAA,KAAK,KAAK,OAAO,SAAS;AACtB,eAAA;AAAA,UACN,GAAG;AAAA,UACH;AAAA,QAAA;AAAA,MAEF;AACO,aAAA;AAAA,QACN,GAAG;AAAA,QACH,UAAU,EAAE,GAAG,UAAU,CAAC,KAAK,KAAK,GAAG,GAAG,KAAK,KAAK,MAAM;AAAA,MAAA;AAAA,IAC3D;AAAA,EAEF;AAAA,EAGA,WAAW;AACV,WAAO,EAAE,SAAS,sBAAsB,KAAK,KAAK,GAAG;EACtD;AAED;AAEO,MAAM,6BAA6BA,oBAAAA,uBAAuB;AAAA,EAChE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,qBAAuC;AAAA,EACnD,WAAW,gBAAwB,eAAuB;AACzD,UAAM,UAAU,MAAM,KAAK,oBAAI,IAAI;AAAA,MAClC,GAAG,OAAO,KAAK,eAAe,QAAQ;AAAA,MACtC,GAAG,OAAO,KAAK,cAAc,QAAQ;AAAA,IACR,CAAA,CAAC;AAE/B,WAAO,QACL,OAAO,CAAA,QAAO,CAAC,UAAU,eAAe,SAAS,GAAG,GAAG,cAAc,SAAS,GAAG,CAAC,CAAC,EACnF,IAAI,CAAO,QAAA;AACL,YAAA,QAAQ,cAAc,SAAS,GAAG;AACxC,UAAI,UAAU,QAAW;AACxB,eAAO,2BAA2B,mBAAmB;AAAA,UACpD,IAAI;AAAA,UACJ;AAAA,QAAA,CACA;AAAA,MACF;AACA,aAAO,2BAA2B,mBAAmB;AAAA,QACpD,IAAI;AAAA,QACJ;AAAA,QACA;AAAA,MAAA,CACA;AAAA,IAAA,CACD;AAAA,EACH;AACD;;;;"}
1
+ {"version":3,"file":"UpdateSettingsModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/settings/UpdateSettingsModification.ts"],"sourcesContent":["import { Schema, Settings } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport deepEqual from 'fast-deep-equal'\n\nexport class UpdateSettingsModificationHandler implements ModificationHandler<UpdateSettingsModificationData> {\n\tconstructor(\n\t\tprivate readonly data: UpdateSettingsModificationData,\n\t) {\n\t}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\tconst { [this.data.key]: _, ...settings } = schema.settings\n\t\t\tif (this.data.op === 'unset') {\n\t\t\t\treturn {\n\t\t\t\t\t...schema,\n\t\t\t\t\tsettings,\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t...schema,\n\t\t\t\tsettings: { ...settings, [this.data.key]: this.data.value },\n\t\t\t}\n\t\t}\n\t}\n\n\n\tdescribe() {\n\t\treturn { message: `Change settings of ${this.data.key}` }\n\t}\n\n}\n\nexport const updateSettingsModification = createModificationType({\n\tid: 'updateSettings',\n\thandler: UpdateSettingsModificationHandler,\n})\n\nexport class UpdateSettingsDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\tconst allKeys = Array.from(new Set([\n\t\t\t...Object.keys(originalSchema.settings),\n\t\t\t...Object.keys(updatedSchema.settings),\n\t\t] as (keyof Settings.Schema)[]))\n\n\t\treturn allKeys\n\t\t\t.filter(key => !deepEqual(originalSchema.settings[key], updatedSchema.settings[key]))\n\t\t\t.map(key => {\n\t\t\t\tconst value = updatedSchema.settings[key]\n\t\t\t\tif (value === undefined) {\n\t\t\t\t\treturn updateSettingsModification.createModification({\n\t\t\t\t\t\top: 'unset',\n\t\t\t\t\t\tkey,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\treturn updateSettingsModification.createModification({\n\t\t\t\t\top: 'set',\n\t\t\t\t\tkey,\n\t\t\t\t\tvalue,\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n\n\n\nexport interface SetSettingsModificationData<K extends keyof Settings.Schema = keyof Settings.Schema> {\n\top: 'set'\n\tkey: K\n\tvalue: Settings.Schema[K]\n}\n\n\nexport interface UnsetSettingsModificationData<K extends keyof Settings.Schema = keyof Settings.Schema> {\n\top: 'unset'\n\tkey: K\n}\n\n\nexport type UpdateSettingsModificationData =\n\t| SetSettingsModificationData\n\t| UnsetSettingsModificationData\n"],"names":["createModificationType"],"mappings":";;;;AAKO,MAAM,kCAAiG;AAAA,EAC7G,YACkB,MAChB;AADgB,SAAA,OAAA;AAAA,EAAA;AAAA,EAIX,YAAkB;AAAA,EAAA;AAAA,EAGlB,mBAAkC;AACjC,WAAA,CAAC,EAAE,aAAa;AAChB,YAAA,EAAE,CAAC,KAAK,KAAK,GAAG,GAAG,GAAG,GAAG,aAAa,OAAO;AAC/C,UAAA,KAAK,KAAK,OAAO,SAAS;AACtB,eAAA;AAAA,UACN,GAAG;AAAA,UACH;AAAA,QACD;AAAA,MAAA;AAEM,aAAA;AAAA,QACN,GAAG;AAAA,QACH,UAAU,EAAE,GAAG,UAAU,CAAC,KAAK,KAAK,GAAG,GAAG,KAAK,KAAK,MAAM;AAAA,MAC3D;AAAA,IACD;AAAA,EAAA;AAAA,EAID,WAAW;AACV,WAAO,EAAE,SAAS,sBAAsB,KAAK,KAAK,GAAG,GAAG;AAAA,EAAA;AAG1D;AAEO,MAAM,6BAA6BA,oBAAAA,uBAAuB;AAAA,EAChE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,qBAAuC;AAAA,EACnD,WAAW,gBAAwB,eAAuB;AACzD,UAAM,UAAU,MAAM,KAAK,oBAAI,IAAI;AAAA,MAClC,GAAG,OAAO,KAAK,eAAe,QAAQ;AAAA,MACtC,GAAG,OAAO,KAAK,cAAc,QAAQ;AAAA,IAAA,CACR,CAAC;AAE/B,WAAO,QACL,OAAO,CAAA,QAAO,CAAC,UAAU,eAAe,SAAS,GAAG,GAAG,cAAc,SAAS,GAAG,CAAC,CAAC,EACnF,IAAI,CAAO,QAAA;AACL,YAAA,QAAQ,cAAc,SAAS,GAAG;AACxC,UAAI,UAAU,QAAW;AACxB,eAAO,2BAA2B,mBAAmB;AAAA,UACpD,IAAI;AAAA,UACJ;AAAA,QAAA,CACA;AAAA,MAAA;AAEF,aAAO,2BAA2B,mBAAmB;AAAA,QACpD,IAAI;AAAA,QACJ;AAAA,QACA;AAAA,MAAA,CACA;AAAA,IAAA,CACD;AAAA,EAAA;AAEJ;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateSettingsModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/settings/UpdateSettingsModification.ts"],"sourcesContent":["import { Schema, Settings } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport deepEqual from 'fast-deep-equal'\n\nexport class UpdateSettingsModificationHandler implements ModificationHandler<UpdateSettingsModificationData> {\n\tconstructor(\n\t\tprivate readonly data: UpdateSettingsModificationData,\n\t) {\n\t}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\tconst { [this.data.key]: _, ...settings } = schema.settings\n\t\t\tif (this.data.op === 'unset') {\n\t\t\t\treturn {\n\t\t\t\t\t...schema,\n\t\t\t\t\tsettings,\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t...schema,\n\t\t\t\tsettings: { ...settings, [this.data.key]: this.data.value },\n\t\t\t}\n\t\t}\n\t}\n\n\n\tdescribe() {\n\t\treturn { message: `Change settings of ${this.data.key}` }\n\t}\n\n}\n\nexport const updateSettingsModification = createModificationType({\n\tid: 'updateSettings',\n\thandler: UpdateSettingsModificationHandler,\n})\n\nexport class UpdateSettingsDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\tconst allKeys = Array.from(new Set([\n\t\t\t...Object.keys(originalSchema.settings),\n\t\t\t...Object.keys(updatedSchema.settings),\n\t\t] as (keyof Settings.Schema)[]))\n\n\t\treturn allKeys\n\t\t\t.filter(key => !deepEqual(originalSchema.settings[key], updatedSchema.settings[key]))\n\t\t\t.map(key => {\n\t\t\t\tconst value = updatedSchema.settings[key]\n\t\t\t\tif (value === undefined) {\n\t\t\t\t\treturn updateSettingsModification.createModification({\n\t\t\t\t\t\top: 'unset',\n\t\t\t\t\t\tkey,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\treturn updateSettingsModification.createModification({\n\t\t\t\t\top: 'set',\n\t\t\t\t\tkey,\n\t\t\t\t\tvalue,\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n\n\n\nexport interface SetSettingsModificationData<K extends keyof Settings.Schema = keyof Settings.Schema> {\n\top: 'set'\n\tkey: K\n\tvalue: Settings.Schema[K]\n}\n\n\nexport interface UnsetSettingsModificationData<K extends keyof Settings.Schema = keyof Settings.Schema> {\n\top: 'unset'\n\tkey: K\n}\n\n\nexport type UpdateSettingsModificationData =\n\t| SetSettingsModificationData\n\t| UnsetSettingsModificationData\n"],"names":[],"mappings":";;AAKO,MAAM,kCAAiG;AAAA,EAC7G,YACkB,MAChB;AADgB,SAAA,OAAA;AAAA,EAElB;AAAA,EAEO,YAAkB;AAAA,EACzB;AAAA,EAEO,mBAAkC;AACjC,WAAA,CAAC,EAAE,aAAa;AAChB,YAAA,EAAE,CAAC,KAAK,KAAK,GAAG,GAAG,GAAG,GAAG,SAAS,IAAI,OAAO;AAC/C,UAAA,KAAK,KAAK,OAAO,SAAS;AACtB,eAAA;AAAA,UACN,GAAG;AAAA,UACH;AAAA,QAAA;AAAA,MAEF;AACO,aAAA;AAAA,QACN,GAAG;AAAA,QACH,UAAU,EAAE,GAAG,UAAU,CAAC,KAAK,KAAK,GAAG,GAAG,KAAK,KAAK,MAAM;AAAA,MAAA;AAAA,IAC3D;AAAA,EAEF;AAAA,EAGA,WAAW;AACV,WAAO,EAAE,SAAS,sBAAsB,KAAK,KAAK,GAAG;EACtD;AAED;AAEO,MAAM,6BAA6B,uBAAuB;AAAA,EAChE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,qBAAuC;AAAA,EACnD,WAAW,gBAAwB,eAAuB;AACzD,UAAM,UAAU,MAAM,KAAK,oBAAI,IAAI;AAAA,MAClC,GAAG,OAAO,KAAK,eAAe,QAAQ;AAAA,MACtC,GAAG,OAAO,KAAK,cAAc,QAAQ;AAAA,IACR,CAAA,CAAC;AAE/B,WAAO,QACL,OAAO,CAAA,QAAO,CAAC,UAAU,eAAe,SAAS,GAAG,GAAG,cAAc,SAAS,GAAG,CAAC,CAAC,EACnF,IAAI,CAAO,QAAA;AACL,YAAA,QAAQ,cAAc,SAAS,GAAG;AACxC,UAAI,UAAU,QAAW;AACxB,eAAO,2BAA2B,mBAAmB;AAAA,UACpD,IAAI;AAAA,UACJ;AAAA,QAAA,CACA;AAAA,MACF;AACA,aAAO,2BAA2B,mBAAmB;AAAA,QACpD,IAAI;AAAA,QACJ;AAAA,QACA;AAAA,MAAA,CACA;AAAA,IAAA,CACD;AAAA,EACH;AACD;"}
1
+ {"version":3,"file":"UpdateSettingsModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/settings/UpdateSettingsModification.ts"],"sourcesContent":["import { Schema, Settings } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport deepEqual from 'fast-deep-equal'\n\nexport class UpdateSettingsModificationHandler implements ModificationHandler<UpdateSettingsModificationData> {\n\tconstructor(\n\t\tprivate readonly data: UpdateSettingsModificationData,\n\t) {\n\t}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\tconst { [this.data.key]: _, ...settings } = schema.settings\n\t\t\tif (this.data.op === 'unset') {\n\t\t\t\treturn {\n\t\t\t\t\t...schema,\n\t\t\t\t\tsettings,\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t...schema,\n\t\t\t\tsettings: { ...settings, [this.data.key]: this.data.value },\n\t\t\t}\n\t\t}\n\t}\n\n\n\tdescribe() {\n\t\treturn { message: `Change settings of ${this.data.key}` }\n\t}\n\n}\n\nexport const updateSettingsModification = createModificationType({\n\tid: 'updateSettings',\n\thandler: UpdateSettingsModificationHandler,\n})\n\nexport class UpdateSettingsDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\tconst allKeys = Array.from(new Set([\n\t\t\t...Object.keys(originalSchema.settings),\n\t\t\t...Object.keys(updatedSchema.settings),\n\t\t] as (keyof Settings.Schema)[]))\n\n\t\treturn allKeys\n\t\t\t.filter(key => !deepEqual(originalSchema.settings[key], updatedSchema.settings[key]))\n\t\t\t.map(key => {\n\t\t\t\tconst value = updatedSchema.settings[key]\n\t\t\t\tif (value === undefined) {\n\t\t\t\t\treturn updateSettingsModification.createModification({\n\t\t\t\t\t\top: 'unset',\n\t\t\t\t\t\tkey,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\treturn updateSettingsModification.createModification({\n\t\t\t\t\top: 'set',\n\t\t\t\t\tkey,\n\t\t\t\t\tvalue,\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n\n\n\nexport interface SetSettingsModificationData<K extends keyof Settings.Schema = keyof Settings.Schema> {\n\top: 'set'\n\tkey: K\n\tvalue: Settings.Schema[K]\n}\n\n\nexport interface UnsetSettingsModificationData<K extends keyof Settings.Schema = keyof Settings.Schema> {\n\top: 'unset'\n\tkey: K\n}\n\n\nexport type UpdateSettingsModificationData =\n\t| SetSettingsModificationData\n\t| UnsetSettingsModificationData\n"],"names":[],"mappings":";;AAKO,MAAM,kCAAiG;AAAA,EAC7G,YACkB,MAChB;AADgB,SAAA,OAAA;AAAA,EAAA;AAAA,EAIX,YAAkB;AAAA,EAAA;AAAA,EAGlB,mBAAkC;AACjC,WAAA,CAAC,EAAE,aAAa;AAChB,YAAA,EAAE,CAAC,KAAK,KAAK,GAAG,GAAG,GAAG,GAAG,aAAa,OAAO;AAC/C,UAAA,KAAK,KAAK,OAAO,SAAS;AACtB,eAAA;AAAA,UACN,GAAG;AAAA,UACH;AAAA,QACD;AAAA,MAAA;AAEM,aAAA;AAAA,QACN,GAAG;AAAA,QACH,UAAU,EAAE,GAAG,UAAU,CAAC,KAAK,KAAK,GAAG,GAAG,KAAK,KAAK,MAAM;AAAA,MAC3D;AAAA,IACD;AAAA,EAAA;AAAA,EAID,WAAW;AACV,WAAO,EAAE,SAAS,sBAAsB,KAAK,KAAK,GAAG,GAAG;AAAA,EAAA;AAG1D;AAEO,MAAM,6BAA6B,uBAAuB;AAAA,EAChE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,qBAAuC;AAAA,EACnD,WAAW,gBAAwB,eAAuB;AACzD,UAAM,UAAU,MAAM,KAAK,oBAAI,IAAI;AAAA,MAClC,GAAG,OAAO,KAAK,eAAe,QAAQ;AAAA,MACtC,GAAG,OAAO,KAAK,cAAc,QAAQ;AAAA,IAAA,CACR,CAAC;AAE/B,WAAO,QACL,OAAO,CAAA,QAAO,CAAC,UAAU,eAAe,SAAS,GAAG,GAAG,cAAc,SAAS,GAAG,CAAC,CAAC,EACnF,IAAI,CAAO,QAAA;AACL,YAAA,QAAQ,cAAc,SAAS,GAAG;AACxC,UAAI,UAAU,QAAW;AACxB,eAAO,2BAA2B,mBAAmB;AAAA,UACpD,IAAI;AAAA,UACJ;AAAA,QAAA,CACA;AAAA,MAAA;AAEF,aAAO,2BAA2B,mBAAmB;AAAA,QACpD,IAAI;AAAA,QACJ;AAAA,QACA;AAAA,MAAA,CACA;AAAA,IAAA,CACD;AAAA,EAAA;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"RemoveIndexNamesModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/upgrade/RemoveIndexNamesModification.ts"],"sourcesContent":["import { Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEveryEntity, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\n\nexport class RemoveIndexNamesModificationHandler implements ModificationHandler<RemoveIndexNamesModificationData> {\n\tconstructor() {}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn updateModel(\n\t\t\tupdateEveryEntity(({ entity }) => {\n\t\t\t\treturn {\n\t\t\t\t\t...entity,\n\t\t\t\t\tindexes: entity.indexes.map(({ name, ...other }) => other),\n\t\t\t\t\tunique: entity.unique.map(({ name, ...other }) => other),\n\t\t\t\t}\n\t\t\t}),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Schema upgrade: remove names of indexes and unique constraints` }\n\t}\n}\n\nexport const removeIndexNamesModification = createModificationType({\n\tid: 'removeIndexNames',\n\thandler: RemoveIndexNamesModificationHandler,\n})\n\n\nexport type RemoveIndexNamesModificationData = {}\n\nexport class RemoveIndexNamesDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema) {\n\t\tconst hasNames = !!Object.values(originalSchema.model.entities).find(it => {\n\t\t\treturn it.indexes.find(it => !!it.name) || it.unique.find(it => !!it.name)\n\t\t})\n\t\tif (hasNames) {\n\t\t\treturn [removeIndexNamesModification.createModification({})]\n\t\t}\n\t\treturn []\n\t}\n}\n"],"names":["updateModel","updateEveryEntity","createModificationType","it"],"mappings":";;;;AAIO,MAAM,oCAAsG;AAAA,EAClH,cAAc;AAAA,EAAC;AAAA,EAER,YAAkB;AAAA,EACzB;AAAA,EAEO,mBAAkC;AACjC,WAAAA,kBAAA;AAAA,MACNC,oCAAkB,CAAC,EAAE,aAAa;AAC1B,eAAA;AAAA,UACN,GAAG;AAAA,UACH,SAAS,OAAO,QAAQ,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,MAAM,KAAK;AAAA,UACzD,QAAQ,OAAO,OAAO,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,MAAM,KAAK;AAAA,QAAA;AAAA,MACxD,CACA;AAAA,IAAA;AAAA,EAEH;AAAA,EAEA,WAAW;AACH,WAAA,EAAE,SAAS;EACnB;AACD;AAEO,MAAM,+BAA+BC,oBAAAA,uBAAuB;AAAA,EAClE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAKM,MAAM,uBAAyC;AAAA,EACrD,WAAW,gBAAwB;AAC5B,UAAA,WAAW,CAAC,CAAC,OAAO,OAAO,eAAe,MAAM,QAAQ,EAAE,KAAK,CAAM,OAAA;AAC1E,aAAO,GAAG,QAAQ,KAAK,CAAAC,QAAM,CAAC,CAACA,IAAG,IAAI,KAAK,GAAG,OAAO,KAAK,CAAAA,QAAM,CAAC,CAACA,IAAG,IAAI;AAAA,IAAA,CACzE;AACD,QAAI,UAAU;AACb,aAAO,CAAC,6BAA6B,mBAAmB,CAAA,CAAE,CAAC;AAAA,IAC5D;AACA,WAAO;EACR;AACD;;;;"}
1
+ {"version":3,"file":"RemoveIndexNamesModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/upgrade/RemoveIndexNamesModification.ts"],"sourcesContent":["import { Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEveryEntity, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\n\nexport class RemoveIndexNamesModificationHandler implements ModificationHandler<RemoveIndexNamesModificationData> {\n\tconstructor() {}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn updateModel(\n\t\t\tupdateEveryEntity(({ entity }) => {\n\t\t\t\treturn {\n\t\t\t\t\t...entity,\n\t\t\t\t\tindexes: entity.indexes.map(({ name, ...other }) => other),\n\t\t\t\t\tunique: entity.unique.map(({ name, ...other }) => other),\n\t\t\t\t}\n\t\t\t}),\n\t\t)\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Schema upgrade: remove names of indexes and unique constraints` }\n\t}\n}\n\nexport const removeIndexNamesModification = createModificationType({\n\tid: 'removeIndexNames',\n\thandler: RemoveIndexNamesModificationHandler,\n})\n\n\nexport type RemoveIndexNamesModificationData = {}\n\nexport class RemoveIndexNamesDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema) {\n\t\tconst hasNames = !!Object.values(originalSchema.model.entities).find(it => {\n\t\t\treturn it.indexes.find(it => !!it.name) || it.unique.find(it => !!it.name)\n\t\t})\n\t\tif (hasNames) {\n\t\t\treturn [removeIndexNamesModification.createModification({})]\n\t\t}\n\t\treturn []\n\t}\n}\n"],"names":["updateModel","updateEveryEntity","createModificationType","it"],"mappings":";;;;AAIO,MAAM,oCAAsG;AAAA,EAClH,cAAc;AAAA,EAAA;AAAA,EAEP,YAAkB;AAAA,EAAA;AAAA,EAGlB,mBAAkC;AACjC,WAAAA,kBAAA;AAAA,MACNC,oCAAkB,CAAC,EAAE,aAAa;AAC1B,eAAA;AAAA,UACN,GAAG;AAAA,UACH,SAAS,OAAO,QAAQ,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,MAAM,KAAK;AAAA,UACzD,QAAQ,OAAO,OAAO,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,MAAM,KAAK;AAAA,QACxD;AAAA,MACA,CAAA;AAAA,IACF;AAAA,EAAA;AAAA,EAGD,WAAW;AACH,WAAA,EAAE,SAAS,iEAAiE;AAAA,EAAA;AAErF;AAEO,MAAM,+BAA+BC,oBAAAA,uBAAuB;AAAA,EAClE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAKM,MAAM,uBAAyC;AAAA,EACrD,WAAW,gBAAwB;AAC5B,UAAA,WAAW,CAAC,CAAC,OAAO,OAAO,eAAe,MAAM,QAAQ,EAAE,KAAK,CAAM,OAAA;AAC1E,aAAO,GAAG,QAAQ,KAAK,CAAAC,QAAM,CAAC,CAACA,IAAG,IAAI,KAAK,GAAG,OAAO,KAAK,CAAAA,QAAM,CAAC,CAACA,IAAG,IAAI;AAAA,IAAA,CACzE;AACD,QAAI,UAAU;AACb,aAAO,CAAC,6BAA6B,mBAAmB,CAAA,CAAE,CAAC;AAAA,IAAA;AAE5D,WAAO,CAAC;AAAA,EAAA;AAEV;;;;"}