@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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contember/schema-definition",
3
- "version": "2.0.0-alpha.9",
3
+ "version": "2.0.0-beta.2",
4
4
  "license": "Apache-2.0",
5
5
  "main": "./dist/production/index.js",
6
6
  "typings": "./dist/types/index.d.ts",
@@ -23,15 +23,16 @@
23
23
  }
24
24
  },
25
25
  "dependencies": {
26
- "@contember/schema": "2.0.0-alpha.9",
27
- "@contember/schema-utils": "2.0.0-alpha.9",
28
- "reflect-metadata": "^0.1.13"
26
+ "@contember/schema": "2.0.0-beta.2",
27
+ "@contember/schema-utils": "2.0.0-beta.2",
28
+ "reflect-metadata": "^0.2.2",
29
+ "fast-deep-equal": "^3.1.3"
29
30
  },
30
31
  "devDependencies": {
31
- "graphql": "^16.8.1"
32
+ "graphql": "^16.9.0"
32
33
  },
33
34
  "peerDependencies": {
34
35
  "graphql": ">= 14.6.0"
35
36
  },
36
37
  "type": "module"
37
- }
38
+ }
@@ -1,4 +1,4 @@
1
- import { isDeepStrictEqual } from 'node:util'
1
+ import deepEqual from 'fast-deep-equal'
2
2
 
3
3
  import { Acl, Input, Model, Writable } from '@contember/schema'
4
4
  import { PredicateDefinitionProcessor } from '@contember/schema-utils'
@@ -88,7 +88,7 @@ export class EntityPredicatesResolver {
88
88
  if (!(predicateName in this.predicates)) {
89
89
  this.predicates[predicateName] = predicate
90
90
  break
91
- } else if (isDeepStrictEqual(predicate, this.predicates[predicateName])) {
91
+ } else if (deepEqual(predicate, this.predicates[predicateName])) {
92
92
  break
93
93
  } else {
94
94
  predicateName = `${origName}_${i}`
package/src/index.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import * as AclDefinition from './acl/definition'
2
+ import { Role } from './acl/definition'
2
3
  import * as ActionsDefinition from './actions/definition'
3
4
  import * as InputValidation from './validation'
4
5
  import { SchemaDefinition } from './model'
@@ -9,6 +10,20 @@ export { PermissionsBuilder } from './acl/builder/PermissionsBuilder'
9
10
  export * from './model'
10
11
  export * from './presets'
11
12
 
13
+ export type { Role }
14
+ export type { VariableDefinition } from './acl/definition'
15
+ export type {
16
+ ColumnDefinition,
17
+ FieldDefinition,
18
+ OneHasOneDefinition,
19
+ OneHasOneInverseDefinition,
20
+ OneHasManyDefinition,
21
+ ManyHasOneDefinition,
22
+ ManyHasManyDefinition,
23
+ ManyHasManyInverseDefinition,
24
+ EnumDefinition,
25
+ } from './model/definition'
26
+
12
27
  export { AclDefinition, ActionsDefinition, SchemaDefinition, InputValidation, createSchema }
13
28
 
14
29
  export const c = {
@@ -1,5 +1,4 @@
1
1
  import { Model } from '@contember/schema'
2
- import { Interface } from '../types'
3
2
  import { CreateFieldContext, FieldDefinition } from './FieldDefinition'
4
3
  import { EnumDefinition } from '../EnumDefinition'
5
4
  import { resolveDefaultColumnType } from '@contember/schema-utils'
@@ -7,6 +6,7 @@ import { resolveDefaultColumnType } from '@contember/schema-utils'
7
6
  export class ColumnDefinition extends FieldDefinition<ColumnDefinitionOptions> {
8
7
  type = 'ColumnDefinition' as const
9
8
 
9
+
10
10
  public static create(
11
11
  type: Model.ColumnType,
12
12
  typeOptions: ColumnTypeOptions = {},
@@ -18,35 +18,35 @@ export class ColumnDefinition extends FieldDefinition<ColumnDefinitionOptions> {
18
18
  }
19
19
 
20
20
 
21
- public columnName(columnName: string): Interface<ColumnDefinition> {
21
+ public columnName(columnName: string): ColumnDefinition {
22
22
  return this.withOption('columnName', columnName)
23
23
  }
24
24
 
25
- public columnType(columnType: string): Interface<ColumnDefinition> {
25
+ public columnType(columnType: string): ColumnDefinition {
26
26
  return this.withOption('columnType', columnType)
27
27
  }
28
28
 
29
- public nullable(): Interface<ColumnDefinition> {
29
+ public nullable(): ColumnDefinition {
30
30
  return this.withOption('nullable', true)
31
31
  }
32
32
 
33
- public notNull(): Interface<ColumnDefinition> {
33
+ public notNull(): ColumnDefinition {
34
34
  return this.withOption('nullable', false)
35
35
  }
36
36
 
37
- public sequence(options?: Partial<Model.ColumnTypeDefinition['sequence']>): Interface<ColumnDefinition> {
37
+ public sequence(options?: Partial<Model.ColumnTypeDefinition['sequence']>): ColumnDefinition {
38
38
  return this.withOption('sequence', { precedence: 'BY DEFAULT', ...options })
39
39
  }
40
40
 
41
- public unique(options: { timing?: Model.ConstraintTiming } = {}): Interface<ColumnDefinition> {
41
+ public unique(options: { timing?: Model.ConstraintTiming } = {}): ColumnDefinition {
42
42
  return this.withOption('unique', options)
43
43
  }
44
44
 
45
- public default(value: ColumnDefinition['options']['default']): Interface<ColumnDefinition> {
45
+ public default(value: ColumnDefinition['options']['default']): ColumnDefinition {
46
46
  return this.withOption('default', value)
47
47
  }
48
48
 
49
- public typeAlias(alias: string): Interface<ColumnDefinition> {
49
+ public typeAlias(alias: string): ColumnDefinition {
50
50
  return this.withOption('typeAlias', alias)
51
51
  }
52
52
 
@@ -83,45 +83,53 @@ export class ColumnDefinition extends FieldDefinition<ColumnDefinitionOptions> {
83
83
  ...(typeAlias !== undefined ? { typeAlias } : {}),
84
84
  }
85
85
  }
86
+
87
+ protected withOption<K extends keyof ColumnDefinitionOptions>(key: K, value: ColumnDefinitionOptions[K]): ColumnDefinition {
88
+ return new ColumnDefinition({ ...this.options, [key]: value })
89
+ }
86
90
  }
87
91
 
88
92
  export function column(type: Model.ColumnType, typeOptions: ColumnTypeOptions = {}) {
89
93
  return ColumnDefinition.create(type, typeOptions)
90
94
  }
91
95
 
92
- export function stringColumn() {
96
+ export function stringColumn(): ColumnDefinition {
93
97
  return column(Model.ColumnType.String)
94
98
  }
95
99
 
96
- export function intColumn() {
100
+ export function intColumn(): ColumnDefinition {
97
101
  return column(Model.ColumnType.Int)
98
102
  }
99
103
 
100
- export function boolColumn() {
104
+ export function boolColumn(): ColumnDefinition {
101
105
  return column(Model.ColumnType.Bool)
102
106
  }
103
107
 
104
- export function doubleColumn() {
108
+ export function doubleColumn(): ColumnDefinition {
105
109
  return column(Model.ColumnType.Double)
106
110
  }
107
111
 
108
- export function dateColumn() {
112
+ export function dateColumn(): ColumnDefinition {
109
113
  return column(Model.ColumnType.Date)
110
114
  }
111
115
 
112
- export function dateTimeColumn() {
113
- return column(Model.ColumnType.DateTime)
116
+ export function dateTimeColumn(args?: { precision?: number }): ColumnDefinition {
117
+ const col = column(Model.ColumnType.DateTime)
118
+ if (!args?.precision) {
119
+ return col
120
+ }
121
+ return col.columnType(`${resolveDefaultColumnType(Model.ColumnType.DateTime)}(${args.precision})`)
114
122
  }
115
123
 
116
- export function jsonColumn() {
124
+ export function jsonColumn(): ColumnDefinition {
117
125
  return column(Model.ColumnType.Json)
118
126
  }
119
127
 
120
- export function enumColumn(enumDefinition: EnumDefinition) {
128
+ export function enumColumn(enumDefinition: EnumDefinition): ColumnDefinition {
121
129
  return column(Model.ColumnType.Enum, { enumDefinition })
122
130
  }
123
131
 
124
- export function uuidColumn() {
132
+ export function uuidColumn(): ColumnDefinition {
125
133
  return column(Model.ColumnType.Uuid)
126
134
  }
127
135
 
@@ -2,12 +2,8 @@ import { Model } from '@contember/schema'
2
2
  import { CommonContext } from '../context'
3
3
 
4
4
  export abstract class FieldDefinition<O> {
5
- constructor(public readonly options: O) {}
6
-
7
- protected withOption<K extends keyof O>(this: any, key: K, value: O[K]): { [K in keyof this]: this[K] } {
8
- return new this.constructor({ ...this.options, [key]: value })
5
+ constructor(public readonly options: O) {
9
6
  }
10
-
11
7
  abstract createField(context: CreateFieldContext): Model.AnyField
12
8
  }
13
9
 
@@ -1,22 +1,22 @@
1
1
  import { Model } from '@contember/schema'
2
- import { EntityConstructor, Interface, RelationTarget } from '../types'
2
+ import { EntityConstructor, RelationTarget } from '../types'
3
3
  import { CreateFieldContext, FieldDefinition } from './FieldDefinition'
4
4
 
5
- export class ManyHasManyDefinitionImpl extends FieldDefinition<ManyHasManyDefinitionOptions> {
5
+ export class ManyHasManyDefinition extends FieldDefinition<ManyHasManyDefinitionOptions> {
6
6
  type = 'ManyHasManyDefinition' as const
7
7
 
8
- inversedBy(inversedBy: string): Interface<ManyHasManyDefinition> {
8
+ inversedBy(inversedBy: string): ManyHasManyDefinition {
9
9
  return this.withOption('inversedBy', inversedBy)
10
10
  }
11
11
 
12
- joiningTable(joiningTable: Partial<Model.JoiningTable>): Interface<ManyHasManyDefinition> {
12
+ joiningTable(joiningTable: Partial<Model.JoiningTable>): ManyHasManyDefinition {
13
13
  return this.withOption('joiningTable', joiningTable)
14
14
  }
15
15
 
16
16
  orderBy(
17
17
  field: string | string[],
18
18
  direction: Model.OrderDirection | `${Model.OrderDirection}` = Model.OrderDirection.asc,
19
- ): Interface<ManyHasManyDefinition> {
19
+ ): ManyHasManyDefinition {
20
20
  const path = typeof field === 'string' ? [field] : field
21
21
  return this.withOption('orderBy', [...(this.options.orderBy || []), { path, direction: direction as Model.OrderDirection }])
22
22
  }
@@ -48,12 +48,16 @@ export class ManyHasManyDefinitionImpl extends FieldDefinition<ManyHasManyDefini
48
48
  ...(options.orderBy ? { orderBy: options.orderBy } : {}),
49
49
  }
50
50
  }
51
+
52
+
53
+ protected withOption<K extends keyof ManyHasManyDefinitionOptions>(key: K, value: ManyHasManyDefinitionOptions[K]): ManyHasManyDefinition {
54
+ return new ManyHasManyDefinition({ ...this.options, [key]: value })
55
+ }
51
56
  }
52
57
 
53
- export type ManyHasManyDefinition = Interface<ManyHasManyDefinitionImpl>
54
58
 
55
59
  export function manyHasMany(target: EntityConstructor, inversedBy?: string): ManyHasManyDefinition {
56
- return new ManyHasManyDefinitionImpl({ target, inversedBy })
60
+ return new ManyHasManyDefinition({ target, inversedBy })
57
61
  }
58
62
 
59
63
  export type ManyHasManyDefinitionOptions = {
@@ -1,14 +1,14 @@
1
1
  import { Model } from '@contember/schema'
2
2
  import { CreateFieldContext, FieldDefinition } from './FieldDefinition'
3
- import { EntityConstructor, Interface, RelationTarget } from '../types'
3
+ import { EntityConstructor, RelationTarget } from '../types'
4
4
 
5
- export class ManyHasManyInverseDefinitionImpl extends FieldDefinition<ManyHasManyInverseDefinitionOptions> {
5
+ export class ManyHasManyInverseDefinition extends FieldDefinition<ManyHasManyInverseDefinitionOptions> {
6
6
  type = 'ManyHasManyInverseDefinition' as const
7
7
 
8
8
  orderBy(
9
9
  field: string | string[],
10
10
  direction: Model.OrderDirection | `${Model.OrderDirection}` = Model.OrderDirection.asc,
11
- ): Interface<ManyHasManyInverseDefinition> {
11
+ ): ManyHasManyInverseDefinition {
12
12
  const path = typeof field === 'string' ? [field] : field
13
13
  return this.withOption('orderBy', [...(this.options.orderBy || []), { path, direction: direction as Model.OrderDirection }])
14
14
  }
@@ -23,19 +23,15 @@ export class ManyHasManyInverseDefinitionImpl extends FieldDefinition<ManyHasMan
23
23
  ...(options.orderBy ? { orderBy: options.orderBy } : {}),
24
24
  }
25
25
  }
26
+
27
+ protected withOption<K extends keyof ManyHasManyInverseDefinitionOptions>(key: K, value: ManyHasManyInverseDefinitionOptions[K]): ManyHasManyInverseDefinition {
28
+ return new ManyHasManyInverseDefinition({ ...this.options, [key]: value })
29
+ }
26
30
  }
27
31
 
28
- export type ManyHasManyInverseDefinition = Interface<ManyHasManyInverseDefinitionImpl>
29
- /** @deprecated use ManyHasManyInverseDefinition */
30
- export type ManyHasManyInversedDefinition = Interface<ManyHasManyInverseDefinitionImpl>
31
32
 
32
33
  export function manyHasManyInverse(target: EntityConstructor, ownedBy: string): ManyHasManyInverseDefinition {
33
- return new ManyHasManyInverseDefinitionImpl({ target, ownedBy })
34
- }
35
-
36
- /** @deprecated use manyHasManyInverse */
37
- export function manyHasManyInversed(target: EntityConstructor, ownedBy: string): ManyHasManyInverseDefinition {
38
- return new ManyHasManyInverseDefinitionImpl({ target, ownedBy })
34
+ return new ManyHasManyInverseDefinition({ target, ownedBy })
39
35
  }
40
36
 
41
37
  export type ManyHasManyInverseDefinitionOptions = {
@@ -1,35 +1,35 @@
1
- import { EntityConstructor, Interface, RelationTarget } from '../types'
1
+ import { EntityConstructor, RelationTarget } from '../types'
2
2
  import { Model } from '@contember/schema'
3
3
  import { CreateFieldContext, FieldDefinition } from './FieldDefinition'
4
4
 
5
- export class ManyHasOneDefinitionImpl extends FieldDefinition<ManyHasOneDefinitionOptions> {
5
+ export class ManyHasOneDefinition extends FieldDefinition<ManyHasOneDefinitionOptions> {
6
6
  type = 'ManyHasOneDefinition' as const
7
7
 
8
- inversedBy(inversedBy: string): Interface<ManyHasOneDefinition> {
8
+ inversedBy(inversedBy: string): ManyHasOneDefinition {
9
9
  return this.withOption('inversedBy', inversedBy)
10
10
  }
11
11
 
12
- joiningColumn(columnName: string): Interface<ManyHasOneDefinition> {
12
+ joiningColumn(columnName: string): ManyHasOneDefinition {
13
13
  return this.withOption('joiningColumn', { ...this.options.joiningColumn, columnName })
14
14
  }
15
15
 
16
- onDelete(onDelete: Model.OnDelete | `${Model.OnDelete}`): Interface<ManyHasOneDefinition> {
16
+ onDelete(onDelete: Model.OnDelete | `${Model.OnDelete}`): ManyHasOneDefinition {
17
17
  return this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: onDelete as Model.OnDelete })
18
18
  }
19
19
 
20
- cascadeOnDelete(): Interface<ManyHasOneDefinition> {
20
+ cascadeOnDelete(): ManyHasOneDefinition {
21
21
  return this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.cascade })
22
22
  }
23
23
 
24
- setNullOnDelete(): Interface<ManyHasOneDefinition> {
24
+ setNullOnDelete(): ManyHasOneDefinition {
25
25
  return this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.setNull })
26
26
  }
27
27
 
28
- restrictOnDelete(): Interface<ManyHasOneDefinition> {
28
+ restrictOnDelete(): ManyHasOneDefinition {
29
29
  return this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.restrict })
30
30
  }
31
31
 
32
- notNull(): Interface<ManyHasOneDefinition> {
32
+ notNull(): ManyHasOneDefinition {
33
33
  return this.withOption('nullable', false)
34
34
  }
35
35
 
@@ -51,12 +51,14 @@ export class ManyHasOneDefinitionImpl extends FieldDefinition<ManyHasOneDefiniti
51
51
  },
52
52
  }
53
53
  }
54
- }
55
54
 
56
- export type ManyHasOneDefinition = Interface<ManyHasOneDefinitionImpl>
55
+ protected withOption<K extends keyof ManyHasOneDefinitionOptions>(key: K, value: ManyHasOneDefinitionOptions[K]): ManyHasOneDefinition {
56
+ return new ManyHasOneDefinition({ ...this.options, [key]: value })
57
+ }
58
+ }
57
59
 
58
60
  export function manyHasOne(target: EntityConstructor, inversedBy?: string): ManyHasOneDefinition {
59
- return new ManyHasOneDefinitionImpl({ target, inversedBy })
61
+ return new ManyHasOneDefinition({ target, inversedBy })
60
62
  }
61
63
 
62
64
  export type ManyHasOneDefinitionOptions = {
@@ -1,14 +1,14 @@
1
1
  import { Model } from '@contember/schema'
2
2
  import { CreateFieldContext, FieldDefinition } from './FieldDefinition'
3
- import { EntityConstructor, Interface, RelationTarget } from '../types'
3
+ import { EntityConstructor, RelationTarget } from '../types'
4
4
 
5
- export class OneHasManyDefinitionImpl extends FieldDefinition<OneHasManyDefinitionOptions> {
5
+ export class OneHasManyDefinition extends FieldDefinition<OneHasManyDefinitionOptions> {
6
6
  type = 'OneHasManyDefinition' as const
7
7
 
8
8
  orderBy(
9
9
  field: string | string[],
10
10
  direction: Model.OrderDirection | `${Model.OrderDirection}` = Model.OrderDirection.asc,
11
- ): Interface<OneHasManyDefinition> {
11
+ ): OneHasManyDefinition {
12
12
  const path = typeof field === 'string' ? [field] : field
13
13
  return this.withOption('orderBy', [...(this.options.orderBy || []), { path, direction: direction as Model.OrderDirection }])
14
14
  }
@@ -22,12 +22,15 @@ export class OneHasManyDefinitionImpl extends FieldDefinition<OneHasManyDefiniti
22
22
  ...(options.orderBy ? { orderBy: options.orderBy } : {}),
23
23
  }
24
24
  }
25
+
26
+ protected withOption<K extends keyof OneHasManyDefinitionOptions>(key: K, value: OneHasManyDefinitionOptions[K]): OneHasManyDefinition {
27
+ return new OneHasManyDefinition({ ...this.options, [key]: value })
28
+ }
25
29
  }
26
30
 
27
- export type OneHasManyDefinition = Interface<OneHasManyDefinitionImpl>
28
31
 
29
32
  export function oneHasMany(target: EntityConstructor, ownedBy: string): OneHasManyDefinition {
30
- return new OneHasManyDefinitionImpl({ target, ownedBy })
33
+ return new OneHasManyDefinition({ target, ownedBy })
31
34
  }
32
35
 
33
36
  export type OneHasManyDefinitionOptions = {
@@ -1,39 +1,40 @@
1
1
  import { Model } from '@contember/schema'
2
- import { EntityConstructor, Interface, RelationTarget } from '../types'
2
+ import { EntityConstructor, RelationTarget } from '../types'
3
3
  import { CreateFieldContext, FieldDefinition } from './FieldDefinition'
4
4
 
5
- export class OneHasOneDefinitionImpl extends FieldDefinition<OneHasOneDefinitionOptions> {
5
+ export class OneHasOneDefinition extends FieldDefinition<OneHasOneDefinitionOptions> {
6
6
  type = 'OneHasOneDefinition' as const
7
7
 
8
- inversedBy(inversedBy: string): Interface<OneHasOneDefinition> {
8
+
9
+ inversedBy(inversedBy: string): OneHasOneDefinition {
9
10
  return this.withOption('inversedBy', inversedBy)
10
11
  }
11
12
 
12
- joiningColumn(columnName: string): Interface<OneHasOneDefinition> {
13
+ joiningColumn(columnName: string): OneHasOneDefinition {
13
14
  return this.withOption('joiningColumn', { ...this.joiningColumn, columnName })
14
15
  }
15
16
 
16
- onDelete(onDelete: Model.OnDelete | `${Model.OnDelete}`): Interface<OneHasOneDefinition> {
17
+ onDelete(onDelete: Model.OnDelete | `${Model.OnDelete}`): OneHasOneDefinition {
17
18
  return this.withOption('joiningColumn', { ...this.joiningColumn, onDelete: onDelete as Model.OnDelete })
18
19
  }
19
20
 
20
- cascadeOnDelete(): Interface<OneHasOneDefinition> {
21
+ cascadeOnDelete(): OneHasOneDefinition {
21
22
  return this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.cascade })
22
23
  }
23
24
 
24
- setNullOnDelete(): Interface<OneHasOneDefinition> {
25
+ setNullOnDelete(): OneHasOneDefinition {
25
26
  return this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.setNull })
26
27
  }
27
28
 
28
- restrictOnDelete(): Interface<OneHasOneDefinition> {
29
+ restrictOnDelete(): OneHasOneDefinition {
29
30
  return this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: Model.OnDelete.restrict })
30
31
  }
31
32
 
32
- notNull(): Interface<OneHasOneDefinition> {
33
+ notNull(): OneHasOneDefinition {
33
34
  return this.withOption('nullable', false)
34
35
  }
35
36
 
36
- removeOrphan(): Interface<OneHasOneDefinition> {
37
+ removeOrphan(): OneHasOneDefinition {
37
38
  return this.withOption('orphanRemoval', true)
38
39
  }
39
40
 
@@ -57,12 +58,15 @@ export class OneHasOneDefinitionImpl extends FieldDefinition<OneHasOneDefinition
57
58
  ...(options.orphanRemoval ? { orphanRemoval: true } : {}),
58
59
  }
59
60
  }
61
+
62
+ protected withOption<K extends keyof OneHasOneDefinitionOptions>(key: K, value: OneHasOneDefinitionOptions[K]): OneHasOneDefinition {
63
+ return new OneHasOneDefinition({ ...this.options, [key]: value })
64
+ }
60
65
  }
61
66
 
62
- export type OneHasOneDefinition = Interface<OneHasOneDefinitionImpl>
63
67
 
64
68
  export function oneHasOne(target: EntityConstructor, inversedBy?: string): OneHasOneDefinition {
65
- return new OneHasOneDefinitionImpl({ target, inversedBy })
69
+ return new OneHasOneDefinition({ target, inversedBy })
66
70
  }
67
71
 
68
72
  export type OneHasOneDefinitionOptions = {
@@ -1,12 +1,12 @@
1
1
  import { Model } from '@contember/schema'
2
- import { EntityConstructor, Interface } from '../types'
2
+ import { EntityConstructor } from '../types'
3
3
  import { CreateFieldContext, FieldDefinition } from './FieldDefinition'
4
4
  import { RelationTarget } from '../types'
5
5
 
6
- export class OneHasOneInverseDefinitionImpl extends FieldDefinition<OneHasOneInverseDefinitionOptions> {
6
+ export class OneHasOneInverseDefinition extends FieldDefinition<OneHasOneInverseDefinitionOptions> {
7
7
  type = 'OneHasOneInverseDefinition' as const
8
8
 
9
- notNull(): Interface<OneHasOneInverseDefinition> {
9
+ notNull() {
10
10
  return this.withOption('nullable', false)
11
11
  }
12
12
 
@@ -20,20 +20,17 @@ export class OneHasOneInverseDefinitionImpl extends FieldDefinition<OneHasOneInv
20
20
  nullable: options.nullable === undefined ? true : options.nullable,
21
21
  }
22
22
  }
23
+
24
+ protected withOption<K extends keyof OneHasOneInverseDefinitionOptions>(this: any, key: K, value: OneHasOneInverseDefinitionOptions[K]): OneHasOneInverseDefinition {
25
+ return new this.constructor({ ...this.options, [key]: value })
26
+ }
23
27
  }
24
28
 
25
- export type OneHasOneInverseDefinition = Interface<OneHasOneInverseDefinitionImpl>
26
- /** @deprecated use OneHasOneInverseDefinition */
27
- export type OneHasOneInversedDefinition = Interface<OneHasOneInverseDefinitionImpl>
28
29
 
29
30
  export function oneHasOneInverse(target: EntityConstructor, ownedBy: string): OneHasOneInverseDefinition {
30
- return new OneHasOneInverseDefinitionImpl({ target, ownedBy })
31
+ return new OneHasOneInverseDefinition({ target, ownedBy })
31
32
  }
32
33
 
33
- /** @deprecated use oneHasOneInverse */
34
- export function oneHasOneInversed(target: EntityConstructor, ownedBy: string): OneHasOneInverseDefinition {
35
- return new OneHasOneInverseDefinitionImpl({ target, ownedBy })
36
- }
37
34
 
38
35
  export type OneHasOneInverseDefinitionOptions = {
39
36
  target: RelationTarget
@@ -1,4 +1,3 @@
1
- import { Interface } from './types'
2
1
  import { Model } from '@contember/schema'
3
2
  import { EnumDefinition } from './EnumDefinition'
4
3
  import { SchemaBuilder } from './internal'
@@ -18,7 +17,7 @@ export * from './ViewDefinition'
18
17
  export { extendEntity, type EntityExtension } from './extensions'
19
18
 
20
19
  export abstract class Entity {
21
- [key: string]: Interface<FieldDefinition<any>> | undefined
20
+ [key: string]: FieldDefinition<any> | undefined
22
21
  }
23
22
 
24
23
  export type ModelDefinition<M> = {
@@ -32,6 +32,12 @@ export class SchemaBuilder {
32
32
  const entities = Object.entries(this.entityRegistry.entities).map(([entityName, definition]): Model.Entity => {
33
33
  const definitionInstance: FieldsDefinition = new definition()
34
34
 
35
+ Object.entries(definitionInstance).forEach(([fieldName, fieldDefinition]) => {
36
+ if (typeof fieldDefinition !== 'object' || !('createField' in fieldDefinition)) {
37
+ throw `Entity "${entityName}": field "${fieldName}" does not contain expected field definition. Check that you are correctly invoking methods of the definition builder.`
38
+ }
39
+ })
40
+
35
41
  const primaryName = this.conventions.getPrimaryField()
36
42
 
37
43
  const entity: Model.Entity = {
@@ -1,7 +1,6 @@
1
- import { FieldDefinition } from './fieldDefinitions'
2
1
  import { EntityConstructor } from '../../utils'
2
+ import { FieldDefinition } from './fieldDefinitions'
3
3
 
4
- export type Interface<T> = { [P in keyof T]: T[P] }
5
4
  export type RelationTarget = EntityConstructor
6
- export type FieldsDefinition = Record<string, Interface<FieldDefinition<any>>>
5
+ export type FieldsDefinition = Record<string, FieldDefinition<any>>
7
6
  export { type EntityConstructor }
package/src/presets.ts CHANGED
@@ -18,7 +18,19 @@ const v1_4preset: Settings.Schema = {
18
18
  },
19
19
  }
20
20
 
21
+ const v2_0preset: Settings.Schema = {
22
+ tenant: {
23
+ inviteExpirationMinutes: 60 * 24 * 7, // 7 days
24
+ },
25
+ content: {
26
+ shortDateResponse: true,
27
+ fullDateTimeResponse: true,
28
+ useExistsInHasManyFilter: true,
29
+ },
30
+ }
31
+
21
32
  export const settingsPresets = {
22
33
  'v1.3': v1_3preset,
23
34
  'v1.4': v1_4preset,
35
+ 'v2.0': v2_0preset,
24
36
  }
@@ -0,0 +1,33 @@
1
+ // Bun Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`read actions schema 1`] = `
4
+ {
5
+ "targets": {
6
+ "book_watch_target": {
7
+ "name": "book_watch_target",
8
+ "type": "webhook",
9
+ "url": "%webhookUrl%/book/updated",
10
+ },
11
+ },
12
+ "triggers": {
13
+ "book_watch": {
14
+ "entity": "Book",
15
+ "name": "book_watch",
16
+ "priority": 100,
17
+ "selection": undefined,
18
+ "target": "book_watch_target",
19
+ "type": "watch",
20
+ "watch": [
21
+ "title",
22
+ [
23
+ "tags",
24
+ {},
25
+ [
26
+ "name",
27
+ ],
28
+ ],
29
+ ],
30
+ },
31
+ },
32
+ }
33
+ `;