@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":"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;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"RemoveIndexNamesModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/upgrade/RemoveIndexNamesModification.ts"],"sourcesContent":["import { Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEveryEntity, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\n\nexport class RemoveIndexNamesModificationHandler implements ModificationHandler<RemoveIndexNamesModificationData> {\n\tconstructor() {}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn updateModel(\n\t\t\tupdateEveryEntity(({ entity }) => {\n\t\t\t\treturn {\n\t\t\t\t\t...entity,\n\t\t\t\t\tindexes: entity.indexes.map(({ name, ...other }) => other),\n\t\t\t\t\tunique: entity.unique.map(({ 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":["it"],"mappings":";;AAIO,MAAM,oCAAsG;AAAA,EAClH,cAAc;AAAA,EAAC;AAAA,EAER,YAAkB;AAAA,EACzB;AAAA,EAEO,mBAAkC;AACjC,WAAA;AAAA,MACN,kBAAkB,CAAC,EAAE,aAAa;AAC1B,eAAA;AAAA,UACN,GAAG;AAAA,UACH,SAAS,OAAO,QAAQ,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,MAAM,KAAK;AAAA,UACzD,QAAQ,OAAO,OAAO,IAAI,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+B,uBAAuB;AAAA,EAClE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAKM,MAAM,uBAAyC;AAAA,EACrD,WAAW,gBAAwB;AAC5B,UAAA,WAAW,CAAC,CAAC,OAAO,OAAO,eAAe,MAAM,QAAQ,EAAE,KAAK,CAAM,OAAA;AAC1E,aAAO,GAAG,QAAQ,KAAK,CAAAA,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.js","sources":["../../../../../../packages/schema-migrations/src/modifications/upgrade/RemoveIndexNamesModification.ts"],"sourcesContent":["import { Schema } from '@contember/schema'\nimport { SchemaUpdater, updateEveryEntity, updateModel } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\n\nexport class RemoveIndexNamesModificationHandler implements ModificationHandler<RemoveIndexNamesModificationData> {\n\tconstructor() {}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn updateModel(\n\t\t\tupdateEveryEntity(({ entity }) => {\n\t\t\t\treturn {\n\t\t\t\t\t...entity,\n\t\t\t\t\tindexes: entity.indexes.map(({ name, ...other }) => other),\n\t\t\t\t\tunique: entity.unique.map(({ 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":["it"],"mappings":";;AAIO,MAAM,oCAAsG;AAAA,EAClH,cAAc;AAAA,EAAA;AAAA,EAEP,YAAkB;AAAA,EAAA;AAAA,EAGlB,mBAAkC;AACjC,WAAA;AAAA,MACN,kBAAkB,CAAC,EAAE,aAAa;AAC1B,eAAA;AAAA,UACN,GAAG;AAAA,UACH,SAAS,OAAO,QAAQ,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,MAAM,KAAK;AAAA,UACzD,QAAQ,OAAO,OAAO,IAAI,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+B,uBAAuB;AAAA,EAClE,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAKM,MAAM,uBAAyC;AAAA,EACrD,WAAW,gBAAwB;AAC5B,UAAA,WAAW,CAAC,CAAC,OAAO,OAAO,eAAe,MAAM,QAAQ,EAAE,KAAK,CAAM,OAAA;AAC1E,aAAO,GAAG,QAAQ,KAAK,CAAAA,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;"}
@@ -1 +1 @@
1
- {"version":3,"file":"createJunctionTable.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/utils/createJunctionTable.ts"],"sourcesContent":["import { createEventTrigger, createEventTrxTrigger } from './sqlUpdateUtils'\nimport { MigrationBuilder } from '@contember/database-migrations'\nimport { Model, Schema } from '@contember/schema'\nimport { getPrimaryColumnType } from './getPrimaryColumnType'\nimport { wrapIdentifier } from '../../utils/dbHelpers'\n\nexport const createJunctionTableSql = (\n\tbuilder: MigrationBuilder,\n\tsystemSchema: string,\n\tschema: Schema,\n\tentity: Model.Entity,\n\ttargetEntity: Model.Entity,\n\trelation: Model.ManyHasManyOwningRelation,\n) => {\n\tconst primaryColumns = [\n\t\trelation.joiningTable.joiningColumn.columnName,\n\t\trelation.joiningTable.inverseJoiningColumn.columnName,\n\t]\n\tbuilder.createTable(\n\t\trelation.joiningTable.tableName,\n\t\t{\n\t\t\t[relation.joiningTable.joiningColumn.columnName]: {\n\t\t\t\ttype: getPrimaryColumnType(entity),\n\t\t\t\tnotNull: true,\n\t\t\t\treferences: `\"${entity.tableName}\"(\"${entity.primaryColumn}\")`,\n\t\t\t\tonDelete: 'CASCADE',\n\t\t\t},\n\t\t\t[relation.joiningTable.inverseJoiningColumn.columnName]: {\n\t\t\t\ttype: getPrimaryColumnType(targetEntity),\n\t\t\t\tnotNull: true,\n\t\t\t\treferences: `\"${targetEntity.tableName}\"(\"${targetEntity.primaryColumn}\")`,\n\t\t\t\tonDelete: 'CASCADE',\n\t\t\t},\n\t\t},\n\t)\n\n\tconst tableNameId = wrapIdentifier(relation.joiningTable.tableName)\n\tconst columnNameId = primaryColumns.map(wrapIdentifier)\n\tbuilder.sql(`ALTER TABLE ${tableNameId} ADD PRIMARY KEY (${columnNameId.join(', ')})`)\n\n\tif (relation.joiningTable.eventLog.enabled) {\n\t\tcreateEventTrigger(builder, systemSchema, relation.joiningTable.tableName, primaryColumns)\n\t\tcreateEventTrxTrigger(builder, systemSchema, relation.joiningTable.tableName)\n\t}\n}\n"],"names":["getPrimaryColumnType","wrapIdentifier","createEventTrigger","createEventTrxTrigger"],"mappings":";;;;;AAMO,MAAM,yBAAyB,CACrC,SACA,cACA,QACA,QACA,cACA,aACI;AACJ,QAAM,iBAAiB;AAAA,IACtB,SAAS,aAAa,cAAc;AAAA,IACpC,SAAS,aAAa,qBAAqB;AAAA,EAAA;AAEpC,UAAA;AAAA,IACP,SAAS,aAAa;AAAA,IACtB;AAAA,MACC,CAAC,SAAS,aAAa,cAAc,UAAU,GAAG;AAAA,QACjD,MAAMA,0CAAqB,MAAM;AAAA,QACjC,SAAS;AAAA,QACT,YAAY,IAAI,OAAO,SAAS,MAAM,OAAO,aAAa;AAAA,QAC1D,UAAU;AAAA,MACX;AAAA,MACA,CAAC,SAAS,aAAa,qBAAqB,UAAU,GAAG;AAAA,QACxD,MAAMA,0CAAqB,YAAY;AAAA,QACvC,SAAS;AAAA,QACT,YAAY,IAAI,aAAa,SAAS,MAAM,aAAa,aAAa;AAAA,QACtE,UAAU;AAAA,MACX;AAAA,IACD;AAAA,EAAA;AAGD,QAAM,cAAcC,UAAA,eAAe,SAAS,aAAa,SAAS;AAC5D,QAAA,eAAe,eAAe,IAAIA,UAAc,cAAA;AAC9C,UAAA,IAAI,eAAe,WAAW,qBAAqB,aAAa,KAAK,IAAI,CAAC,GAAG;AAEjF,MAAA,SAAS,aAAa,SAAS,SAAS;AAC3CC,mBAAA,mBAAmB,SAAS,cAAc,SAAS,aAAa,WAAW,cAAc;AACzFC,mBAAA,sBAAsB,SAAS,cAAc,SAAS,aAAa,SAAS;AAAA,EAC7E;AACD;;"}
1
+ {"version":3,"file":"createJunctionTable.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/utils/createJunctionTable.ts"],"sourcesContent":["import { createEventTrigger, createEventTrxTrigger } from './sqlUpdateUtils'\nimport { MigrationBuilder } from '@contember/database-migrations'\nimport { Model, Schema } from '@contember/schema'\nimport { getPrimaryColumnType } from './getPrimaryColumnType'\nimport { wrapIdentifier } from '../../utils/dbHelpers'\n\nexport const createJunctionTableSql = (\n\tbuilder: MigrationBuilder,\n\tsystemSchema: string,\n\tschema: Schema,\n\tentity: Model.Entity,\n\ttargetEntity: Model.Entity,\n\trelation: Model.ManyHasManyOwningRelation,\n) => {\n\tconst primaryColumns = [\n\t\trelation.joiningTable.joiningColumn.columnName,\n\t\trelation.joiningTable.inverseJoiningColumn.columnName,\n\t]\n\tbuilder.createTable(\n\t\trelation.joiningTable.tableName,\n\t\t{\n\t\t\t[relation.joiningTable.joiningColumn.columnName]: {\n\t\t\t\ttype: getPrimaryColumnType(entity),\n\t\t\t\tnotNull: true,\n\t\t\t\treferences: `\"${entity.tableName}\"(\"${entity.primaryColumn}\")`,\n\t\t\t\tonDelete: 'CASCADE',\n\t\t\t},\n\t\t\t[relation.joiningTable.inverseJoiningColumn.columnName]: {\n\t\t\t\ttype: getPrimaryColumnType(targetEntity),\n\t\t\t\tnotNull: true,\n\t\t\t\treferences: `\"${targetEntity.tableName}\"(\"${targetEntity.primaryColumn}\")`,\n\t\t\t\tonDelete: 'CASCADE',\n\t\t\t},\n\t\t},\n\t)\n\n\tconst tableNameId = wrapIdentifier(relation.joiningTable.tableName)\n\tconst columnNameId = primaryColumns.map(wrapIdentifier)\n\tbuilder.sql(`ALTER TABLE ${tableNameId} ADD PRIMARY KEY (${columnNameId.join(', ')})`)\n\n\tif (relation.joiningTable.eventLog.enabled) {\n\t\tcreateEventTrigger(builder, systemSchema, relation.joiningTable.tableName, primaryColumns)\n\t\tcreateEventTrxTrigger(builder, systemSchema, relation.joiningTable.tableName)\n\t}\n}\n"],"names":["getPrimaryColumnType","wrapIdentifier","createEventTrigger","createEventTrxTrigger"],"mappings":";;;;;AAMO,MAAM,yBAAyB,CACrC,SACA,cACA,QACA,QACA,cACA,aACI;AACJ,QAAM,iBAAiB;AAAA,IACtB,SAAS,aAAa,cAAc;AAAA,IACpC,SAAS,aAAa,qBAAqB;AAAA,EAC5C;AACQ,UAAA;AAAA,IACP,SAAS,aAAa;AAAA,IACtB;AAAA,MACC,CAAC,SAAS,aAAa,cAAc,UAAU,GAAG;AAAA,QACjD,MAAMA,0CAAqB,MAAM;AAAA,QACjC,SAAS;AAAA,QACT,YAAY,IAAI,OAAO,SAAS,MAAM,OAAO,aAAa;AAAA,QAC1D,UAAU;AAAA,MACX;AAAA,MACA,CAAC,SAAS,aAAa,qBAAqB,UAAU,GAAG;AAAA,QACxD,MAAMA,0CAAqB,YAAY;AAAA,QACvC,SAAS;AAAA,QACT,YAAY,IAAI,aAAa,SAAS,MAAM,aAAa,aAAa;AAAA,QACtE,UAAU;AAAA,MAAA;AAAA,IACX;AAAA,EAEF;AAEA,QAAM,cAAcC,UAAA,eAAe,SAAS,aAAa,SAAS;AAC5D,QAAA,eAAe,eAAe,IAAIA,wBAAc;AAC9C,UAAA,IAAI,eAAe,WAAW,qBAAqB,aAAa,KAAK,IAAI,CAAC,GAAG;AAEjF,MAAA,SAAS,aAAa,SAAS,SAAS;AAC3CC,mBAAA,mBAAmB,SAAS,cAAc,SAAS,aAAa,WAAW,cAAc;AACzFC,mBAAAA,sBAAsB,SAAS,cAAc,SAAS,aAAa,SAAS;AAAA,EAAA;AAE9E;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"createJunctionTable.js","sources":["../../../../../../packages/schema-migrations/src/modifications/utils/createJunctionTable.ts"],"sourcesContent":["import { createEventTrigger, createEventTrxTrigger } from './sqlUpdateUtils'\nimport { MigrationBuilder } from '@contember/database-migrations'\nimport { Model, Schema } from '@contember/schema'\nimport { getPrimaryColumnType } from './getPrimaryColumnType'\nimport { wrapIdentifier } from '../../utils/dbHelpers'\n\nexport const createJunctionTableSql = (\n\tbuilder: MigrationBuilder,\n\tsystemSchema: string,\n\tschema: Schema,\n\tentity: Model.Entity,\n\ttargetEntity: Model.Entity,\n\trelation: Model.ManyHasManyOwningRelation,\n) => {\n\tconst primaryColumns = [\n\t\trelation.joiningTable.joiningColumn.columnName,\n\t\trelation.joiningTable.inverseJoiningColumn.columnName,\n\t]\n\tbuilder.createTable(\n\t\trelation.joiningTable.tableName,\n\t\t{\n\t\t\t[relation.joiningTable.joiningColumn.columnName]: {\n\t\t\t\ttype: getPrimaryColumnType(entity),\n\t\t\t\tnotNull: true,\n\t\t\t\treferences: `\"${entity.tableName}\"(\"${entity.primaryColumn}\")`,\n\t\t\t\tonDelete: 'CASCADE',\n\t\t\t},\n\t\t\t[relation.joiningTable.inverseJoiningColumn.columnName]: {\n\t\t\t\ttype: getPrimaryColumnType(targetEntity),\n\t\t\t\tnotNull: true,\n\t\t\t\treferences: `\"${targetEntity.tableName}\"(\"${targetEntity.primaryColumn}\")`,\n\t\t\t\tonDelete: 'CASCADE',\n\t\t\t},\n\t\t},\n\t)\n\n\tconst tableNameId = wrapIdentifier(relation.joiningTable.tableName)\n\tconst columnNameId = primaryColumns.map(wrapIdentifier)\n\tbuilder.sql(`ALTER TABLE ${tableNameId} ADD PRIMARY KEY (${columnNameId.join(', ')})`)\n\n\tif (relation.joiningTable.eventLog.enabled) {\n\t\tcreateEventTrigger(builder, systemSchema, relation.joiningTable.tableName, primaryColumns)\n\t\tcreateEventTrxTrigger(builder, systemSchema, relation.joiningTable.tableName)\n\t}\n}\n"],"names":[],"mappings":";;;AAMO,MAAM,yBAAyB,CACrC,SACA,cACA,QACA,QACA,cACA,aACI;AACJ,QAAM,iBAAiB;AAAA,IACtB,SAAS,aAAa,cAAc;AAAA,IACpC,SAAS,aAAa,qBAAqB;AAAA,EAAA;AAEpC,UAAA;AAAA,IACP,SAAS,aAAa;AAAA,IACtB;AAAA,MACC,CAAC,SAAS,aAAa,cAAc,UAAU,GAAG;AAAA,QACjD,MAAM,qBAAqB,MAAM;AAAA,QACjC,SAAS;AAAA,QACT,YAAY,IAAI,OAAO,SAAS,MAAM,OAAO,aAAa;AAAA,QAC1D,UAAU;AAAA,MACX;AAAA,MACA,CAAC,SAAS,aAAa,qBAAqB,UAAU,GAAG;AAAA,QACxD,MAAM,qBAAqB,YAAY;AAAA,QACvC,SAAS;AAAA,QACT,YAAY,IAAI,aAAa,SAAS,MAAM,aAAa,aAAa;AAAA,QACtE,UAAU;AAAA,MACX;AAAA,IACD;AAAA,EAAA;AAGD,QAAM,cAAc,eAAe,SAAS,aAAa,SAAS;AAC5D,QAAA,eAAe,eAAe,IAAI,cAAc;AAC9C,UAAA,IAAI,eAAe,WAAW,qBAAqB,aAAa,KAAK,IAAI,CAAC,GAAG;AAEjF,MAAA,SAAS,aAAa,SAAS,SAAS;AAC3C,uBAAmB,SAAS,cAAc,SAAS,aAAa,WAAW,cAAc;AACzF,0BAAsB,SAAS,cAAc,SAAS,aAAa,SAAS;AAAA,EAC7E;AACD;"}
1
+ {"version":3,"file":"createJunctionTable.js","sources":["../../../../../../packages/schema-migrations/src/modifications/utils/createJunctionTable.ts"],"sourcesContent":["import { createEventTrigger, createEventTrxTrigger } from './sqlUpdateUtils'\nimport { MigrationBuilder } from '@contember/database-migrations'\nimport { Model, Schema } from '@contember/schema'\nimport { getPrimaryColumnType } from './getPrimaryColumnType'\nimport { wrapIdentifier } from '../../utils/dbHelpers'\n\nexport const createJunctionTableSql = (\n\tbuilder: MigrationBuilder,\n\tsystemSchema: string,\n\tschema: Schema,\n\tentity: Model.Entity,\n\ttargetEntity: Model.Entity,\n\trelation: Model.ManyHasManyOwningRelation,\n) => {\n\tconst primaryColumns = [\n\t\trelation.joiningTable.joiningColumn.columnName,\n\t\trelation.joiningTable.inverseJoiningColumn.columnName,\n\t]\n\tbuilder.createTable(\n\t\trelation.joiningTable.tableName,\n\t\t{\n\t\t\t[relation.joiningTable.joiningColumn.columnName]: {\n\t\t\t\ttype: getPrimaryColumnType(entity),\n\t\t\t\tnotNull: true,\n\t\t\t\treferences: `\"${entity.tableName}\"(\"${entity.primaryColumn}\")`,\n\t\t\t\tonDelete: 'CASCADE',\n\t\t\t},\n\t\t\t[relation.joiningTable.inverseJoiningColumn.columnName]: {\n\t\t\t\ttype: getPrimaryColumnType(targetEntity),\n\t\t\t\tnotNull: true,\n\t\t\t\treferences: `\"${targetEntity.tableName}\"(\"${targetEntity.primaryColumn}\")`,\n\t\t\t\tonDelete: 'CASCADE',\n\t\t\t},\n\t\t},\n\t)\n\n\tconst tableNameId = wrapIdentifier(relation.joiningTable.tableName)\n\tconst columnNameId = primaryColumns.map(wrapIdentifier)\n\tbuilder.sql(`ALTER TABLE ${tableNameId} ADD PRIMARY KEY (${columnNameId.join(', ')})`)\n\n\tif (relation.joiningTable.eventLog.enabled) {\n\t\tcreateEventTrigger(builder, systemSchema, relation.joiningTable.tableName, primaryColumns)\n\t\tcreateEventTrxTrigger(builder, systemSchema, relation.joiningTable.tableName)\n\t}\n}\n"],"names":[],"mappings":";;;AAMO,MAAM,yBAAyB,CACrC,SACA,cACA,QACA,QACA,cACA,aACI;AACJ,QAAM,iBAAiB;AAAA,IACtB,SAAS,aAAa,cAAc;AAAA,IACpC,SAAS,aAAa,qBAAqB;AAAA,EAC5C;AACQ,UAAA;AAAA,IACP,SAAS,aAAa;AAAA,IACtB;AAAA,MACC,CAAC,SAAS,aAAa,cAAc,UAAU,GAAG;AAAA,QACjD,MAAM,qBAAqB,MAAM;AAAA,QACjC,SAAS;AAAA,QACT,YAAY,IAAI,OAAO,SAAS,MAAM,OAAO,aAAa;AAAA,QAC1D,UAAU;AAAA,MACX;AAAA,MACA,CAAC,SAAS,aAAa,qBAAqB,UAAU,GAAG;AAAA,QACxD,MAAM,qBAAqB,YAAY;AAAA,QACvC,SAAS;AAAA,QACT,YAAY,IAAI,aAAa,SAAS,MAAM,aAAa,aAAa;AAAA,QACtE,UAAU;AAAA,MAAA;AAAA,IACX;AAAA,EAEF;AAEA,QAAM,cAAc,eAAe,SAAS,aAAa,SAAS;AAC5D,QAAA,eAAe,eAAe,IAAI,cAAc;AAC9C,UAAA,IAAI,eAAe,WAAW,qBAAqB,aAAa,KAAK,IAAI,CAAC,GAAG;AAEjF,MAAA,SAAS,aAAa,SAAS,SAAS;AAC3C,uBAAmB,SAAS,cAAc,SAAS,aAAa,WAAW,cAAc;AACzF,0BAAsB,SAAS,cAAc,SAAS,aAAa,SAAS;AAAA,EAAA;AAE9E;"}
@@ -1 +1 @@
1
- {"version":3,"file":"diffUtils.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/utils/diffUtils.ts"],"sourcesContent":["import { Model, Schema } from '@contember/schema'\nimport { Migration } from '../../Migration'\nimport { isColumn, isRelation } from '@contember/schema-utils'\nimport { isDefined } from '../../utils/isDefined'\nimport deepEqual from 'fast-deep-equal'\n\nexport const updateFields = <Data = { [field: string]: any }>(\n\toriginalSchema: Schema,\n\tupdatedSchema: Schema,\n\tmodificationGenerator: (args: {\n\t\toriginalEntity: Model.Entity\n\t\tupdatedEntity: Model.Entity\n\t\toriginalField: Model.AnyField\n\t\tupdatedField: Model.AnyField\n\t}) => Migration.Modification<Data> | Migration.Modification<Data>[] | undefined,\n): Migration.Modification<Data>[] => {\n\treturn Object.values(updatedSchema.model.entities)\n\t\t.filter(({ name }) => originalSchema.model.entities[name])\n\t\t.flatMap(updatedEntity => {\n\t\t\tconst originalEntity = originalSchema.model.entities[updatedEntity.name]\n\n\t\t\treturn Object.values(updatedEntity.fields)\n\t\t\t\t.flatMap(updatedField => {\n\t\t\t\t\tconst originalField = originalEntity.fields[updatedField.name]\n\t\t\t\t\tif (!originalField) {\n\t\t\t\t\t\treturn undefined\n\t\t\t\t\t}\n\t\t\t\t\tif (deepEqual(originalField, updatedField)) {\n\t\t\t\t\t\treturn undefined\n\t\t\t\t\t}\n\t\t\t\t\tconst result = modificationGenerator({\n\t\t\t\t\t\toriginalEntity,\n\t\t\t\t\t\tupdatedEntity,\n\t\t\t\t\t\toriginalField,\n\t\t\t\t\t\tupdatedField,\n\t\t\t\t\t})\n\t\t\t\t\tif (result !== undefined && !Array.isArray(result)) {\n\t\t\t\t\t\treturn [result]\n\t\t\t\t\t}\n\t\t\t\t\treturn result\n\t\t\t\t})\n\t\t\t\t.filter(isDefined)\n\t\t})\n}\n\nexport const updateColumns = <Data = { [field: string]: any }>(\n\toriginalSchema: Schema,\n\tupdatedSchema: Schema,\n\tmodificationGenerator: (args: {\n\t\toriginalEntity: Model.Entity\n\t\toriginalColumn: Model.AnyColumn\n\t\tupdatedEntity: Model.Entity\n\t\tupdatedColumn: Model.AnyColumn\n\t}) => Migration.Modification<Data> | undefined,\n): Migration.Modification<Data>[] => {\n\treturn updateFields(\n\t\toriginalSchema,\n\t\tupdatedSchema,\n\t\t({ updatedEntity, originalEntity, originalField, updatedField }) => {\n\t\t\tif (!isColumn(updatedField) || !isColumn(originalField)) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\treturn modificationGenerator({\n\t\t\t\toriginalEntity,\n\t\t\t\tupdatedEntity,\n\t\t\t\toriginalColumn: originalField,\n\t\t\t\tupdatedColumn: updatedField,\n\t\t\t})\n\t\t},\n\t)\n}\n\nexport const updateRelations = <Data = { [field: string]: any }>(\n\toriginalSchema: Schema,\n\tupdatedSchema: Schema,\n\tmodificationGenerator: (args: {\n\t\toriginalEntity: Model.Entity\n\t\toriginalRelation: Model.AnyRelation\n\t\tupdatedEntity: Model.Entity\n\t\tupdatedRelation: Model.AnyRelation\n\t}) => Migration.Modification<Data> | undefined,\n): Migration.Modification<Data>[] => {\n\treturn updateFields(\n\t\toriginalSchema,\n\t\tupdatedSchema,\n\t\t({ updatedEntity, originalEntity, originalField, updatedField }) => {\n\t\t\tif (!isRelation(updatedField) || !isRelation(originalField)) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\treturn modificationGenerator({\n\t\t\t\toriginalEntity,\n\t\t\t\tupdatedEntity,\n\t\t\t\toriginalRelation: originalField,\n\t\t\t\tupdatedRelation: updatedField,\n\t\t\t})\n\t\t},\n\t)\n}\n\nexport const createFields = <Data = { [field: string]: any }>(\n\toriginalSchema: Schema,\n\tupdatedSchema: Schema,\n\tmodificationGenerator: (args: {\n\t\toriginalEntity: Model.Entity\n\t\tupdatedEntity: Model.Entity\n\t\tnewField: Model.AnyField\n\t}) => Migration.Modification<Data> | undefined,\n): Migration.Modification<Data>[] => {\n\treturn Object.values(updatedSchema.model.entities)\n\t\t.filter(({ name }) => originalSchema.model.entities[name])\n\t\t.flatMap(updatedEntity => {\n\t\t\tconst originalEntity = originalSchema.model.entities[updatedEntity.name]\n\n\t\t\treturn Object.values(updatedEntity.fields)\n\t\t\t\t.filter(it => !originalEntity.fields[it.name])\n\t\t\t\t.map(newField => {\n\t\t\t\t\treturn modificationGenerator({\n\t\t\t\t\t\tnewField,\n\t\t\t\t\t\tupdatedEntity,\n\t\t\t\t\t\toriginalEntity,\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t\t.filter(isDefined)\n\t\t})\n}\n"],"names":["isDefined","isColumn","isRelation"],"mappings":";;;;;AAMO,MAAM,eAAe,CAC3B,gBACA,eACA,0BAMoC;AACpC,SAAO,OAAO,OAAO,cAAc,MAAM,QAAQ,EAC/C,OAAO,CAAC,EAAE,KAAK,MAAM,eAAe,MAAM,SAAS,IAAI,CAAC,EACxD,QAAQ,CAAiB,kBAAA;AACzB,UAAM,iBAAiB,eAAe,MAAM,SAAS,cAAc,IAAI;AAEvE,WAAO,OAAO,OAAO,cAAc,MAAM,EACvC,QAAQ,CAAgB,iBAAA;AACxB,YAAM,gBAAgB,eAAe,OAAO,aAAa,IAAI;AAC7D,UAAI,CAAC,eAAe;AACZ,eAAA;AAAA,MACR;AACI,UAAA,UAAU,eAAe,YAAY,GAAG;AACpC,eAAA;AAAA,MACR;AACA,YAAM,SAAS,sBAAsB;AAAA,QACpC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACA;AACD,UAAI,WAAW,UAAa,CAAC,MAAM,QAAQ,MAAM,GAAG;AACnD,eAAO,CAAC,MAAM;AAAA,MACf;AACO,aAAA;AAAA,IAAA,CACP,EACA,OAAOA,UAAAA,SAAS;AAAA,EAAA,CAClB;AACH;AAEO,MAAM,gBAAgB,CAC5B,gBACA,eACA,0BAMoC;AAC7B,SAAA;AAAA,IACN;AAAA,IACA;AAAA,IACA,CAAC,EAAE,eAAe,gBAAgB,eAAe,mBAAmB;AACnE,UAAI,CAACC,YAAS,SAAA,YAAY,KAAK,CAACA,YAAA,SAAS,aAAa,GAAG;AACjD,eAAA;AAAA,MACR;AACA,aAAO,sBAAsB;AAAA,QAC5B;AAAA,QACA;AAAA,QACA,gBAAgB;AAAA,QAChB,eAAe;AAAA,MAAA,CACf;AAAA,IACF;AAAA,EAAA;AAEF;AAEO,MAAM,kBAAkB,CAC9B,gBACA,eACA,0BAMoC;AAC7B,SAAA;AAAA,IACN;AAAA,IACA;AAAA,IACA,CAAC,EAAE,eAAe,gBAAgB,eAAe,mBAAmB;AACnE,UAAI,CAACC,YAAW,WAAA,YAAY,KAAK,CAACA,YAAA,WAAW,aAAa,GAAG;AACrD,eAAA;AAAA,MACR;AACA,aAAO,sBAAsB;AAAA,QAC5B;AAAA,QACA;AAAA,QACA,kBAAkB;AAAA,QAClB,iBAAiB;AAAA,MAAA,CACjB;AAAA,IACF;AAAA,EAAA;AAEF;AAEO,MAAM,eAAe,CAC3B,gBACA,eACA,0BAKoC;AACpC,SAAO,OAAO,OAAO,cAAc,MAAM,QAAQ,EAC/C,OAAO,CAAC,EAAE,KAAK,MAAM,eAAe,MAAM,SAAS,IAAI,CAAC,EACxD,QAAQ,CAAiB,kBAAA;AACzB,UAAM,iBAAiB,eAAe,MAAM,SAAS,cAAc,IAAI;AAEvE,WAAO,OAAO,OAAO,cAAc,MAAM,EACvC,OAAO,CAAA,OAAM,CAAC,eAAe,OAAO,GAAG,IAAI,CAAC,EAC5C,IAAI,CAAY,aAAA;AAChB,aAAO,sBAAsB;AAAA,QAC5B;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACA;AAAA,IAAA,CACD,EACA,OAAOF,UAAAA,SAAS;AAAA,EAAA,CAClB;AACH;;;;;"}
1
+ {"version":3,"file":"diffUtils.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/utils/diffUtils.ts"],"sourcesContent":["import { Model, Schema } from '@contember/schema'\nimport { Migration } from '../../Migration'\nimport { isColumn, isRelation } from '@contember/schema-utils'\nimport { isDefined } from '../../utils/isDefined'\nimport deepEqual from 'fast-deep-equal'\n\nexport const updateFields = <Data = { [field: string]: any }>(\n\toriginalSchema: Schema,\n\tupdatedSchema: Schema,\n\tmodificationGenerator: (args: {\n\t\toriginalEntity: Model.Entity\n\t\tupdatedEntity: Model.Entity\n\t\toriginalField: Model.AnyField\n\t\tupdatedField: Model.AnyField\n\t}) => Migration.Modification<Data> | Migration.Modification<Data>[] | undefined,\n): Migration.Modification<Data>[] => {\n\treturn Object.values(updatedSchema.model.entities)\n\t\t.filter(({ name }) => originalSchema.model.entities[name])\n\t\t.flatMap(updatedEntity => {\n\t\t\tconst originalEntity = originalSchema.model.entities[updatedEntity.name]\n\n\t\t\treturn Object.values(updatedEntity.fields)\n\t\t\t\t.flatMap(updatedField => {\n\t\t\t\t\tconst originalField = originalEntity.fields[updatedField.name]\n\t\t\t\t\tif (!originalField) {\n\t\t\t\t\t\treturn undefined\n\t\t\t\t\t}\n\t\t\t\t\tif (deepEqual(originalField, updatedField)) {\n\t\t\t\t\t\treturn undefined\n\t\t\t\t\t}\n\t\t\t\t\tconst result = modificationGenerator({\n\t\t\t\t\t\toriginalEntity,\n\t\t\t\t\t\tupdatedEntity,\n\t\t\t\t\t\toriginalField,\n\t\t\t\t\t\tupdatedField,\n\t\t\t\t\t})\n\t\t\t\t\tif (result !== undefined && !Array.isArray(result)) {\n\t\t\t\t\t\treturn [result]\n\t\t\t\t\t}\n\t\t\t\t\treturn result\n\t\t\t\t})\n\t\t\t\t.filter(isDefined)\n\t\t})\n}\n\nexport const updateColumns = <Data = { [field: string]: any }>(\n\toriginalSchema: Schema,\n\tupdatedSchema: Schema,\n\tmodificationGenerator: (args: {\n\t\toriginalEntity: Model.Entity\n\t\toriginalColumn: Model.AnyColumn\n\t\tupdatedEntity: Model.Entity\n\t\tupdatedColumn: Model.AnyColumn\n\t}) => Migration.Modification<Data> | undefined,\n): Migration.Modification<Data>[] => {\n\treturn updateFields(\n\t\toriginalSchema,\n\t\tupdatedSchema,\n\t\t({ updatedEntity, originalEntity, originalField, updatedField }) => {\n\t\t\tif (!isColumn(updatedField) || !isColumn(originalField)) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\treturn modificationGenerator({\n\t\t\t\toriginalEntity,\n\t\t\t\tupdatedEntity,\n\t\t\t\toriginalColumn: originalField,\n\t\t\t\tupdatedColumn: updatedField,\n\t\t\t})\n\t\t},\n\t)\n}\n\nexport const updateRelations = <Data = { [field: string]: any }>(\n\toriginalSchema: Schema,\n\tupdatedSchema: Schema,\n\tmodificationGenerator: (args: {\n\t\toriginalEntity: Model.Entity\n\t\toriginalRelation: Model.AnyRelation\n\t\tupdatedEntity: Model.Entity\n\t\tupdatedRelation: Model.AnyRelation\n\t}) => Migration.Modification<Data> | undefined,\n): Migration.Modification<Data>[] => {\n\treturn updateFields(\n\t\toriginalSchema,\n\t\tupdatedSchema,\n\t\t({ updatedEntity, originalEntity, originalField, updatedField }) => {\n\t\t\tif (!isRelation(updatedField) || !isRelation(originalField)) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\treturn modificationGenerator({\n\t\t\t\toriginalEntity,\n\t\t\t\tupdatedEntity,\n\t\t\t\toriginalRelation: originalField,\n\t\t\t\tupdatedRelation: updatedField,\n\t\t\t})\n\t\t},\n\t)\n}\n\nexport const createFields = <Data = { [field: string]: any }>(\n\toriginalSchema: Schema,\n\tupdatedSchema: Schema,\n\tmodificationGenerator: (args: {\n\t\toriginalEntity: Model.Entity\n\t\tupdatedEntity: Model.Entity\n\t\tnewField: Model.AnyField\n\t}) => Migration.Modification<Data> | undefined,\n): Migration.Modification<Data>[] => {\n\treturn Object.values(updatedSchema.model.entities)\n\t\t.filter(({ name }) => originalSchema.model.entities[name])\n\t\t.flatMap(updatedEntity => {\n\t\t\tconst originalEntity = originalSchema.model.entities[updatedEntity.name]\n\n\t\t\treturn Object.values(updatedEntity.fields)\n\t\t\t\t.filter(it => !originalEntity.fields[it.name])\n\t\t\t\t.map(newField => {\n\t\t\t\t\treturn modificationGenerator({\n\t\t\t\t\t\tnewField,\n\t\t\t\t\t\tupdatedEntity,\n\t\t\t\t\t\toriginalEntity,\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t\t.filter(isDefined)\n\t\t})\n}\n"],"names":["isDefined","isColumn","isRelation"],"mappings":";;;;;AAMO,MAAM,eAAe,CAC3B,gBACA,eACA,0BAMoC;AACpC,SAAO,OAAO,OAAO,cAAc,MAAM,QAAQ,EAC/C,OAAO,CAAC,EAAE,KAAK,MAAM,eAAe,MAAM,SAAS,IAAI,CAAC,EACxD,QAAQ,CAAiB,kBAAA;AACzB,UAAM,iBAAiB,eAAe,MAAM,SAAS,cAAc,IAAI;AAEvE,WAAO,OAAO,OAAO,cAAc,MAAM,EACvC,QAAQ,CAAgB,iBAAA;AACxB,YAAM,gBAAgB,eAAe,OAAO,aAAa,IAAI;AAC7D,UAAI,CAAC,eAAe;AACZ,eAAA;AAAA,MAAA;AAEJ,UAAA,UAAU,eAAe,YAAY,GAAG;AACpC,eAAA;AAAA,MAAA;AAER,YAAM,SAAS,sBAAsB;AAAA,QACpC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACA;AACD,UAAI,WAAW,UAAa,CAAC,MAAM,QAAQ,MAAM,GAAG;AACnD,eAAO,CAAC,MAAM;AAAA,MAAA;AAER,aAAA;AAAA,IAAA,CACP,EACA,OAAOA,mBAAS;AAAA,EAAA,CAClB;AACH;AAEO,MAAM,gBAAgB,CAC5B,gBACA,eACA,0BAMoC;AAC7B,SAAA;AAAA,IACN;AAAA,IACA;AAAA,IACA,CAAC,EAAE,eAAe,gBAAgB,eAAe,mBAAmB;AACnE,UAAI,CAACC,YAAS,SAAA,YAAY,KAAK,CAACA,YAAA,SAAS,aAAa,GAAG;AACjD,eAAA;AAAA,MAAA;AAER,aAAO,sBAAsB;AAAA,QAC5B;AAAA,QACA;AAAA,QACA,gBAAgB;AAAA,QAChB,eAAe;AAAA,MAAA,CACf;AAAA,IAAA;AAAA,EAEH;AACD;AAEO,MAAM,kBAAkB,CAC9B,gBACA,eACA,0BAMoC;AAC7B,SAAA;AAAA,IACN;AAAA,IACA;AAAA,IACA,CAAC,EAAE,eAAe,gBAAgB,eAAe,mBAAmB;AACnE,UAAI,CAACC,YAAW,WAAA,YAAY,KAAK,CAACA,YAAA,WAAW,aAAa,GAAG;AACrD,eAAA;AAAA,MAAA;AAER,aAAO,sBAAsB;AAAA,QAC5B;AAAA,QACA;AAAA,QACA,kBAAkB;AAAA,QAClB,iBAAiB;AAAA,MAAA,CACjB;AAAA,IAAA;AAAA,EAEH;AACD;AAEO,MAAM,eAAe,CAC3B,gBACA,eACA,0BAKoC;AACpC,SAAO,OAAO,OAAO,cAAc,MAAM,QAAQ,EAC/C,OAAO,CAAC,EAAE,KAAK,MAAM,eAAe,MAAM,SAAS,IAAI,CAAC,EACxD,QAAQ,CAAiB,kBAAA;AACzB,UAAM,iBAAiB,eAAe,MAAM,SAAS,cAAc,IAAI;AAEvE,WAAO,OAAO,OAAO,cAAc,MAAM,EACvC,OAAO,CAAA,OAAM,CAAC,eAAe,OAAO,GAAG,IAAI,CAAC,EAC5C,IAAI,CAAY,aAAA;AAChB,aAAO,sBAAsB;AAAA,QAC5B;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACA;AAAA,IAAA,CACD,EACA,OAAOF,mBAAS;AAAA,EAAA,CAClB;AACH;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"diffUtils.js","sources":["../../../../../../packages/schema-migrations/src/modifications/utils/diffUtils.ts"],"sourcesContent":["import { Model, Schema } from '@contember/schema'\nimport { Migration } from '../../Migration'\nimport { isColumn, isRelation } from '@contember/schema-utils'\nimport { isDefined } from '../../utils/isDefined'\nimport deepEqual from 'fast-deep-equal'\n\nexport const updateFields = <Data = { [field: string]: any }>(\n\toriginalSchema: Schema,\n\tupdatedSchema: Schema,\n\tmodificationGenerator: (args: {\n\t\toriginalEntity: Model.Entity\n\t\tupdatedEntity: Model.Entity\n\t\toriginalField: Model.AnyField\n\t\tupdatedField: Model.AnyField\n\t}) => Migration.Modification<Data> | Migration.Modification<Data>[] | undefined,\n): Migration.Modification<Data>[] => {\n\treturn Object.values(updatedSchema.model.entities)\n\t\t.filter(({ name }) => originalSchema.model.entities[name])\n\t\t.flatMap(updatedEntity => {\n\t\t\tconst originalEntity = originalSchema.model.entities[updatedEntity.name]\n\n\t\t\treturn Object.values(updatedEntity.fields)\n\t\t\t\t.flatMap(updatedField => {\n\t\t\t\t\tconst originalField = originalEntity.fields[updatedField.name]\n\t\t\t\t\tif (!originalField) {\n\t\t\t\t\t\treturn undefined\n\t\t\t\t\t}\n\t\t\t\t\tif (deepEqual(originalField, updatedField)) {\n\t\t\t\t\t\treturn undefined\n\t\t\t\t\t}\n\t\t\t\t\tconst result = modificationGenerator({\n\t\t\t\t\t\toriginalEntity,\n\t\t\t\t\t\tupdatedEntity,\n\t\t\t\t\t\toriginalField,\n\t\t\t\t\t\tupdatedField,\n\t\t\t\t\t})\n\t\t\t\t\tif (result !== undefined && !Array.isArray(result)) {\n\t\t\t\t\t\treturn [result]\n\t\t\t\t\t}\n\t\t\t\t\treturn result\n\t\t\t\t})\n\t\t\t\t.filter(isDefined)\n\t\t})\n}\n\nexport const updateColumns = <Data = { [field: string]: any }>(\n\toriginalSchema: Schema,\n\tupdatedSchema: Schema,\n\tmodificationGenerator: (args: {\n\t\toriginalEntity: Model.Entity\n\t\toriginalColumn: Model.AnyColumn\n\t\tupdatedEntity: Model.Entity\n\t\tupdatedColumn: Model.AnyColumn\n\t}) => Migration.Modification<Data> | undefined,\n): Migration.Modification<Data>[] => {\n\treturn updateFields(\n\t\toriginalSchema,\n\t\tupdatedSchema,\n\t\t({ updatedEntity, originalEntity, originalField, updatedField }) => {\n\t\t\tif (!isColumn(updatedField) || !isColumn(originalField)) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\treturn modificationGenerator({\n\t\t\t\toriginalEntity,\n\t\t\t\tupdatedEntity,\n\t\t\t\toriginalColumn: originalField,\n\t\t\t\tupdatedColumn: updatedField,\n\t\t\t})\n\t\t},\n\t)\n}\n\nexport const updateRelations = <Data = { [field: string]: any }>(\n\toriginalSchema: Schema,\n\tupdatedSchema: Schema,\n\tmodificationGenerator: (args: {\n\t\toriginalEntity: Model.Entity\n\t\toriginalRelation: Model.AnyRelation\n\t\tupdatedEntity: Model.Entity\n\t\tupdatedRelation: Model.AnyRelation\n\t}) => Migration.Modification<Data> | undefined,\n): Migration.Modification<Data>[] => {\n\treturn updateFields(\n\t\toriginalSchema,\n\t\tupdatedSchema,\n\t\t({ updatedEntity, originalEntity, originalField, updatedField }) => {\n\t\t\tif (!isRelation(updatedField) || !isRelation(originalField)) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\treturn modificationGenerator({\n\t\t\t\toriginalEntity,\n\t\t\t\tupdatedEntity,\n\t\t\t\toriginalRelation: originalField,\n\t\t\t\tupdatedRelation: updatedField,\n\t\t\t})\n\t\t},\n\t)\n}\n\nexport const createFields = <Data = { [field: string]: any }>(\n\toriginalSchema: Schema,\n\tupdatedSchema: Schema,\n\tmodificationGenerator: (args: {\n\t\toriginalEntity: Model.Entity\n\t\tupdatedEntity: Model.Entity\n\t\tnewField: Model.AnyField\n\t}) => Migration.Modification<Data> | undefined,\n): Migration.Modification<Data>[] => {\n\treturn Object.values(updatedSchema.model.entities)\n\t\t.filter(({ name }) => originalSchema.model.entities[name])\n\t\t.flatMap(updatedEntity => {\n\t\t\tconst originalEntity = originalSchema.model.entities[updatedEntity.name]\n\n\t\t\treturn Object.values(updatedEntity.fields)\n\t\t\t\t.filter(it => !originalEntity.fields[it.name])\n\t\t\t\t.map(newField => {\n\t\t\t\t\treturn modificationGenerator({\n\t\t\t\t\t\tnewField,\n\t\t\t\t\t\tupdatedEntity,\n\t\t\t\t\t\toriginalEntity,\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t\t.filter(isDefined)\n\t\t})\n}\n"],"names":[],"mappings":";;;AAMO,MAAM,eAAe,CAC3B,gBACA,eACA,0BAMoC;AACpC,SAAO,OAAO,OAAO,cAAc,MAAM,QAAQ,EAC/C,OAAO,CAAC,EAAE,KAAK,MAAM,eAAe,MAAM,SAAS,IAAI,CAAC,EACxD,QAAQ,CAAiB,kBAAA;AACzB,UAAM,iBAAiB,eAAe,MAAM,SAAS,cAAc,IAAI;AAEvE,WAAO,OAAO,OAAO,cAAc,MAAM,EACvC,QAAQ,CAAgB,iBAAA;AACxB,YAAM,gBAAgB,eAAe,OAAO,aAAa,IAAI;AAC7D,UAAI,CAAC,eAAe;AACZ,eAAA;AAAA,MACR;AACI,UAAA,UAAU,eAAe,YAAY,GAAG;AACpC,eAAA;AAAA,MACR;AACA,YAAM,SAAS,sBAAsB;AAAA,QACpC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACA;AACD,UAAI,WAAW,UAAa,CAAC,MAAM,QAAQ,MAAM,GAAG;AACnD,eAAO,CAAC,MAAM;AAAA,MACf;AACO,aAAA;AAAA,IAAA,CACP,EACA,OAAO,SAAS;AAAA,EAAA,CAClB;AACH;AAEO,MAAM,gBAAgB,CAC5B,gBACA,eACA,0BAMoC;AAC7B,SAAA;AAAA,IACN;AAAA,IACA;AAAA,IACA,CAAC,EAAE,eAAe,gBAAgB,eAAe,mBAAmB;AACnE,UAAI,CAAC,SAAS,YAAY,KAAK,CAAC,SAAS,aAAa,GAAG;AACjD,eAAA;AAAA,MACR;AACA,aAAO,sBAAsB;AAAA,QAC5B;AAAA,QACA;AAAA,QACA,gBAAgB;AAAA,QAChB,eAAe;AAAA,MAAA,CACf;AAAA,IACF;AAAA,EAAA;AAEF;AAEO,MAAM,kBAAkB,CAC9B,gBACA,eACA,0BAMoC;AAC7B,SAAA;AAAA,IACN;AAAA,IACA;AAAA,IACA,CAAC,EAAE,eAAe,gBAAgB,eAAe,mBAAmB;AACnE,UAAI,CAAC,WAAW,YAAY,KAAK,CAAC,WAAW,aAAa,GAAG;AACrD,eAAA;AAAA,MACR;AACA,aAAO,sBAAsB;AAAA,QAC5B;AAAA,QACA;AAAA,QACA,kBAAkB;AAAA,QAClB,iBAAiB;AAAA,MAAA,CACjB;AAAA,IACF;AAAA,EAAA;AAEF;AAEO,MAAM,eAAe,CAC3B,gBACA,eACA,0BAKoC;AACpC,SAAO,OAAO,OAAO,cAAc,MAAM,QAAQ,EAC/C,OAAO,CAAC,EAAE,KAAK,MAAM,eAAe,MAAM,SAAS,IAAI,CAAC,EACxD,QAAQ,CAAiB,kBAAA;AACzB,UAAM,iBAAiB,eAAe,MAAM,SAAS,cAAc,IAAI;AAEvE,WAAO,OAAO,OAAO,cAAc,MAAM,EACvC,OAAO,CAAA,OAAM,CAAC,eAAe,OAAO,GAAG,IAAI,CAAC,EAC5C,IAAI,CAAY,aAAA;AAChB,aAAO,sBAAsB;AAAA,QAC5B;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACA;AAAA,IAAA,CACD,EACA,OAAO,SAAS;AAAA,EAAA,CAClB;AACH;"}
1
+ {"version":3,"file":"diffUtils.js","sources":["../../../../../../packages/schema-migrations/src/modifications/utils/diffUtils.ts"],"sourcesContent":["import { Model, Schema } from '@contember/schema'\nimport { Migration } from '../../Migration'\nimport { isColumn, isRelation } from '@contember/schema-utils'\nimport { isDefined } from '../../utils/isDefined'\nimport deepEqual from 'fast-deep-equal'\n\nexport const updateFields = <Data = { [field: string]: any }>(\n\toriginalSchema: Schema,\n\tupdatedSchema: Schema,\n\tmodificationGenerator: (args: {\n\t\toriginalEntity: Model.Entity\n\t\tupdatedEntity: Model.Entity\n\t\toriginalField: Model.AnyField\n\t\tupdatedField: Model.AnyField\n\t}) => Migration.Modification<Data> | Migration.Modification<Data>[] | undefined,\n): Migration.Modification<Data>[] => {\n\treturn Object.values(updatedSchema.model.entities)\n\t\t.filter(({ name }) => originalSchema.model.entities[name])\n\t\t.flatMap(updatedEntity => {\n\t\t\tconst originalEntity = originalSchema.model.entities[updatedEntity.name]\n\n\t\t\treturn Object.values(updatedEntity.fields)\n\t\t\t\t.flatMap(updatedField => {\n\t\t\t\t\tconst originalField = originalEntity.fields[updatedField.name]\n\t\t\t\t\tif (!originalField) {\n\t\t\t\t\t\treturn undefined\n\t\t\t\t\t}\n\t\t\t\t\tif (deepEqual(originalField, updatedField)) {\n\t\t\t\t\t\treturn undefined\n\t\t\t\t\t}\n\t\t\t\t\tconst result = modificationGenerator({\n\t\t\t\t\t\toriginalEntity,\n\t\t\t\t\t\tupdatedEntity,\n\t\t\t\t\t\toriginalField,\n\t\t\t\t\t\tupdatedField,\n\t\t\t\t\t})\n\t\t\t\t\tif (result !== undefined && !Array.isArray(result)) {\n\t\t\t\t\t\treturn [result]\n\t\t\t\t\t}\n\t\t\t\t\treturn result\n\t\t\t\t})\n\t\t\t\t.filter(isDefined)\n\t\t})\n}\n\nexport const updateColumns = <Data = { [field: string]: any }>(\n\toriginalSchema: Schema,\n\tupdatedSchema: Schema,\n\tmodificationGenerator: (args: {\n\t\toriginalEntity: Model.Entity\n\t\toriginalColumn: Model.AnyColumn\n\t\tupdatedEntity: Model.Entity\n\t\tupdatedColumn: Model.AnyColumn\n\t}) => Migration.Modification<Data> | undefined,\n): Migration.Modification<Data>[] => {\n\treturn updateFields(\n\t\toriginalSchema,\n\t\tupdatedSchema,\n\t\t({ updatedEntity, originalEntity, originalField, updatedField }) => {\n\t\t\tif (!isColumn(updatedField) || !isColumn(originalField)) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\treturn modificationGenerator({\n\t\t\t\toriginalEntity,\n\t\t\t\tupdatedEntity,\n\t\t\t\toriginalColumn: originalField,\n\t\t\t\tupdatedColumn: updatedField,\n\t\t\t})\n\t\t},\n\t)\n}\n\nexport const updateRelations = <Data = { [field: string]: any }>(\n\toriginalSchema: Schema,\n\tupdatedSchema: Schema,\n\tmodificationGenerator: (args: {\n\t\toriginalEntity: Model.Entity\n\t\toriginalRelation: Model.AnyRelation\n\t\tupdatedEntity: Model.Entity\n\t\tupdatedRelation: Model.AnyRelation\n\t}) => Migration.Modification<Data> | undefined,\n): Migration.Modification<Data>[] => {\n\treturn updateFields(\n\t\toriginalSchema,\n\t\tupdatedSchema,\n\t\t({ updatedEntity, originalEntity, originalField, updatedField }) => {\n\t\t\tif (!isRelation(updatedField) || !isRelation(originalField)) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\treturn modificationGenerator({\n\t\t\t\toriginalEntity,\n\t\t\t\tupdatedEntity,\n\t\t\t\toriginalRelation: originalField,\n\t\t\t\tupdatedRelation: updatedField,\n\t\t\t})\n\t\t},\n\t)\n}\n\nexport const createFields = <Data = { [field: string]: any }>(\n\toriginalSchema: Schema,\n\tupdatedSchema: Schema,\n\tmodificationGenerator: (args: {\n\t\toriginalEntity: Model.Entity\n\t\tupdatedEntity: Model.Entity\n\t\tnewField: Model.AnyField\n\t}) => Migration.Modification<Data> | undefined,\n): Migration.Modification<Data>[] => {\n\treturn Object.values(updatedSchema.model.entities)\n\t\t.filter(({ name }) => originalSchema.model.entities[name])\n\t\t.flatMap(updatedEntity => {\n\t\t\tconst originalEntity = originalSchema.model.entities[updatedEntity.name]\n\n\t\t\treturn Object.values(updatedEntity.fields)\n\t\t\t\t.filter(it => !originalEntity.fields[it.name])\n\t\t\t\t.map(newField => {\n\t\t\t\t\treturn modificationGenerator({\n\t\t\t\t\t\tnewField,\n\t\t\t\t\t\tupdatedEntity,\n\t\t\t\t\t\toriginalEntity,\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t\t.filter(isDefined)\n\t\t})\n}\n"],"names":[],"mappings":";;;AAMO,MAAM,eAAe,CAC3B,gBACA,eACA,0BAMoC;AACpC,SAAO,OAAO,OAAO,cAAc,MAAM,QAAQ,EAC/C,OAAO,CAAC,EAAE,KAAK,MAAM,eAAe,MAAM,SAAS,IAAI,CAAC,EACxD,QAAQ,CAAiB,kBAAA;AACzB,UAAM,iBAAiB,eAAe,MAAM,SAAS,cAAc,IAAI;AAEvE,WAAO,OAAO,OAAO,cAAc,MAAM,EACvC,QAAQ,CAAgB,iBAAA;AACxB,YAAM,gBAAgB,eAAe,OAAO,aAAa,IAAI;AAC7D,UAAI,CAAC,eAAe;AACZ,eAAA;AAAA,MAAA;AAEJ,UAAA,UAAU,eAAe,YAAY,GAAG;AACpC,eAAA;AAAA,MAAA;AAER,YAAM,SAAS,sBAAsB;AAAA,QACpC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACA;AACD,UAAI,WAAW,UAAa,CAAC,MAAM,QAAQ,MAAM,GAAG;AACnD,eAAO,CAAC,MAAM;AAAA,MAAA;AAER,aAAA;AAAA,IAAA,CACP,EACA,OAAO,SAAS;AAAA,EAAA,CAClB;AACH;AAEO,MAAM,gBAAgB,CAC5B,gBACA,eACA,0BAMoC;AAC7B,SAAA;AAAA,IACN;AAAA,IACA;AAAA,IACA,CAAC,EAAE,eAAe,gBAAgB,eAAe,mBAAmB;AACnE,UAAI,CAAC,SAAS,YAAY,KAAK,CAAC,SAAS,aAAa,GAAG;AACjD,eAAA;AAAA,MAAA;AAER,aAAO,sBAAsB;AAAA,QAC5B;AAAA,QACA;AAAA,QACA,gBAAgB;AAAA,QAChB,eAAe;AAAA,MAAA,CACf;AAAA,IAAA;AAAA,EAEH;AACD;AAEO,MAAM,kBAAkB,CAC9B,gBACA,eACA,0BAMoC;AAC7B,SAAA;AAAA,IACN;AAAA,IACA;AAAA,IACA,CAAC,EAAE,eAAe,gBAAgB,eAAe,mBAAmB;AACnE,UAAI,CAAC,WAAW,YAAY,KAAK,CAAC,WAAW,aAAa,GAAG;AACrD,eAAA;AAAA,MAAA;AAER,aAAO,sBAAsB;AAAA,QAC5B;AAAA,QACA;AAAA,QACA,kBAAkB;AAAA,QAClB,iBAAiB;AAAA,MAAA,CACjB;AAAA,IAAA;AAAA,EAEH;AACD;AAEO,MAAM,eAAe,CAC3B,gBACA,eACA,0BAKoC;AACpC,SAAO,OAAO,OAAO,cAAc,MAAM,QAAQ,EAC/C,OAAO,CAAC,EAAE,KAAK,MAAM,eAAe,MAAM,SAAS,IAAI,CAAC,EACxD,QAAQ,CAAiB,kBAAA;AACzB,UAAM,iBAAiB,eAAe,MAAM,SAAS,cAAc,IAAI;AAEvE,WAAO,OAAO,OAAO,cAAc,MAAM,EACvC,OAAO,CAAA,OAAM,CAAC,eAAe,OAAO,GAAG,IAAI,CAAC,EAC5C,IAAI,CAAY,aAAA;AAChB,aAAO,sBAAsB;AAAA,QAC5B;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACA;AAAA,IAAA,CACD,EACA,OAAO,SAAS;AAAA,EAAA,CAClB;AACH;"}
@@ -1 +1 @@
1
- {"version":3,"file":"schemaUpdateUtils.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/utils/schemaUpdateUtils.ts"],"sourcesContent":["import { Acl, Model, Schema, Writable } from '@contember/schema'\nimport { SchemaUpdateError } from '../exceptions'\nimport { isDefined } from '../../utils/isDefined'\nimport { isInverseRelation, isOwningRelation, isRelation, PredicateDefinitionProcessor } from '@contember/schema-utils'\nimport { VERSION_ACL_PATCH, VERSION_REMOVE_RELATION_INVERSE_SIDE } from '../ModificationVersions'\n\n\nexport type SchemaUpdater = (args: { schema: Schema }) => Schema\nexport type ModelUpdater = (args: { schema: Schema; model: Model.Schema }) => Model.Schema\nexport type EntityUpdater = (args: { schema: Schema; model: Model.Schema; entity: Model.Entity }) => Model.Entity\nexport type FieldUpdater<In extends Model.AnyField, Out extends Model.AnyField> = (args: {\n\tschema: Schema\n\tmodel: Model.Schema\n\tentity: Model.Entity\n\tfield: In\n}) => Out | undefined\nexport type AclUpdater = (args: { schema: Schema; acl: Acl.Schema }) => Acl.Schema\nexport type AclRoleUpdater = (args: {\n\tschema: Schema\n\tacl: Acl.Schema\n\trole: Acl.RolePermissions\n}) => Acl.RolePermissions\nexport type AclPermissionsUpdater = (args: {\n\tschema: Schema\n\tacl: Acl.Schema\n\trole: Acl.RolePermissions\n\tentities: Acl.Permissions\n}) => Acl.Permissions\n\nexport type AclEntityPermissionsUpdater = (args: {\n\tschema: Schema\n\tacl: Acl.Schema\n\trole: Acl.RolePermissions\n\tentities: Acl.Permissions\n\tentityName: string\n\tentityPermissions: Acl.EntityPermissions\n}) => Acl.EntityPermissions\n\nexport type EntityAclEveryPredicatesUpdater = (args: {\n\tschema: Schema\n\tacl: Acl.Schema\n\trole: Acl.RolePermissions\n\tentities: Acl.Permissions\n\tentityName: string\n\tentityPermissions: Acl.EntityPermissions\n\tpredicate: Acl.PredicateDefinition\n}) => Acl.PredicateDefinition\n\nexport const updateSchema =\n\t(...schemaUpdater: (SchemaUpdater | undefined)[]): SchemaUpdater =>\n\t\targs =>\n\t\t\tschemaUpdater.filter(isDefined).reduce((schema, updater) => updater({ ...args, schema }), args.schema)\n\nexport const updateAcl =\n\t(updater: AclUpdater): SchemaUpdater =>\n\t\targs => ({\n\t\t\t...args.schema,\n\t\t\tacl: updater({ schema: args.schema, acl: args.schema.acl }),\n\t\t})\n\nexport const updateAclEveryRole =\n\t(...updater: AclRoleUpdater[]): AclUpdater =>\n\t\targs => ({\n\t\t\t...args.acl,\n\t\t\troles: Object.fromEntries(\n\t\t\t\tupdater.reduce(\n\t\t\t\t\t(acc, updater) => acc.map(([name, role]) => [name, updater({ ...args, role })]),\n\t\t\t\t\tObject.entries(args.acl.roles),\n\t\t\t\t),\n\t\t\t),\n\t\t})\n\nexport const updateAclEntities =\n\t(updater: AclPermissionsUpdater): AclRoleUpdater =>\n\t\targs => ({\n\t\t\t...args.role,\n\t\t\tentities: updater({ ...args, entities: args.role.entities }),\n\t\t})\n\nexport const updateAclEveryEntity =\n\t(...updater: AclEntityPermissionsUpdater[]): AclRoleUpdater =>\n\t\targs => ({\n\t\t\t...args.role,\n\t\t\tentities: Object.fromEntries(\n\t\t\t\tupdater.reduce(\n\t\t\t\t\t(acc, updater) =>\n\t\t\t\t\t\tacc.map(([entity, entityPermissions]) => [\n\t\t\t\t\t\t\tentity,\n\t\t\t\t\t\t\tupdater({\n\t\t\t\t\t\t\t\t...args,\n\t\t\t\t\t\t\t\tentities: args.role.entities,\n\t\t\t\t\t\t\t\tentityName: entity,\n\t\t\t\t\t\t\t\tentityPermissions,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t]),\n\t\t\t\t\tObject.entries(args.role.entities),\n\t\t\t\t),\n\t\t\t),\n\t\t})\n\ntype EntityAclFieldPermissionsUpdater = (\n\tfieldPermissions: Acl.FieldPermissions,\n\tentityName: string,\n\toperation: Acl.Operation,\n) => Acl.FieldPermissions\ntype EntityOperationHandler = {\n\t[K in keyof Required<Acl.EntityOperations>]: (\n\t\tvalue: Exclude<Acl.EntityOperations[K], undefined>,\n\t) => Acl.EntityOperations[K]\n}\n\nexport const updateAclFieldPermissions =\n\t(updater: EntityAclFieldPermissionsUpdater): AclEntityPermissionsUpdater =>\n\t\t({ entityPermissions, entityName }) => {\n\t\t\tconst operations: Writable<Acl.EntityOperations> = {}\n\t\t\tconst handlers: EntityOperationHandler = {\n\t\t\t\tcreate: value => updater(value, entityName, Acl.Operation.create),\n\t\t\t\tupdate: value => updater(value, entityName, Acl.Operation.update),\n\t\t\t\tread: value => updater(value, entityName, Acl.Operation.read),\n\t\t\t\tdelete: value => value,\n\t\t\t\tcustomPrimary: value => value,\n\t\t\t}\n\t\t\tconst types: (keyof Acl.EntityOperations)[] = ['create', 'update', 'read', 'delete', 'customPrimary']\n\t\t\tfor (const key of types) {\n\t\t\t\tif (key in entityPermissions.operations) {\n\t\t\t\t\toperations[key] = handlers[key](entityPermissions.operations[key] as any) as any\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...entityPermissions,\n\t\t\t\toperations,\n\t\t\t}\n\t\t}\n\nexport const updateAclEveryPredicate =\n\t(updater: EntityAclEveryPredicatesUpdater): AclEntityPermissionsUpdater =>\n\t\targs => {\n\t\t\treturn {\n\t\t\t\t...args.entityPermissions,\n\t\t\t\tpredicates: Object.fromEntries(\n\t\t\t\t\tObject.entries(args.entityPermissions.predicates).map(([name, predicate]) => [\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tupdater({\n\t\t\t\t\t\t\t...args,\n\t\t\t\t\t\t\tpredicate,\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\nexport const updateModel =\n\t(...modelUpdate: (ModelUpdater | undefined)[]): SchemaUpdater =>\n\t\targs => ({\n\t\t\t...args.schema,\n\t\t\tmodel: modelUpdate\n\t\t\t\t.filter((it): it is ModelUpdater => it !== undefined)\n\t\t\t\t.reduce((model, updater) => updater({ ...args, model }), args.schema.model),\n\t\t})\n\nexport const updateEntity =\n\t(name: string, entityUpdate: EntityUpdater): ModelUpdater =>\n\t\targs => {\n\t\t\tif (!args.model.entities[name]) {\n\t\t\t\tthrow new SchemaUpdateError(`Entity ${name} not found`)\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t...args.model,\n\t\t\t\tentities: {\n\t\t\t\t\t...args.model.entities,\n\t\t\t\t\t[name]: entityUpdate({ ...args, entity: args.model.entities[name] }),\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\nexport const updateEveryEntity =\n\t(entityUpdate: EntityUpdater): ModelUpdater =>\n\t\targs => ({\n\t\t\t...args.model,\n\t\t\tentities: Object.fromEntries(\n\t\t\t\tObject.entries(args.model.entities).map(([name, entity]) => [name, entityUpdate({ ...args, entity })]),\n\t\t\t),\n\t\t})\n\nexport const updateField =\n\t<In extends Model.AnyField = Model.AnyField, Out extends Model.AnyField = In>(name: string, fieldUpdater: FieldUpdater<In, Out>): EntityUpdater =>\n\t\targs => {\n\t\t\tconst { [name]: field, ...otherFields } = args.entity.fields\n\t\t\tif (!args.entity.fields[name]) {\n\t\t\t\tthrow new SchemaUpdateError(`Field ${args.entity.name}::${name} not found`)\n\t\t\t}\n\t\t\tconst updatedField = fieldUpdater({ ...args, field: args.entity.fields[name] as In })\n\n\t\t\treturn {\n\t\t\t\t...args.entity,\n\t\t\t\tfields: {\n\t\t\t\t\t...otherFields,\n\t\t\t\t\t...(updatedField ? { [name]: updatedField } : {}),\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\nexport const updateEveryField =\n\t(fieldUpdater: FieldUpdater<Model.AnyField, Model.AnyField>): EntityUpdater =>\n\t\targs => ({\n\t\t\t...args.entity,\n\t\t\tfields: Object.fromEntries(\n\t\t\t\tObject.entries(args.entity.fields)\n\t\t\t\t\t.map(([name, field]) => {\n\t\t\t\t\t\tconst updatedField = fieldUpdater({ ...args, field })\n\t\t\t\t\t\tif (!updatedField) {\n\t\t\t\t\t\t\treturn undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn [name, updatedField]\n\t\t\t\t\t})\n\t\t\t\t\t.filter(isDefined),\n\t\t\t),\n\t\t})\n\nexport const addField =\n\t(field: Model.AnyField): EntityUpdater =>\n\t\targs => {\n\t\t\treturn {\n\t\t\t\t...args.entity,\n\t\t\t\tfields: {\n\t\t\t\t\t...args.entity.fields,\n\t\t\t\t\t[field.name]: field,\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\nexport const removeField = (entityName: string, fieldName: string, version: number): SchemaUpdater => {\n\treturn ({ schema }) => {\n\t\tconst entity = schema.model.entities[entityName]\n\t\tconst field = entity.fields[fieldName]\n\t\treturn updateSchema(\n\t\t\tversion >= VERSION_ACL_PATCH\n\t\t\t\t? updateAcl(\n\t\t\t\t\tupdateAclEveryRole(\n\t\t\t\t\t\tupdateAclEveryEntity(\n\t\t\t\t\t\t\tupdateAclFieldPermissions((permissions, entityName) => {\n\t\t\t\t\t\t\t\tif (entityName !== entity.name) {\n\t\t\t\t\t\t\t\t\treturn permissions\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tconst { [fieldName]: field, ...other } = permissions\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t...other,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tupdateAclEveryPredicate(({ predicate, entityName }) => {\n\t\t\t\t\t\t\t\tconst processor = new PredicateDefinitionProcessor(schema.model)\n\t\t\t\t\t\t\t\treturn processor.process(schema.model.entities[entityName], predicate, {\n\t\t\t\t\t\t\t\t\thandleColumn: ctx =>\n\t\t\t\t\t\t\t\t\t\tctx.entity.name === entity.name && ctx.column.name === field.name ? undefined : ctx.value,\n\t\t\t\t\t\t\t\t\thandleRelation: ctx =>\n\t\t\t\t\t\t\t\t\t\tctx.entity.name === entity.name && ctx.relation.name === field.name ? undefined : ctx.value,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t),\n\t\t\t\t\t),\n\t\t\t\t )\n\t\t\t\t: undefined,\n\t\t\tisRelation(field) &&\n\t\t\t\tisOwningRelation(field) &&\n\t\t\t\tfield.inversedBy &&\n\t\t\t\tversion >= VERSION_REMOVE_RELATION_INVERSE_SIDE\n\t\t\t\t? removeField(field.target, field.inversedBy, version)\n\t\t\t\t: undefined,\n\t\t\tupdateModel(\n\t\t\t\tupdateEntity(entity.name, ({ entity }) => {\n\t\t\t\t\tconst { [field.name]: removed, ...fields } = entity.fields\n\t\t\t\t\tconst indexes = entity.indexes.filter(index => !index.fields.includes(field.name))\n\t\t\t\t\tconst unique = entity.unique.filter(index => !index.fields.includes(field.name))\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...entity,\n\t\t\t\t\t\tfields,\n\t\t\t\t\t\tindexes,\n\t\t\t\t\t\tunique,\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tisRelation(field) && isInverseRelation(field)\n\t\t\t\t\t? updateEntity(\n\t\t\t\t\t\tfield.target,\n\t\t\t\t\t\tupdateField<Model.AnyOwningRelation>(field.ownedBy, ({ field: { inversedBy, ...field } }) => field),\n\t\t\t\t\t )\n\t\t\t\t\t: undefined,\n\t\t\t),\n\t\t)({ schema })\n\t}\n}\n"],"names":["isDefined","schema","updater","Acl","SchemaUpdateError","VERSION_ACL_PATCH","entityName","field","PredicateDefinitionProcessor","isRelation","isOwningRelation","VERSION_REMOVE_RELATION_INVERSE_SIDE","entity","isInverseRelation"],"mappings":"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"}
1
+ {"version":3,"file":"schemaUpdateUtils.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/utils/schemaUpdateUtils.ts"],"sourcesContent":["import { Acl, Model, Schema, Writable } from '@contember/schema'\nimport { SchemaUpdateError } from '../exceptions'\nimport { isDefined } from '../../utils/isDefined'\nimport { isInverseRelation, isOwningRelation, isRelation, PredicateDefinitionProcessor } from '@contember/schema-utils'\nimport { VERSION_ACL_PATCH, VERSION_REMOVE_RELATION_INVERSE_SIDE } from '../ModificationVersions'\n\n\nexport type SchemaUpdater = (args: { schema: Schema }) => Schema\nexport type ModelUpdater = (args: { schema: Schema; model: Model.Schema }) => Model.Schema\nexport type EntityUpdater = (args: { schema: Schema; model: Model.Schema; entity: Model.Entity }) => Model.Entity\nexport type FieldUpdater<In extends Model.AnyField, Out extends Model.AnyField> = (args: {\n\tschema: Schema\n\tmodel: Model.Schema\n\tentity: Model.Entity\n\tfield: In\n}) => Out | undefined\nexport type AclUpdater = (args: { schema: Schema; acl: Acl.Schema }) => Acl.Schema\nexport type AclRoleUpdater = (args: {\n\tschema: Schema\n\tacl: Acl.Schema\n\trole: Acl.RolePermissions\n}) => Acl.RolePermissions\nexport type AclPermissionsUpdater = (args: {\n\tschema: Schema\n\tacl: Acl.Schema\n\trole: Acl.RolePermissions\n\tentities: Acl.Permissions\n}) => Acl.Permissions\n\nexport type AclEntityPermissionsUpdater = (args: {\n\tschema: Schema\n\tacl: Acl.Schema\n\trole: Acl.RolePermissions\n\tentities: Acl.Permissions\n\tentityName: string\n\tentityPermissions: Acl.EntityPermissions\n}) => Acl.EntityPermissions\n\nexport type EntityAclEveryPredicatesUpdater = (args: {\n\tschema: Schema\n\tacl: Acl.Schema\n\trole: Acl.RolePermissions\n\tentities: Acl.Permissions\n\tentityName: string\n\tentityPermissions: Acl.EntityPermissions\n\tpredicate: Acl.PredicateDefinition\n}) => Acl.PredicateDefinition\n\nexport const updateSchema =\n\t(...schemaUpdater: (SchemaUpdater | undefined)[]): SchemaUpdater =>\n\t\targs =>\n\t\t\tschemaUpdater.filter(isDefined).reduce((schema, updater) => updater({ ...args, schema }), args.schema)\n\nexport const updateAcl =\n\t(updater: AclUpdater): SchemaUpdater =>\n\t\targs => ({\n\t\t\t...args.schema,\n\t\t\tacl: updater({ schema: args.schema, acl: args.schema.acl }),\n\t\t})\n\nexport const updateAclEveryRole =\n\t(...updater: AclRoleUpdater[]): AclUpdater =>\n\t\targs => ({\n\t\t\t...args.acl,\n\t\t\troles: Object.fromEntries(\n\t\t\t\tupdater.reduce(\n\t\t\t\t\t(acc, updater) => acc.map(([name, role]) => [name, updater({ ...args, role })]),\n\t\t\t\t\tObject.entries(args.acl.roles),\n\t\t\t\t),\n\t\t\t),\n\t\t})\n\nexport const updateAclEntities =\n\t(updater: AclPermissionsUpdater): AclRoleUpdater =>\n\t\targs => ({\n\t\t\t...args.role,\n\t\t\tentities: updater({ ...args, entities: args.role.entities }),\n\t\t})\n\nexport const updateAclEveryEntity =\n\t(...updater: AclEntityPermissionsUpdater[]): AclRoleUpdater =>\n\t\targs => ({\n\t\t\t...args.role,\n\t\t\tentities: Object.fromEntries(\n\t\t\t\tupdater.reduce(\n\t\t\t\t\t(acc, updater) =>\n\t\t\t\t\t\tacc.map(([entity, entityPermissions]) => [\n\t\t\t\t\t\t\tentity,\n\t\t\t\t\t\t\tupdater({\n\t\t\t\t\t\t\t\t...args,\n\t\t\t\t\t\t\t\tentities: args.role.entities,\n\t\t\t\t\t\t\t\tentityName: entity,\n\t\t\t\t\t\t\t\tentityPermissions,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t]),\n\t\t\t\t\tObject.entries(args.role.entities),\n\t\t\t\t),\n\t\t\t),\n\t\t})\n\ntype EntityAclFieldPermissionsUpdater = (\n\tfieldPermissions: Acl.FieldPermissions,\n\tentityName: string,\n\toperation: Acl.Operation,\n) => Acl.FieldPermissions\ntype EntityOperationHandler = {\n\t[K in keyof Required<Acl.EntityOperations>]: (\n\t\tvalue: Exclude<Acl.EntityOperations[K], undefined>,\n\t) => Acl.EntityOperations[K]\n}\n\nexport const updateAclFieldPermissions =\n\t(updater: EntityAclFieldPermissionsUpdater): AclEntityPermissionsUpdater =>\n\t\t({ entityPermissions, entityName }) => {\n\t\t\tconst operations: Writable<Acl.EntityOperations> = {}\n\t\t\tconst handlers: EntityOperationHandler = {\n\t\t\t\tcreate: value => updater(value, entityName, Acl.Operation.create),\n\t\t\t\tupdate: value => updater(value, entityName, Acl.Operation.update),\n\t\t\t\tread: value => updater(value, entityName, Acl.Operation.read),\n\t\t\t\tdelete: value => value,\n\t\t\t\tcustomPrimary: value => value,\n\t\t\t}\n\t\t\tconst types: (keyof Acl.EntityOperations)[] = ['create', 'update', 'read', 'delete', 'customPrimary']\n\t\t\tfor (const key of types) {\n\t\t\t\tif (key in entityPermissions.operations) {\n\t\t\t\t\toperations[key] = handlers[key](entityPermissions.operations[key] as any) as any\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...entityPermissions,\n\t\t\t\toperations,\n\t\t\t}\n\t\t}\n\nexport const updateAclEveryPredicate =\n\t(updater: EntityAclEveryPredicatesUpdater): AclEntityPermissionsUpdater =>\n\t\targs => {\n\t\t\treturn {\n\t\t\t\t...args.entityPermissions,\n\t\t\t\tpredicates: Object.fromEntries(\n\t\t\t\t\tObject.entries(args.entityPermissions.predicates).map(([name, predicate]) => [\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tupdater({\n\t\t\t\t\t\t\t...args,\n\t\t\t\t\t\t\tpredicate,\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\nexport const updateModel =\n\t(...modelUpdate: (ModelUpdater | undefined)[]): SchemaUpdater =>\n\t\targs => ({\n\t\t\t...args.schema,\n\t\t\tmodel: modelUpdate\n\t\t\t\t.filter((it): it is ModelUpdater => it !== undefined)\n\t\t\t\t.reduce((model, updater) => updater({ ...args, model }), args.schema.model),\n\t\t})\n\nexport const updateEntity =\n\t(name: string, entityUpdate: EntityUpdater): ModelUpdater =>\n\t\targs => {\n\t\t\tif (!args.model.entities[name]) {\n\t\t\t\tthrow new SchemaUpdateError(`Entity ${name} not found`)\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t...args.model,\n\t\t\t\tentities: {\n\t\t\t\t\t...args.model.entities,\n\t\t\t\t\t[name]: entityUpdate({ ...args, entity: args.model.entities[name] }),\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\nexport const updateEveryEntity =\n\t(entityUpdate: EntityUpdater): ModelUpdater =>\n\t\targs => ({\n\t\t\t...args.model,\n\t\t\tentities: Object.fromEntries(\n\t\t\t\tObject.entries(args.model.entities).map(([name, entity]) => [name, entityUpdate({ ...args, entity })]),\n\t\t\t),\n\t\t})\n\nexport const updateField =\n\t<In extends Model.AnyField = Model.AnyField, Out extends Model.AnyField = In>(name: string, fieldUpdater: FieldUpdater<In, Out>): EntityUpdater =>\n\t\targs => {\n\t\t\tconst { [name]: field, ...otherFields } = args.entity.fields\n\t\t\tif (!args.entity.fields[name]) {\n\t\t\t\tthrow new SchemaUpdateError(`Field ${args.entity.name}::${name} not found`)\n\t\t\t}\n\t\t\tconst updatedField = fieldUpdater({ ...args, field: args.entity.fields[name] as In })\n\n\t\t\treturn {\n\t\t\t\t...args.entity,\n\t\t\t\tfields: {\n\t\t\t\t\t...otherFields,\n\t\t\t\t\t...(updatedField ? { [name]: updatedField } : {}),\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\nexport const updateEveryField =\n\t(fieldUpdater: FieldUpdater<Model.AnyField, Model.AnyField>): EntityUpdater =>\n\t\targs => ({\n\t\t\t...args.entity,\n\t\t\tfields: Object.fromEntries(\n\t\t\t\tObject.entries(args.entity.fields)\n\t\t\t\t\t.map(([name, field]) => {\n\t\t\t\t\t\tconst updatedField = fieldUpdater({ ...args, field })\n\t\t\t\t\t\tif (!updatedField) {\n\t\t\t\t\t\t\treturn undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn [name, updatedField]\n\t\t\t\t\t})\n\t\t\t\t\t.filter(isDefined),\n\t\t\t),\n\t\t})\n\nexport const addField =\n\t(field: Model.AnyField): EntityUpdater =>\n\t\targs => {\n\t\t\treturn {\n\t\t\t\t...args.entity,\n\t\t\t\tfields: {\n\t\t\t\t\t...args.entity.fields,\n\t\t\t\t\t[field.name]: field,\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\nexport const removeField = (entityName: string, fieldName: string, version: number): SchemaUpdater => {\n\treturn ({ schema }) => {\n\t\tconst entity = schema.model.entities[entityName]\n\t\tconst field = entity.fields[fieldName]\n\t\treturn updateSchema(\n\t\t\tversion >= VERSION_ACL_PATCH\n\t\t\t\t? updateAcl(\n\t\t\t\t\tupdateAclEveryRole(\n\t\t\t\t\t\tupdateAclEveryEntity(\n\t\t\t\t\t\t\tupdateAclFieldPermissions((permissions, entityName) => {\n\t\t\t\t\t\t\t\tif (entityName !== entity.name) {\n\t\t\t\t\t\t\t\t\treturn permissions\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tconst { [fieldName]: field, ...other } = permissions\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t...other,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tupdateAclEveryPredicate(({ predicate, entityName }) => {\n\t\t\t\t\t\t\t\tconst processor = new PredicateDefinitionProcessor(schema.model)\n\t\t\t\t\t\t\t\treturn processor.process(schema.model.entities[entityName], predicate, {\n\t\t\t\t\t\t\t\t\thandleColumn: ctx =>\n\t\t\t\t\t\t\t\t\t\tctx.entity.name === entity.name && ctx.column.name === field.name ? undefined : ctx.value,\n\t\t\t\t\t\t\t\t\thandleRelation: ctx =>\n\t\t\t\t\t\t\t\t\t\tctx.entity.name === entity.name && ctx.relation.name === field.name ? undefined : ctx.value,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t),\n\t\t\t\t\t),\n\t\t\t\t )\n\t\t\t\t: undefined,\n\t\t\tisRelation(field) &&\n\t\t\t\tisOwningRelation(field) &&\n\t\t\t\tfield.inversedBy &&\n\t\t\t\tversion >= VERSION_REMOVE_RELATION_INVERSE_SIDE\n\t\t\t\t? removeField(field.target, field.inversedBy, version)\n\t\t\t\t: undefined,\n\t\t\tupdateModel(\n\t\t\t\tupdateEntity(entity.name, ({ entity }) => {\n\t\t\t\t\tconst { [field.name]: removed, ...fields } = entity.fields\n\t\t\t\t\tconst indexes = entity.indexes.filter(index => !index.fields.includes(field.name))\n\t\t\t\t\tconst unique = entity.unique.filter(index => !index.fields.includes(field.name))\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...entity,\n\t\t\t\t\t\tfields,\n\t\t\t\t\t\tindexes,\n\t\t\t\t\t\tunique,\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tisRelation(field) && isInverseRelation(field)\n\t\t\t\t\t? updateEntity(\n\t\t\t\t\t\tfield.target,\n\t\t\t\t\t\tupdateField<Model.AnyOwningRelation>(field.ownedBy, ({ field: { inversedBy, ...field } }) => field),\n\t\t\t\t\t )\n\t\t\t\t\t: undefined,\n\t\t\t),\n\t\t)({ schema })\n\t}\n}\n"],"names":["isDefined","schema","updater","Acl","SchemaUpdateError","VERSION_ACL_PATCH","entityName","field","PredicateDefinitionProcessor","isRelation","isOwningRelation","VERSION_REMOVE_RELATION_INVERSE_SIDE","entity","isInverseRelation"],"mappings":"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"}