@contember/schema-definition 2.0.0-alpha.9 → 2.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (328) hide show
  1. package/dist/development/index.cjs.map +1 -1
  2. package/dist/development/index.js.map +1 -1
  3. package/dist/development/src/acl/builder/EntityPermissionsBuilder.cjs.map +1 -1
  4. package/dist/development/src/acl/builder/EntityPermissionsBuilder.js.map +1 -1
  5. package/dist/development/src/acl/builder/EntitySelector.cjs.map +1 -1
  6. package/dist/development/src/acl/builder/EntitySelector.js.map +1 -1
  7. package/dist/development/src/acl/builder/FieldPermissionsBuilder.cjs.map +1 -1
  8. package/dist/development/src/acl/builder/FieldPermissionsBuilder.js.map +1 -1
  9. package/dist/development/src/acl/builder/FieldSelector.cjs.map +1 -1
  10. package/dist/development/src/acl/builder/FieldSelector.js.map +1 -1
  11. package/dist/development/src/acl/builder/PermissionOverrider.cjs.map +1 -1
  12. package/dist/development/src/acl/builder/PermissionOverrider.js.map +1 -1
  13. package/dist/development/src/acl/builder/PermissionsBuilder.cjs.map +1 -1
  14. package/dist/development/src/acl/builder/PermissionsBuilder.js.map +1 -1
  15. package/dist/development/src/acl/builder/PredicateReference.cjs.map +1 -1
  16. package/dist/development/src/acl/builder/PredicateReference.js.map +1 -1
  17. package/dist/development/src/acl/definition/customPrimary.cjs.map +1 -1
  18. package/dist/development/src/acl/definition/customPrimary.js.map +1 -1
  19. package/dist/development/src/acl/definition/index.cjs.map +1 -1
  20. package/dist/development/src/acl/definition/internal/AclFactory.cjs.map +1 -1
  21. package/dist/development/src/acl/definition/internal/AclFactory.js.map +1 -1
  22. package/dist/development/src/acl/definition/internal/EntityPredicateResolver.cjs +2 -2
  23. package/dist/development/src/acl/definition/internal/EntityPredicateResolver.cjs.map +1 -1
  24. package/dist/development/src/acl/definition/internal/EntityPredicateResolver.js +2 -2
  25. package/dist/development/src/acl/definition/internal/EntityPredicateResolver.js.map +1 -1
  26. package/dist/development/src/acl/definition/internal/stores.cjs.map +1 -1
  27. package/dist/development/src/acl/definition/internal/stores.js.map +1 -1
  28. package/dist/development/src/acl/definition/permissions.cjs.map +1 -1
  29. package/dist/development/src/acl/definition/permissions.js.map +1 -1
  30. package/dist/development/src/acl/definition/references.cjs.map +1 -1
  31. package/dist/development/src/acl/definition/references.js.map +1 -1
  32. package/dist/development/src/acl/definition/roles.cjs.map +1 -1
  33. package/dist/development/src/acl/definition/roles.js.map +1 -1
  34. package/dist/development/src/acl/definition/variables.cjs.map +1 -1
  35. package/dist/development/src/acl/definition/variables.js.map +1 -1
  36. package/dist/development/src/actions/definition/index.cjs.map +1 -1
  37. package/dist/development/src/actions/definition/index.js.map +1 -1
  38. package/dist/development/src/actions/definition/internal/ActionsFactory.cjs.map +1 -1
  39. package/dist/development/src/actions/definition/internal/ActionsFactory.js.map +1 -1
  40. package/dist/development/src/actions/definition/targets.cjs.map +1 -1
  41. package/dist/development/src/actions/definition/targets.js.map +1 -1
  42. package/dist/development/src/actions/definition/triggers.cjs.map +1 -1
  43. package/dist/development/src/actions/definition/triggers.js.map +1 -1
  44. package/dist/development/src/createSchema.cjs.map +1 -1
  45. package/dist/development/src/createSchema.js.map +1 -1
  46. package/dist/development/src/model/builder/ColumnBuilder.cjs.map +1 -1
  47. package/dist/development/src/model/builder/ColumnBuilder.js.map +1 -1
  48. package/dist/development/src/model/builder/EntityBuilder.cjs.map +1 -1
  49. package/dist/development/src/model/builder/EntityBuilder.js.map +1 -1
  50. package/dist/development/src/model/builder/FieldBuilder.cjs.map +1 -1
  51. package/dist/development/src/model/builder/FieldBuilder.js.map +1 -1
  52. package/dist/development/src/model/builder/ManyHasManyBuilder.cjs.map +1 -1
  53. package/dist/development/src/model/builder/ManyHasManyBuilder.js.map +1 -1
  54. package/dist/development/src/model/builder/ManyHasOneBuilder.cjs.map +1 -1
  55. package/dist/development/src/model/builder/ManyHasOneBuilder.js.map +1 -1
  56. package/dist/development/src/model/builder/OneHasManyBuilder.cjs.map +1 -1
  57. package/dist/development/src/model/builder/OneHasManyBuilder.js.map +1 -1
  58. package/dist/development/src/model/builder/OneHasOneBuilder.cjs.map +1 -1
  59. package/dist/development/src/model/builder/OneHasOneBuilder.js.map +1 -1
  60. package/dist/development/src/model/builder/SchemaBuilder.cjs.map +1 -1
  61. package/dist/development/src/model/builder/SchemaBuilder.js.map +1 -1
  62. package/dist/development/src/model/builder/SchemaBuilderInternal.cjs.map +1 -1
  63. package/dist/development/src/model/builder/SchemaBuilderInternal.js.map +1 -1
  64. package/dist/development/src/model/builder/internal/ColumnProcessor.cjs.map +1 -1
  65. package/dist/development/src/model/builder/internal/ColumnProcessor.js.map +1 -1
  66. package/dist/development/src/model/builder/internal/ManyHasManyProcessor.cjs.map +1 -1
  67. package/dist/development/src/model/builder/internal/ManyHasManyProcessor.js.map +1 -1
  68. package/dist/development/src/model/builder/internal/ManyHasOneProcessor.cjs.map +1 -1
  69. package/dist/development/src/model/builder/internal/ManyHasOneProcessor.js.map +1 -1
  70. package/dist/development/src/model/builder/internal/OneHasManyProcessor.cjs.map +1 -1
  71. package/dist/development/src/model/builder/internal/OneHasManyProcessor.js.map +1 -1
  72. package/dist/development/src/model/builder/internal/OneHasOneProcessor.cjs.map +1 -1
  73. package/dist/development/src/model/builder/internal/OneHasOneProcessor.js.map +1 -1
  74. package/dist/development/src/model/definition/EnumDefinition.cjs.map +1 -1
  75. package/dist/development/src/model/definition/EnumDefinition.js.map +1 -1
  76. package/dist/development/src/model/definition/IndexDefinition.cjs.map +1 -1
  77. package/dist/development/src/model/definition/IndexDefinition.js.map +1 -1
  78. package/dist/development/src/model/definition/OrderByDefinition.cjs.map +1 -1
  79. package/dist/development/src/model/definition/OrderByDefinition.js.map +1 -1
  80. package/dist/development/src/model/definition/UniqueDefinition.cjs.map +1 -1
  81. package/dist/development/src/model/definition/UniqueDefinition.js.map +1 -1
  82. package/dist/development/src/model/definition/ViewDefinition.cjs.map +1 -1
  83. package/dist/development/src/model/definition/ViewDefinition.js.map +1 -1
  84. package/dist/development/src/model/definition/extensions.cjs.map +1 -1
  85. package/dist/development/src/model/definition/extensions.js.map +1 -1
  86. package/dist/development/src/model/definition/fieldDefinitions/ColumnDefinition.cjs +9 -2
  87. package/dist/development/src/model/definition/fieldDefinitions/ColumnDefinition.cjs.map +1 -1
  88. package/dist/development/src/model/definition/fieldDefinitions/ColumnDefinition.js +9 -2
  89. package/dist/development/src/model/definition/fieldDefinitions/ColumnDefinition.js.map +1 -1
  90. package/dist/development/src/model/definition/fieldDefinitions/FieldDefinition.cjs +0 -3
  91. package/dist/development/src/model/definition/fieldDefinitions/FieldDefinition.cjs.map +1 -1
  92. package/dist/development/src/model/definition/fieldDefinitions/FieldDefinition.js +0 -3
  93. package/dist/development/src/model/definition/fieldDefinitions/FieldDefinition.js.map +1 -1
  94. package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyDefinition.cjs +6 -3
  95. package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyDefinition.cjs.map +1 -1
  96. package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyDefinition.js +6 -3
  97. package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyDefinition.js.map +1 -1
  98. package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.cjs +6 -7
  99. package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.cjs.map +1 -1
  100. package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.js +7 -8
  101. package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.js.map +1 -1
  102. package/dist/development/src/model/definition/fieldDefinitions/ManyHasOneDefinition.cjs +6 -3
  103. package/dist/development/src/model/definition/fieldDefinitions/ManyHasOneDefinition.cjs.map +1 -1
  104. package/dist/development/src/model/definition/fieldDefinitions/ManyHasOneDefinition.js +6 -3
  105. package/dist/development/src/model/definition/fieldDefinitions/ManyHasOneDefinition.js.map +1 -1
  106. package/dist/development/src/model/definition/fieldDefinitions/OneHasManyDefinition.cjs +6 -3
  107. package/dist/development/src/model/definition/fieldDefinitions/OneHasManyDefinition.cjs.map +1 -1
  108. package/dist/development/src/model/definition/fieldDefinitions/OneHasManyDefinition.js +6 -3
  109. package/dist/development/src/model/definition/fieldDefinitions/OneHasManyDefinition.js.map +1 -1
  110. package/dist/development/src/model/definition/fieldDefinitions/OneHasOneDefinition.cjs +6 -3
  111. package/dist/development/src/model/definition/fieldDefinitions/OneHasOneDefinition.cjs.map +1 -1
  112. package/dist/development/src/model/definition/fieldDefinitions/OneHasOneDefinition.js +6 -3
  113. package/dist/development/src/model/definition/fieldDefinitions/OneHasOneDefinition.js.map +1 -1
  114. package/dist/development/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.cjs +6 -7
  115. package/dist/development/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.cjs.map +1 -1
  116. package/dist/development/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.js +7 -8
  117. package/dist/development/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.js.map +1 -1
  118. package/dist/development/src/model/definition/index.cjs +6 -8
  119. package/dist/development/src/model/definition/index.cjs.map +1 -1
  120. package/dist/development/src/model/definition/index.js +12 -14
  121. package/dist/development/src/model/definition/index.js.map +1 -1
  122. package/dist/development/src/model/definition/internal/EntityRegistry.cjs.map +1 -1
  123. package/dist/development/src/model/definition/internal/EntityRegistry.js.map +1 -1
  124. package/dist/development/src/model/definition/internal/EnumRegistry.cjs.map +1 -1
  125. package/dist/development/src/model/definition/internal/EnumRegistry.js.map +1 -1
  126. package/dist/development/src/model/definition/internal/SchemaBuilder.cjs +5 -0
  127. package/dist/development/src/model/definition/internal/SchemaBuilder.cjs.map +1 -1
  128. package/dist/development/src/model/definition/internal/SchemaBuilder.js +5 -0
  129. package/dist/development/src/model/definition/internal/SchemaBuilder.js.map +1 -1
  130. package/dist/development/src/presets.cjs +13 -1
  131. package/dist/development/src/presets.cjs.map +1 -1
  132. package/dist/development/src/presets.js +13 -1
  133. package/dist/development/src/presets.js.map +1 -1
  134. package/dist/development/src/strict.cjs.map +1 -1
  135. package/dist/development/src/strict.js.map +1 -1
  136. package/dist/development/src/utils/MetadataStore.cjs.map +1 -1
  137. package/dist/development/src/utils/MetadataStore.js.map +1 -1
  138. package/dist/development/src/validation/index.cjs.map +1 -1
  139. package/dist/development/src/validation/index.js.map +1 -1
  140. package/dist/production/index.cjs.map +1 -1
  141. package/dist/production/index.js.map +1 -1
  142. package/dist/production/src/acl/builder/EntityPermissionsBuilder.cjs.map +1 -1
  143. package/dist/production/src/acl/builder/EntityPermissionsBuilder.js.map +1 -1
  144. package/dist/production/src/acl/builder/EntitySelector.cjs.map +1 -1
  145. package/dist/production/src/acl/builder/EntitySelector.js.map +1 -1
  146. package/dist/production/src/acl/builder/FieldPermissionsBuilder.cjs.map +1 -1
  147. package/dist/production/src/acl/builder/FieldPermissionsBuilder.js.map +1 -1
  148. package/dist/production/src/acl/builder/FieldSelector.cjs.map +1 -1
  149. package/dist/production/src/acl/builder/FieldSelector.js.map +1 -1
  150. package/dist/production/src/acl/builder/PermissionOverrider.cjs.map +1 -1
  151. package/dist/production/src/acl/builder/PermissionOverrider.js.map +1 -1
  152. package/dist/production/src/acl/builder/PermissionsBuilder.cjs.map +1 -1
  153. package/dist/production/src/acl/builder/PermissionsBuilder.js.map +1 -1
  154. package/dist/production/src/acl/builder/PredicateReference.cjs.map +1 -1
  155. package/dist/production/src/acl/builder/PredicateReference.js.map +1 -1
  156. package/dist/production/src/acl/definition/customPrimary.cjs.map +1 -1
  157. package/dist/production/src/acl/definition/customPrimary.js.map +1 -1
  158. package/dist/production/src/acl/definition/index.cjs.map +1 -1
  159. package/dist/production/src/acl/definition/internal/AclFactory.cjs.map +1 -1
  160. package/dist/production/src/acl/definition/internal/AclFactory.js.map +1 -1
  161. package/dist/production/src/acl/definition/internal/EntityPredicateResolver.cjs +2 -2
  162. package/dist/production/src/acl/definition/internal/EntityPredicateResolver.cjs.map +1 -1
  163. package/dist/production/src/acl/definition/internal/EntityPredicateResolver.js +2 -2
  164. package/dist/production/src/acl/definition/internal/EntityPredicateResolver.js.map +1 -1
  165. package/dist/production/src/acl/definition/internal/stores.cjs.map +1 -1
  166. package/dist/production/src/acl/definition/internal/stores.js.map +1 -1
  167. package/dist/production/src/acl/definition/permissions.cjs.map +1 -1
  168. package/dist/production/src/acl/definition/permissions.js.map +1 -1
  169. package/dist/production/src/acl/definition/references.cjs.map +1 -1
  170. package/dist/production/src/acl/definition/references.js.map +1 -1
  171. package/dist/production/src/acl/definition/roles.cjs.map +1 -1
  172. package/dist/production/src/acl/definition/roles.js.map +1 -1
  173. package/dist/production/src/acl/definition/variables.cjs.map +1 -1
  174. package/dist/production/src/acl/definition/variables.js.map +1 -1
  175. package/dist/production/src/actions/definition/index.cjs.map +1 -1
  176. package/dist/production/src/actions/definition/index.js.map +1 -1
  177. package/dist/production/src/actions/definition/internal/ActionsFactory.cjs.map +1 -1
  178. package/dist/production/src/actions/definition/internal/ActionsFactory.js.map +1 -1
  179. package/dist/production/src/actions/definition/targets.cjs.map +1 -1
  180. package/dist/production/src/actions/definition/targets.js.map +1 -1
  181. package/dist/production/src/actions/definition/triggers.cjs.map +1 -1
  182. package/dist/production/src/actions/definition/triggers.js.map +1 -1
  183. package/dist/production/src/createSchema.cjs.map +1 -1
  184. package/dist/production/src/createSchema.js.map +1 -1
  185. package/dist/production/src/model/builder/ColumnBuilder.cjs.map +1 -1
  186. package/dist/production/src/model/builder/ColumnBuilder.js.map +1 -1
  187. package/dist/production/src/model/builder/EntityBuilder.cjs.map +1 -1
  188. package/dist/production/src/model/builder/EntityBuilder.js.map +1 -1
  189. package/dist/production/src/model/builder/FieldBuilder.cjs.map +1 -1
  190. package/dist/production/src/model/builder/FieldBuilder.js.map +1 -1
  191. package/dist/production/src/model/builder/ManyHasManyBuilder.cjs.map +1 -1
  192. package/dist/production/src/model/builder/ManyHasManyBuilder.js.map +1 -1
  193. package/dist/production/src/model/builder/ManyHasOneBuilder.cjs.map +1 -1
  194. package/dist/production/src/model/builder/ManyHasOneBuilder.js.map +1 -1
  195. package/dist/production/src/model/builder/OneHasManyBuilder.cjs.map +1 -1
  196. package/dist/production/src/model/builder/OneHasManyBuilder.js.map +1 -1
  197. package/dist/production/src/model/builder/OneHasOneBuilder.cjs.map +1 -1
  198. package/dist/production/src/model/builder/OneHasOneBuilder.js.map +1 -1
  199. package/dist/production/src/model/builder/SchemaBuilder.cjs.map +1 -1
  200. package/dist/production/src/model/builder/SchemaBuilder.js.map +1 -1
  201. package/dist/production/src/model/builder/SchemaBuilderInternal.cjs.map +1 -1
  202. package/dist/production/src/model/builder/SchemaBuilderInternal.js.map +1 -1
  203. package/dist/production/src/model/builder/internal/ColumnProcessor.cjs.map +1 -1
  204. package/dist/production/src/model/builder/internal/ColumnProcessor.js.map +1 -1
  205. package/dist/production/src/model/builder/internal/ManyHasManyProcessor.cjs.map +1 -1
  206. package/dist/production/src/model/builder/internal/ManyHasManyProcessor.js.map +1 -1
  207. package/dist/production/src/model/builder/internal/ManyHasOneProcessor.cjs.map +1 -1
  208. package/dist/production/src/model/builder/internal/ManyHasOneProcessor.js.map +1 -1
  209. package/dist/production/src/model/builder/internal/OneHasManyProcessor.cjs.map +1 -1
  210. package/dist/production/src/model/builder/internal/OneHasManyProcessor.js.map +1 -1
  211. package/dist/production/src/model/builder/internal/OneHasOneProcessor.cjs.map +1 -1
  212. package/dist/production/src/model/builder/internal/OneHasOneProcessor.js.map +1 -1
  213. package/dist/production/src/model/definition/EnumDefinition.cjs.map +1 -1
  214. package/dist/production/src/model/definition/EnumDefinition.js.map +1 -1
  215. package/dist/production/src/model/definition/IndexDefinition.cjs.map +1 -1
  216. package/dist/production/src/model/definition/IndexDefinition.js.map +1 -1
  217. package/dist/production/src/model/definition/OrderByDefinition.cjs.map +1 -1
  218. package/dist/production/src/model/definition/OrderByDefinition.js.map +1 -1
  219. package/dist/production/src/model/definition/UniqueDefinition.cjs.map +1 -1
  220. package/dist/production/src/model/definition/UniqueDefinition.js.map +1 -1
  221. package/dist/production/src/model/definition/ViewDefinition.cjs.map +1 -1
  222. package/dist/production/src/model/definition/ViewDefinition.js.map +1 -1
  223. package/dist/production/src/model/definition/extensions.cjs.map +1 -1
  224. package/dist/production/src/model/definition/extensions.js.map +1 -1
  225. package/dist/production/src/model/definition/fieldDefinitions/ColumnDefinition.cjs +9 -2
  226. package/dist/production/src/model/definition/fieldDefinitions/ColumnDefinition.cjs.map +1 -1
  227. package/dist/production/src/model/definition/fieldDefinitions/ColumnDefinition.js +9 -2
  228. package/dist/production/src/model/definition/fieldDefinitions/ColumnDefinition.js.map +1 -1
  229. package/dist/production/src/model/definition/fieldDefinitions/FieldDefinition.cjs +0 -3
  230. package/dist/production/src/model/definition/fieldDefinitions/FieldDefinition.cjs.map +1 -1
  231. package/dist/production/src/model/definition/fieldDefinitions/FieldDefinition.js +0 -3
  232. package/dist/production/src/model/definition/fieldDefinitions/FieldDefinition.js.map +1 -1
  233. package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyDefinition.cjs +6 -3
  234. package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyDefinition.cjs.map +1 -1
  235. package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyDefinition.js +6 -3
  236. package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyDefinition.js.map +1 -1
  237. package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.cjs +6 -7
  238. package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.cjs.map +1 -1
  239. package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.js +7 -8
  240. package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.js.map +1 -1
  241. package/dist/production/src/model/definition/fieldDefinitions/ManyHasOneDefinition.cjs +6 -3
  242. package/dist/production/src/model/definition/fieldDefinitions/ManyHasOneDefinition.cjs.map +1 -1
  243. package/dist/production/src/model/definition/fieldDefinitions/ManyHasOneDefinition.js +6 -3
  244. package/dist/production/src/model/definition/fieldDefinitions/ManyHasOneDefinition.js.map +1 -1
  245. package/dist/production/src/model/definition/fieldDefinitions/OneHasManyDefinition.cjs +6 -3
  246. package/dist/production/src/model/definition/fieldDefinitions/OneHasManyDefinition.cjs.map +1 -1
  247. package/dist/production/src/model/definition/fieldDefinitions/OneHasManyDefinition.js +6 -3
  248. package/dist/production/src/model/definition/fieldDefinitions/OneHasManyDefinition.js.map +1 -1
  249. package/dist/production/src/model/definition/fieldDefinitions/OneHasOneDefinition.cjs +6 -3
  250. package/dist/production/src/model/definition/fieldDefinitions/OneHasOneDefinition.cjs.map +1 -1
  251. package/dist/production/src/model/definition/fieldDefinitions/OneHasOneDefinition.js +6 -3
  252. package/dist/production/src/model/definition/fieldDefinitions/OneHasOneDefinition.js.map +1 -1
  253. package/dist/production/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.cjs +6 -7
  254. package/dist/production/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.cjs.map +1 -1
  255. package/dist/production/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.js +7 -8
  256. package/dist/production/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.js.map +1 -1
  257. package/dist/production/src/model/definition/index.cjs +6 -8
  258. package/dist/production/src/model/definition/index.cjs.map +1 -1
  259. package/dist/production/src/model/definition/index.js +12 -14
  260. package/dist/production/src/model/definition/index.js.map +1 -1
  261. package/dist/production/src/model/definition/internal/EntityRegistry.cjs.map +1 -1
  262. package/dist/production/src/model/definition/internal/EntityRegistry.js.map +1 -1
  263. package/dist/production/src/model/definition/internal/EnumRegistry.cjs.map +1 -1
  264. package/dist/production/src/model/definition/internal/EnumRegistry.js.map +1 -1
  265. package/dist/production/src/model/definition/internal/SchemaBuilder.cjs +5 -0
  266. package/dist/production/src/model/definition/internal/SchemaBuilder.cjs.map +1 -1
  267. package/dist/production/src/model/definition/internal/SchemaBuilder.js +5 -0
  268. package/dist/production/src/model/definition/internal/SchemaBuilder.js.map +1 -1
  269. package/dist/production/src/presets.cjs +13 -1
  270. package/dist/production/src/presets.cjs.map +1 -1
  271. package/dist/production/src/presets.js +13 -1
  272. package/dist/production/src/presets.js.map +1 -1
  273. package/dist/production/src/strict.cjs.map +1 -1
  274. package/dist/production/src/strict.js.map +1 -1
  275. package/dist/production/src/utils/MetadataStore.cjs.map +1 -1
  276. package/dist/production/src/utils/MetadataStore.js.map +1 -1
  277. package/dist/production/src/validation/index.cjs.map +1 -1
  278. package/dist/production/src/validation/index.js.map +1 -1
  279. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  280. package/dist/types/index.d.ts +10 -6
  281. package/dist/types/index.d.ts.map +1 -1
  282. package/dist/types/model/builder/EntityBuilder.d.ts +1 -1
  283. package/dist/types/model/builder/EntityBuilder.d.ts.map +1 -1
  284. package/dist/types/model/definition/fieldDefinitions/ColumnDefinition.d.ts +12 -10
  285. package/dist/types/model/definition/fieldDefinitions/ColumnDefinition.d.ts.map +1 -1
  286. package/dist/types/model/definition/fieldDefinitions/FieldDefinition.d.ts +0 -3
  287. package/dist/types/model/definition/fieldDefinitions/FieldDefinition.d.ts.map +1 -1
  288. package/dist/types/model/definition/fieldDefinitions/ManyHasManyDefinition.d.ts +6 -6
  289. package/dist/types/model/definition/fieldDefinitions/ManyHasManyDefinition.d.ts.map +1 -1
  290. package/dist/types/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.d.ts +4 -8
  291. package/dist/types/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.d.ts.map +1 -1
  292. package/dist/types/model/definition/fieldDefinitions/ManyHasOneDefinition.d.ts +10 -10
  293. package/dist/types/model/definition/fieldDefinitions/ManyHasOneDefinition.d.ts.map +1 -1
  294. package/dist/types/model/definition/fieldDefinitions/OneHasManyDefinition.d.ts +4 -4
  295. package/dist/types/model/definition/fieldDefinitions/OneHasManyDefinition.d.ts.map +1 -1
  296. package/dist/types/model/definition/fieldDefinitions/OneHasOneDefinition.d.ts +11 -11
  297. package/dist/types/model/definition/fieldDefinitions/OneHasOneDefinition.d.ts.map +1 -1
  298. package/dist/types/model/definition/fieldDefinitions/OneHasOneInverseDefinition.d.ts +4 -8
  299. package/dist/types/model/definition/fieldDefinitions/OneHasOneInverseDefinition.d.ts.map +1 -1
  300. package/dist/types/model/definition/index.d.ts +1 -2
  301. package/dist/types/model/definition/index.d.ts.map +1 -1
  302. package/dist/types/model/definition/internal/SchemaBuilder.d.ts.map +1 -1
  303. package/dist/types/model/definition/types.d.ts +2 -5
  304. package/dist/types/model/definition/types.d.ts.map +1 -1
  305. package/dist/types/presets.d.ts +1 -0
  306. package/dist/types/presets.d.ts.map +1 -1
  307. package/dist/types/tsconfig.tsbuildinfo +1 -1
  308. package/package.json +7 -6
  309. package/src/acl/definition/internal/EntityPredicateResolver.ts +2 -2
  310. package/src/index.ts +15 -0
  311. package/src/model/definition/fieldDefinitions/ColumnDefinition.ts +27 -19
  312. package/src/model/definition/fieldDefinitions/FieldDefinition.ts +1 -5
  313. package/src/model/definition/fieldDefinitions/ManyHasManyDefinition.ts +11 -7
  314. package/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.ts +8 -12
  315. package/src/model/definition/fieldDefinitions/ManyHasOneDefinition.ts +14 -12
  316. package/src/model/definition/fieldDefinitions/OneHasManyDefinition.ts +8 -5
  317. package/src/model/definition/fieldDefinitions/OneHasOneDefinition.ts +16 -12
  318. package/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.ts +8 -11
  319. package/src/model/definition/index.ts +1 -2
  320. package/src/model/definition/internal/SchemaBuilder.ts +6 -0
  321. package/src/model/definition/types.ts +2 -3
  322. package/src/presets.ts +12 -0
  323. package/tests/cases/unit/__snapshots__/readActions.test.ts.snap +33 -0
  324. package/tests/cases/unit/createSchema.test.ts +78 -80
  325. package/tests/cases/unit/extendEntity.test.ts +2 -2
  326. package/tests/cases/unit/orderBy.test.ts +10 -6
  327. package/tests/cases/unit/readAclDefinitions.test.ts +197 -208
  328. package/tests/cases/unit/readActions.test.ts +2 -32
@@ -1 +1 @@
1
- {"version":3,"file":"ManyHasOneDefinition.cjs","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/ManyHasOneDefinition.ts"],"sourcesContent":["import { EntityConstructor, Interface, RelationTarget } from '../types'\nimport { Model } from '@contember/schema'\nimport { CreateFieldContext, FieldDefinition } from './FieldDefinition'\n\nexport class ManyHasOneDefinitionImpl extends FieldDefinition<ManyHasOneDefinitionOptions> {\n\ttype = 'ManyHasOneDefinition' as const\n\n\tinversedBy(inversedBy: string): Interface<ManyHasOneDefinition> {\n\t\treturn this.withOption('inversedBy', inversedBy)\n\t}\n\n\tjoiningColumn(columnName: string): Interface<ManyHasOneDefinition> {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, columnName })\n\t}\n\n\tonDelete(onDelete: Model.OnDelete | `${Model.OnDelete}`): Interface<ManyHasOneDefinition> {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: onDelete as Model.OnDelete })\n\t}\n\n\tcascadeOnDelete(): Interface<ManyHasOneDefinition> {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.cascade })\n\t}\n\n\tsetNullOnDelete(): Interface<ManyHasOneDefinition> {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.setNull })\n\t}\n\n\trestrictOnDelete(): Interface<ManyHasOneDefinition> {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.restrict })\n\t}\n\n\tnotNull(): Interface<ManyHasOneDefinition> {\n\t\treturn this.withOption('nullable', false)\n\t}\n\n\tcreateField({ name, conventions, entityName, entityRegistry, strictDefinitionValidator }: CreateFieldContext): Model.AnyField {\n\t\tconst options = this.options\n\t\tconst joiningColumn = options.joiningColumn || {}\n\t\tstrictDefinitionValidator.validateInverseSide(entityName, name, options)\n\t\tstrictDefinitionValidator.validateOnCascade(entityName, name, joiningColumn)\n\n\t\treturn {\n\t\t\tname: name,\n\t\t\t...(typeof options.inversedBy === 'undefined' ? {} : { inversedBy: options.inversedBy }),\n\t\t\tnullable: options.nullable === undefined ? true : options.nullable,\n\t\t\ttype: Model.RelationType.ManyHasOne,\n\t\t\ttarget: entityRegistry.getName(options.target),\n\t\t\tjoiningColumn: {\n\t\t\t\tcolumnName: joiningColumn.columnName || conventions.getJoiningColumnName(name),\n\t\t\t\tonDelete: joiningColumn.onDelete || Model.OnDelete.restrict,\n\t\t\t},\n\t\t}\n\t}\n}\n\nexport type ManyHasOneDefinition = Interface<ManyHasOneDefinitionImpl>\n\nexport function manyHasOne(target: EntityConstructor, inversedBy?: string): ManyHasOneDefinition {\n\treturn new ManyHasOneDefinitionImpl({ target, inversedBy })\n}\n\nexport type ManyHasOneDefinitionOptions = {\n\ttarget: RelationTarget\n\tinversedBy?: string\n\tjoiningColumn?: Partial<Model.JoiningColumn>\n\tnullable?: boolean\n}\n"],"names":["FieldDefinition","Model"],"mappings":";;;;;;;AAIO,MAAM,iCAAiCA,gBAAAA,gBAA6C;AAAA,EAApF,cAAA;AAAA,UAAA,GAAA,SAAA;AACC,kBAAA,MAAA,QAAA,sBAAA;AAAA,EAAA;AAAA,EAEP,WAAW,YAAqD;AACxD,WAAA,KAAK,WAAW,cAAc,UAAU;AAAA,EAChD;AAAA,EAEA,cAAc,YAAqD;AAC3D,WAAA,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,WAAA,CAAY;AAAA,EACtF;AAAA,EAEA,SAAS,UAAiF;AAClF,WAAA,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,SAAA,CAAsC;AAAA,EAChH;AAAA,EAEA,kBAAmD;AAClD,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAUC,OAAA,MAAM,SAAS,QAAS,CAAA;AAAA,EAC5G;AAAA,EAEA,kBAAmD;AAClD,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAUA,OAAA,MAAM,SAAS,QAAS,CAAA;AAAA,EAC5G;AAAA,EAEA,mBAAoD;AACnD,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAUA,OAAA,MAAM,SAAS,SAAU,CAAA;AAAA,EAC7G;AAAA,EAEA,UAA2C;AACnC,WAAA,KAAK,WAAW,YAAY,KAAK;AAAA,EACzC;AAAA,EAEA,YAAY,EAAE,MAAM,aAAa,YAAY,gBAAgB,6BAAiE;AAC7H,UAAM,UAAU,KAAK;AACf,UAAA,gBAAgB,QAAQ,iBAAiB;AACrB,8BAAA,oBAAoB,YAAY,MAAM,OAAO;AAC7C,8BAAA,kBAAkB,YAAY,MAAM,aAAa;AAEpE,WAAA;AAAA,MACN;AAAA,MACA,GAAI,OAAO,QAAQ,eAAe,cAAc,CAAK,IAAA,EAAE,YAAY,QAAQ,WAAW;AAAA,MACtF,UAAU,QAAQ,aAAa,SAAY,OAAO,QAAQ;AAAA,MAC1D,MAAMA,OAAAA,MAAM,aAAa;AAAA,MACzB,QAAQ,eAAe,QAAQ,QAAQ,MAAM;AAAA,MAC7C,eAAe;AAAA,QACd,YAAY,cAAc,cAAc,YAAY,qBAAqB,IAAI;AAAA,QAC7E,UAAU,cAAc,YAAYA,OAAA,MAAM,SAAS;AAAA,MACpD;AAAA,IAAA;AAAA,EAEF;AACD;AAIgB,SAAA,WAAW,QAA2B,YAA2C;AAChG,SAAO,IAAI,yBAAyB,EAAE,QAAQ,WAAY,CAAA;AAC3D;;;"}
1
+ {"version":3,"file":"ManyHasOneDefinition.cjs","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/ManyHasOneDefinition.ts"],"sourcesContent":["import { EntityConstructor, RelationTarget } from '../types'\nimport { Model } from '@contember/schema'\nimport { CreateFieldContext, FieldDefinition } from './FieldDefinition'\n\nexport class ManyHasOneDefinition extends FieldDefinition<ManyHasOneDefinitionOptions> {\n\ttype = 'ManyHasOneDefinition' as const\n\n\tinversedBy(inversedBy: string): ManyHasOneDefinition {\n\t\treturn this.withOption('inversedBy', inversedBy)\n\t}\n\n\tjoiningColumn(columnName: string): ManyHasOneDefinition {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, columnName })\n\t}\n\n\tonDelete(onDelete: Model.OnDelete | `${Model.OnDelete}`): ManyHasOneDefinition {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: onDelete as Model.OnDelete })\n\t}\n\n\tcascadeOnDelete(): ManyHasOneDefinition {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.cascade })\n\t}\n\n\tsetNullOnDelete(): ManyHasOneDefinition {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.setNull })\n\t}\n\n\trestrictOnDelete(): ManyHasOneDefinition {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.restrict })\n\t}\n\n\tnotNull(): ManyHasOneDefinition {\n\t\treturn this.withOption('nullable', false)\n\t}\n\n\tcreateField({ name, conventions, entityName, entityRegistry, strictDefinitionValidator }: CreateFieldContext): Model.AnyField {\n\t\tconst options = this.options\n\t\tconst joiningColumn = options.joiningColumn || {}\n\t\tstrictDefinitionValidator.validateInverseSide(entityName, name, options)\n\t\tstrictDefinitionValidator.validateOnCascade(entityName, name, joiningColumn)\n\n\t\treturn {\n\t\t\tname: name,\n\t\t\t...(typeof options.inversedBy === 'undefined' ? {} : { inversedBy: options.inversedBy }),\n\t\t\tnullable: options.nullable === undefined ? true : options.nullable,\n\t\t\ttype: Model.RelationType.ManyHasOne,\n\t\t\ttarget: entityRegistry.getName(options.target),\n\t\t\tjoiningColumn: {\n\t\t\t\tcolumnName: joiningColumn.columnName || conventions.getJoiningColumnName(name),\n\t\t\t\tonDelete: joiningColumn.onDelete || Model.OnDelete.restrict,\n\t\t\t},\n\t\t}\n\t}\n\n\tprotected withOption<K extends keyof ManyHasOneDefinitionOptions>(key: K, value: ManyHasOneDefinitionOptions[K]): ManyHasOneDefinition {\n\t\treturn new ManyHasOneDefinition({ ...this.options, [key]: value })\n\t}\n}\n\nexport function manyHasOne(target: EntityConstructor, inversedBy?: string): ManyHasOneDefinition {\n\treturn new ManyHasOneDefinition({ target, inversedBy })\n}\n\nexport type ManyHasOneDefinitionOptions = {\n\ttarget: RelationTarget\n\tinversedBy?: string\n\tjoiningColumn?: Partial<Model.JoiningColumn>\n\tnullable?: boolean\n}\n"],"names":["FieldDefinition","Model"],"mappings":";;;;;;;AAIO,MAAM,6BAA6BA,gBAAAA,gBAA6C;AAAA,EAAhF,cAAA;AAAA,UAAA,GAAA,SAAA;AACC,kBAAA,MAAA,QAAA,sBAAA;AAAA,EAAA;AAAA,EAEP,WAAW,YAA0C;AAC7C,WAAA,KAAK,WAAW,cAAc,UAAU;AAAA,EAAA;AAAA,EAGhD,cAAc,YAA0C;AAChD,WAAA,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,YAAY;AAAA,EAAA;AAAA,EAGtF,SAAS,UAAsE;AACvE,WAAA,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAsC;AAAA,EAAA;AAAA,EAGhH,kBAAwC;AACvC,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAUC,OAAAA,MAAM,SAAS,QAAA,CAAS;AAAA,EAAA;AAAA,EAG5G,kBAAwC;AACvC,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAUA,OAAAA,MAAM,SAAS,QAAA,CAAS;AAAA,EAAA;AAAA,EAG5G,mBAAyC;AACxC,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAUA,OAAAA,MAAM,SAAS,SAAA,CAAU;AAAA,EAAA;AAAA,EAG7G,UAAgC;AACxB,WAAA,KAAK,WAAW,YAAY,KAAK;AAAA,EAAA;AAAA,EAGzC,YAAY,EAAE,MAAM,aAAa,YAAY,gBAAgB,6BAAiE;AAC7H,UAAM,UAAU,KAAK;AACf,UAAA,gBAAgB,QAAQ,iBAAiB,CAAC;AACtB,8BAAA,oBAAoB,YAAY,MAAM,OAAO;AAC7C,8BAAA,kBAAkB,YAAY,MAAM,aAAa;AAEpE,WAAA;AAAA,MACN;AAAA,MACA,GAAI,OAAO,QAAQ,eAAe,cAAc,CAAK,IAAA,EAAE,YAAY,QAAQ,WAAW;AAAA,MACtF,UAAU,QAAQ,aAAa,SAAY,OAAO,QAAQ;AAAA,MAC1D,MAAMA,OAAAA,MAAM,aAAa;AAAA,MACzB,QAAQ,eAAe,QAAQ,QAAQ,MAAM;AAAA,MAC7C,eAAe;AAAA,QACd,YAAY,cAAc,cAAc,YAAY,qBAAqB,IAAI;AAAA,QAC7E,UAAU,cAAc,YAAYA,OAAAA,MAAM,SAAS;AAAA,MAAA;AAAA,IAErD;AAAA,EAAA;AAAA,EAGS,WAAwD,KAAQ,OAA6D;AAC/H,WAAA,IAAI,qBAAqB,EAAE,GAAG,KAAK,SAAS,CAAC,GAAG,GAAG,OAAO;AAAA,EAAA;AAEnE;AAEgB,SAAA,WAAW,QAA2B,YAA2C;AAChG,SAAO,IAAI,qBAAqB,EAAE,QAAQ,YAAY;AACvD;;;"}
@@ -3,7 +3,7 @@ import { FieldDefinition } from "./FieldDefinition.js";
3
3
  var __defProp = Object.defineProperty;
4
4
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
5
5
  var __publicField = (obj, key, value) => __defNormalProp(obj, key + "", value);
6
- class ManyHasOneDefinitionImpl extends FieldDefinition {
6
+ class ManyHasOneDefinition extends FieldDefinition {
7
7
  constructor() {
8
8
  super(...arguments);
9
9
  __publicField(this, "type", "ManyHasOneDefinition");
@@ -46,12 +46,15 @@ class ManyHasOneDefinitionImpl extends FieldDefinition {
46
46
  }
47
47
  };
48
48
  }
49
+ withOption(key, value) {
50
+ return new ManyHasOneDefinition({ ...this.options, [key]: value });
51
+ }
49
52
  }
50
53
  function manyHasOne(target, inversedBy) {
51
- return new ManyHasOneDefinitionImpl({ target, inversedBy });
54
+ return new ManyHasOneDefinition({ target, inversedBy });
52
55
  }
53
56
  export {
54
- ManyHasOneDefinitionImpl,
57
+ ManyHasOneDefinition,
55
58
  manyHasOne
56
59
  };
57
60
  //# sourceMappingURL=ManyHasOneDefinition.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ManyHasOneDefinition.js","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/ManyHasOneDefinition.ts"],"sourcesContent":["import { EntityConstructor, Interface, RelationTarget } from '../types'\nimport { Model } from '@contember/schema'\nimport { CreateFieldContext, FieldDefinition } from './FieldDefinition'\n\nexport class ManyHasOneDefinitionImpl extends FieldDefinition<ManyHasOneDefinitionOptions> {\n\ttype = 'ManyHasOneDefinition' as const\n\n\tinversedBy(inversedBy: string): Interface<ManyHasOneDefinition> {\n\t\treturn this.withOption('inversedBy', inversedBy)\n\t}\n\n\tjoiningColumn(columnName: string): Interface<ManyHasOneDefinition> {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, columnName })\n\t}\n\n\tonDelete(onDelete: Model.OnDelete | `${Model.OnDelete}`): Interface<ManyHasOneDefinition> {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: onDelete as Model.OnDelete })\n\t}\n\n\tcascadeOnDelete(): Interface<ManyHasOneDefinition> {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.cascade })\n\t}\n\n\tsetNullOnDelete(): Interface<ManyHasOneDefinition> {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.setNull })\n\t}\n\n\trestrictOnDelete(): Interface<ManyHasOneDefinition> {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.restrict })\n\t}\n\n\tnotNull(): Interface<ManyHasOneDefinition> {\n\t\treturn this.withOption('nullable', false)\n\t}\n\n\tcreateField({ name, conventions, entityName, entityRegistry, strictDefinitionValidator }: CreateFieldContext): Model.AnyField {\n\t\tconst options = this.options\n\t\tconst joiningColumn = options.joiningColumn || {}\n\t\tstrictDefinitionValidator.validateInverseSide(entityName, name, options)\n\t\tstrictDefinitionValidator.validateOnCascade(entityName, name, joiningColumn)\n\n\t\treturn {\n\t\t\tname: name,\n\t\t\t...(typeof options.inversedBy === 'undefined' ? {} : { inversedBy: options.inversedBy }),\n\t\t\tnullable: options.nullable === undefined ? true : options.nullable,\n\t\t\ttype: Model.RelationType.ManyHasOne,\n\t\t\ttarget: entityRegistry.getName(options.target),\n\t\t\tjoiningColumn: {\n\t\t\t\tcolumnName: joiningColumn.columnName || conventions.getJoiningColumnName(name),\n\t\t\t\tonDelete: joiningColumn.onDelete || Model.OnDelete.restrict,\n\t\t\t},\n\t\t}\n\t}\n}\n\nexport type ManyHasOneDefinition = Interface<ManyHasOneDefinitionImpl>\n\nexport function manyHasOne(target: EntityConstructor, inversedBy?: string): ManyHasOneDefinition {\n\treturn new ManyHasOneDefinitionImpl({ target, inversedBy })\n}\n\nexport type ManyHasOneDefinitionOptions = {\n\ttarget: RelationTarget\n\tinversedBy?: string\n\tjoiningColumn?: Partial<Model.JoiningColumn>\n\tnullable?: boolean\n}\n"],"names":[],"mappings":";;;;;AAIO,MAAM,iCAAiC,gBAA6C;AAAA,EAApF,cAAA;AAAA,UAAA,GAAA,SAAA;AACC,kBAAA,MAAA,QAAA,sBAAA;AAAA,EAAA;AAAA,EAEP,WAAW,YAAqD;AACxD,WAAA,KAAK,WAAW,cAAc,UAAU;AAAA,EAChD;AAAA,EAEA,cAAc,YAAqD;AAC3D,WAAA,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,WAAA,CAAY;AAAA,EACtF;AAAA,EAEA,SAAS,UAAiF;AAClF,WAAA,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,SAAA,CAAsC;AAAA,EAChH;AAAA,EAEA,kBAAmD;AAClD,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAU,MAAM,SAAS,QAAS,CAAA;AAAA,EAC5G;AAAA,EAEA,kBAAmD;AAClD,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAU,MAAM,SAAS,QAAS,CAAA;AAAA,EAC5G;AAAA,EAEA,mBAAoD;AACnD,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAU,MAAM,SAAS,SAAU,CAAA;AAAA,EAC7G;AAAA,EAEA,UAA2C;AACnC,WAAA,KAAK,WAAW,YAAY,KAAK;AAAA,EACzC;AAAA,EAEA,YAAY,EAAE,MAAM,aAAa,YAAY,gBAAgB,6BAAiE;AAC7H,UAAM,UAAU,KAAK;AACf,UAAA,gBAAgB,QAAQ,iBAAiB;AACrB,8BAAA,oBAAoB,YAAY,MAAM,OAAO;AAC7C,8BAAA,kBAAkB,YAAY,MAAM,aAAa;AAEpE,WAAA;AAAA,MACN;AAAA,MACA,GAAI,OAAO,QAAQ,eAAe,cAAc,CAAK,IAAA,EAAE,YAAY,QAAQ,WAAW;AAAA,MACtF,UAAU,QAAQ,aAAa,SAAY,OAAO,QAAQ;AAAA,MAC1D,MAAM,MAAM,aAAa;AAAA,MACzB,QAAQ,eAAe,QAAQ,QAAQ,MAAM;AAAA,MAC7C,eAAe;AAAA,QACd,YAAY,cAAc,cAAc,YAAY,qBAAqB,IAAI;AAAA,QAC7E,UAAU,cAAc,YAAY,MAAM,SAAS;AAAA,MACpD;AAAA,IAAA;AAAA,EAEF;AACD;AAIgB,SAAA,WAAW,QAA2B,YAA2C;AAChG,SAAO,IAAI,yBAAyB,EAAE,QAAQ,WAAY,CAAA;AAC3D;"}
1
+ {"version":3,"file":"ManyHasOneDefinition.js","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/ManyHasOneDefinition.ts"],"sourcesContent":["import { EntityConstructor, RelationTarget } from '../types'\nimport { Model } from '@contember/schema'\nimport { CreateFieldContext, FieldDefinition } from './FieldDefinition'\n\nexport class ManyHasOneDefinition extends FieldDefinition<ManyHasOneDefinitionOptions> {\n\ttype = 'ManyHasOneDefinition' as const\n\n\tinversedBy(inversedBy: string): ManyHasOneDefinition {\n\t\treturn this.withOption('inversedBy', inversedBy)\n\t}\n\n\tjoiningColumn(columnName: string): ManyHasOneDefinition {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, columnName })\n\t}\n\n\tonDelete(onDelete: Model.OnDelete | `${Model.OnDelete}`): ManyHasOneDefinition {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: onDelete as Model.OnDelete })\n\t}\n\n\tcascadeOnDelete(): ManyHasOneDefinition {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.cascade })\n\t}\n\n\tsetNullOnDelete(): ManyHasOneDefinition {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.setNull })\n\t}\n\n\trestrictOnDelete(): ManyHasOneDefinition {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.restrict })\n\t}\n\n\tnotNull(): ManyHasOneDefinition {\n\t\treturn this.withOption('nullable', false)\n\t}\n\n\tcreateField({ name, conventions, entityName, entityRegistry, strictDefinitionValidator }: CreateFieldContext): Model.AnyField {\n\t\tconst options = this.options\n\t\tconst joiningColumn = options.joiningColumn || {}\n\t\tstrictDefinitionValidator.validateInverseSide(entityName, name, options)\n\t\tstrictDefinitionValidator.validateOnCascade(entityName, name, joiningColumn)\n\n\t\treturn {\n\t\t\tname: name,\n\t\t\t...(typeof options.inversedBy === 'undefined' ? {} : { inversedBy: options.inversedBy }),\n\t\t\tnullable: options.nullable === undefined ? true : options.nullable,\n\t\t\ttype: Model.RelationType.ManyHasOne,\n\t\t\ttarget: entityRegistry.getName(options.target),\n\t\t\tjoiningColumn: {\n\t\t\t\tcolumnName: joiningColumn.columnName || conventions.getJoiningColumnName(name),\n\t\t\t\tonDelete: joiningColumn.onDelete || Model.OnDelete.restrict,\n\t\t\t},\n\t\t}\n\t}\n\n\tprotected withOption<K extends keyof ManyHasOneDefinitionOptions>(key: K, value: ManyHasOneDefinitionOptions[K]): ManyHasOneDefinition {\n\t\treturn new ManyHasOneDefinition({ ...this.options, [key]: value })\n\t}\n}\n\nexport function manyHasOne(target: EntityConstructor, inversedBy?: string): ManyHasOneDefinition {\n\treturn new ManyHasOneDefinition({ target, inversedBy })\n}\n\nexport type ManyHasOneDefinitionOptions = {\n\ttarget: RelationTarget\n\tinversedBy?: string\n\tjoiningColumn?: Partial<Model.JoiningColumn>\n\tnullable?: boolean\n}\n"],"names":[],"mappings":";;;;;AAIO,MAAM,6BAA6B,gBAA6C;AAAA,EAAhF,cAAA;AAAA,UAAA,GAAA,SAAA;AACC,kBAAA,MAAA,QAAA,sBAAA;AAAA,EAAA;AAAA,EAEP,WAAW,YAA0C;AAC7C,WAAA,KAAK,WAAW,cAAc,UAAU;AAAA,EAAA;AAAA,EAGhD,cAAc,YAA0C;AAChD,WAAA,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,YAAY;AAAA,EAAA;AAAA,EAGtF,SAAS,UAAsE;AACvE,WAAA,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAsC;AAAA,EAAA;AAAA,EAGhH,kBAAwC;AACvC,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAU,MAAM,SAAS,QAAA,CAAS;AAAA,EAAA;AAAA,EAG5G,kBAAwC;AACvC,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAU,MAAM,SAAS,QAAA,CAAS;AAAA,EAAA;AAAA,EAG5G,mBAAyC;AACxC,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAU,MAAM,SAAS,SAAA,CAAU;AAAA,EAAA;AAAA,EAG7G,UAAgC;AACxB,WAAA,KAAK,WAAW,YAAY,KAAK;AAAA,EAAA;AAAA,EAGzC,YAAY,EAAE,MAAM,aAAa,YAAY,gBAAgB,6BAAiE;AAC7H,UAAM,UAAU,KAAK;AACf,UAAA,gBAAgB,QAAQ,iBAAiB,CAAC;AACtB,8BAAA,oBAAoB,YAAY,MAAM,OAAO;AAC7C,8BAAA,kBAAkB,YAAY,MAAM,aAAa;AAEpE,WAAA;AAAA,MACN;AAAA,MACA,GAAI,OAAO,QAAQ,eAAe,cAAc,CAAK,IAAA,EAAE,YAAY,QAAQ,WAAW;AAAA,MACtF,UAAU,QAAQ,aAAa,SAAY,OAAO,QAAQ;AAAA,MAC1D,MAAM,MAAM,aAAa;AAAA,MACzB,QAAQ,eAAe,QAAQ,QAAQ,MAAM;AAAA,MAC7C,eAAe;AAAA,QACd,YAAY,cAAc,cAAc,YAAY,qBAAqB,IAAI;AAAA,QAC7E,UAAU,cAAc,YAAY,MAAM,SAAS;AAAA,MAAA;AAAA,IAErD;AAAA,EAAA;AAAA,EAGS,WAAwD,KAAQ,OAA6D;AAC/H,WAAA,IAAI,qBAAqB,EAAE,GAAG,KAAK,SAAS,CAAC,GAAG,GAAG,OAAO;AAAA,EAAA;AAEnE;AAEgB,SAAA,WAAW,QAA2B,YAA2C;AAChG,SAAO,IAAI,qBAAqB,EAAE,QAAQ,YAAY;AACvD;"}
@@ -5,7 +5,7 @@ const FieldDefinition = require("./FieldDefinition.cjs");
5
5
  var __defProp = Object.defineProperty;
6
6
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
7
  var __publicField = (obj, key, value) => __defNormalProp(obj, key + "", value);
8
- class OneHasManyDefinitionImpl extends FieldDefinition.FieldDefinition {
8
+ class OneHasManyDefinition extends FieldDefinition.FieldDefinition {
9
9
  constructor() {
10
10
  super(...arguments);
11
11
  __publicField(this, "type", "OneHasManyDefinition");
@@ -24,10 +24,13 @@ class OneHasManyDefinitionImpl extends FieldDefinition.FieldDefinition {
24
24
  ...options.orderBy ? { orderBy: options.orderBy } : {}
25
25
  };
26
26
  }
27
+ withOption(key, value) {
28
+ return new OneHasManyDefinition({ ...this.options, [key]: value });
29
+ }
27
30
  }
28
31
  function oneHasMany(target, ownedBy) {
29
- return new OneHasManyDefinitionImpl({ target, ownedBy });
32
+ return new OneHasManyDefinition({ target, ownedBy });
30
33
  }
31
- exports.OneHasManyDefinitionImpl = OneHasManyDefinitionImpl;
34
+ exports.OneHasManyDefinition = OneHasManyDefinition;
32
35
  exports.oneHasMany = oneHasMany;
33
36
  //# sourceMappingURL=OneHasManyDefinition.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"OneHasManyDefinition.cjs","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/OneHasManyDefinition.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { CreateFieldContext, FieldDefinition } from './FieldDefinition'\nimport { EntityConstructor, Interface, RelationTarget } from '../types'\n\nexport class OneHasManyDefinitionImpl extends FieldDefinition<OneHasManyDefinitionOptions> {\n\ttype = 'OneHasManyDefinition' as const\n\n\torderBy(\n\t\tfield: string | string[],\n\t\tdirection: Model.OrderDirection | `${Model.OrderDirection}` = Model.OrderDirection.asc,\n\t): Interface<OneHasManyDefinition> {\n\t\tconst path = typeof field === 'string' ? [field] : field\n\t\treturn this.withOption('orderBy', [...(this.options.orderBy || []), { path, direction: direction as Model.OrderDirection }])\n\t}\n\tcreateField({ name, entityRegistry }: CreateFieldContext): Model.AnyField {\n\t\tconst options = this.options\n\t\treturn {\n\t\t\tname: name,\n\t\t\townedBy: options.ownedBy,\n\t\t\ttype: Model.RelationType.OneHasMany,\n\t\t\ttarget: entityRegistry.getName(options.target),\n\t\t\t...(options.orderBy ? { orderBy: options.orderBy } : {}),\n\t\t}\n\t}\n}\n\nexport type OneHasManyDefinition = Interface<OneHasManyDefinitionImpl>\n\nexport function oneHasMany(target: EntityConstructor, ownedBy: string): OneHasManyDefinition {\n\treturn new OneHasManyDefinitionImpl({ target, ownedBy })\n}\n\nexport type OneHasManyDefinitionOptions = {\n\ttarget: RelationTarget\n\townedBy: string\n\torderBy?: Model.OrderBy[]\n}\n"],"names":["FieldDefinition","Model"],"mappings":";;;;;;;AAIO,MAAM,iCAAiCA,gBAAAA,gBAA6C;AAAA,EAApF,cAAA;AAAA,UAAA,GAAA,SAAA;AACC,kBAAA,MAAA,QAAA,sBAAA;AAAA,EAAA;AAAA,EAEP,QACC,OACA,YAA8DC,OAAAA,MAAM,eAAe,KACjD;AAClC,UAAM,OAAO,OAAO,UAAU,WAAW,CAAC,KAAK,IAAI;AACnD,WAAO,KAAK,WAAW,WAAW,CAAC,GAAI,KAAK,QAAQ,WAAW,CAAK,GAAA,EAAE,MAAM,UAAA,CAA8C,CAAC;AAAA,EAC5H;AAAA,EACA,YAAY,EAAE,MAAM,kBAAsD;AACzE,UAAM,UAAU,KAAK;AACd,WAAA;AAAA,MACN;AAAA,MACA,SAAS,QAAQ;AAAA,MACjB,MAAMA,OAAAA,MAAM,aAAa;AAAA,MACzB,QAAQ,eAAe,QAAQ,QAAQ,MAAM;AAAA,MAC7C,GAAI,QAAQ,UAAU,EAAE,SAAS,QAAQ,QAAA,IAAY,CAAC;AAAA,IAAA;AAAA,EAExD;AACD;AAIgB,SAAA,WAAW,QAA2B,SAAuC;AAC5F,SAAO,IAAI,yBAAyB,EAAE,QAAQ,QAAS,CAAA;AACxD;;;"}
1
+ {"version":3,"file":"OneHasManyDefinition.cjs","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/OneHasManyDefinition.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { CreateFieldContext, FieldDefinition } from './FieldDefinition'\nimport { EntityConstructor, RelationTarget } from '../types'\n\nexport class OneHasManyDefinition extends FieldDefinition<OneHasManyDefinitionOptions> {\n\ttype = 'OneHasManyDefinition' as const\n\n\torderBy(\n\t\tfield: string | string[],\n\t\tdirection: Model.OrderDirection | `${Model.OrderDirection}` = Model.OrderDirection.asc,\n\t): OneHasManyDefinition {\n\t\tconst path = typeof field === 'string' ? [field] : field\n\t\treturn this.withOption('orderBy', [...(this.options.orderBy || []), { path, direction: direction as Model.OrderDirection }])\n\t}\n\tcreateField({ name, entityRegistry }: CreateFieldContext): Model.AnyField {\n\t\tconst options = this.options\n\t\treturn {\n\t\t\tname: name,\n\t\t\townedBy: options.ownedBy,\n\t\t\ttype: Model.RelationType.OneHasMany,\n\t\t\ttarget: entityRegistry.getName(options.target),\n\t\t\t...(options.orderBy ? { orderBy: options.orderBy } : {}),\n\t\t}\n\t}\n\n\tprotected withOption<K extends keyof OneHasManyDefinitionOptions>(key: K, value: OneHasManyDefinitionOptions[K]): OneHasManyDefinition {\n\t\treturn new OneHasManyDefinition({ ...this.options, [key]: value })\n\t}\n}\n\n\nexport function oneHasMany(target: EntityConstructor, ownedBy: string): OneHasManyDefinition {\n\treturn new OneHasManyDefinition({ target, ownedBy })\n}\n\nexport type OneHasManyDefinitionOptions = {\n\ttarget: RelationTarget\n\townedBy: string\n\torderBy?: Model.OrderBy[]\n}\n"],"names":["FieldDefinition","Model"],"mappings":";;;;;;;AAIO,MAAM,6BAA6BA,gBAAAA,gBAA6C;AAAA,EAAhF,cAAA;AAAA,UAAA,GAAA,SAAA;AACC,kBAAA,MAAA,QAAA,sBAAA;AAAA,EAAA;AAAA,EAEP,QACC,OACA,YAA8DC,OAAAA,MAAM,eAAe,KAC5D;AACvB,UAAM,OAAO,OAAO,UAAU,WAAW,CAAC,KAAK,IAAI;AACnD,WAAO,KAAK,WAAW,WAAW,CAAC,GAAI,KAAK,QAAQ,WAAW,CAAA,GAAK,EAAE,MAAM,UAA8C,CAAA,CAAC;AAAA,EAAA;AAAA,EAE5H,YAAY,EAAE,MAAM,kBAAsD;AACzE,UAAM,UAAU,KAAK;AACd,WAAA;AAAA,MACN;AAAA,MACA,SAAS,QAAQ;AAAA,MACjB,MAAMA,OAAAA,MAAM,aAAa;AAAA,MACzB,QAAQ,eAAe,QAAQ,QAAQ,MAAM;AAAA,MAC7C,GAAI,QAAQ,UAAU,EAAE,SAAS,QAAQ,QAAA,IAAY,CAAA;AAAA,IACtD;AAAA,EAAA;AAAA,EAGS,WAAwD,KAAQ,OAA6D;AAC/H,WAAA,IAAI,qBAAqB,EAAE,GAAG,KAAK,SAAS,CAAC,GAAG,GAAG,OAAO;AAAA,EAAA;AAEnE;AAGgB,SAAA,WAAW,QAA2B,SAAuC;AAC5F,SAAO,IAAI,qBAAqB,EAAE,QAAQ,SAAS;AACpD;;;"}
@@ -3,7 +3,7 @@ import { FieldDefinition } from "./FieldDefinition.js";
3
3
  var __defProp = Object.defineProperty;
4
4
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
5
5
  var __publicField = (obj, key, value) => __defNormalProp(obj, key + "", value);
6
- class OneHasManyDefinitionImpl extends FieldDefinition {
6
+ class OneHasManyDefinition extends FieldDefinition {
7
7
  constructor() {
8
8
  super(...arguments);
9
9
  __publicField(this, "type", "OneHasManyDefinition");
@@ -22,12 +22,15 @@ class OneHasManyDefinitionImpl extends FieldDefinition {
22
22
  ...options.orderBy ? { orderBy: options.orderBy } : {}
23
23
  };
24
24
  }
25
+ withOption(key, value) {
26
+ return new OneHasManyDefinition({ ...this.options, [key]: value });
27
+ }
25
28
  }
26
29
  function oneHasMany(target, ownedBy) {
27
- return new OneHasManyDefinitionImpl({ target, ownedBy });
30
+ return new OneHasManyDefinition({ target, ownedBy });
28
31
  }
29
32
  export {
30
- OneHasManyDefinitionImpl,
33
+ OneHasManyDefinition,
31
34
  oneHasMany
32
35
  };
33
36
  //# sourceMappingURL=OneHasManyDefinition.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OneHasManyDefinition.js","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/OneHasManyDefinition.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { CreateFieldContext, FieldDefinition } from './FieldDefinition'\nimport { EntityConstructor, Interface, RelationTarget } from '../types'\n\nexport class OneHasManyDefinitionImpl extends FieldDefinition<OneHasManyDefinitionOptions> {\n\ttype = 'OneHasManyDefinition' as const\n\n\torderBy(\n\t\tfield: string | string[],\n\t\tdirection: Model.OrderDirection | `${Model.OrderDirection}` = Model.OrderDirection.asc,\n\t): Interface<OneHasManyDefinition> {\n\t\tconst path = typeof field === 'string' ? [field] : field\n\t\treturn this.withOption('orderBy', [...(this.options.orderBy || []), { path, direction: direction as Model.OrderDirection }])\n\t}\n\tcreateField({ name, entityRegistry }: CreateFieldContext): Model.AnyField {\n\t\tconst options = this.options\n\t\treturn {\n\t\t\tname: name,\n\t\t\townedBy: options.ownedBy,\n\t\t\ttype: Model.RelationType.OneHasMany,\n\t\t\ttarget: entityRegistry.getName(options.target),\n\t\t\t...(options.orderBy ? { orderBy: options.orderBy } : {}),\n\t\t}\n\t}\n}\n\nexport type OneHasManyDefinition = Interface<OneHasManyDefinitionImpl>\n\nexport function oneHasMany(target: EntityConstructor, ownedBy: string): OneHasManyDefinition {\n\treturn new OneHasManyDefinitionImpl({ target, ownedBy })\n}\n\nexport type OneHasManyDefinitionOptions = {\n\ttarget: RelationTarget\n\townedBy: string\n\torderBy?: Model.OrderBy[]\n}\n"],"names":[],"mappings":";;;;;AAIO,MAAM,iCAAiC,gBAA6C;AAAA,EAApF,cAAA;AAAA,UAAA,GAAA,SAAA;AACC,kBAAA,MAAA,QAAA,sBAAA;AAAA,EAAA;AAAA,EAEP,QACC,OACA,YAA8D,MAAM,eAAe,KACjD;AAClC,UAAM,OAAO,OAAO,UAAU,WAAW,CAAC,KAAK,IAAI;AACnD,WAAO,KAAK,WAAW,WAAW,CAAC,GAAI,KAAK,QAAQ,WAAW,CAAK,GAAA,EAAE,MAAM,UAAA,CAA8C,CAAC;AAAA,EAC5H;AAAA,EACA,YAAY,EAAE,MAAM,kBAAsD;AACzE,UAAM,UAAU,KAAK;AACd,WAAA;AAAA,MACN;AAAA,MACA,SAAS,QAAQ;AAAA,MACjB,MAAM,MAAM,aAAa;AAAA,MACzB,QAAQ,eAAe,QAAQ,QAAQ,MAAM;AAAA,MAC7C,GAAI,QAAQ,UAAU,EAAE,SAAS,QAAQ,QAAA,IAAY,CAAC;AAAA,IAAA;AAAA,EAExD;AACD;AAIgB,SAAA,WAAW,QAA2B,SAAuC;AAC5F,SAAO,IAAI,yBAAyB,EAAE,QAAQ,QAAS,CAAA;AACxD;"}
1
+ {"version":3,"file":"OneHasManyDefinition.js","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/OneHasManyDefinition.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { CreateFieldContext, FieldDefinition } from './FieldDefinition'\nimport { EntityConstructor, RelationTarget } from '../types'\n\nexport class OneHasManyDefinition extends FieldDefinition<OneHasManyDefinitionOptions> {\n\ttype = 'OneHasManyDefinition' as const\n\n\torderBy(\n\t\tfield: string | string[],\n\t\tdirection: Model.OrderDirection | `${Model.OrderDirection}` = Model.OrderDirection.asc,\n\t): OneHasManyDefinition {\n\t\tconst path = typeof field === 'string' ? [field] : field\n\t\treturn this.withOption('orderBy', [...(this.options.orderBy || []), { path, direction: direction as Model.OrderDirection }])\n\t}\n\tcreateField({ name, entityRegistry }: CreateFieldContext): Model.AnyField {\n\t\tconst options = this.options\n\t\treturn {\n\t\t\tname: name,\n\t\t\townedBy: options.ownedBy,\n\t\t\ttype: Model.RelationType.OneHasMany,\n\t\t\ttarget: entityRegistry.getName(options.target),\n\t\t\t...(options.orderBy ? { orderBy: options.orderBy } : {}),\n\t\t}\n\t}\n\n\tprotected withOption<K extends keyof OneHasManyDefinitionOptions>(key: K, value: OneHasManyDefinitionOptions[K]): OneHasManyDefinition {\n\t\treturn new OneHasManyDefinition({ ...this.options, [key]: value })\n\t}\n}\n\n\nexport function oneHasMany(target: EntityConstructor, ownedBy: string): OneHasManyDefinition {\n\treturn new OneHasManyDefinition({ target, ownedBy })\n}\n\nexport type OneHasManyDefinitionOptions = {\n\ttarget: RelationTarget\n\townedBy: string\n\torderBy?: Model.OrderBy[]\n}\n"],"names":[],"mappings":";;;;;AAIO,MAAM,6BAA6B,gBAA6C;AAAA,EAAhF,cAAA;AAAA,UAAA,GAAA,SAAA;AACC,kBAAA,MAAA,QAAA,sBAAA;AAAA,EAAA;AAAA,EAEP,QACC,OACA,YAA8D,MAAM,eAAe,KAC5D;AACvB,UAAM,OAAO,OAAO,UAAU,WAAW,CAAC,KAAK,IAAI;AACnD,WAAO,KAAK,WAAW,WAAW,CAAC,GAAI,KAAK,QAAQ,WAAW,CAAA,GAAK,EAAE,MAAM,UAA8C,CAAA,CAAC;AAAA,EAAA;AAAA,EAE5H,YAAY,EAAE,MAAM,kBAAsD;AACzE,UAAM,UAAU,KAAK;AACd,WAAA;AAAA,MACN;AAAA,MACA,SAAS,QAAQ;AAAA,MACjB,MAAM,MAAM,aAAa;AAAA,MACzB,QAAQ,eAAe,QAAQ,QAAQ,MAAM;AAAA,MAC7C,GAAI,QAAQ,UAAU,EAAE,SAAS,QAAQ,QAAA,IAAY,CAAA;AAAA,IACtD;AAAA,EAAA;AAAA,EAGS,WAAwD,KAAQ,OAA6D;AAC/H,WAAA,IAAI,qBAAqB,EAAE,GAAG,KAAK,SAAS,CAAC,GAAG,GAAG,OAAO;AAAA,EAAA;AAEnE;AAGgB,SAAA,WAAW,QAA2B,SAAuC;AAC5F,SAAO,IAAI,qBAAqB,EAAE,QAAQ,SAAS;AACpD;"}
@@ -5,7 +5,7 @@ const FieldDefinition = require("./FieldDefinition.cjs");
5
5
  var __defProp = Object.defineProperty;
6
6
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
7
  var __publicField = (obj, key, value) => __defNormalProp(obj, key + "", value);
8
- class OneHasOneDefinitionImpl extends FieldDefinition.FieldDefinition {
8
+ class OneHasOneDefinition extends FieldDefinition.FieldDefinition {
9
9
  constructor() {
10
10
  super(...arguments);
11
11
  __publicField(this, "type", "OneHasOneDefinition");
@@ -52,10 +52,13 @@ class OneHasOneDefinitionImpl extends FieldDefinition.FieldDefinition {
52
52
  ...options.orphanRemoval ? { orphanRemoval: true } : {}
53
53
  };
54
54
  }
55
+ withOption(key, value) {
56
+ return new OneHasOneDefinition({ ...this.options, [key]: value });
57
+ }
55
58
  }
56
59
  function oneHasOne(target, inversedBy) {
57
- return new OneHasOneDefinitionImpl({ target, inversedBy });
60
+ return new OneHasOneDefinition({ target, inversedBy });
58
61
  }
59
- exports.OneHasOneDefinitionImpl = OneHasOneDefinitionImpl;
62
+ exports.OneHasOneDefinition = OneHasOneDefinition;
60
63
  exports.oneHasOne = oneHasOne;
61
64
  //# sourceMappingURL=OneHasOneDefinition.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"OneHasOneDefinition.cjs","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/OneHasOneDefinition.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { EntityConstructor, Interface, RelationTarget } from '../types'\nimport { CreateFieldContext, FieldDefinition } from './FieldDefinition'\n\nexport class OneHasOneDefinitionImpl extends FieldDefinition<OneHasOneDefinitionOptions> {\n\ttype = 'OneHasOneDefinition' as const\n\n\tinversedBy(inversedBy: string): Interface<OneHasOneDefinition> {\n\t\treturn this.withOption('inversedBy', inversedBy)\n\t}\n\n\tjoiningColumn(columnName: string): Interface<OneHasOneDefinition> {\n\t\treturn this.withOption('joiningColumn', { ...this.joiningColumn, columnName })\n\t}\n\n\tonDelete(onDelete: Model.OnDelete | `${Model.OnDelete}`): Interface<OneHasOneDefinition> {\n\t\treturn this.withOption('joiningColumn', { ...this.joiningColumn, onDelete: onDelete as Model.OnDelete })\n\t}\n\n\tcascadeOnDelete(): Interface<OneHasOneDefinition> {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.cascade })\n\t}\n\n\tsetNullOnDelete(): Interface<OneHasOneDefinition> {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.setNull })\n\t}\n\n\trestrictOnDelete(): Interface<OneHasOneDefinition> {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.restrict })\n\t}\n\n\tnotNull(): Interface<OneHasOneDefinition> {\n\t\treturn this.withOption('nullable', false)\n\t}\n\n\tremoveOrphan(): Interface<OneHasOneDefinition> {\n\t\treturn this.withOption('orphanRemoval', true)\n\t}\n\n\tcreateField({ name, conventions, entityRegistry, strictDefinitionValidator, entityName }: CreateFieldContext): Model.AnyField {\n\t\tconst options = this.options\n\t\tconst joiningColumn: Partial<Model.JoiningColumn> = options.joiningColumn || {}\n\n\t\tstrictDefinitionValidator.validateInverseSide(entityName, name, options)\n\t\tstrictDefinitionValidator.validateOnCascade(entityName, name, joiningColumn)\n\n\t\treturn {\n\t\t\tname: name,\n\t\t\t...(typeof options.inversedBy === 'undefined' ? {} : { inversedBy: options.inversedBy }),\n\t\t\tnullable: options.nullable === undefined ? true : options.nullable,\n\t\t\ttype: Model.RelationType.OneHasOne,\n\t\t\ttarget: entityRegistry.getName(options.target),\n\t\t\tjoiningColumn: {\n\t\t\t\tcolumnName: joiningColumn.columnName || conventions.getJoiningColumnName(name),\n\t\t\t\tonDelete: joiningColumn.onDelete || Model.OnDelete.restrict,\n\t\t\t},\n\t\t\t...(options.orphanRemoval ? { orphanRemoval: true } : {}),\n\t\t}\n\t}\n}\n\nexport type OneHasOneDefinition = Interface<OneHasOneDefinitionImpl>\n\nexport function oneHasOne(target: EntityConstructor, inversedBy?: string): OneHasOneDefinition {\n\treturn new OneHasOneDefinitionImpl({ target, inversedBy })\n}\n\nexport type OneHasOneDefinitionOptions = {\n\ttarget: RelationTarget\n\tinversedBy?: string\n\tjoiningColumn?: Partial<Model.JoiningColumn>\n\tnullable?: boolean\n\torphanRemoval?: true\n}\n"],"names":["FieldDefinition","Model"],"mappings":";;;;;;;AAIO,MAAM,gCAAgCA,gBAAAA,gBAA4C;AAAA,EAAlF,cAAA;AAAA,UAAA,GAAA,SAAA;AACC,kBAAA,MAAA,QAAA,qBAAA;AAAA,EAAA;AAAA,EAEP,WAAW,YAAoD;AACvD,WAAA,KAAK,WAAW,cAAc,UAAU;AAAA,EAChD;AAAA,EAEA,cAAc,YAAoD;AAC1D,WAAA,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,eAAe,YAAY;AAAA,EAC9E;AAAA,EAEA,SAAS,UAAgF;AACjF,WAAA,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,eAAe,UAAsC;AAAA,EACxG;AAAA,EAEA,kBAAkD;AACjD,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAUC,OAAA,MAAM,SAAS,QAAS,CAAA;AAAA,EAC5G;AAAA,EAEA,kBAAkD;AACjD,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAUA,OAAA,MAAM,SAAS,QAAS,CAAA;AAAA,EAC5G;AAAA,EAEA,mBAAmD;AAClD,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAUA,OAAA,MAAM,SAAS,SAAU,CAAA;AAAA,EAC7G;AAAA,EAEA,UAA0C;AAClC,WAAA,KAAK,WAAW,YAAY,KAAK;AAAA,EACzC;AAAA,EAEA,eAA+C;AACvC,WAAA,KAAK,WAAW,iBAAiB,IAAI;AAAA,EAC7C;AAAA,EAEA,YAAY,EAAE,MAAM,aAAa,gBAAgB,2BAA2B,cAAkD;AAC7H,UAAM,UAAU,KAAK;AACf,UAAA,gBAA8C,QAAQ,iBAAiB;AAEnD,8BAAA,oBAAoB,YAAY,MAAM,OAAO;AAC7C,8BAAA,kBAAkB,YAAY,MAAM,aAAa;AAEpE,WAAA;AAAA,MACN;AAAA,MACA,GAAI,OAAO,QAAQ,eAAe,cAAc,CAAK,IAAA,EAAE,YAAY,QAAQ,WAAW;AAAA,MACtF,UAAU,QAAQ,aAAa,SAAY,OAAO,QAAQ;AAAA,MAC1D,MAAMA,OAAAA,MAAM,aAAa;AAAA,MACzB,QAAQ,eAAe,QAAQ,QAAQ,MAAM;AAAA,MAC7C,eAAe;AAAA,QACd,YAAY,cAAc,cAAc,YAAY,qBAAqB,IAAI;AAAA,QAC7E,UAAU,cAAc,YAAYA,OAAA,MAAM,SAAS;AAAA,MACpD;AAAA,MACA,GAAI,QAAQ,gBAAgB,EAAE,eAAe,SAAS,CAAC;AAAA,IAAA;AAAA,EAEzD;AACD;AAIgB,SAAA,UAAU,QAA2B,YAA0C;AAC9F,SAAO,IAAI,wBAAwB,EAAE,QAAQ,WAAY,CAAA;AAC1D;;;"}
1
+ {"version":3,"file":"OneHasOneDefinition.cjs","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/OneHasOneDefinition.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { EntityConstructor, RelationTarget } from '../types'\nimport { CreateFieldContext, FieldDefinition } from './FieldDefinition'\n\nexport class OneHasOneDefinition extends FieldDefinition<OneHasOneDefinitionOptions> {\n\ttype = 'OneHasOneDefinition' as const\n\n\n\tinversedBy(inversedBy: string): OneHasOneDefinition {\n\t\treturn this.withOption('inversedBy', inversedBy)\n\t}\n\n\tjoiningColumn(columnName: string): OneHasOneDefinition {\n\t\treturn this.withOption('joiningColumn', { ...this.joiningColumn, columnName })\n\t}\n\n\tonDelete(onDelete: Model.OnDelete | `${Model.OnDelete}`): OneHasOneDefinition {\n\t\treturn this.withOption('joiningColumn', { ...this.joiningColumn, onDelete: onDelete as Model.OnDelete })\n\t}\n\n\tcascadeOnDelete(): OneHasOneDefinition {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.cascade })\n\t}\n\n\tsetNullOnDelete(): OneHasOneDefinition {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.setNull })\n\t}\n\n\trestrictOnDelete(): OneHasOneDefinition {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.restrict })\n\t}\n\n\tnotNull(): OneHasOneDefinition {\n\t\treturn this.withOption('nullable', false)\n\t}\n\n\tremoveOrphan(): OneHasOneDefinition {\n\t\treturn this.withOption('orphanRemoval', true)\n\t}\n\n\tcreateField({ name, conventions, entityRegistry, strictDefinitionValidator, entityName }: CreateFieldContext): Model.AnyField {\n\t\tconst options = this.options\n\t\tconst joiningColumn: Partial<Model.JoiningColumn> = options.joiningColumn || {}\n\n\t\tstrictDefinitionValidator.validateInverseSide(entityName, name, options)\n\t\tstrictDefinitionValidator.validateOnCascade(entityName, name, joiningColumn)\n\n\t\treturn {\n\t\t\tname: name,\n\t\t\t...(typeof options.inversedBy === 'undefined' ? {} : { inversedBy: options.inversedBy }),\n\t\t\tnullable: options.nullable === undefined ? true : options.nullable,\n\t\t\ttype: Model.RelationType.OneHasOne,\n\t\t\ttarget: entityRegistry.getName(options.target),\n\t\t\tjoiningColumn: {\n\t\t\t\tcolumnName: joiningColumn.columnName || conventions.getJoiningColumnName(name),\n\t\t\t\tonDelete: joiningColumn.onDelete || Model.OnDelete.restrict,\n\t\t\t},\n\t\t\t...(options.orphanRemoval ? { orphanRemoval: true } : {}),\n\t\t}\n\t}\n\n\tprotected withOption<K extends keyof OneHasOneDefinitionOptions>(key: K, value: OneHasOneDefinitionOptions[K]): OneHasOneDefinition {\n\t\treturn new OneHasOneDefinition({ ...this.options, [key]: value })\n\t}\n}\n\n\nexport function oneHasOne(target: EntityConstructor, inversedBy?: string): OneHasOneDefinition {\n\treturn new OneHasOneDefinition({ target, inversedBy })\n}\n\nexport type OneHasOneDefinitionOptions = {\n\ttarget: RelationTarget\n\tinversedBy?: string\n\tjoiningColumn?: Partial<Model.JoiningColumn>\n\tnullable?: boolean\n\torphanRemoval?: true\n}\n"],"names":["FieldDefinition","Model"],"mappings":";;;;;;;AAIO,MAAM,4BAA4BA,gBAAAA,gBAA4C;AAAA,EAA9E,cAAA;AAAA,UAAA,GAAA,SAAA;AACC,kBAAA,MAAA,QAAA,qBAAA;AAAA,EAAA;AAAA,EAGP,WAAW,YAAyC;AAC5C,WAAA,KAAK,WAAW,cAAc,UAAU;AAAA,EAAA;AAAA,EAGhD,cAAc,YAAyC;AAC/C,WAAA,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,eAAe,YAAY;AAAA,EAAA;AAAA,EAG9E,SAAS,UAAqE;AACtE,WAAA,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,eAAe,UAAsC;AAAA,EAAA;AAAA,EAGxG,kBAAuC;AACtC,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAUC,OAAAA,MAAM,SAAS,QAAA,CAAS;AAAA,EAAA;AAAA,EAG5G,kBAAuC;AACtC,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAUA,OAAAA,MAAM,SAAS,QAAA,CAAS;AAAA,EAAA;AAAA,EAG5G,mBAAwC;AACvC,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAUA,OAAAA,MAAM,SAAS,SAAA,CAAU;AAAA,EAAA;AAAA,EAG7G,UAA+B;AACvB,WAAA,KAAK,WAAW,YAAY,KAAK;AAAA,EAAA;AAAA,EAGzC,eAAoC;AAC5B,WAAA,KAAK,WAAW,iBAAiB,IAAI;AAAA,EAAA;AAAA,EAG7C,YAAY,EAAE,MAAM,aAAa,gBAAgB,2BAA2B,cAAkD;AAC7H,UAAM,UAAU,KAAK;AACf,UAAA,gBAA8C,QAAQ,iBAAiB,CAAC;AAEpD,8BAAA,oBAAoB,YAAY,MAAM,OAAO;AAC7C,8BAAA,kBAAkB,YAAY,MAAM,aAAa;AAEpE,WAAA;AAAA,MACN;AAAA,MACA,GAAI,OAAO,QAAQ,eAAe,cAAc,CAAK,IAAA,EAAE,YAAY,QAAQ,WAAW;AAAA,MACtF,UAAU,QAAQ,aAAa,SAAY,OAAO,QAAQ;AAAA,MAC1D,MAAMA,OAAAA,MAAM,aAAa;AAAA,MACzB,QAAQ,eAAe,QAAQ,QAAQ,MAAM;AAAA,MAC7C,eAAe;AAAA,QACd,YAAY,cAAc,cAAc,YAAY,qBAAqB,IAAI;AAAA,QAC7E,UAAU,cAAc,YAAYA,OAAAA,MAAM,SAAS;AAAA,MACpD;AAAA,MACA,GAAI,QAAQ,gBAAgB,EAAE,eAAe,KAAA,IAAS,CAAA;AAAA,IACvD;AAAA,EAAA;AAAA,EAGS,WAAuD,KAAQ,OAA2D;AAC5H,WAAA,IAAI,oBAAoB,EAAE,GAAG,KAAK,SAAS,CAAC,GAAG,GAAG,OAAO;AAAA,EAAA;AAElE;AAGgB,SAAA,UAAU,QAA2B,YAA0C;AAC9F,SAAO,IAAI,oBAAoB,EAAE,QAAQ,YAAY;AACtD;;;"}
@@ -3,7 +3,7 @@ import { FieldDefinition } from "./FieldDefinition.js";
3
3
  var __defProp = Object.defineProperty;
4
4
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
5
5
  var __publicField = (obj, key, value) => __defNormalProp(obj, key + "", value);
6
- class OneHasOneDefinitionImpl extends FieldDefinition {
6
+ class OneHasOneDefinition extends FieldDefinition {
7
7
  constructor() {
8
8
  super(...arguments);
9
9
  __publicField(this, "type", "OneHasOneDefinition");
@@ -50,12 +50,15 @@ class OneHasOneDefinitionImpl extends FieldDefinition {
50
50
  ...options.orphanRemoval ? { orphanRemoval: true } : {}
51
51
  };
52
52
  }
53
+ withOption(key, value) {
54
+ return new OneHasOneDefinition({ ...this.options, [key]: value });
55
+ }
53
56
  }
54
57
  function oneHasOne(target, inversedBy) {
55
- return new OneHasOneDefinitionImpl({ target, inversedBy });
58
+ return new OneHasOneDefinition({ target, inversedBy });
56
59
  }
57
60
  export {
58
- OneHasOneDefinitionImpl,
61
+ OneHasOneDefinition,
59
62
  oneHasOne
60
63
  };
61
64
  //# sourceMappingURL=OneHasOneDefinition.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OneHasOneDefinition.js","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/OneHasOneDefinition.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { EntityConstructor, Interface, RelationTarget } from '../types'\nimport { CreateFieldContext, FieldDefinition } from './FieldDefinition'\n\nexport class OneHasOneDefinitionImpl extends FieldDefinition<OneHasOneDefinitionOptions> {\n\ttype = 'OneHasOneDefinition' as const\n\n\tinversedBy(inversedBy: string): Interface<OneHasOneDefinition> {\n\t\treturn this.withOption('inversedBy', inversedBy)\n\t}\n\n\tjoiningColumn(columnName: string): Interface<OneHasOneDefinition> {\n\t\treturn this.withOption('joiningColumn', { ...this.joiningColumn, columnName })\n\t}\n\n\tonDelete(onDelete: Model.OnDelete | `${Model.OnDelete}`): Interface<OneHasOneDefinition> {\n\t\treturn this.withOption('joiningColumn', { ...this.joiningColumn, onDelete: onDelete as Model.OnDelete })\n\t}\n\n\tcascadeOnDelete(): Interface<OneHasOneDefinition> {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.cascade })\n\t}\n\n\tsetNullOnDelete(): Interface<OneHasOneDefinition> {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.setNull })\n\t}\n\n\trestrictOnDelete(): Interface<OneHasOneDefinition> {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.restrict })\n\t}\n\n\tnotNull(): Interface<OneHasOneDefinition> {\n\t\treturn this.withOption('nullable', false)\n\t}\n\n\tremoveOrphan(): Interface<OneHasOneDefinition> {\n\t\treturn this.withOption('orphanRemoval', true)\n\t}\n\n\tcreateField({ name, conventions, entityRegistry, strictDefinitionValidator, entityName }: CreateFieldContext): Model.AnyField {\n\t\tconst options = this.options\n\t\tconst joiningColumn: Partial<Model.JoiningColumn> = options.joiningColumn || {}\n\n\t\tstrictDefinitionValidator.validateInverseSide(entityName, name, options)\n\t\tstrictDefinitionValidator.validateOnCascade(entityName, name, joiningColumn)\n\n\t\treturn {\n\t\t\tname: name,\n\t\t\t...(typeof options.inversedBy === 'undefined' ? {} : { inversedBy: options.inversedBy }),\n\t\t\tnullable: options.nullable === undefined ? true : options.nullable,\n\t\t\ttype: Model.RelationType.OneHasOne,\n\t\t\ttarget: entityRegistry.getName(options.target),\n\t\t\tjoiningColumn: {\n\t\t\t\tcolumnName: joiningColumn.columnName || conventions.getJoiningColumnName(name),\n\t\t\t\tonDelete: joiningColumn.onDelete || Model.OnDelete.restrict,\n\t\t\t},\n\t\t\t...(options.orphanRemoval ? { orphanRemoval: true } : {}),\n\t\t}\n\t}\n}\n\nexport type OneHasOneDefinition = Interface<OneHasOneDefinitionImpl>\n\nexport function oneHasOne(target: EntityConstructor, inversedBy?: string): OneHasOneDefinition {\n\treturn new OneHasOneDefinitionImpl({ target, inversedBy })\n}\n\nexport type OneHasOneDefinitionOptions = {\n\ttarget: RelationTarget\n\tinversedBy?: string\n\tjoiningColumn?: Partial<Model.JoiningColumn>\n\tnullable?: boolean\n\torphanRemoval?: true\n}\n"],"names":[],"mappings":";;;;;AAIO,MAAM,gCAAgC,gBAA4C;AAAA,EAAlF,cAAA;AAAA,UAAA,GAAA,SAAA;AACC,kBAAA,MAAA,QAAA,qBAAA;AAAA,EAAA;AAAA,EAEP,WAAW,YAAoD;AACvD,WAAA,KAAK,WAAW,cAAc,UAAU;AAAA,EAChD;AAAA,EAEA,cAAc,YAAoD;AAC1D,WAAA,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,eAAe,YAAY;AAAA,EAC9E;AAAA,EAEA,SAAS,UAAgF;AACjF,WAAA,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,eAAe,UAAsC;AAAA,EACxG;AAAA,EAEA,kBAAkD;AACjD,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAU,MAAM,SAAS,QAAS,CAAA;AAAA,EAC5G;AAAA,EAEA,kBAAkD;AACjD,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAU,MAAM,SAAS,QAAS,CAAA;AAAA,EAC5G;AAAA,EAEA,mBAAmD;AAClD,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAU,MAAM,SAAS,SAAU,CAAA;AAAA,EAC7G;AAAA,EAEA,UAA0C;AAClC,WAAA,KAAK,WAAW,YAAY,KAAK;AAAA,EACzC;AAAA,EAEA,eAA+C;AACvC,WAAA,KAAK,WAAW,iBAAiB,IAAI;AAAA,EAC7C;AAAA,EAEA,YAAY,EAAE,MAAM,aAAa,gBAAgB,2BAA2B,cAAkD;AAC7H,UAAM,UAAU,KAAK;AACf,UAAA,gBAA8C,QAAQ,iBAAiB;AAEnD,8BAAA,oBAAoB,YAAY,MAAM,OAAO;AAC7C,8BAAA,kBAAkB,YAAY,MAAM,aAAa;AAEpE,WAAA;AAAA,MACN;AAAA,MACA,GAAI,OAAO,QAAQ,eAAe,cAAc,CAAK,IAAA,EAAE,YAAY,QAAQ,WAAW;AAAA,MACtF,UAAU,QAAQ,aAAa,SAAY,OAAO,QAAQ;AAAA,MAC1D,MAAM,MAAM,aAAa;AAAA,MACzB,QAAQ,eAAe,QAAQ,QAAQ,MAAM;AAAA,MAC7C,eAAe;AAAA,QACd,YAAY,cAAc,cAAc,YAAY,qBAAqB,IAAI;AAAA,QAC7E,UAAU,cAAc,YAAY,MAAM,SAAS;AAAA,MACpD;AAAA,MACA,GAAI,QAAQ,gBAAgB,EAAE,eAAe,SAAS,CAAC;AAAA,IAAA;AAAA,EAEzD;AACD;AAIgB,SAAA,UAAU,QAA2B,YAA0C;AAC9F,SAAO,IAAI,wBAAwB,EAAE,QAAQ,WAAY,CAAA;AAC1D;"}
1
+ {"version":3,"file":"OneHasOneDefinition.js","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/OneHasOneDefinition.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { EntityConstructor, RelationTarget } from '../types'\nimport { CreateFieldContext, FieldDefinition } from './FieldDefinition'\n\nexport class OneHasOneDefinition extends FieldDefinition<OneHasOneDefinitionOptions> {\n\ttype = 'OneHasOneDefinition' as const\n\n\n\tinversedBy(inversedBy: string): OneHasOneDefinition {\n\t\treturn this.withOption('inversedBy', inversedBy)\n\t}\n\n\tjoiningColumn(columnName: string): OneHasOneDefinition {\n\t\treturn this.withOption('joiningColumn', { ...this.joiningColumn, columnName })\n\t}\n\n\tonDelete(onDelete: Model.OnDelete | `${Model.OnDelete}`): OneHasOneDefinition {\n\t\treturn this.withOption('joiningColumn', { ...this.joiningColumn, onDelete: onDelete as Model.OnDelete })\n\t}\n\n\tcascadeOnDelete(): OneHasOneDefinition {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.cascade })\n\t}\n\n\tsetNullOnDelete(): OneHasOneDefinition {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.setNull })\n\t}\n\n\trestrictOnDelete(): OneHasOneDefinition {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.restrict })\n\t}\n\n\tnotNull(): OneHasOneDefinition {\n\t\treturn this.withOption('nullable', false)\n\t}\n\n\tremoveOrphan(): OneHasOneDefinition {\n\t\treturn this.withOption('orphanRemoval', true)\n\t}\n\n\tcreateField({ name, conventions, entityRegistry, strictDefinitionValidator, entityName }: CreateFieldContext): Model.AnyField {\n\t\tconst options = this.options\n\t\tconst joiningColumn: Partial<Model.JoiningColumn> = options.joiningColumn || {}\n\n\t\tstrictDefinitionValidator.validateInverseSide(entityName, name, options)\n\t\tstrictDefinitionValidator.validateOnCascade(entityName, name, joiningColumn)\n\n\t\treturn {\n\t\t\tname: name,\n\t\t\t...(typeof options.inversedBy === 'undefined' ? {} : { inversedBy: options.inversedBy }),\n\t\t\tnullable: options.nullable === undefined ? true : options.nullable,\n\t\t\ttype: Model.RelationType.OneHasOne,\n\t\t\ttarget: entityRegistry.getName(options.target),\n\t\t\tjoiningColumn: {\n\t\t\t\tcolumnName: joiningColumn.columnName || conventions.getJoiningColumnName(name),\n\t\t\t\tonDelete: joiningColumn.onDelete || Model.OnDelete.restrict,\n\t\t\t},\n\t\t\t...(options.orphanRemoval ? { orphanRemoval: true } : {}),\n\t\t}\n\t}\n\n\tprotected withOption<K extends keyof OneHasOneDefinitionOptions>(key: K, value: OneHasOneDefinitionOptions[K]): OneHasOneDefinition {\n\t\treturn new OneHasOneDefinition({ ...this.options, [key]: value })\n\t}\n}\n\n\nexport function oneHasOne(target: EntityConstructor, inversedBy?: string): OneHasOneDefinition {\n\treturn new OneHasOneDefinition({ target, inversedBy })\n}\n\nexport type OneHasOneDefinitionOptions = {\n\ttarget: RelationTarget\n\tinversedBy?: string\n\tjoiningColumn?: Partial<Model.JoiningColumn>\n\tnullable?: boolean\n\torphanRemoval?: true\n}\n"],"names":[],"mappings":";;;;;AAIO,MAAM,4BAA4B,gBAA4C;AAAA,EAA9E,cAAA;AAAA,UAAA,GAAA,SAAA;AACC,kBAAA,MAAA,QAAA,qBAAA;AAAA,EAAA;AAAA,EAGP,WAAW,YAAyC;AAC5C,WAAA,KAAK,WAAW,cAAc,UAAU;AAAA,EAAA;AAAA,EAGhD,cAAc,YAAyC;AAC/C,WAAA,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,eAAe,YAAY;AAAA,EAAA;AAAA,EAG9E,SAAS,UAAqE;AACtE,WAAA,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,eAAe,UAAsC;AAAA,EAAA;AAAA,EAGxG,kBAAuC;AACtC,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAU,MAAM,SAAS,QAAA,CAAS;AAAA,EAAA;AAAA,EAG5G,kBAAuC;AACtC,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAU,MAAM,SAAS,QAAA,CAAS;AAAA,EAAA;AAAA,EAG5G,mBAAwC;AACvC,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAU,MAAM,SAAS,SAAA,CAAU;AAAA,EAAA;AAAA,EAG7G,UAA+B;AACvB,WAAA,KAAK,WAAW,YAAY,KAAK;AAAA,EAAA;AAAA,EAGzC,eAAoC;AAC5B,WAAA,KAAK,WAAW,iBAAiB,IAAI;AAAA,EAAA;AAAA,EAG7C,YAAY,EAAE,MAAM,aAAa,gBAAgB,2BAA2B,cAAkD;AAC7H,UAAM,UAAU,KAAK;AACf,UAAA,gBAA8C,QAAQ,iBAAiB,CAAC;AAEpD,8BAAA,oBAAoB,YAAY,MAAM,OAAO;AAC7C,8BAAA,kBAAkB,YAAY,MAAM,aAAa;AAEpE,WAAA;AAAA,MACN;AAAA,MACA,GAAI,OAAO,QAAQ,eAAe,cAAc,CAAK,IAAA,EAAE,YAAY,QAAQ,WAAW;AAAA,MACtF,UAAU,QAAQ,aAAa,SAAY,OAAO,QAAQ;AAAA,MAC1D,MAAM,MAAM,aAAa;AAAA,MACzB,QAAQ,eAAe,QAAQ,QAAQ,MAAM;AAAA,MAC7C,eAAe;AAAA,QACd,YAAY,cAAc,cAAc,YAAY,qBAAqB,IAAI;AAAA,QAC7E,UAAU,cAAc,YAAY,MAAM,SAAS;AAAA,MACpD;AAAA,MACA,GAAI,QAAQ,gBAAgB,EAAE,eAAe,KAAA,IAAS,CAAA;AAAA,IACvD;AAAA,EAAA;AAAA,EAGS,WAAuD,KAAQ,OAA2D;AAC5H,WAAA,IAAI,oBAAoB,EAAE,GAAG,KAAK,SAAS,CAAC,GAAG,GAAG,OAAO;AAAA,EAAA;AAElE;AAGgB,SAAA,UAAU,QAA2B,YAA0C;AAC9F,SAAO,IAAI,oBAAoB,EAAE,QAAQ,YAAY;AACtD;"}
@@ -5,7 +5,7 @@ const FieldDefinition = require("./FieldDefinition.cjs");
5
5
  var __defProp = Object.defineProperty;
6
6
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
7
  var __publicField = (obj, key, value) => __defNormalProp(obj, key + "", value);
8
- class OneHasOneInverseDefinitionImpl extends FieldDefinition.FieldDefinition {
8
+ class OneHasOneInverseDefinition extends FieldDefinition.FieldDefinition {
9
9
  constructor() {
10
10
  super(...arguments);
11
11
  __publicField(this, "type", "OneHasOneInverseDefinition");
@@ -23,14 +23,13 @@ class OneHasOneInverseDefinitionImpl extends FieldDefinition.FieldDefinition {
23
23
  nullable: options.nullable === void 0 ? true : options.nullable
24
24
  };
25
25
  }
26
+ withOption(key, value) {
27
+ return new this.constructor({ ...this.options, [key]: value });
28
+ }
26
29
  }
27
30
  function oneHasOneInverse(target, ownedBy) {
28
- return new OneHasOneInverseDefinitionImpl({ target, ownedBy });
29
- }
30
- function oneHasOneInversed(target, ownedBy) {
31
- return new OneHasOneInverseDefinitionImpl({ target, ownedBy });
31
+ return new OneHasOneInverseDefinition({ target, ownedBy });
32
32
  }
33
- exports.OneHasOneInverseDefinitionImpl = OneHasOneInverseDefinitionImpl;
33
+ exports.OneHasOneInverseDefinition = OneHasOneInverseDefinition;
34
34
  exports.oneHasOneInverse = oneHasOneInverse;
35
- exports.oneHasOneInversed = oneHasOneInversed;
36
35
  //# sourceMappingURL=OneHasOneInverseDefinition.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"OneHasOneInverseDefinition.cjs","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { EntityConstructor, Interface } from '../types'\nimport { CreateFieldContext, FieldDefinition } from './FieldDefinition'\nimport { RelationTarget } from '../types'\n\nexport class OneHasOneInverseDefinitionImpl extends FieldDefinition<OneHasOneInverseDefinitionOptions> {\n\ttype = 'OneHasOneInverseDefinition' as const\n\n\tnotNull(): Interface<OneHasOneInverseDefinition> {\n\t\treturn this.withOption('nullable', false)\n\t}\n\n\tcreateField({ name, conventions, entityRegistry }: CreateFieldContext): Model.AnyField {\n\t\tconst options = this.options\n\t\treturn {\n\t\t\tname: name,\n\t\t\townedBy: options.ownedBy,\n\t\t\ttarget: entityRegistry.getName(options.target),\n\t\t\ttype: Model.RelationType.OneHasOne,\n\t\t\tnullable: options.nullable === undefined ? true : options.nullable,\n\t\t}\n\t}\n}\n\nexport type OneHasOneInverseDefinition = Interface<OneHasOneInverseDefinitionImpl>\n/** @deprecated use OneHasOneInverseDefinition */\nexport type OneHasOneInversedDefinition = Interface<OneHasOneInverseDefinitionImpl>\n\nexport function oneHasOneInverse(target: EntityConstructor, ownedBy: string): OneHasOneInverseDefinition {\n\treturn new OneHasOneInverseDefinitionImpl({ target, ownedBy })\n}\n\n/** @deprecated use oneHasOneInverse */\nexport function oneHasOneInversed(target: EntityConstructor, ownedBy: string): OneHasOneInverseDefinition {\n\treturn new OneHasOneInverseDefinitionImpl({ target, ownedBy })\n}\n\nexport type OneHasOneInverseDefinitionOptions = {\n\ttarget: RelationTarget\n\townedBy: string\n\tnullable?: boolean\n}\n"],"names":["FieldDefinition","Model"],"mappings":";;;;;;;AAKO,MAAM,uCAAuCA,gBAAAA,gBAAmD;AAAA,EAAhG,cAAA;AAAA,UAAA,GAAA,SAAA;AACC,kBAAA,MAAA,QAAA,4BAAA;AAAA,EAAA;AAAA,EAEP,UAAiD;AACzC,WAAA,KAAK,WAAW,YAAY,KAAK;AAAA,EACzC;AAAA,EAEA,YAAY,EAAE,MAAM,aAAa,kBAAsD;AACtF,UAAM,UAAU,KAAK;AACd,WAAA;AAAA,MACN;AAAA,MACA,SAAS,QAAQ;AAAA,MACjB,QAAQ,eAAe,QAAQ,QAAQ,MAAM;AAAA,MAC7C,MAAMC,OAAAA,MAAM,aAAa;AAAA,MACzB,UAAU,QAAQ,aAAa,SAAY,OAAO,QAAQ;AAAA,IAAA;AAAA,EAE5D;AACD;AAMgB,SAAA,iBAAiB,QAA2B,SAA6C;AACxG,SAAO,IAAI,+BAA+B,EAAE,QAAQ,QAAS,CAAA;AAC9D;AAGgB,SAAA,kBAAkB,QAA2B,SAA6C;AACzG,SAAO,IAAI,+BAA+B,EAAE,QAAQ,QAAS,CAAA;AAC9D;;;;"}
1
+ {"version":3,"file":"OneHasOneInverseDefinition.cjs","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { EntityConstructor } from '../types'\nimport { CreateFieldContext, FieldDefinition } from './FieldDefinition'\nimport { RelationTarget } from '../types'\n\nexport class OneHasOneInverseDefinition extends FieldDefinition<OneHasOneInverseDefinitionOptions> {\n\ttype = 'OneHasOneInverseDefinition' as const\n\n\tnotNull() {\n\t\treturn this.withOption('nullable', false)\n\t}\n\n\tcreateField({ name, conventions, entityRegistry }: CreateFieldContext): Model.AnyField {\n\t\tconst options = this.options\n\t\treturn {\n\t\t\tname: name,\n\t\t\townedBy: options.ownedBy,\n\t\t\ttarget: entityRegistry.getName(options.target),\n\t\t\ttype: Model.RelationType.OneHasOne,\n\t\t\tnullable: options.nullable === undefined ? true : options.nullable,\n\t\t}\n\t}\n\n\tprotected withOption<K extends keyof OneHasOneInverseDefinitionOptions>(this: any, key: K, value: OneHasOneInverseDefinitionOptions[K]): OneHasOneInverseDefinition {\n\t\treturn new this.constructor({ ...this.options, [key]: value })\n\t}\n}\n\n\nexport function oneHasOneInverse(target: EntityConstructor, ownedBy: string): OneHasOneInverseDefinition {\n\treturn new OneHasOneInverseDefinition({ target, ownedBy })\n}\n\n\nexport type OneHasOneInverseDefinitionOptions = {\n\ttarget: RelationTarget\n\townedBy: string\n\tnullable?: boolean\n}\n"],"names":["FieldDefinition","Model"],"mappings":";;;;;;;AAKO,MAAM,mCAAmCA,gBAAAA,gBAAmD;AAAA,EAA5F,cAAA;AAAA,UAAA,GAAA,SAAA;AACC,kBAAA,MAAA,QAAA,4BAAA;AAAA,EAAA;AAAA,EAEP,UAAU;AACF,WAAA,KAAK,WAAW,YAAY,KAAK;AAAA,EAAA;AAAA,EAGzC,YAAY,EAAE,MAAM,aAAa,kBAAsD;AACtF,UAAM,UAAU,KAAK;AACd,WAAA;AAAA,MACN;AAAA,MACA,SAAS,QAAQ;AAAA,MACjB,QAAQ,eAAe,QAAQ,QAAQ,MAAM;AAAA,MAC7C,MAAMC,OAAAA,MAAM,aAAa;AAAA,MACzB,UAAU,QAAQ,aAAa,SAAY,OAAO,QAAQ;AAAA,IAC3D;AAAA,EAAA;AAAA,EAGS,WAAyE,KAAQ,OAAyE;AAC5J,WAAA,IAAI,KAAK,YAAY,EAAE,GAAG,KAAK,SAAS,CAAC,GAAG,GAAG,OAAO;AAAA,EAAA;AAE/D;AAGgB,SAAA,iBAAiB,QAA2B,SAA6C;AACxG,SAAO,IAAI,2BAA2B,EAAE,QAAQ,SAAS;AAC1D;;;"}
@@ -3,7 +3,7 @@ import { FieldDefinition } from "./FieldDefinition.js";
3
3
  var __defProp = Object.defineProperty;
4
4
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
5
5
  var __publicField = (obj, key, value) => __defNormalProp(obj, key + "", value);
6
- class OneHasOneInverseDefinitionImpl extends FieldDefinition {
6
+ class OneHasOneInverseDefinition extends FieldDefinition {
7
7
  constructor() {
8
8
  super(...arguments);
9
9
  __publicField(this, "type", "OneHasOneInverseDefinition");
@@ -21,16 +21,15 @@ class OneHasOneInverseDefinitionImpl extends FieldDefinition {
21
21
  nullable: options.nullable === void 0 ? true : options.nullable
22
22
  };
23
23
  }
24
+ withOption(key, value) {
25
+ return new this.constructor({ ...this.options, [key]: value });
26
+ }
24
27
  }
25
28
  function oneHasOneInverse(target, ownedBy) {
26
- return new OneHasOneInverseDefinitionImpl({ target, ownedBy });
27
- }
28
- function oneHasOneInversed(target, ownedBy) {
29
- return new OneHasOneInverseDefinitionImpl({ target, ownedBy });
29
+ return new OneHasOneInverseDefinition({ target, ownedBy });
30
30
  }
31
31
  export {
32
- OneHasOneInverseDefinitionImpl,
33
- oneHasOneInverse,
34
- oneHasOneInversed
32
+ OneHasOneInverseDefinition,
33
+ oneHasOneInverse
35
34
  };
36
35
  //# sourceMappingURL=OneHasOneInverseDefinition.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OneHasOneInverseDefinition.js","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { EntityConstructor, Interface } from '../types'\nimport { CreateFieldContext, FieldDefinition } from './FieldDefinition'\nimport { RelationTarget } from '../types'\n\nexport class OneHasOneInverseDefinitionImpl extends FieldDefinition<OneHasOneInverseDefinitionOptions> {\n\ttype = 'OneHasOneInverseDefinition' as const\n\n\tnotNull(): Interface<OneHasOneInverseDefinition> {\n\t\treturn this.withOption('nullable', false)\n\t}\n\n\tcreateField({ name, conventions, entityRegistry }: CreateFieldContext): Model.AnyField {\n\t\tconst options = this.options\n\t\treturn {\n\t\t\tname: name,\n\t\t\townedBy: options.ownedBy,\n\t\t\ttarget: entityRegistry.getName(options.target),\n\t\t\ttype: Model.RelationType.OneHasOne,\n\t\t\tnullable: options.nullable === undefined ? true : options.nullable,\n\t\t}\n\t}\n}\n\nexport type OneHasOneInverseDefinition = Interface<OneHasOneInverseDefinitionImpl>\n/** @deprecated use OneHasOneInverseDefinition */\nexport type OneHasOneInversedDefinition = Interface<OneHasOneInverseDefinitionImpl>\n\nexport function oneHasOneInverse(target: EntityConstructor, ownedBy: string): OneHasOneInverseDefinition {\n\treturn new OneHasOneInverseDefinitionImpl({ target, ownedBy })\n}\n\n/** @deprecated use oneHasOneInverse */\nexport function oneHasOneInversed(target: EntityConstructor, ownedBy: string): OneHasOneInverseDefinition {\n\treturn new OneHasOneInverseDefinitionImpl({ target, ownedBy })\n}\n\nexport type OneHasOneInverseDefinitionOptions = {\n\ttarget: RelationTarget\n\townedBy: string\n\tnullable?: boolean\n}\n"],"names":[],"mappings":";;;;;AAKO,MAAM,uCAAuC,gBAAmD;AAAA,EAAhG,cAAA;AAAA,UAAA,GAAA,SAAA;AACC,kBAAA,MAAA,QAAA,4BAAA;AAAA,EAAA;AAAA,EAEP,UAAiD;AACzC,WAAA,KAAK,WAAW,YAAY,KAAK;AAAA,EACzC;AAAA,EAEA,YAAY,EAAE,MAAM,aAAa,kBAAsD;AACtF,UAAM,UAAU,KAAK;AACd,WAAA;AAAA,MACN;AAAA,MACA,SAAS,QAAQ;AAAA,MACjB,QAAQ,eAAe,QAAQ,QAAQ,MAAM;AAAA,MAC7C,MAAM,MAAM,aAAa;AAAA,MACzB,UAAU,QAAQ,aAAa,SAAY,OAAO,QAAQ;AAAA,IAAA;AAAA,EAE5D;AACD;AAMgB,SAAA,iBAAiB,QAA2B,SAA6C;AACxG,SAAO,IAAI,+BAA+B,EAAE,QAAQ,QAAS,CAAA;AAC9D;AAGgB,SAAA,kBAAkB,QAA2B,SAA6C;AACzG,SAAO,IAAI,+BAA+B,EAAE,QAAQ,QAAS,CAAA;AAC9D;"}
1
+ {"version":3,"file":"OneHasOneInverseDefinition.js","sources":["../../../../../../../packages/schema-definition/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { EntityConstructor } from '../types'\nimport { CreateFieldContext, FieldDefinition } from './FieldDefinition'\nimport { RelationTarget } from '../types'\n\nexport class OneHasOneInverseDefinition extends FieldDefinition<OneHasOneInverseDefinitionOptions> {\n\ttype = 'OneHasOneInverseDefinition' as const\n\n\tnotNull() {\n\t\treturn this.withOption('nullable', false)\n\t}\n\n\tcreateField({ name, conventions, entityRegistry }: CreateFieldContext): Model.AnyField {\n\t\tconst options = this.options\n\t\treturn {\n\t\t\tname: name,\n\t\t\townedBy: options.ownedBy,\n\t\t\ttarget: entityRegistry.getName(options.target),\n\t\t\ttype: Model.RelationType.OneHasOne,\n\t\t\tnullable: options.nullable === undefined ? true : options.nullable,\n\t\t}\n\t}\n\n\tprotected withOption<K extends keyof OneHasOneInverseDefinitionOptions>(this: any, key: K, value: OneHasOneInverseDefinitionOptions[K]): OneHasOneInverseDefinition {\n\t\treturn new this.constructor({ ...this.options, [key]: value })\n\t}\n}\n\n\nexport function oneHasOneInverse(target: EntityConstructor, ownedBy: string): OneHasOneInverseDefinition {\n\treturn new OneHasOneInverseDefinition({ target, ownedBy })\n}\n\n\nexport type OneHasOneInverseDefinitionOptions = {\n\ttarget: RelationTarget\n\townedBy: string\n\tnullable?: boolean\n}\n"],"names":[],"mappings":";;;;;AAKO,MAAM,mCAAmC,gBAAmD;AAAA,EAA5F,cAAA;AAAA,UAAA,GAAA,SAAA;AACC,kBAAA,MAAA,QAAA,4BAAA;AAAA,EAAA;AAAA,EAEP,UAAU;AACF,WAAA,KAAK,WAAW,YAAY,KAAK;AAAA,EAAA;AAAA,EAGzC,YAAY,EAAE,MAAM,aAAa,kBAAsD;AACtF,UAAM,UAAU,KAAK;AACd,WAAA;AAAA,MACN;AAAA,MACA,SAAS,QAAQ;AAAA,MACjB,QAAQ,eAAe,QAAQ,QAAQ,MAAM;AAAA,MAC7C,MAAM,MAAM,aAAa;AAAA,MACzB,UAAU,QAAQ,aAAa,SAAY,OAAO,QAAQ;AAAA,IAC3D;AAAA,EAAA;AAAA,EAGS,WAAyE,KAAQ,OAAyE;AAC5J,WAAA,IAAI,KAAK,YAAY,EAAE,GAAG,KAAK,SAAS,CAAC,GAAG,GAAG,OAAO;AAAA,EAAA;AAE/D;AAGgB,SAAA,iBAAiB,QAA2B,SAA6C;AACxG,SAAO,IAAI,2BAA2B,EAAE,QAAQ,SAAS;AAC1D;"}
@@ -53,20 +53,18 @@ exports.jsonColumn = ColumnDefinition.jsonColumn;
53
53
  exports.stringColumn = ColumnDefinition.stringColumn;
54
54
  exports.uuidColumn = ColumnDefinition.uuidColumn;
55
55
  exports.FieldDefinition = FieldDefinition.FieldDefinition;
56
- exports.ManyHasManyDefinitionImpl = ManyHasManyDefinition.ManyHasManyDefinitionImpl;
56
+ exports.ManyHasManyDefinition = ManyHasManyDefinition.ManyHasManyDefinition;
57
57
  exports.manyHasMany = ManyHasManyDefinition.manyHasMany;
58
- exports.ManyHasManyInverseDefinitionImpl = ManyHasManyInverseDefinition.ManyHasManyInverseDefinitionImpl;
58
+ exports.ManyHasManyInverseDefinition = ManyHasManyInverseDefinition.ManyHasManyInverseDefinition;
59
59
  exports.manyHasManyInverse = ManyHasManyInverseDefinition.manyHasManyInverse;
60
- exports.manyHasManyInversed = ManyHasManyInverseDefinition.manyHasManyInversed;
61
- exports.ManyHasOneDefinitionImpl = ManyHasOneDefinition.ManyHasOneDefinitionImpl;
60
+ exports.ManyHasOneDefinition = ManyHasOneDefinition.ManyHasOneDefinition;
62
61
  exports.manyHasOne = ManyHasOneDefinition.manyHasOne;
63
- exports.OneHasManyDefinitionImpl = OneHasManyDefinition.OneHasManyDefinitionImpl;
62
+ exports.OneHasManyDefinition = OneHasManyDefinition.OneHasManyDefinition;
64
63
  exports.oneHasMany = OneHasManyDefinition.oneHasMany;
65
- exports.OneHasOneDefinitionImpl = OneHasOneDefinition.OneHasOneDefinitionImpl;
64
+ exports.OneHasOneDefinition = OneHasOneDefinition.OneHasOneDefinition;
66
65
  exports.oneHasOne = OneHasOneDefinition.oneHasOne;
67
- exports.OneHasOneInverseDefinitionImpl = OneHasOneInverseDefinition.OneHasOneInverseDefinitionImpl;
66
+ exports.OneHasOneInverseDefinition = OneHasOneInverseDefinition.OneHasOneInverseDefinition;
68
67
  exports.oneHasOneInverse = OneHasOneInverseDefinition.oneHasOneInverse;
69
- exports.oneHasOneInversed = OneHasOneInverseDefinition.oneHasOneInversed;
70
68
  exports.DisableEventLog = EventLogDefinition.DisableEventLog;
71
69
  exports.Index = IndexDefinition.Index;
72
70
  exports.OrderBy = OrderByDefinition.OrderBy;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../../../../packages/schema-definition/src/model/definition/index.ts"],"sourcesContent":["import { Interface } from './types'\nimport { Model } from '@contember/schema'\nimport { EnumDefinition } from './EnumDefinition'\nimport { SchemaBuilder } from './internal'\nimport 'reflect-metadata'\nimport { FieldDefinition } from './fieldDefinitions'\nimport { isEntityConstructor } from '../../utils'\nimport { DefaultNamingConventions } from '@contember/schema-utils'\nimport { StrictOptions, StrictDefinitionValidator } from '../../strict'\n\nexport * from './fieldDefinitions'\nexport * from './EventLogDefinition'\nexport * from './IndexDefinition'\nexport * from './OrderByDefinition'\nexport * from './EnumDefinition'\nexport * from './UniqueDefinition'\nexport * from './ViewDefinition'\nexport { extendEntity, type EntityExtension } from './extensions'\n\nexport abstract class Entity {\n\t[key: string]: Interface<FieldDefinition<any>> | undefined\n}\n\nexport type ModelDefinition<M> = {\n\t[K in keyof M]: unknown\n}\n\nexport function createModel<M extends ModelDefinition<M>>(definitions: M, options: {\n\tstrictDefinitionValidator?: StrictDefinitionValidator\n} = {}): Model.Schema {\n\tconst schemaBuilder = new SchemaBuilder(\n\t\tnew DefaultNamingConventions(),\n\t\toptions.strictDefinitionValidator,\n\t)\n\tfor (const [name, definition] of Object.entries(definitions)) {\n\t\tif (definition instanceof EnumDefinition) {\n\t\t\tschemaBuilder.addEnum(name, definition)\n\t\t} else if (isEntityConstructor(definition)) {\n\t\t\tschemaBuilder.addEntity(name, definition)\n\t\t}\n\t}\n\tconst schema = schemaBuilder.createSchema()\n\treturn schema\n}\n\nexport const OnDelete = Model.OnDelete\nexport const OrderDirection = Model.OrderDirection\nexport { EnumDefinition }\n"],"names":["SchemaBuilder","DefaultNamingConventions","EnumDefinition","isEntityConstructor","schema","Model"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAmBO,MAAe,OAAO;AAE7B;AAMO,SAAS,YAA0C,aAAgB,UAEtE,IAAkB;AACrB,QAAM,gBAAgB,IAAIA,cAAA;AAAA,IACzB,IAAIC,qCAAyB;AAAA,IAC7B,QAAQ;AAAA,EAAA;AAET,aAAW,CAAC,MAAM,UAAU,KAAK,OAAO,QAAQ,WAAW,GAAG;AAC7D,QAAI,sBAAsBC,eAAAA,gBAAgB;AAC3B,oBAAA,QAAQ,MAAM,UAAU;AAAA,IAAA,WAC5BC,uBAAAA,oBAAoB,UAAU,GAAG;AAC7B,oBAAA,UAAU,MAAM,UAAU;AAAA,IACzC;AAAA,EACD;AACM,QAAAC,UAAS,cAAc;AACtB,SAAAA;AACR;AAEO,MAAM,WAAWC,OAAM,MAAA;AACvB,MAAM,iBAAiBA,OAAAA,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../../../../packages/schema-definition/src/model/definition/index.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { EnumDefinition } from './EnumDefinition'\nimport { SchemaBuilder } from './internal'\nimport 'reflect-metadata'\nimport { FieldDefinition } from './fieldDefinitions'\nimport { isEntityConstructor } from '../../utils'\nimport { DefaultNamingConventions } from '@contember/schema-utils'\nimport { StrictOptions, StrictDefinitionValidator } from '../../strict'\n\nexport * from './fieldDefinitions'\nexport * from './EventLogDefinition'\nexport * from './IndexDefinition'\nexport * from './OrderByDefinition'\nexport * from './EnumDefinition'\nexport * from './UniqueDefinition'\nexport * from './ViewDefinition'\nexport { extendEntity, type EntityExtension } from './extensions'\n\nexport abstract class Entity {\n\t[key: string]: FieldDefinition<any> | undefined\n}\n\nexport type ModelDefinition<M> = {\n\t[K in keyof M]: unknown\n}\n\nexport function createModel<M extends ModelDefinition<M>>(definitions: M, options: {\n\tstrictDefinitionValidator?: StrictDefinitionValidator\n} = {}): Model.Schema {\n\tconst schemaBuilder = new SchemaBuilder(\n\t\tnew DefaultNamingConventions(),\n\t\toptions.strictDefinitionValidator,\n\t)\n\tfor (const [name, definition] of Object.entries(definitions)) {\n\t\tif (definition instanceof EnumDefinition) {\n\t\t\tschemaBuilder.addEnum(name, definition)\n\t\t} else if (isEntityConstructor(definition)) {\n\t\t\tschemaBuilder.addEntity(name, definition)\n\t\t}\n\t}\n\tconst schema = schemaBuilder.createSchema()\n\treturn schema\n}\n\nexport const OnDelete = Model.OnDelete\nexport const OrderDirection = Model.OrderDirection\nexport { EnumDefinition }\n"],"names":["SchemaBuilder","DefaultNamingConventions","EnumDefinition","isEntityConstructor","schema","Model"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAkBO,MAAe,OAAO;AAE7B;AAMO,SAAS,YAA0C,aAAgB,UAEtE,IAAkB;AACrB,QAAM,gBAAgB,IAAIA,cAAA;AAAA,IACzB,IAAIC,qCAAyB;AAAA,IAC7B,QAAQ;AAAA,EACT;AACA,aAAW,CAAC,MAAM,UAAU,KAAK,OAAO,QAAQ,WAAW,GAAG;AAC7D,QAAI,sBAAsBC,eAAAA,gBAAgB;AAC3B,oBAAA,QAAQ,MAAM,UAAU;AAAA,IAAA,WAC5BC,uBAAAA,oBAAoB,UAAU,GAAG;AAC7B,oBAAA,UAAU,MAAM,UAAU;AAAA,IAAA;AAAA,EACzC;AAEK,QAAAC,UAAS,cAAc,aAAa;AACnC,SAAAA;AACR;AAEO,MAAM,WAAWC,OAAAA,MAAM;AACvB,MAAM,iBAAiBA,OAAAA,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -7,12 +7,12 @@ import { isEntityConstructor } from "../../utils/filterEntityDefinition.js";
7
7
  import { DefaultNamingConventions } from "@contember/schema-utils";
8
8
  import { ColumnDefinition, boolColumn, column, dateColumn, dateTimeColumn, doubleColumn, enumColumn, intColumn, jsonColumn, stringColumn, uuidColumn } from "./fieldDefinitions/ColumnDefinition.js";
9
9
  import { FieldDefinition } from "./fieldDefinitions/FieldDefinition.js";
10
- import { ManyHasManyDefinitionImpl, manyHasMany } from "./fieldDefinitions/ManyHasManyDefinition.js";
11
- import { ManyHasManyInverseDefinitionImpl, manyHasManyInverse, manyHasManyInversed } from "./fieldDefinitions/ManyHasManyInverseDefinition.js";
12
- import { ManyHasOneDefinitionImpl, manyHasOne } from "./fieldDefinitions/ManyHasOneDefinition.js";
13
- import { OneHasManyDefinitionImpl, oneHasMany } from "./fieldDefinitions/OneHasManyDefinition.js";
14
- import { OneHasOneDefinitionImpl, oneHasOne } from "./fieldDefinitions/OneHasOneDefinition.js";
15
- import { OneHasOneInverseDefinitionImpl, oneHasOneInverse, oneHasOneInversed } from "./fieldDefinitions/OneHasOneInverseDefinition.js";
10
+ import { ManyHasManyDefinition, manyHasMany } from "./fieldDefinitions/ManyHasManyDefinition.js";
11
+ import { ManyHasManyInverseDefinition, manyHasManyInverse } from "./fieldDefinitions/ManyHasManyInverseDefinition.js";
12
+ import { ManyHasOneDefinition, manyHasOne } from "./fieldDefinitions/ManyHasOneDefinition.js";
13
+ import { OneHasManyDefinition, oneHasMany } from "./fieldDefinitions/OneHasManyDefinition.js";
14
+ import { OneHasOneDefinition, oneHasOne } from "./fieldDefinitions/OneHasOneDefinition.js";
15
+ import { OneHasOneInverseDefinition, oneHasOneInverse } from "./fieldDefinitions/OneHasOneInverseDefinition.js";
16
16
  import { DisableEventLog } from "./EventLogDefinition.js";
17
17
  import { Index } from "./IndexDefinition.js";
18
18
  import { OrderBy } from "./OrderByDefinition.js";
@@ -45,13 +45,13 @@ export {
45
45
  EnumDefinition,
46
46
  FieldDefinition,
47
47
  Index,
48
- ManyHasManyDefinitionImpl,
49
- ManyHasManyInverseDefinitionImpl,
50
- ManyHasOneDefinitionImpl,
48
+ ManyHasManyDefinition,
49
+ ManyHasManyInverseDefinition,
50
+ ManyHasOneDefinition,
51
51
  OnDelete,
52
- OneHasManyDefinitionImpl,
53
- OneHasOneDefinitionImpl,
54
- OneHasOneInverseDefinitionImpl,
52
+ OneHasManyDefinition,
53
+ OneHasOneDefinition,
54
+ OneHasOneInverseDefinition,
55
55
  OrderBy,
56
56
  OrderDirection,
57
57
  Unique,
@@ -69,12 +69,10 @@ export {
69
69
  jsonColumn,
70
70
  manyHasMany,
71
71
  manyHasManyInverse,
72
- manyHasManyInversed,
73
72
  manyHasOne,
74
73
  oneHasMany,
75
74
  oneHasOne,
76
75
  oneHasOneInverse,
77
- oneHasOneInversed,
78
76
  stringColumn,
79
77
  uuidColumn
80
78
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../packages/schema-definition/src/model/definition/index.ts"],"sourcesContent":["import { Interface } from './types'\nimport { Model } from '@contember/schema'\nimport { EnumDefinition } from './EnumDefinition'\nimport { SchemaBuilder } from './internal'\nimport 'reflect-metadata'\nimport { FieldDefinition } from './fieldDefinitions'\nimport { isEntityConstructor } from '../../utils'\nimport { DefaultNamingConventions } from '@contember/schema-utils'\nimport { StrictOptions, StrictDefinitionValidator } from '../../strict'\n\nexport * from './fieldDefinitions'\nexport * from './EventLogDefinition'\nexport * from './IndexDefinition'\nexport * from './OrderByDefinition'\nexport * from './EnumDefinition'\nexport * from './UniqueDefinition'\nexport * from './ViewDefinition'\nexport { extendEntity, type EntityExtension } from './extensions'\n\nexport abstract class Entity {\n\t[key: string]: Interface<FieldDefinition<any>> | undefined\n}\n\nexport type ModelDefinition<M> = {\n\t[K in keyof M]: unknown\n}\n\nexport function createModel<M extends ModelDefinition<M>>(definitions: M, options: {\n\tstrictDefinitionValidator?: StrictDefinitionValidator\n} = {}): Model.Schema {\n\tconst schemaBuilder = new SchemaBuilder(\n\t\tnew DefaultNamingConventions(),\n\t\toptions.strictDefinitionValidator,\n\t)\n\tfor (const [name, definition] of Object.entries(definitions)) {\n\t\tif (definition instanceof EnumDefinition) {\n\t\t\tschemaBuilder.addEnum(name, definition)\n\t\t} else if (isEntityConstructor(definition)) {\n\t\t\tschemaBuilder.addEntity(name, definition)\n\t\t}\n\t}\n\tconst schema = schemaBuilder.createSchema()\n\treturn schema\n}\n\nexport const OnDelete = Model.OnDelete\nexport const OrderDirection = Model.OrderDirection\nexport { EnumDefinition }\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAmBO,MAAe,OAAO;AAE7B;AAMO,SAAS,YAA0C,aAAgB,UAEtE,IAAkB;AACrB,QAAM,gBAAgB,IAAI;AAAA,IACzB,IAAI,yBAAyB;AAAA,IAC7B,QAAQ;AAAA,EAAA;AAET,aAAW,CAAC,MAAM,UAAU,KAAK,OAAO,QAAQ,WAAW,GAAG;AAC7D,QAAI,sBAAsB,gBAAgB;AAC3B,oBAAA,QAAQ,MAAM,UAAU;AAAA,IAAA,WAC5B,oBAAoB,UAAU,GAAG;AAC7B,oBAAA,UAAU,MAAM,UAAU;AAAA,IACzC;AAAA,EACD;AACM,QAAA,SAAS,cAAc;AACtB,SAAA;AACR;AAEO,MAAM,WAAW,MAAM;AACvB,MAAM,iBAAiB,MAAM;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../packages/schema-definition/src/model/definition/index.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { EnumDefinition } from './EnumDefinition'\nimport { SchemaBuilder } from './internal'\nimport 'reflect-metadata'\nimport { FieldDefinition } from './fieldDefinitions'\nimport { isEntityConstructor } from '../../utils'\nimport { DefaultNamingConventions } from '@contember/schema-utils'\nimport { StrictOptions, StrictDefinitionValidator } from '../../strict'\n\nexport * from './fieldDefinitions'\nexport * from './EventLogDefinition'\nexport * from './IndexDefinition'\nexport * from './OrderByDefinition'\nexport * from './EnumDefinition'\nexport * from './UniqueDefinition'\nexport * from './ViewDefinition'\nexport { extendEntity, type EntityExtension } from './extensions'\n\nexport abstract class Entity {\n\t[key: string]: FieldDefinition<any> | undefined\n}\n\nexport type ModelDefinition<M> = {\n\t[K in keyof M]: unknown\n}\n\nexport function createModel<M extends ModelDefinition<M>>(definitions: M, options: {\n\tstrictDefinitionValidator?: StrictDefinitionValidator\n} = {}): Model.Schema {\n\tconst schemaBuilder = new SchemaBuilder(\n\t\tnew DefaultNamingConventions(),\n\t\toptions.strictDefinitionValidator,\n\t)\n\tfor (const [name, definition] of Object.entries(definitions)) {\n\t\tif (definition instanceof EnumDefinition) {\n\t\t\tschemaBuilder.addEnum(name, definition)\n\t\t} else if (isEntityConstructor(definition)) {\n\t\t\tschemaBuilder.addEntity(name, definition)\n\t\t}\n\t}\n\tconst schema = schemaBuilder.createSchema()\n\treturn schema\n}\n\nexport const OnDelete = Model.OnDelete\nexport const OrderDirection = Model.OrderDirection\nexport { EnumDefinition }\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAkBO,MAAe,OAAO;AAE7B;AAMO,SAAS,YAA0C,aAAgB,UAEtE,IAAkB;AACrB,QAAM,gBAAgB,IAAI;AAAA,IACzB,IAAI,yBAAyB;AAAA,IAC7B,QAAQ;AAAA,EACT;AACA,aAAW,CAAC,MAAM,UAAU,KAAK,OAAO,QAAQ,WAAW,GAAG;AAC7D,QAAI,sBAAsB,gBAAgB;AAC3B,oBAAA,QAAQ,MAAM,UAAU;AAAA,IAAA,WAC5B,oBAAoB,UAAU,GAAG;AAC7B,oBAAA,UAAU,MAAM,UAAU;AAAA,IAAA;AAAA,EACzC;AAEK,QAAA,SAAS,cAAc,aAAa;AACnC,SAAA;AACR;AAEO,MAAM,WAAW,MAAM;AACvB,MAAM,iBAAiB,MAAM;"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityRegistry.cjs","sources":["../../../../../../../packages/schema-definition/src/model/definition/internal/EntityRegistry.ts"],"sourcesContent":["import { EntityConstructor } from '../../../utils'\n\nexport class EntityRegistry {\n\tpublic readonly entities: Record<string, EntityConstructor> = {}\n\n\tregister(name: string, definition: EntityConstructor) {\n\t\tif (this.entities[name]) {\n\t\t\tthrow new Error(`Entity with name ${name} is already registered`)\n\t\t}\n\t\tthis.entities[name] = definition\n\t}\n\n\thas(definition: EntityConstructor): boolean {\n\t\treturn Object.values(this.entities).includes(definition)\n\t}\n\n\tgetName(definition: EntityConstructor): string {\n\t\tfor (const [name, def] of Object.entries(this.entities)) {\n\t\t\tif (def === definition) {\n\t\t\t\treturn name\n\t\t\t}\n\t\t}\n\t\tthrow new Error(`Entity ${definition.name} is not registered. Have you exported the definition?`)\n\t}\n}\n"],"names":[],"mappings":";;;;;AAEO,MAAM,eAAe;AAAA,EAArB,cAAA;AACN,kBAAA,MAAgB,YAA8C,CAAA,CAAC;AAAA,EAAA;AAAA,EAE/D,SAAS,MAAc,YAA+B;AACjD,QAAA,KAAK,SAAS,IAAI,GAAG;AACxB,YAAM,IAAI,MAAM,oBAAoB,IAAI,wBAAwB;AAAA,IACjE;AACK,SAAA,SAAS,IAAI,IAAI;AAAA,EACvB;AAAA,EAEA,IAAI,YAAwC;AAC3C,WAAO,OAAO,OAAO,KAAK,QAAQ,EAAE,SAAS,UAAU;AAAA,EACxD;AAAA,EAEA,QAAQ,YAAuC;AACnC,eAAA,CAAC,MAAM,GAAG,KAAK,OAAO,QAAQ,KAAK,QAAQ,GAAG;AACxD,UAAI,QAAQ,YAAY;AAChB,eAAA;AAAA,MACR;AAAA,IACD;AACA,UAAM,IAAI,MAAM,UAAU,WAAW,IAAI,uDAAuD;AAAA,EACjG;AACD;;"}
1
+ {"version":3,"file":"EntityRegistry.cjs","sources":["../../../../../../../packages/schema-definition/src/model/definition/internal/EntityRegistry.ts"],"sourcesContent":["import { EntityConstructor } from '../../../utils'\n\nexport class EntityRegistry {\n\tpublic readonly entities: Record<string, EntityConstructor> = {}\n\n\tregister(name: string, definition: EntityConstructor) {\n\t\tif (this.entities[name]) {\n\t\t\tthrow new Error(`Entity with name ${name} is already registered`)\n\t\t}\n\t\tthis.entities[name] = definition\n\t}\n\n\thas(definition: EntityConstructor): boolean {\n\t\treturn Object.values(this.entities).includes(definition)\n\t}\n\n\tgetName(definition: EntityConstructor): string {\n\t\tfor (const [name, def] of Object.entries(this.entities)) {\n\t\t\tif (def === definition) {\n\t\t\t\treturn name\n\t\t\t}\n\t\t}\n\t\tthrow new Error(`Entity ${definition.name} is not registered. Have you exported the definition?`)\n\t}\n}\n"],"names":[],"mappings":";;;;;AAEO,MAAM,eAAe;AAAA,EAArB,cAAA;AACN,kBAAA,MAAgB,YAA8C,EAAC;AAAA,EAAA;AAAA,EAE/D,SAAS,MAAc,YAA+B;AACjD,QAAA,KAAK,SAAS,IAAI,GAAG;AACxB,YAAM,IAAI,MAAM,oBAAoB,IAAI,wBAAwB;AAAA,IAAA;AAE5D,SAAA,SAAS,IAAI,IAAI;AAAA,EAAA;AAAA,EAGvB,IAAI,YAAwC;AAC3C,WAAO,OAAO,OAAO,KAAK,QAAQ,EAAE,SAAS,UAAU;AAAA,EAAA;AAAA,EAGxD,QAAQ,YAAuC;AACnC,eAAA,CAAC,MAAM,GAAG,KAAK,OAAO,QAAQ,KAAK,QAAQ,GAAG;AACxD,UAAI,QAAQ,YAAY;AAChB,eAAA;AAAA,MAAA;AAAA,IACR;AAED,UAAM,IAAI,MAAM,UAAU,WAAW,IAAI,uDAAuD;AAAA,EAAA;AAElG;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityRegistry.js","sources":["../../../../../../../packages/schema-definition/src/model/definition/internal/EntityRegistry.ts"],"sourcesContent":["import { EntityConstructor } from '../../../utils'\n\nexport class EntityRegistry {\n\tpublic readonly entities: Record<string, EntityConstructor> = {}\n\n\tregister(name: string, definition: EntityConstructor) {\n\t\tif (this.entities[name]) {\n\t\t\tthrow new Error(`Entity with name ${name} is already registered`)\n\t\t}\n\t\tthis.entities[name] = definition\n\t}\n\n\thas(definition: EntityConstructor): boolean {\n\t\treturn Object.values(this.entities).includes(definition)\n\t}\n\n\tgetName(definition: EntityConstructor): string {\n\t\tfor (const [name, def] of Object.entries(this.entities)) {\n\t\t\tif (def === definition) {\n\t\t\t\treturn name\n\t\t\t}\n\t\t}\n\t\tthrow new Error(`Entity ${definition.name} is not registered. Have you exported the definition?`)\n\t}\n}\n"],"names":[],"mappings":";;;AAEO,MAAM,eAAe;AAAA,EAArB,cAAA;AACN,kBAAA,MAAgB,YAA8C,CAAA,CAAC;AAAA,EAAA;AAAA,EAE/D,SAAS,MAAc,YAA+B;AACjD,QAAA,KAAK,SAAS,IAAI,GAAG;AACxB,YAAM,IAAI,MAAM,oBAAoB,IAAI,wBAAwB;AAAA,IACjE;AACK,SAAA,SAAS,IAAI,IAAI;AAAA,EACvB;AAAA,EAEA,IAAI,YAAwC;AAC3C,WAAO,OAAO,OAAO,KAAK,QAAQ,EAAE,SAAS,UAAU;AAAA,EACxD;AAAA,EAEA,QAAQ,YAAuC;AACnC,eAAA,CAAC,MAAM,GAAG,KAAK,OAAO,QAAQ,KAAK,QAAQ,GAAG;AACxD,UAAI,QAAQ,YAAY;AAChB,eAAA;AAAA,MACR;AAAA,IACD;AACA,UAAM,IAAI,MAAM,UAAU,WAAW,IAAI,uDAAuD;AAAA,EACjG;AACD;"}
1
+ {"version":3,"file":"EntityRegistry.js","sources":["../../../../../../../packages/schema-definition/src/model/definition/internal/EntityRegistry.ts"],"sourcesContent":["import { EntityConstructor } from '../../../utils'\n\nexport class EntityRegistry {\n\tpublic readonly entities: Record<string, EntityConstructor> = {}\n\n\tregister(name: string, definition: EntityConstructor) {\n\t\tif (this.entities[name]) {\n\t\t\tthrow new Error(`Entity with name ${name} is already registered`)\n\t\t}\n\t\tthis.entities[name] = definition\n\t}\n\n\thas(definition: EntityConstructor): boolean {\n\t\treturn Object.values(this.entities).includes(definition)\n\t}\n\n\tgetName(definition: EntityConstructor): string {\n\t\tfor (const [name, def] of Object.entries(this.entities)) {\n\t\t\tif (def === definition) {\n\t\t\t\treturn name\n\t\t\t}\n\t\t}\n\t\tthrow new Error(`Entity ${definition.name} is not registered. Have you exported the definition?`)\n\t}\n}\n"],"names":[],"mappings":";;;AAEO,MAAM,eAAe;AAAA,EAArB,cAAA;AACN,kBAAA,MAAgB,YAA8C,EAAC;AAAA,EAAA;AAAA,EAE/D,SAAS,MAAc,YAA+B;AACjD,QAAA,KAAK,SAAS,IAAI,GAAG;AACxB,YAAM,IAAI,MAAM,oBAAoB,IAAI,wBAAwB;AAAA,IAAA;AAE5D,SAAA,SAAS,IAAI,IAAI;AAAA,EAAA;AAAA,EAGvB,IAAI,YAAwC;AAC3C,WAAO,OAAO,OAAO,KAAK,QAAQ,EAAE,SAAS,UAAU;AAAA,EAAA;AAAA,EAGxD,QAAQ,YAAuC;AACnC,eAAA,CAAC,MAAM,GAAG,KAAK,OAAO,QAAQ,KAAK,QAAQ,GAAG;AACxD,UAAI,QAAQ,YAAY;AAChB,eAAA;AAAA,MAAA;AAAA,IACR;AAED,UAAM,IAAI,MAAM,UAAU,WAAW,IAAI,uDAAuD;AAAA,EAAA;AAElG;"}
@@ -1 +1 @@
1
- {"version":3,"file":"EnumRegistry.cjs","sources":["../../../../../../../packages/schema-definition/src/model/definition/internal/EnumRegistry.ts"],"sourcesContent":["import { EnumDefinition } from '../EnumDefinition'\n\nexport class EnumRegistry {\n\tpublic readonly enums: Record<string, EnumDefinition> = {}\n\n\tregister(name: string, definition: EnumDefinition) {\n\t\tif (this.enums[name]) {\n\t\t\tthrow new Error(`Enum with name ${name} is already registered`)\n\t\t}\n\t\tthis.enums[name] = definition\n\t}\n\n\thas(definition: EnumDefinition): boolean {\n\t\treturn Object.values(this.enums).includes(definition)\n\t}\n\n\tgetName(definition: EnumDefinition): string {\n\t\tfor (const [name, def] of Object.entries(this.enums)) {\n\t\t\tif (def === definition) {\n\t\t\t\treturn name\n\t\t\t}\n\t\t}\n\t\tthrow new Error(`Enum with values ${definition.values.join(', ')} is not registered.`)\n\t}\n}\n"],"names":[],"mappings":";;;;;AAEO,MAAM,aAAa;AAAA,EAAnB,cAAA;AACN,kBAAA,MAAgB,SAAwC,CAAA,CAAC;AAAA,EAAA;AAAA,EAEzD,SAAS,MAAc,YAA4B;AAC9C,QAAA,KAAK,MAAM,IAAI,GAAG;AACrB,YAAM,IAAI,MAAM,kBAAkB,IAAI,wBAAwB;AAAA,IAC/D;AACK,SAAA,MAAM,IAAI,IAAI;AAAA,EACpB;AAAA,EAEA,IAAI,YAAqC;AACxC,WAAO,OAAO,OAAO,KAAK,KAAK,EAAE,SAAS,UAAU;AAAA,EACrD;AAAA,EAEA,QAAQ,YAAoC;AAChC,eAAA,CAAC,MAAM,GAAG,KAAK,OAAO,QAAQ,KAAK,KAAK,GAAG;AACrD,UAAI,QAAQ,YAAY;AAChB,eAAA;AAAA,MACR;AAAA,IACD;AACM,UAAA,IAAI,MAAM,oBAAoB,WAAW,OAAO,KAAK,IAAI,CAAC,qBAAqB;AAAA,EACtF;AACD;;"}
1
+ {"version":3,"file":"EnumRegistry.cjs","sources":["../../../../../../../packages/schema-definition/src/model/definition/internal/EnumRegistry.ts"],"sourcesContent":["import { EnumDefinition } from '../EnumDefinition'\n\nexport class EnumRegistry {\n\tpublic readonly enums: Record<string, EnumDefinition> = {}\n\n\tregister(name: string, definition: EnumDefinition) {\n\t\tif (this.enums[name]) {\n\t\t\tthrow new Error(`Enum with name ${name} is already registered`)\n\t\t}\n\t\tthis.enums[name] = definition\n\t}\n\n\thas(definition: EnumDefinition): boolean {\n\t\treturn Object.values(this.enums).includes(definition)\n\t}\n\n\tgetName(definition: EnumDefinition): string {\n\t\tfor (const [name, def] of Object.entries(this.enums)) {\n\t\t\tif (def === definition) {\n\t\t\t\treturn name\n\t\t\t}\n\t\t}\n\t\tthrow new Error(`Enum with values ${definition.values.join(', ')} is not registered.`)\n\t}\n}\n"],"names":[],"mappings":";;;;;AAEO,MAAM,aAAa;AAAA,EAAnB,cAAA;AACN,kBAAA,MAAgB,SAAwC,EAAC;AAAA,EAAA;AAAA,EAEzD,SAAS,MAAc,YAA4B;AAC9C,QAAA,KAAK,MAAM,IAAI,GAAG;AACrB,YAAM,IAAI,MAAM,kBAAkB,IAAI,wBAAwB;AAAA,IAAA;AAE1D,SAAA,MAAM,IAAI,IAAI;AAAA,EAAA;AAAA,EAGpB,IAAI,YAAqC;AACxC,WAAO,OAAO,OAAO,KAAK,KAAK,EAAE,SAAS,UAAU;AAAA,EAAA;AAAA,EAGrD,QAAQ,YAAoC;AAChC,eAAA,CAAC,MAAM,GAAG,KAAK,OAAO,QAAQ,KAAK,KAAK,GAAG;AACrD,UAAI,QAAQ,YAAY;AAChB,eAAA;AAAA,MAAA;AAAA,IACR;AAEK,UAAA,IAAI,MAAM,oBAAoB,WAAW,OAAO,KAAK,IAAI,CAAC,qBAAqB;AAAA,EAAA;AAEvF;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"EnumRegistry.js","sources":["../../../../../../../packages/schema-definition/src/model/definition/internal/EnumRegistry.ts"],"sourcesContent":["import { EnumDefinition } from '../EnumDefinition'\n\nexport class EnumRegistry {\n\tpublic readonly enums: Record<string, EnumDefinition> = {}\n\n\tregister(name: string, definition: EnumDefinition) {\n\t\tif (this.enums[name]) {\n\t\t\tthrow new Error(`Enum with name ${name} is already registered`)\n\t\t}\n\t\tthis.enums[name] = definition\n\t}\n\n\thas(definition: EnumDefinition): boolean {\n\t\treturn Object.values(this.enums).includes(definition)\n\t}\n\n\tgetName(definition: EnumDefinition): string {\n\t\tfor (const [name, def] of Object.entries(this.enums)) {\n\t\t\tif (def === definition) {\n\t\t\t\treturn name\n\t\t\t}\n\t\t}\n\t\tthrow new Error(`Enum with values ${definition.values.join(', ')} is not registered.`)\n\t}\n}\n"],"names":[],"mappings":";;;AAEO,MAAM,aAAa;AAAA,EAAnB,cAAA;AACN,kBAAA,MAAgB,SAAwC,CAAA,CAAC;AAAA,EAAA;AAAA,EAEzD,SAAS,MAAc,YAA4B;AAC9C,QAAA,KAAK,MAAM,IAAI,GAAG;AACrB,YAAM,IAAI,MAAM,kBAAkB,IAAI,wBAAwB;AAAA,IAC/D;AACK,SAAA,MAAM,IAAI,IAAI;AAAA,EACpB;AAAA,EAEA,IAAI,YAAqC;AACxC,WAAO,OAAO,OAAO,KAAK,KAAK,EAAE,SAAS,UAAU;AAAA,EACrD;AAAA,EAEA,QAAQ,YAAoC;AAChC,eAAA,CAAC,MAAM,GAAG,KAAK,OAAO,QAAQ,KAAK,KAAK,GAAG;AACrD,UAAI,QAAQ,YAAY;AAChB,eAAA;AAAA,MACR;AAAA,IACD;AACM,UAAA,IAAI,MAAM,oBAAoB,WAAW,OAAO,KAAK,IAAI,CAAC,qBAAqB;AAAA,EACtF;AACD;"}
1
+ {"version":3,"file":"EnumRegistry.js","sources":["../../../../../../../packages/schema-definition/src/model/definition/internal/EnumRegistry.ts"],"sourcesContent":["import { EnumDefinition } from '../EnumDefinition'\n\nexport class EnumRegistry {\n\tpublic readonly enums: Record<string, EnumDefinition> = {}\n\n\tregister(name: string, definition: EnumDefinition) {\n\t\tif (this.enums[name]) {\n\t\t\tthrow new Error(`Enum with name ${name} is already registered`)\n\t\t}\n\t\tthis.enums[name] = definition\n\t}\n\n\thas(definition: EnumDefinition): boolean {\n\t\treturn Object.values(this.enums).includes(definition)\n\t}\n\n\tgetName(definition: EnumDefinition): string {\n\t\tfor (const [name, def] of Object.entries(this.enums)) {\n\t\t\tif (def === definition) {\n\t\t\t\treturn name\n\t\t\t}\n\t\t}\n\t\tthrow new Error(`Enum with values ${definition.values.join(', ')} is not registered.`)\n\t}\n}\n"],"names":[],"mappings":";;;AAEO,MAAM,aAAa;AAAA,EAAnB,cAAA;AACN,kBAAA,MAAgB,SAAwC,EAAC;AAAA,EAAA;AAAA,EAEzD,SAAS,MAAc,YAA4B;AAC9C,QAAA,KAAK,MAAM,IAAI,GAAG;AACrB,YAAM,IAAI,MAAM,kBAAkB,IAAI,wBAAwB;AAAA,IAAA;AAE1D,SAAA,MAAM,IAAI,IAAI;AAAA,EAAA;AAAA,EAGpB,IAAI,YAAqC;AACxC,WAAO,OAAO,OAAO,KAAK,KAAK,EAAE,SAAS,UAAU;AAAA,EAAA;AAAA,EAGrD,QAAQ,YAAoC;AAChC,eAAA,CAAC,MAAM,GAAG,KAAK,OAAO,QAAQ,KAAK,KAAK,GAAG;AACrD,UAAI,QAAQ,YAAY;AAChB,eAAA;AAAA,MAAA;AAAA,IACR;AAEK,UAAA,IAAI,MAAM,oBAAoB,WAAW,OAAO,KAAK,IAAI,CAAC,qBAAqB;AAAA,EAAA;AAEvF;"}
@@ -27,6 +27,11 @@ class SchemaBuilder {
27
27
  createSchema() {
28
28
  const entities = Object.entries(this.entityRegistry.entities).map(([entityName, definition]) => {
29
29
  const definitionInstance = new definition();
30
+ Object.entries(definitionInstance).forEach(([fieldName, fieldDefinition]) => {
31
+ if (typeof fieldDefinition !== "object" || !("createField" in fieldDefinition)) {
32
+ throw `Entity "${entityName}": field "${fieldName}" does not contain expected field definition. Check that you are correctly invoking methods of the definition builder.`;
33
+ }
34
+ });
30
35
  const primaryName = this.conventions.getPrimaryField();
31
36
  const entity = {
32
37
  name: entityName,
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaBuilder.cjs","sources":["../../../../../../../packages/schema-definition/src/model/definition/internal/SchemaBuilder.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { NamingConventions } from '@contember/schema-utils'\nimport 'reflect-metadata'\nimport { tuple } from '../../../utils'\nimport { EntityConstructor, FieldsDefinition } from '../types'\nimport { EnumDefinition } from '../EnumDefinition'\nimport { EntityRegistry } from './EntityRegistry'\nimport { EnumRegistry } from './EnumRegistry'\nimport { ColumnDefinition } from '../fieldDefinitions'\nimport { applyEntityExtensions } from '../extensions'\nimport { StrictOptions, StrictDefinitionValidator } from '../../../strict'\n\nexport class SchemaBuilder {\n\tprivate entityRegistry = new EntityRegistry()\n\n\tprivate enumRegistry = new EnumRegistry()\n\n\tconstructor(\n\t\tprivate readonly conventions: NamingConventions,\n\t\tprivate readonly strictDefinitionValidator: StrictDefinitionValidator = new StrictDefinitionValidator({}),\n\t) {}\n\n\tpublic addEntity(name: string, entity: EntityConstructor): void {\n\t\tthis.entityRegistry.register(name, entity)\n\t}\n\n\tpublic addEnum(name: string, definition: EnumDefinition): void {\n\t\tthis.enumRegistry.register(name, definition)\n\t}\n\n\tpublic createSchema(): Model.Schema {\n\t\tconst entities = Object.entries(this.entityRegistry.entities).map(([entityName, definition]): Model.Entity => {\n\t\t\tconst definitionInstance: FieldsDefinition = new definition()\n\n\t\t\tconst primaryName = this.conventions.getPrimaryField()\n\n\t\t\tconst entity: Model.Entity = {\n\t\t\t\tname: entityName,\n\t\t\t\tprimary: primaryName,\n\t\t\t\tprimaryColumn: this.conventions.getColumnName(primaryName),\n\t\t\t\tunique: this.createUnique(entityName, definitionInstance),\n\t\t\t\tindexes: [],\n\t\t\t\tfields: [\n\t\t\t\t\t...definitionInstance[primaryName] ? [] : [tuple(primaryName, this.createPrimaryColumn())],\n\t\t\t\t\t...Object.entries(definitionInstance),\n\t\t\t\t]\n\t\t\t\t\t.map(([name, definition]) => {\n\t\t\t\t\t\treturn definition.createField({\n\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\tentityName,\n\t\t\t\t\t\t\tconventions: this.conventions,\n\t\t\t\t\t\t\tenumRegistry: this.enumRegistry,\n\t\t\t\t\t\t\tentityRegistry: this.entityRegistry,\n\t\t\t\t\t\t\tstrictDefinitionValidator: this.strictDefinitionValidator,\n\t\t\t\t\t\t})\n\t\t\t\t\t})\n\t\t\t\t\t.reduce<Model.Entity['fields']>((acc, field) => {\n\t\t\t\t\t\tif (acc[field.name]) {\n\t\t\t\t\t\t\tthrow new Error(`Entity ${entityName}: field ${field.name} is already registered`)\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn { ...acc, [field.name]: field }\n\t\t\t\t\t}, {}),\n\t\t\t\ttableName: this.conventions.getTableName(entityName),\n\t\t\t\teventLog: {\n\t\t\t\t\tenabled: true,\n\t\t\t\t},\n\t\t\t}\n\t\t\treturn applyEntityExtensions(definition, {\n\t\t\t\tentity,\n\t\t\t\tdefinition: definitionInstance,\n\t\t\t\tregistry: this.entityRegistry,\n\t\t\t\tentityRegistry: this.entityRegistry,\n\t\t\t\tconventions: this.conventions,\n\t\t\t\tenumRegistry: this.enumRegistry,\n\t\t\t\tstrictDefinitionValidator: this.strictDefinitionValidator,\n\t\t\t})\n\t\t})\n\n\t\treturn {\n\t\t\tenums: Object.entries(this.enumRegistry.enums).reduce((acc, [name, def]) => ({ ...acc, [name]: def.values }), {}),\n\t\t\tentities: entities.reduce((acc, entity) => ({ ...acc, [entity.name]: entity }), {}),\n\t\t}\n\t}\n\n\tprivate createPrimaryColumn(): ColumnDefinition {\n\t\treturn new ColumnDefinition({\n\t\t\tnullable: false,\n\t\t\ttype: Model.ColumnType.Uuid,\n\t\t})\n\t}\n\n\tprivate createUnique(entityName: string, fieldDefinitions: FieldsDefinition): Model.UniqueConstraints {\n\t\tconst unique: Model.UniqueConstraint[] = []\n\t\tfor (const [fieldName, definition] of Object.entries(fieldDefinitions)) {\n\t\t\tif (definition.options.unique) {\n\t\t\t\tunique.push({ fields: [fieldName], ...definition.options.unique })\n\t\t\t}\n\t\t}\n\t\treturn unique\n\t}\n}\n"],"names":["StrictDefinitionValidator","EntityRegistry","EnumRegistry","tuple","definition","applyEntityExtensions","ColumnDefinition","Model"],"mappings":";;;;;;;;;;;;;AAYO,MAAM,cAAc;AAAA,EAK1B,YACkB,aACA,4BAAuD,IAAIA,OAA0B,0BAAA,CAAE,CAAA,GACvG;AAFgB,SAAA,cAAA;AACA,SAAA,4BAAA;AANV,kBAAA,MAAA,kBAAiB,IAAIC,eAAAA,eAAe,CAAA;AAEpC,kBAAA,MAAA,gBAAe,IAAIC,aAAAA,aAAa,CAAA;AAAA,EAKrC;AAAA,EAEI,UAAU,MAAc,QAAiC;AAC1D,SAAA,eAAe,SAAS,MAAM,MAAM;AAAA,EAC1C;AAAA,EAEO,QAAQ,MAAc,YAAkC;AACzD,SAAA,aAAa,SAAS,MAAM,UAAU;AAAA,EAC5C;AAAA,EAEO,eAA6B;AACnC,UAAM,WAAW,OAAO,QAAQ,KAAK,eAAe,QAAQ,EAAE,IAAI,CAAC,CAAC,YAAY,UAAU,MAAoB;AACvG,YAAA,qBAAuC,IAAI;AAE3C,YAAA,cAAc,KAAK,YAAY,gBAAgB;AAErD,YAAM,SAAuB;AAAA,QAC5B,MAAM;AAAA,QACN,SAAS;AAAA,QACT,eAAe,KAAK,YAAY,cAAc,WAAW;AAAA,QACzD,QAAQ,KAAK,aAAa,YAAY,kBAAkB;AAAA,QACxD,SAAS,CAAC;AAAA,QACV,QAAQ;AAAA,UACP,GAAG,mBAAmB,WAAW,IAAI,KAAK,CAACC,MAAA,MAAM,aAAa,KAAK,oBAAoB,CAAC,CAAC;AAAA,UACzF,GAAG,OAAO,QAAQ,kBAAkB;AAAA,UAEnC,IAAI,CAAC,CAAC,MAAMC,WAAU,MAAM;AAC5B,iBAAOA,YAAW,YAAY;AAAA,YAC7B;AAAA,YACA;AAAA,YACA,aAAa,KAAK;AAAA,YAClB,cAAc,KAAK;AAAA,YACnB,gBAAgB,KAAK;AAAA,YACrB,2BAA2B,KAAK;AAAA,UAAA,CAChC;AAAA,QACD,CAAA,EACA,OAA+B,CAAC,KAAK,UAAU;AAC3C,cAAA,IAAI,MAAM,IAAI,GAAG;AACpB,kBAAM,IAAI,MAAM,UAAU,UAAU,WAAW,MAAM,IAAI,wBAAwB;AAAA,UAClF;AACA,iBAAO,EAAE,GAAG,KAAK,CAAC,MAAM,IAAI,GAAG,MAAM;AAAA,QACtC,GAAG,EAAE;AAAA,QACN,WAAW,KAAK,YAAY,aAAa,UAAU;AAAA,QACnD,UAAU;AAAA,UACT,SAAS;AAAA,QACV;AAAA,MAAA;AAED,aAAOC,WAAAA,sBAAsB,YAAY;AAAA,QACxC;AAAA,QACA,YAAY;AAAA,QACZ,UAAU,KAAK;AAAA,QACf,gBAAgB,KAAK;AAAA,QACrB,aAAa,KAAK;AAAA,QAClB,cAAc,KAAK;AAAA,QACnB,2BAA2B,KAAK;AAAA,MAAA,CAChC;AAAA,IAAA,CACD;AAEM,WAAA;AAAA,MACN,OAAO,OAAO,QAAQ,KAAK,aAAa,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,GAAG,IAAI,WAAW,EAAE;AAAA,MAChH,UAAU,SAAS,OAAO,CAAC,KAAK,YAAY,EAAE,GAAG,KAAK,CAAC,OAAO,IAAI,GAAG,OAAO,IAAI,CAAA,CAAE;AAAA,IAAA;AAAA,EAEpF;AAAA,EAEQ,sBAAwC;AAC/C,WAAO,IAAIC,iBAAAA,iBAAiB;AAAA,MAC3B,UAAU;AAAA,MACV,MAAMC,OAAAA,MAAM,WAAW;AAAA,IAAA,CACvB;AAAA,EACF;AAAA,EAEQ,aAAa,YAAoB,kBAA6D;AACrG,UAAM,SAAmC,CAAA;AACzC,eAAW,CAAC,WAAW,UAAU,KAAK,OAAO,QAAQ,gBAAgB,GAAG;AACnE,UAAA,WAAW,QAAQ,QAAQ;AACvB,eAAA,KAAK,EAAE,QAAQ,CAAC,SAAS,GAAG,GAAG,WAAW,QAAQ,OAAA,CAAQ;AAAA,MAClE;AAAA,IACD;AACO,WAAA;AAAA,EACR;AACD;;"}
1
+ {"version":3,"file":"SchemaBuilder.cjs","sources":["../../../../../../../packages/schema-definition/src/model/definition/internal/SchemaBuilder.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { NamingConventions } from '@contember/schema-utils'\nimport 'reflect-metadata'\nimport { tuple } from '../../../utils'\nimport { EntityConstructor, FieldsDefinition } from '../types'\nimport { EnumDefinition } from '../EnumDefinition'\nimport { EntityRegistry } from './EntityRegistry'\nimport { EnumRegistry } from './EnumRegistry'\nimport { ColumnDefinition } from '../fieldDefinitions'\nimport { applyEntityExtensions } from '../extensions'\nimport { StrictOptions, StrictDefinitionValidator } from '../../../strict'\n\nexport class SchemaBuilder {\n\tprivate entityRegistry = new EntityRegistry()\n\n\tprivate enumRegistry = new EnumRegistry()\n\n\tconstructor(\n\t\tprivate readonly conventions: NamingConventions,\n\t\tprivate readonly strictDefinitionValidator: StrictDefinitionValidator = new StrictDefinitionValidator({}),\n\t) {}\n\n\tpublic addEntity(name: string, entity: EntityConstructor): void {\n\t\tthis.entityRegistry.register(name, entity)\n\t}\n\n\tpublic addEnum(name: string, definition: EnumDefinition): void {\n\t\tthis.enumRegistry.register(name, definition)\n\t}\n\n\tpublic createSchema(): Model.Schema {\n\t\tconst entities = Object.entries(this.entityRegistry.entities).map(([entityName, definition]): Model.Entity => {\n\t\t\tconst definitionInstance: FieldsDefinition = new definition()\n\n\t\t\tObject.entries(definitionInstance).forEach(([fieldName, fieldDefinition]) => {\n\t\t\t\tif (typeof fieldDefinition !== 'object' || !('createField' in fieldDefinition)) {\n\t\t\t\t\tthrow `Entity \"${entityName}\": field \"${fieldName}\" does not contain expected field definition. Check that you are correctly invoking methods of the definition builder.`\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tconst primaryName = this.conventions.getPrimaryField()\n\n\t\t\tconst entity: Model.Entity = {\n\t\t\t\tname: entityName,\n\t\t\t\tprimary: primaryName,\n\t\t\t\tprimaryColumn: this.conventions.getColumnName(primaryName),\n\t\t\t\tunique: this.createUnique(entityName, definitionInstance),\n\t\t\t\tindexes: [],\n\t\t\t\tfields: [\n\t\t\t\t\t...definitionInstance[primaryName] ? [] : [tuple(primaryName, this.createPrimaryColumn())],\n\t\t\t\t\t...Object.entries(definitionInstance),\n\t\t\t\t]\n\t\t\t\t\t.map(([name, definition]) => {\n\t\t\t\t\t\treturn definition.createField({\n\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\tentityName,\n\t\t\t\t\t\t\tconventions: this.conventions,\n\t\t\t\t\t\t\tenumRegistry: this.enumRegistry,\n\t\t\t\t\t\t\tentityRegistry: this.entityRegistry,\n\t\t\t\t\t\t\tstrictDefinitionValidator: this.strictDefinitionValidator,\n\t\t\t\t\t\t})\n\t\t\t\t\t})\n\t\t\t\t\t.reduce<Model.Entity['fields']>((acc, field) => {\n\t\t\t\t\t\tif (acc[field.name]) {\n\t\t\t\t\t\t\tthrow new Error(`Entity ${entityName}: field ${field.name} is already registered`)\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn { ...acc, [field.name]: field }\n\t\t\t\t\t}, {}),\n\t\t\t\ttableName: this.conventions.getTableName(entityName),\n\t\t\t\teventLog: {\n\t\t\t\t\tenabled: true,\n\t\t\t\t},\n\t\t\t}\n\t\t\treturn applyEntityExtensions(definition, {\n\t\t\t\tentity,\n\t\t\t\tdefinition: definitionInstance,\n\t\t\t\tregistry: this.entityRegistry,\n\t\t\t\tentityRegistry: this.entityRegistry,\n\t\t\t\tconventions: this.conventions,\n\t\t\t\tenumRegistry: this.enumRegistry,\n\t\t\t\tstrictDefinitionValidator: this.strictDefinitionValidator,\n\t\t\t})\n\t\t})\n\n\t\treturn {\n\t\t\tenums: Object.entries(this.enumRegistry.enums).reduce((acc, [name, def]) => ({ ...acc, [name]: def.values }), {}),\n\t\t\tentities: entities.reduce((acc, entity) => ({ ...acc, [entity.name]: entity }), {}),\n\t\t}\n\t}\n\n\tprivate createPrimaryColumn(): ColumnDefinition {\n\t\treturn new ColumnDefinition({\n\t\t\tnullable: false,\n\t\t\ttype: Model.ColumnType.Uuid,\n\t\t})\n\t}\n\n\tprivate createUnique(entityName: string, fieldDefinitions: FieldsDefinition): Model.UniqueConstraints {\n\t\tconst unique: Model.UniqueConstraint[] = []\n\t\tfor (const [fieldName, definition] of Object.entries(fieldDefinitions)) {\n\t\t\tif (definition.options.unique) {\n\t\t\t\tunique.push({ fields: [fieldName], ...definition.options.unique })\n\t\t\t}\n\t\t}\n\t\treturn unique\n\t}\n}\n"],"names":["StrictDefinitionValidator","EntityRegistry","EnumRegistry","tuple","definition","applyEntityExtensions","ColumnDefinition","Model"],"mappings":";;;;;;;;;;;;;AAYO,MAAM,cAAc;AAAA,EAK1B,YACkB,aACA,4BAAuD,IAAIA,OAA0B,0BAAA,CAAE,CAAA,GACvG;AAFgB,SAAA,cAAA;AACA,SAAA,4BAAA;AANV,kBAAA,MAAA,kBAAiB,IAAIC,eAAe,eAAA,CAAA;AAEpC,kBAAA,MAAA,gBAAe,IAAIC,aAAa,aAAA,CAAA;AAAA,EAAA;AAAA,EAOjC,UAAU,MAAc,QAAiC;AAC1D,SAAA,eAAe,SAAS,MAAM,MAAM;AAAA,EAAA;AAAA,EAGnC,QAAQ,MAAc,YAAkC;AACzD,SAAA,aAAa,SAAS,MAAM,UAAU;AAAA,EAAA;AAAA,EAGrC,eAA6B;AACnC,UAAM,WAAW,OAAO,QAAQ,KAAK,eAAe,QAAQ,EAAE,IAAI,CAAC,CAAC,YAAY,UAAU,MAAoB;AACvG,YAAA,qBAAuC,IAAI,WAAW;AAErD,aAAA,QAAQ,kBAAkB,EAAE,QAAQ,CAAC,CAAC,WAAW,eAAe,MAAM;AAC5E,YAAI,OAAO,oBAAoB,YAAY,EAAE,iBAAiB,kBAAkB;AACzE,gBAAA,WAAW,UAAU,aAAa,SAAS;AAAA,QAAA;AAAA,MAClD,CACA;AAEK,YAAA,cAAc,KAAK,YAAY,gBAAgB;AAErD,YAAM,SAAuB;AAAA,QAC5B,MAAM;AAAA,QACN,SAAS;AAAA,QACT,eAAe,KAAK,YAAY,cAAc,WAAW;AAAA,QACzD,QAAQ,KAAK,aAAa,YAAY,kBAAkB;AAAA,QACxD,SAAS,CAAC;AAAA,QACV,QAAQ;AAAA,UACP,GAAG,mBAAmB,WAAW,IAAI,KAAK,CAACC,MAAA,MAAM,aAAa,KAAK,oBAAoB,CAAC,CAAC;AAAA,UACzF,GAAG,OAAO,QAAQ,kBAAkB;AAAA,UAEnC,IAAI,CAAC,CAAC,MAAMC,WAAU,MAAM;AAC5B,iBAAOA,YAAW,YAAY;AAAA,YAC7B;AAAA,YACA;AAAA,YACA,aAAa,KAAK;AAAA,YAClB,cAAc,KAAK;AAAA,YACnB,gBAAgB,KAAK;AAAA,YACrB,2BAA2B,KAAK;AAAA,UAAA,CAChC;AAAA,QACD,CAAA,EACA,OAA+B,CAAC,KAAK,UAAU;AAC3C,cAAA,IAAI,MAAM,IAAI,GAAG;AACpB,kBAAM,IAAI,MAAM,UAAU,UAAU,WAAW,MAAM,IAAI,wBAAwB;AAAA,UAAA;AAElF,iBAAO,EAAE,GAAG,KAAK,CAAC,MAAM,IAAI,GAAG,MAAM;AAAA,QACtC,GAAG,EAAE;AAAA,QACN,WAAW,KAAK,YAAY,aAAa,UAAU;AAAA,QACnD,UAAU;AAAA,UACT,SAAS;AAAA,QAAA;AAAA,MAEX;AACA,aAAOC,WAAAA,sBAAsB,YAAY;AAAA,QACxC;AAAA,QACA,YAAY;AAAA,QACZ,UAAU,KAAK;AAAA,QACf,gBAAgB,KAAK;AAAA,QACrB,aAAa,KAAK;AAAA,QAClB,cAAc,KAAK;AAAA,QACnB,2BAA2B,KAAK;AAAA,MAAA,CAChC;AAAA,IAAA,CACD;AAEM,WAAA;AAAA,MACN,OAAO,OAAO,QAAQ,KAAK,aAAa,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,GAAG,IAAI,WAAW,EAAE;AAAA,MAChH,UAAU,SAAS,OAAO,CAAC,KAAK,YAAY,EAAE,GAAG,KAAK,CAAC,OAAO,IAAI,GAAG,OAAO,IAAI,CAAE,CAAA;AAAA,IACnF;AAAA,EAAA;AAAA,EAGO,sBAAwC;AAC/C,WAAO,IAAIC,iBAAAA,iBAAiB;AAAA,MAC3B,UAAU;AAAA,MACV,MAAMC,aAAM,WAAW;AAAA,IAAA,CACvB;AAAA,EAAA;AAAA,EAGM,aAAa,YAAoB,kBAA6D;AACrG,UAAM,SAAmC,CAAC;AAC1C,eAAW,CAAC,WAAW,UAAU,KAAK,OAAO,QAAQ,gBAAgB,GAAG;AACnE,UAAA,WAAW,QAAQ,QAAQ;AACvB,eAAA,KAAK,EAAE,QAAQ,CAAC,SAAS,GAAG,GAAG,WAAW,QAAQ,QAAQ;AAAA,MAAA;AAAA,IAClE;AAEM,WAAA;AAAA,EAAA;AAET;;"}
@@ -25,6 +25,11 @@ class SchemaBuilder {
25
25
  createSchema() {
26
26
  const entities = Object.entries(this.entityRegistry.entities).map(([entityName, definition]) => {
27
27
  const definitionInstance = new definition();
28
+ Object.entries(definitionInstance).forEach(([fieldName, fieldDefinition]) => {
29
+ if (typeof fieldDefinition !== "object" || !("createField" in fieldDefinition)) {
30
+ throw `Entity "${entityName}": field "${fieldName}" does not contain expected field definition. Check that you are correctly invoking methods of the definition builder.`;
31
+ }
32
+ });
28
33
  const primaryName = this.conventions.getPrimaryField();
29
34
  const entity = {
30
35
  name: entityName,