@contember/schema-definition 2.1.0-alpha.9 → 2.1.0-beta.1

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 (427) hide show
  1. package/CLAUDE.md +64 -0
  2. package/dist/development/index.cjs +33 -33
  3. package/dist/development/index.cjs.map +1 -1
  4. package/dist/development/index.js +25 -25
  5. package/dist/development/index.js.map +1 -1
  6. package/dist/development/src/acl/builder/EntityPermissionsBuilder.cjs.map +1 -1
  7. package/dist/development/src/acl/builder/EntityPermissionsBuilder.js.map +1 -1
  8. package/dist/development/src/acl/builder/EntitySelector.cjs.map +1 -1
  9. package/dist/development/src/acl/builder/EntitySelector.js.map +1 -1
  10. package/dist/development/src/acl/builder/FieldPermissionsBuilder.cjs.map +1 -1
  11. package/dist/development/src/acl/builder/FieldPermissionsBuilder.js.map +1 -1
  12. package/dist/development/src/acl/builder/FieldSelector.cjs.map +1 -1
  13. package/dist/development/src/acl/builder/FieldSelector.js.map +1 -1
  14. package/dist/development/src/acl/builder/PermissionOverrider.cjs.map +1 -1
  15. package/dist/development/src/acl/builder/PermissionOverrider.js.map +1 -1
  16. package/dist/development/src/acl/builder/PermissionsBuilder.cjs +1 -3
  17. package/dist/development/src/acl/builder/PermissionsBuilder.cjs.map +1 -1
  18. package/dist/development/src/acl/builder/PermissionsBuilder.js +1 -3
  19. package/dist/development/src/acl/builder/PermissionsBuilder.js.map +1 -1
  20. package/dist/development/src/acl/builder/PredicateReference.cjs.map +1 -1
  21. package/dist/development/src/acl/builder/PredicateReference.js.map +1 -1
  22. package/dist/development/src/acl/definition/aclExtensions.cjs +2 -2
  23. package/dist/development/src/acl/definition/aclExtensions.cjs.map +1 -1
  24. package/dist/development/src/acl/definition/aclExtensions.js +2 -2
  25. package/dist/development/src/acl/definition/aclExtensions.js.map +1 -1
  26. package/dist/development/src/acl/definition/customPrimary.cjs +1 -1
  27. package/dist/development/src/acl/definition/customPrimary.cjs.map +1 -1
  28. package/dist/development/src/acl/definition/customPrimary.js +1 -1
  29. package/dist/development/src/acl/definition/customPrimary.js.map +1 -1
  30. package/dist/development/src/acl/definition/index.cjs.map +1 -1
  31. package/dist/development/src/acl/definition/index.js.map +1 -1
  32. package/dist/development/src/acl/definition/internal/AclFactory.cjs +24 -16
  33. package/dist/development/src/acl/definition/internal/AclFactory.cjs.map +1 -1
  34. package/dist/development/src/acl/definition/internal/AclFactory.js +24 -16
  35. package/dist/development/src/acl/definition/internal/AclFactory.js.map +1 -1
  36. package/dist/development/src/acl/definition/internal/EntityPredicateResolver.cjs.map +1 -1
  37. package/dist/development/src/acl/definition/internal/EntityPredicateResolver.js.map +1 -1
  38. package/dist/development/src/acl/definition/internal/createPredicateName.cjs.map +1 -1
  39. package/dist/development/src/acl/definition/internal/createPredicateName.js.map +1 -1
  40. package/dist/development/src/acl/definition/internal/stores.cjs.map +1 -1
  41. package/dist/development/src/acl/definition/internal/stores.js.map +1 -1
  42. package/dist/development/src/acl/definition/permissions.cjs +5 -2
  43. package/dist/development/src/acl/definition/permissions.cjs.map +1 -1
  44. package/dist/development/src/acl/definition/permissions.js +5 -2
  45. package/dist/development/src/acl/definition/permissions.js.map +1 -1
  46. package/dist/development/src/acl/definition/references.cjs.map +1 -1
  47. package/dist/development/src/acl/definition/references.js.map +1 -1
  48. package/dist/development/src/acl/definition/roles.cjs.map +1 -1
  49. package/dist/development/src/acl/definition/roles.js.map +1 -1
  50. package/dist/development/src/acl/definition/variables.cjs.map +1 -1
  51. package/dist/development/src/acl/definition/variables.js.map +1 -1
  52. package/dist/development/src/actions/definition/index.cjs.map +1 -1
  53. package/dist/development/src/actions/definition/index.js.map +1 -1
  54. package/dist/development/src/actions/definition/internal/ActionsFactory.cjs +8 -7
  55. package/dist/development/src/actions/definition/internal/ActionsFactory.cjs.map +1 -1
  56. package/dist/development/src/actions/definition/internal/ActionsFactory.js +8 -7
  57. package/dist/development/src/actions/definition/internal/ActionsFactory.js.map +1 -1
  58. package/dist/development/src/actions/definition/internal/store.cjs.map +1 -1
  59. package/dist/development/src/actions/definition/internal/store.js.map +1 -1
  60. package/dist/development/src/actions/definition/targets.cjs.map +1 -1
  61. package/dist/development/src/actions/definition/targets.js.map +1 -1
  62. package/dist/development/src/actions/definition/triggers.cjs +4 -4
  63. package/dist/development/src/actions/definition/triggers.cjs.map +1 -1
  64. package/dist/development/src/actions/definition/triggers.js +4 -4
  65. package/dist/development/src/actions/definition/triggers.js.map +1 -1
  66. package/dist/development/src/createSchema.cjs.map +1 -1
  67. package/dist/development/src/createSchema.js.map +1 -1
  68. package/dist/development/src/model/builder/ColumnBuilder.cjs +7 -5
  69. package/dist/development/src/model/builder/ColumnBuilder.cjs.map +1 -1
  70. package/dist/development/src/model/builder/ColumnBuilder.js +7 -5
  71. package/dist/development/src/model/builder/ColumnBuilder.js.map +1 -1
  72. package/dist/development/src/model/builder/EntityBuilder.cjs.map +1 -1
  73. package/dist/development/src/model/builder/EntityBuilder.js.map +1 -1
  74. package/dist/development/src/model/builder/FieldBuilder.cjs +4 -4
  75. package/dist/development/src/model/builder/FieldBuilder.cjs.map +1 -1
  76. package/dist/development/src/model/builder/FieldBuilder.js.map +1 -1
  77. package/dist/development/src/model/builder/ManyHasManyBuilder.cjs.map +1 -1
  78. package/dist/development/src/model/builder/ManyHasManyBuilder.js.map +1 -1
  79. package/dist/development/src/model/builder/ManyHasOneBuilder.cjs.map +1 -1
  80. package/dist/development/src/model/builder/ManyHasOneBuilder.js.map +1 -1
  81. package/dist/development/src/model/builder/OneHasManyBuilder.cjs.map +1 -1
  82. package/dist/development/src/model/builder/OneHasManyBuilder.js.map +1 -1
  83. package/dist/development/src/model/builder/OneHasOneBuilder.cjs.map +1 -1
  84. package/dist/development/src/model/builder/OneHasOneBuilder.js.map +1 -1
  85. package/dist/development/src/model/builder/SchemaBuilder.cjs.map +1 -1
  86. package/dist/development/src/model/builder/SchemaBuilder.js.map +1 -1
  87. package/dist/development/src/model/builder/SchemaBuilderInternal.cjs.map +1 -1
  88. package/dist/development/src/model/builder/SchemaBuilderInternal.js.map +1 -1
  89. package/dist/development/src/model/builder/internal/ColumnProcessor.cjs.map +1 -1
  90. package/dist/development/src/model/builder/internal/ColumnProcessor.js.map +1 -1
  91. package/dist/development/src/model/builder/internal/ManyHasManyProcessor.cjs.map +1 -1
  92. package/dist/development/src/model/builder/internal/ManyHasManyProcessor.js.map +1 -1
  93. package/dist/development/src/model/builder/internal/ManyHasOneProcessor.cjs.map +1 -1
  94. package/dist/development/src/model/builder/internal/ManyHasOneProcessor.js.map +1 -1
  95. package/dist/development/src/model/builder/internal/OneHasManyProcessor.cjs.map +1 -1
  96. package/dist/development/src/model/builder/internal/OneHasManyProcessor.js.map +1 -1
  97. package/dist/development/src/model/builder/internal/OneHasOneProcessor.cjs.map +1 -1
  98. package/dist/development/src/model/builder/internal/OneHasOneProcessor.js.map +1 -1
  99. package/dist/development/src/model/definition/EnumDefinition.cjs.map +1 -1
  100. package/dist/development/src/model/definition/EnumDefinition.js.map +1 -1
  101. package/dist/development/src/model/definition/EventLogDefinition.cjs.map +1 -1
  102. package/dist/development/src/model/definition/EventLogDefinition.js.map +1 -1
  103. package/dist/development/src/model/definition/IndexDefinition.cjs +2 -2
  104. package/dist/development/src/model/definition/IndexDefinition.cjs.map +1 -1
  105. package/dist/development/src/model/definition/IndexDefinition.js +2 -2
  106. package/dist/development/src/model/definition/IndexDefinition.js.map +1 -1
  107. package/dist/development/src/model/definition/OrderByDefinition.cjs +3 -1
  108. package/dist/development/src/model/definition/OrderByDefinition.cjs.map +1 -1
  109. package/dist/development/src/model/definition/OrderByDefinition.js +3 -1
  110. package/dist/development/src/model/definition/OrderByDefinition.js.map +1 -1
  111. package/dist/development/src/model/definition/UniqueDefinition.cjs.map +1 -1
  112. package/dist/development/src/model/definition/UniqueDefinition.js.map +1 -1
  113. package/dist/development/src/model/definition/ViewDefinition.cjs.map +1 -1
  114. package/dist/development/src/model/definition/ViewDefinition.js.map +1 -1
  115. package/dist/development/src/model/definition/extensions.cjs +2 -2
  116. package/dist/development/src/model/definition/extensions.cjs.map +1 -1
  117. package/dist/development/src/model/definition/extensions.js +2 -2
  118. package/dist/development/src/model/definition/extensions.js.map +1 -1
  119. package/dist/development/src/model/definition/fieldDefinitions/ColumnDefinition.cjs +12 -1
  120. package/dist/development/src/model/definition/fieldDefinitions/ColumnDefinition.cjs.map +1 -1
  121. package/dist/development/src/model/definition/fieldDefinitions/ColumnDefinition.js +12 -1
  122. package/dist/development/src/model/definition/fieldDefinitions/ColumnDefinition.js.map +1 -1
  123. package/dist/development/src/model/definition/fieldDefinitions/FieldDefinition.cjs.map +1 -1
  124. package/dist/development/src/model/definition/fieldDefinitions/FieldDefinition.js.map +1 -1
  125. package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyDefinition.cjs.map +1 -1
  126. package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyDefinition.js.map +1 -1
  127. package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.cjs.map +1 -1
  128. package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.js.map +1 -1
  129. package/dist/development/src/model/definition/fieldDefinitions/ManyHasOneDefinition.cjs.map +1 -1
  130. package/dist/development/src/model/definition/fieldDefinitions/ManyHasOneDefinition.js.map +1 -1
  131. package/dist/development/src/model/definition/fieldDefinitions/OneHasManyDefinition.cjs.map +1 -1
  132. package/dist/development/src/model/definition/fieldDefinitions/OneHasManyDefinition.js.map +1 -1
  133. package/dist/development/src/model/definition/fieldDefinitions/OneHasOneDefinition.cjs.map +1 -1
  134. package/dist/development/src/model/definition/fieldDefinitions/OneHasOneDefinition.js.map +1 -1
  135. package/dist/development/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.cjs.map +1 -1
  136. package/dist/development/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.js.map +1 -1
  137. package/dist/development/src/model/definition/index.cjs.map +1 -1
  138. package/dist/development/src/model/definition/index.js.map +1 -1
  139. package/dist/development/src/model/definition/internal/EntityRegistry.cjs.map +1 -1
  140. package/dist/development/src/model/definition/internal/EntityRegistry.js.map +1 -1
  141. package/dist/development/src/model/definition/internal/EnumRegistry.cjs.map +1 -1
  142. package/dist/development/src/model/definition/internal/EnumRegistry.js.map +1 -1
  143. package/dist/development/src/model/definition/internal/SchemaBuilder.cjs.map +1 -1
  144. package/dist/development/src/model/definition/internal/SchemaBuilder.js.map +1 -1
  145. package/dist/development/src/presets.cjs.map +1 -1
  146. package/dist/development/src/presets.js.map +1 -1
  147. package/dist/development/src/strict.cjs +3 -1
  148. package/dist/development/src/strict.cjs.map +1 -1
  149. package/dist/development/src/strict.js +3 -1
  150. package/dist/development/src/strict.js.map +1 -1
  151. package/dist/development/src/utils/MetadataStore.cjs +16 -4
  152. package/dist/development/src/utils/MetadataStore.cjs.map +1 -1
  153. package/dist/development/src/utils/MetadataStore.js +16 -4
  154. package/dist/development/src/utils/MetadataStore.js.map +1 -1
  155. package/dist/development/src/utils/assertNever.cjs.map +1 -1
  156. package/dist/development/src/utils/assertNever.js.map +1 -1
  157. package/dist/development/src/utils/filterEntityDefinition.cjs.map +1 -1
  158. package/dist/development/src/utils/filterEntityDefinition.js.map +1 -1
  159. package/dist/development/src/utils/tuple.cjs.map +1 -1
  160. package/dist/development/src/utils/tuple.js.map +1 -1
  161. package/dist/development/src/validation/index.cjs +25 -11
  162. package/dist/development/src/validation/index.cjs.map +1 -1
  163. package/dist/development/src/validation/index.js +25 -11
  164. package/dist/development/src/validation/index.js.map +1 -1
  165. package/dist/production/index.cjs +33 -33
  166. package/dist/production/index.cjs.map +1 -1
  167. package/dist/production/index.js +25 -25
  168. package/dist/production/index.js.map +1 -1
  169. package/dist/production/src/acl/builder/EntityPermissionsBuilder.cjs.map +1 -1
  170. package/dist/production/src/acl/builder/EntityPermissionsBuilder.js.map +1 -1
  171. package/dist/production/src/acl/builder/EntitySelector.cjs.map +1 -1
  172. package/dist/production/src/acl/builder/EntitySelector.js.map +1 -1
  173. package/dist/production/src/acl/builder/FieldPermissionsBuilder.cjs.map +1 -1
  174. package/dist/production/src/acl/builder/FieldPermissionsBuilder.js.map +1 -1
  175. package/dist/production/src/acl/builder/FieldSelector.cjs.map +1 -1
  176. package/dist/production/src/acl/builder/FieldSelector.js.map +1 -1
  177. package/dist/production/src/acl/builder/PermissionOverrider.cjs.map +1 -1
  178. package/dist/production/src/acl/builder/PermissionOverrider.js.map +1 -1
  179. package/dist/production/src/acl/builder/PermissionsBuilder.cjs +1 -3
  180. package/dist/production/src/acl/builder/PermissionsBuilder.cjs.map +1 -1
  181. package/dist/production/src/acl/builder/PermissionsBuilder.js +1 -3
  182. package/dist/production/src/acl/builder/PermissionsBuilder.js.map +1 -1
  183. package/dist/production/src/acl/builder/PredicateReference.cjs.map +1 -1
  184. package/dist/production/src/acl/builder/PredicateReference.js.map +1 -1
  185. package/dist/production/src/acl/definition/aclExtensions.cjs +2 -2
  186. package/dist/production/src/acl/definition/aclExtensions.cjs.map +1 -1
  187. package/dist/production/src/acl/definition/aclExtensions.js +2 -2
  188. package/dist/production/src/acl/definition/aclExtensions.js.map +1 -1
  189. package/dist/production/src/acl/definition/customPrimary.cjs +1 -1
  190. package/dist/production/src/acl/definition/customPrimary.cjs.map +1 -1
  191. package/dist/production/src/acl/definition/customPrimary.js +1 -1
  192. package/dist/production/src/acl/definition/customPrimary.js.map +1 -1
  193. package/dist/production/src/acl/definition/index.cjs.map +1 -1
  194. package/dist/production/src/acl/definition/index.js.map +1 -1
  195. package/dist/production/src/acl/definition/internal/AclFactory.cjs +24 -16
  196. package/dist/production/src/acl/definition/internal/AclFactory.cjs.map +1 -1
  197. package/dist/production/src/acl/definition/internal/AclFactory.js +24 -16
  198. package/dist/production/src/acl/definition/internal/AclFactory.js.map +1 -1
  199. package/dist/production/src/acl/definition/internal/EntityPredicateResolver.cjs.map +1 -1
  200. package/dist/production/src/acl/definition/internal/EntityPredicateResolver.js.map +1 -1
  201. package/dist/production/src/acl/definition/internal/createPredicateName.cjs.map +1 -1
  202. package/dist/production/src/acl/definition/internal/createPredicateName.js.map +1 -1
  203. package/dist/production/src/acl/definition/internal/stores.cjs.map +1 -1
  204. package/dist/production/src/acl/definition/internal/stores.js.map +1 -1
  205. package/dist/production/src/acl/definition/permissions.cjs +5 -2
  206. package/dist/production/src/acl/definition/permissions.cjs.map +1 -1
  207. package/dist/production/src/acl/definition/permissions.js +5 -2
  208. package/dist/production/src/acl/definition/permissions.js.map +1 -1
  209. package/dist/production/src/acl/definition/references.cjs.map +1 -1
  210. package/dist/production/src/acl/definition/references.js.map +1 -1
  211. package/dist/production/src/acl/definition/roles.cjs.map +1 -1
  212. package/dist/production/src/acl/definition/roles.js.map +1 -1
  213. package/dist/production/src/acl/definition/variables.cjs.map +1 -1
  214. package/dist/production/src/acl/definition/variables.js.map +1 -1
  215. package/dist/production/src/actions/definition/index.cjs.map +1 -1
  216. package/dist/production/src/actions/definition/index.js.map +1 -1
  217. package/dist/production/src/actions/definition/internal/ActionsFactory.cjs +8 -7
  218. package/dist/production/src/actions/definition/internal/ActionsFactory.cjs.map +1 -1
  219. package/dist/production/src/actions/definition/internal/ActionsFactory.js +8 -7
  220. package/dist/production/src/actions/definition/internal/ActionsFactory.js.map +1 -1
  221. package/dist/production/src/actions/definition/internal/store.cjs.map +1 -1
  222. package/dist/production/src/actions/definition/internal/store.js.map +1 -1
  223. package/dist/production/src/actions/definition/targets.cjs.map +1 -1
  224. package/dist/production/src/actions/definition/targets.js.map +1 -1
  225. package/dist/production/src/actions/definition/triggers.cjs +4 -4
  226. package/dist/production/src/actions/definition/triggers.cjs.map +1 -1
  227. package/dist/production/src/actions/definition/triggers.js +4 -4
  228. package/dist/production/src/actions/definition/triggers.js.map +1 -1
  229. package/dist/production/src/createSchema.cjs.map +1 -1
  230. package/dist/production/src/createSchema.js.map +1 -1
  231. package/dist/production/src/model/builder/ColumnBuilder.cjs +7 -5
  232. package/dist/production/src/model/builder/ColumnBuilder.cjs.map +1 -1
  233. package/dist/production/src/model/builder/ColumnBuilder.js +7 -5
  234. package/dist/production/src/model/builder/ColumnBuilder.js.map +1 -1
  235. package/dist/production/src/model/builder/EntityBuilder.cjs.map +1 -1
  236. package/dist/production/src/model/builder/EntityBuilder.js.map +1 -1
  237. package/dist/production/src/model/builder/FieldBuilder.cjs +4 -4
  238. package/dist/production/src/model/builder/FieldBuilder.cjs.map +1 -1
  239. package/dist/production/src/model/builder/FieldBuilder.js.map +1 -1
  240. package/dist/production/src/model/builder/ManyHasManyBuilder.cjs.map +1 -1
  241. package/dist/production/src/model/builder/ManyHasManyBuilder.js.map +1 -1
  242. package/dist/production/src/model/builder/ManyHasOneBuilder.cjs.map +1 -1
  243. package/dist/production/src/model/builder/ManyHasOneBuilder.js.map +1 -1
  244. package/dist/production/src/model/builder/OneHasManyBuilder.cjs.map +1 -1
  245. package/dist/production/src/model/builder/OneHasManyBuilder.js.map +1 -1
  246. package/dist/production/src/model/builder/OneHasOneBuilder.cjs.map +1 -1
  247. package/dist/production/src/model/builder/OneHasOneBuilder.js.map +1 -1
  248. package/dist/production/src/model/builder/SchemaBuilder.cjs.map +1 -1
  249. package/dist/production/src/model/builder/SchemaBuilder.js.map +1 -1
  250. package/dist/production/src/model/builder/SchemaBuilderInternal.cjs.map +1 -1
  251. package/dist/production/src/model/builder/SchemaBuilderInternal.js.map +1 -1
  252. package/dist/production/src/model/builder/internal/ColumnProcessor.cjs.map +1 -1
  253. package/dist/production/src/model/builder/internal/ColumnProcessor.js.map +1 -1
  254. package/dist/production/src/model/builder/internal/ManyHasManyProcessor.cjs.map +1 -1
  255. package/dist/production/src/model/builder/internal/ManyHasManyProcessor.js.map +1 -1
  256. package/dist/production/src/model/builder/internal/ManyHasOneProcessor.cjs.map +1 -1
  257. package/dist/production/src/model/builder/internal/ManyHasOneProcessor.js.map +1 -1
  258. package/dist/production/src/model/builder/internal/OneHasManyProcessor.cjs.map +1 -1
  259. package/dist/production/src/model/builder/internal/OneHasManyProcessor.js.map +1 -1
  260. package/dist/production/src/model/builder/internal/OneHasOneProcessor.cjs.map +1 -1
  261. package/dist/production/src/model/builder/internal/OneHasOneProcessor.js.map +1 -1
  262. package/dist/production/src/model/definition/EnumDefinition.cjs.map +1 -1
  263. package/dist/production/src/model/definition/EnumDefinition.js.map +1 -1
  264. package/dist/production/src/model/definition/EventLogDefinition.cjs.map +1 -1
  265. package/dist/production/src/model/definition/EventLogDefinition.js.map +1 -1
  266. package/dist/production/src/model/definition/IndexDefinition.cjs +2 -2
  267. package/dist/production/src/model/definition/IndexDefinition.cjs.map +1 -1
  268. package/dist/production/src/model/definition/IndexDefinition.js +2 -2
  269. package/dist/production/src/model/definition/IndexDefinition.js.map +1 -1
  270. package/dist/production/src/model/definition/OrderByDefinition.cjs +3 -1
  271. package/dist/production/src/model/definition/OrderByDefinition.cjs.map +1 -1
  272. package/dist/production/src/model/definition/OrderByDefinition.js +3 -1
  273. package/dist/production/src/model/definition/OrderByDefinition.js.map +1 -1
  274. package/dist/production/src/model/definition/UniqueDefinition.cjs.map +1 -1
  275. package/dist/production/src/model/definition/UniqueDefinition.js.map +1 -1
  276. package/dist/production/src/model/definition/ViewDefinition.cjs.map +1 -1
  277. package/dist/production/src/model/definition/ViewDefinition.js.map +1 -1
  278. package/dist/production/src/model/definition/extensions.cjs +2 -2
  279. package/dist/production/src/model/definition/extensions.cjs.map +1 -1
  280. package/dist/production/src/model/definition/extensions.js +2 -2
  281. package/dist/production/src/model/definition/extensions.js.map +1 -1
  282. package/dist/production/src/model/definition/fieldDefinitions/ColumnDefinition.cjs +12 -1
  283. package/dist/production/src/model/definition/fieldDefinitions/ColumnDefinition.cjs.map +1 -1
  284. package/dist/production/src/model/definition/fieldDefinitions/ColumnDefinition.js +12 -1
  285. package/dist/production/src/model/definition/fieldDefinitions/ColumnDefinition.js.map +1 -1
  286. package/dist/production/src/model/definition/fieldDefinitions/FieldDefinition.cjs.map +1 -1
  287. package/dist/production/src/model/definition/fieldDefinitions/FieldDefinition.js.map +1 -1
  288. package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyDefinition.cjs.map +1 -1
  289. package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyDefinition.js.map +1 -1
  290. package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.cjs.map +1 -1
  291. package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.js.map +1 -1
  292. package/dist/production/src/model/definition/fieldDefinitions/ManyHasOneDefinition.cjs.map +1 -1
  293. package/dist/production/src/model/definition/fieldDefinitions/ManyHasOneDefinition.js.map +1 -1
  294. package/dist/production/src/model/definition/fieldDefinitions/OneHasManyDefinition.cjs.map +1 -1
  295. package/dist/production/src/model/definition/fieldDefinitions/OneHasManyDefinition.js.map +1 -1
  296. package/dist/production/src/model/definition/fieldDefinitions/OneHasOneDefinition.cjs.map +1 -1
  297. package/dist/production/src/model/definition/fieldDefinitions/OneHasOneDefinition.js.map +1 -1
  298. package/dist/production/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.cjs.map +1 -1
  299. package/dist/production/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.js.map +1 -1
  300. package/dist/production/src/model/definition/index.cjs.map +1 -1
  301. package/dist/production/src/model/definition/index.js.map +1 -1
  302. package/dist/production/src/model/definition/internal/EntityRegistry.cjs.map +1 -1
  303. package/dist/production/src/model/definition/internal/EntityRegistry.js.map +1 -1
  304. package/dist/production/src/model/definition/internal/EnumRegistry.cjs.map +1 -1
  305. package/dist/production/src/model/definition/internal/EnumRegistry.js.map +1 -1
  306. package/dist/production/src/model/definition/internal/SchemaBuilder.cjs.map +1 -1
  307. package/dist/production/src/model/definition/internal/SchemaBuilder.js.map +1 -1
  308. package/dist/production/src/presets.cjs.map +1 -1
  309. package/dist/production/src/presets.js.map +1 -1
  310. package/dist/production/src/strict.cjs +3 -1
  311. package/dist/production/src/strict.cjs.map +1 -1
  312. package/dist/production/src/strict.js +3 -1
  313. package/dist/production/src/strict.js.map +1 -1
  314. package/dist/production/src/utils/MetadataStore.cjs +16 -4
  315. package/dist/production/src/utils/MetadataStore.cjs.map +1 -1
  316. package/dist/production/src/utils/MetadataStore.js +16 -4
  317. package/dist/production/src/utils/MetadataStore.js.map +1 -1
  318. package/dist/production/src/utils/assertNever.cjs.map +1 -1
  319. package/dist/production/src/utils/assertNever.js.map +1 -1
  320. package/dist/production/src/utils/filterEntityDefinition.cjs.map +1 -1
  321. package/dist/production/src/utils/filterEntityDefinition.js.map +1 -1
  322. package/dist/production/src/utils/tuple.cjs.map +1 -1
  323. package/dist/production/src/utils/tuple.js.map +1 -1
  324. package/dist/production/src/validation/index.cjs +25 -11
  325. package/dist/production/src/validation/index.cjs.map +1 -1
  326. package/dist/production/src/validation/index.js +25 -11
  327. package/dist/production/src/validation/index.js.map +1 -1
  328. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  329. package/dist/types/acl/builder/PermissionOverrider.d.ts.map +1 -1
  330. package/dist/types/acl/builder/PermissionsBuilder.d.ts.map +1 -1
  331. package/dist/types/acl/definition/aclExtensions.d.ts.map +1 -1
  332. package/dist/types/acl/definition/internal/AclFactory.d.ts +1 -1
  333. package/dist/types/acl/definition/internal/AclFactory.d.ts.map +1 -1
  334. package/dist/types/acl/definition/internal/EntityPredicateResolver.d.ts.map +1 -1
  335. package/dist/types/acl/definition/internal/stores.d.ts +4 -3
  336. package/dist/types/acl/definition/internal/stores.d.ts.map +1 -1
  337. package/dist/types/acl/definition/permissions.d.ts +7 -2
  338. package/dist/types/acl/definition/permissions.d.ts.map +1 -1
  339. package/dist/types/acl/definition/variables.d.ts.map +1 -1
  340. package/dist/types/actions/definition/index.d.ts.map +1 -1
  341. package/dist/types/actions/definition/internal/ActionsFactory.d.ts +0 -1
  342. package/dist/types/actions/definition/internal/ActionsFactory.d.ts.map +1 -1
  343. package/dist/types/actions/definition/targets.d.ts.map +1 -1
  344. package/dist/types/actions/definition/triggers.d.ts +1 -0
  345. package/dist/types/actions/definition/triggers.d.ts.map +1 -1
  346. package/dist/types/createSchema.d.ts.map +1 -1
  347. package/dist/types/index.d.ts +3 -3
  348. package/dist/types/index.d.ts.map +1 -1
  349. package/dist/types/model/builder/ColumnBuilder.d.ts.map +1 -1
  350. package/dist/types/model/builder/internal/ColumnProcessor.d.ts.map +1 -1
  351. package/dist/types/model/definition/IndexDefinition.d.ts +2 -0
  352. package/dist/types/model/definition/IndexDefinition.d.ts.map +1 -1
  353. package/dist/types/model/definition/OrderByDefinition.d.ts.map +1 -1
  354. package/dist/types/model/definition/UniqueDefinition.d.ts +1 -0
  355. package/dist/types/model/definition/UniqueDefinition.d.ts.map +1 -1
  356. package/dist/types/model/definition/fieldDefinitions/ColumnDefinition.d.ts.map +1 -1
  357. package/dist/types/model/definition/fieldDefinitions/FieldDefinition.d.ts.map +1 -1
  358. package/dist/types/model/definition/fieldDefinitions/ManyHasManyDefinition.d.ts.map +1 -1
  359. package/dist/types/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.d.ts.map +1 -1
  360. package/dist/types/model/definition/fieldDefinitions/ManyHasOneDefinition.d.ts.map +1 -1
  361. package/dist/types/model/definition/fieldDefinitions/OneHasManyDefinition.d.ts.map +1 -1
  362. package/dist/types/model/definition/fieldDefinitions/OneHasOneDefinition.d.ts.map +1 -1
  363. package/dist/types/model/definition/fieldDefinitions/OneHasOneInverseDefinition.d.ts.map +1 -1
  364. package/dist/types/model/definition/index.d.ts +1 -1
  365. package/dist/types/model/definition/index.d.ts.map +1 -1
  366. package/dist/types/model/definition/internal/SchemaBuilder.d.ts.map +1 -1
  367. package/dist/types/model/definition/types.d.ts +1 -1
  368. package/dist/types/model/definition/types.d.ts.map +1 -1
  369. package/dist/types/model/index.d.ts +1 -1
  370. package/dist/types/model/index.d.ts.map +1 -1
  371. package/dist/types/presets.d.ts.map +1 -1
  372. package/dist/types/strict.d.ts.map +1 -1
  373. package/dist/types/tsconfig.tsbuildinfo +1 -1
  374. package/dist/types/utils/MetadataStore.d.ts +1 -1
  375. package/dist/types/utils/MetadataStore.d.ts.map +1 -1
  376. package/dist/types/utils/decorators.d.ts +1 -1
  377. package/dist/types/utils/decorators.d.ts.map +1 -1
  378. package/dist/types/utils/filterEntityDefinition.d.ts.map +1 -1
  379. package/dist/types/validation/index.d.ts +0 -1
  380. package/dist/types/validation/index.d.ts.map +1 -1
  381. package/package.json +11 -6
  382. package/src/acl/builder/EntityPermissionsBuilder.ts +1 -1
  383. package/src/acl/builder/EntitySelector.ts +2 -2
  384. package/src/acl/builder/PermissionOverrider.ts +10 -8
  385. package/src/acl/builder/PermissionsBuilder.ts +1 -3
  386. package/src/acl/definition/aclExtensions.ts +7 -8
  387. package/src/acl/definition/customPrimary.ts +1 -1
  388. package/src/acl/definition/internal/AclFactory.ts +30 -25
  389. package/src/acl/definition/internal/EntityPredicateResolver.ts +4 -4
  390. package/src/acl/definition/internal/stores.ts +5 -6
  391. package/src/acl/definition/permissions.ts +14 -8
  392. package/src/acl/definition/variables.ts +5 -1
  393. package/src/actions/definition/index.ts +0 -1
  394. package/src/actions/definition/internal/ActionsFactory.ts +7 -9
  395. package/src/actions/definition/targets.ts +0 -1
  396. package/src/actions/definition/triggers.ts +9 -7
  397. package/src/createSchema.ts +1 -1
  398. package/src/index.ts +6 -11
  399. package/src/model/builder/ColumnBuilder.ts +7 -5
  400. package/src/model/builder/internal/ColumnProcessor.ts +0 -1
  401. package/src/model/definition/IndexDefinition.ts +7 -3
  402. package/src/model/definition/OrderByDefinition.ts +7 -5
  403. package/src/model/definition/UniqueDefinition.ts +14 -12
  404. package/src/model/definition/extensions.ts +2 -2
  405. package/src/model/definition/fieldDefinitions/ColumnDefinition.ts +12 -4
  406. package/src/model/definition/fieldDefinitions/FieldDefinition.ts +1 -1
  407. package/src/model/definition/fieldDefinitions/ManyHasManyDefinition.ts +0 -2
  408. package/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.ts +4 -2
  409. package/src/model/definition/fieldDefinitions/ManyHasOneDefinition.ts +1 -1
  410. package/src/model/definition/fieldDefinitions/OneHasManyDefinition.ts +0 -1
  411. package/src/model/definition/fieldDefinitions/OneHasOneDefinition.ts +0 -2
  412. package/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.ts +5 -3
  413. package/src/model/definition/index.ts +2 -2
  414. package/src/model/definition/internal/SchemaBuilder.ts +1 -2
  415. package/src/model/definition/types.ts +1 -1
  416. package/src/model/index.ts +1 -10
  417. package/src/presets.ts +0 -2
  418. package/src/strict.ts +4 -4
  419. package/src/utils/MetadataStore.ts +18 -4
  420. package/src/utils/decorators.ts +1 -1
  421. package/src/utils/filterEntityDefinition.ts +3 -2
  422. package/src/validation/index.ts +30 -21
  423. package/tests/cases/unit/createSchema.test.ts +5 -6
  424. package/tests/cases/unit/extendEntity.test.ts +1 -2
  425. package/tests/cases/unit/orderBy.test.ts +3 -6
  426. package/tests/cases/unit/readAclDefinitions.test.ts +191 -176
  427. package/tests/cases/unit/readActions.test.ts +0 -2
@@ -1,7 +1,7 @@
1
1
  import 'reflect-metadata';
2
2
  export interface MetadataStore<V> {
3
3
  get(target: Object): V;
4
- update(target: Object, generator: (current: V) => V): void;
4
+ update(target: Object, generator: (current: V) => V, context?: ClassDecoratorContext): void;
5
5
  }
6
6
  export declare const createMetadataStore: <V>(initialValue: V) => MetadataStore<V>;
7
7
  //# sourceMappingURL=MetadataStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MetadataStore.d.ts","sourceRoot":"","sources":["../../../src/utils/MetadataStore.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAA;AAEzB,MAAM,WAAW,aAAa,CAAC,CAAC;IAC/B,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAA;IACtB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;CAC1D;AAED,eAAO,MAAM,mBAAmB,GAAI,CAAC,EAAE,cAAc,CAAC,KAAG,aAAa,CAAC,CAAC,CAevE,CAAA"}
1
+ {"version":3,"file":"MetadataStore.d.ts","sourceRoot":"","sources":["../../../src/utils/MetadataStore.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAA;AAEzB,MAAM,WAAW,aAAa,CAAC,CAAC;IAC/B,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAA;IACtB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAA;CAC3F;AASD,eAAO,MAAM,mBAAmB,GAAI,CAAC,EAAE,cAAc,CAAC,KAAG,aAAa,CAAC,CAAC,CAsBvE,CAAA"}
@@ -1,5 +1,5 @@
1
1
  export type EntityConstructor<T = any> = {
2
2
  new (): T;
3
3
  };
4
- export type DecoratorFunction<T> = (cls: EntityConstructor<T>) => void;
4
+ export type DecoratorFunction<T> = (cls: EntityConstructor<T>, context?: ClassDecoratorContext) => void;
5
5
  //# sourceMappingURL=decorators.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../../src/utils/decorators.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,CAAC,CAAC,GAAG,GAAG,IAAI;IAAE,QAAO,CAAC,CAAA;CAAE,CAAA;AACrD,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA"}
1
+ {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../../src/utils/decorators.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,CAAC,CAAC,GAAG,GAAG,IAAI;IAAE,QAAO,CAAC,CAAA;CAAE,CAAA;AACrD,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,qBAAqB,KAAK,IAAI,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"filterEntityDefinition.d.ts","sourceRoot":"","sources":["../../../src/utils/filterEntityDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAEhD,eAAO,MAAM,sBAAsB,GAAI,aAAa,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAC1B,CAAA;AAE/E,eAAO,MAAM,mBAAmB,GAAI,IAAI,OAAO,KAAG,EAAE,IAAI,iBAEvD,CAAA"}
1
+ {"version":3,"file":"filterEntityDefinition.d.ts","sourceRoot":"","sources":["../../../src/utils/filterEntityDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAEhD,eAAO,MAAM,sBAAsB,GAAI,aAAa,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAEzB,CAAA;AAEhF,eAAO,MAAM,mBAAmB,GAAI,IAAI,OAAO,KAAG,EAAE,IAAI,iBAEvD,CAAA"}
@@ -1,4 +1,3 @@
1
- import 'reflect-metadata';
2
1
  import { Validation } from '@contember/schema';
3
2
  type MessageOrString = Validation.Message | string;
4
3
  export type ContextPath = Validation.ContextPath | string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/validation/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/validation/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contember/schema-definition",
3
- "version": "2.1.0-alpha.9",
3
+ "version": "2.1.0-beta.1",
4
4
  "license": "Apache-2.0",
5
5
  "main": "./dist/production/index.js",
6
6
  "typings": "./dist/types/index.d.ts",
@@ -23,16 +23,21 @@
23
23
  }
24
24
  },
25
25
  "dependencies": {
26
- "@contember/schema": "2.1.0-alpha.9",
27
- "@contember/schema-utils": "2.1.0-alpha.9",
26
+ "@contember/schema": "2.1.0-beta.1",
27
+ "@contember/schema-utils": "2.1.0-beta.1",
28
28
  "reflect-metadata": "^0.2.2",
29
29
  "fast-deep-equal": "^3.1.3"
30
30
  },
31
31
  "devDependencies": {
32
- "graphql": "^16.9.0"
32
+ "graphql": "^16.13.1"
33
33
  },
34
34
  "peerDependencies": {
35
- "graphql": ">= 14.6.0"
35
+ "graphql": "^16.13.1"
36
36
  },
37
- "type": "module"
37
+ "type": "module",
38
+ "repository": {
39
+ "type": "git",
40
+ "url": "git+https://github.com/contember/contember.git",
41
+ "directory": "packages/schema-definition"
42
+ }
38
43
  }
@@ -121,7 +121,7 @@ export default class EntityPermissionsBuilder {
121
121
  tuple(
122
122
  it,
123
123
  Object.values(it.fields).filter(field => fieldSelectorConst.matches(this.schema, it, field)),
124
- ),
124
+ )
125
125
  )
126
126
  .reduce<[Model.Entity, Model.AnyField][]>(
127
127
  (acc, [entity, fields]) => [...acc, ...fields.map(it => tuple(entity, it))],
@@ -21,8 +21,8 @@ export default class EntitySelector {
21
21
  public havingRelation(name: string, targetEntityName?: string) {
22
22
  return this.matching(
23
23
  (schema, entity) =>
24
- entity.fields[name] &&
25
- acceptFieldVisitor(schema, entity, name, {
24
+ entity.fields[name]
25
+ && acceptFieldVisitor(schema, entity, name, {
26
26
  visitColumn: () => false,
27
27
  visitRelation: ({ targetEntity }) => !targetEntityName || targetEntity.name === targetEntityName,
28
28
  }),
@@ -27,18 +27,20 @@ export default class PermissionOverrider {
27
27
  ? {}
28
28
  : {
29
29
  delete: overrides.operations.delete ?? original.operations.delete,
30
- }),
30
+ }),
31
31
  ...(original.operations.customPrimary === undefined && overrides.operations.customPrimary === undefined
32
32
  ? {}
33
33
  : {
34
34
  customPrimary: overrides.operations.customPrimary ?? original.operations.customPrimary,
35
- }),
36
- ...(original.operations.noRoot || overrides.operations.noRoot ? {
37
- noRoot: [
38
- ...(original.operations.noRoot || []),
39
- ...(overrides.operations.noRoot || []),
40
- ],
41
- } : {}),
35
+ }),
36
+ ...(original.operations.noRoot || overrides.operations.noRoot
37
+ ? {
38
+ noRoot: [
39
+ ...(original.operations.noRoot || []),
40
+ ...(overrides.operations.noRoot || []),
41
+ ],
42
+ }
43
+ : {}),
42
44
  },
43
45
  }
44
46
  }
@@ -38,9 +38,7 @@ class PermissionsBuilder {
38
38
  entitySelector = EntitySelector.named(...entitySelector)
39
39
  }
40
40
  const entitySelectorWithType = entitySelector
41
- const entities = Object.values(this.schema.entities).filter(entity =>
42
- entitySelectorWithType.matches(this.schema, entity),
43
- )
41
+ const entities = Object.values(this.schema.entities).filter(entity => entitySelectorWithType.matches(this.schema, entity))
44
42
  return new EntityPermissionsBuilder(this, entities)
45
43
  }
46
44
 
@@ -2,19 +2,18 @@ import { Acl, Model } from '@contember/schema'
2
2
  import { createMetadataStore, DecoratorFunction, EntityConstructor } from '../../utils'
3
3
  import { Role } from './roles'
4
4
 
5
- export type EntityAclExtensionArgs =
6
- & {
7
- entity: Model.Entity
8
- role: Role
9
- permissions: Acl.EntityPermissions
10
- }
5
+ export type EntityAclExtensionArgs = {
6
+ entity: Model.Entity
7
+ role: Role
8
+ permissions: Acl.EntityPermissions
9
+ }
11
10
 
12
11
  const entityAclExtensionsStore = createMetadataStore<EntityAclExtension[]>([])
13
12
 
14
13
  export type EntityAclExtension = (args: EntityAclExtensionArgs) => Acl.EntityPermissions
15
14
  export const extendEntityAcl = <T>(extension: EntityAclExtension): DecoratorFunction<T> => {
16
- return function (cls: EntityConstructor) {
17
- entityAclExtensionsStore.update(cls, current => [...current, extension])
15
+ return function(cls: EntityConstructor, context?: ClassDecoratorContext) {
16
+ entityAclExtensionsStore.update(cls, current => [...current, extension], context)
18
17
  }
19
18
  }
20
19
 
@@ -5,7 +5,7 @@ import { extendEntityAcl } from './aclExtensions'
5
5
  export const allowCustomPrimary = (role?: Role | Role[]): DecoratorFunction<any> => {
6
6
  return extendEntityAcl(({ permissions, role: currentRole }) => {
7
7
  if (!role || role === currentRole || (Array.isArray(role) && role.includes(currentRole))) {
8
- return { ...permissions, operations: { customPrimary: true } }
8
+ return { ...permissions, operations: { ...permissions.operations, customPrimary: true } }
9
9
  }
10
10
  return permissions
11
11
  })
@@ -3,12 +3,9 @@ import { getEntity } from '@contember/schema-utils'
3
3
 
4
4
  import { EntityPredicatesResolver } from './EntityPredicateResolver'
5
5
  import { AllowDefinition } from '../permissions'
6
- import {
7
- allowDefinitionsStore,
8
- EntityPermissionsDefinition,
9
- } from './stores'
6
+ import { allowDefinitionsStore, EntityPermissionsDefinition } from './stores'
10
7
  import { Role } from '../roles'
11
- import { VariableDefinition } from '../variables'
8
+ import { VariableDefinition } from '../variables'
12
9
  import { filterEntityDefinition } from '../../../utils'
13
10
  import { applyEntityAclExtensions } from '../aclExtensions'
14
11
 
@@ -25,7 +22,7 @@ export class AclFactory {
25
22
  const roles: Role[] = Object.values(exportedDefinitions).filter(it => it instanceof Role)
26
23
  const variables: VariableDefinition[] = Object.values(exportedDefinitions).filter(it => it instanceof VariableDefinition)
27
24
 
28
- const groupedPermissions = AclFactory.groupPermissions(entityLikeDefinition, roles)
25
+ const groupedPermissions = this.groupPermissions(entityLikeDefinition, roles)
29
26
 
30
27
  return {
31
28
  roles: Object.fromEntries(roles.map((role): [string, Acl.RolePermissions] => {
@@ -43,19 +40,25 @@ export class AclFactory {
43
40
  }
44
41
  }
45
42
 
46
- private createPermissions(rolePermissions: PermissionsByEntity | undefined, entityLikeDefinition: Record<string, { new(): any }>, role: Role): Acl.Permissions {
47
- return Object.fromEntries(Object.values(this.model.entities).map((entity): [string, Acl.EntityPermissions] | undefined => {
48
- const permissions = rolePermissions ? this.createPermissionsFromAllow(rolePermissions, entity) : { predicates: {}, operations: {} }
49
- const isEmpty = !rolePermissions?.has(entity.name)
50
- const withExtensions = applyEntityAclExtensions(entityLikeDefinition[entity.name], { entity, permissions, role })
51
- if (isEmpty && withExtensions === permissions) {
52
- return undefined
53
- }
54
- return [
55
- entity.name,
56
- withExtensions,
57
- ]
58
- }).filter(<T>(it: T | undefined): it is T => it !== undefined))
43
+ private createPermissions(
44
+ rolePermissions: PermissionsByEntity | undefined,
45
+ entityLikeDefinition: Record<string, { new(): any }>,
46
+ role: Role,
47
+ ): Acl.Permissions {
48
+ return Object.fromEntries(
49
+ Object.values(this.model.entities).map((entity): [string, Acl.EntityPermissions] | undefined => {
50
+ const permissions = rolePermissions ? this.createPermissionsFromAllow(rolePermissions, entity) : { predicates: {}, operations: {} }
51
+ const isEmpty = !rolePermissions?.has(entity.name)
52
+ const withExtensions = applyEntityAclExtensions(entityLikeDefinition[entity.name], { entity, permissions, role })
53
+ if (isEmpty && withExtensions === permissions) {
54
+ return undefined
55
+ }
56
+ return [
57
+ entity.name,
58
+ withExtensions,
59
+ ]
60
+ }).filter(<T>(it: T | undefined): it is T => it !== undefined),
61
+ )
59
62
  }
60
63
 
61
64
  private createPermissionsFromAllow(rolePermissions: PermissionsByEntity, entity: Model.Entity): Acl.EntityPermissions {
@@ -88,7 +91,6 @@ export class AclFactory {
88
91
  }
89
92
  }
90
93
 
91
-
92
94
  getNoRootOptions(entity: Model.Entity, permissions?: EntityPermissions): Acl.EntityOperations['noRoot'] {
93
95
  const allowedRoot = new Set<Acl.Operation>()
94
96
  const disallowedRoot = new Set<Acl.Operation>()
@@ -106,7 +108,6 @@ export class AclFactory {
106
108
  }
107
109
  }
108
110
  }
109
-
110
111
  }
111
112
  return [...disallowedRoot.values()]
112
113
  }
@@ -118,7 +119,7 @@ export class AclFactory {
118
119
  }))
119
120
  }
120
121
 
121
- private static groupPermissions(entityLikeDefinition: [string, { new(): any }][], roles: Role[]): PermissionsByRoleAndEntity {
122
+ private groupPermissions(entityLikeDefinition: [string, { new(): any }][], roles: Role[]): PermissionsByRoleAndEntity {
122
123
  const groupedPermissions: PermissionsByRoleAndEntity = new Map()
123
124
  for (const [name, entity] of entityLikeDefinition) {
124
125
  const initEntityPermissions = (role: Role): EntityPermissions => {
@@ -131,12 +132,17 @@ export class AclFactory {
131
132
  return entityPermissions
132
133
  }
133
134
  const metadata: EntityPermissionsDefinition[] = allowDefinitionsStore.get(entity)
134
- for (const { role, ...definition } of metadata) {
135
+ for (const { role, factory } of metadata) {
135
136
  if (!roles.includes(role)) {
136
137
  throw `Role ${role.name} used on entity ${name} is not registered. Have you exported it?`
137
138
  }
138
139
  const entityPermissions = initEntityPermissions(role)
139
- entityPermissions.definitions.push(definition)
140
+ const entity = getEntity(this.model, name)
141
+ entityPermissions.definitions.push(factory({
142
+ model: this.model,
143
+ entity: getEntity(this.model, name),
144
+ except: (...fields) => (Object.keys(entity.fields)).filter(it => !fields.includes(it)),
145
+ }))
140
146
  }
141
147
  }
142
148
 
@@ -144,7 +150,6 @@ export class AclFactory {
144
150
  }
145
151
  }
146
152
 
147
-
148
153
  export type EntityPermissions = { definitions: AllowDefinition<any>[] }
149
154
  export type PermissionsByEntity = Map<string, EntityPermissions>
150
155
  export type PermissionsByRoleAndEntity = Map<Role, PermissionsByEntity>
@@ -80,7 +80,6 @@ export class EntityPredicatesResolver {
80
80
  return predicateNames[0]
81
81
  }
82
82
 
83
-
84
83
  const predicate = { or: predicateNames.map(it => this.predicates[it]) }
85
84
  const origName = predicateNames.every(it => this.generatedNames.has(it)) ? createPredicateName(predicate) : predicateNames.join('_or_')
86
85
  let predicateName = origName
@@ -102,7 +101,6 @@ export class EntityPredicatesResolver {
102
101
  return Object.fromEntries(Object.entries(this.predicates).filter(([name]) => this.usedPredicates.includes(name)))
103
102
  }
104
103
 
105
-
106
104
  private static resolvePredicate(
107
105
  model: Model.Schema,
108
106
  entity: Model.Entity,
@@ -116,7 +114,9 @@ export class EntityPredicatesResolver {
116
114
  return ctx.value.name
117
115
  }
118
116
  if (ctx.value instanceof PredicateEvaluationReference) {
119
- throw `Predicate references are allowed only on relations. \nYou cannot use "can${upperCaseFirst(ctx.value.operation)}(${ctx.value.field ? JSON.stringify(ctx.value.field) : ''})" on a column "${ctx.column.name}" of entity "${ctx.entity.name}".`
117
+ throw `Predicate references are allowed only on relations. \nYou cannot use "can${upperCaseFirst(ctx.value.operation)}(${
118
+ ctx.value.field ? JSON.stringify(ctx.value.field) : ''
119
+ })" on a column "${ctx.column.name}" of entity "${ctx.entity.name}".`
120
120
  }
121
121
  return ctx.value
122
122
  },
@@ -138,7 +138,7 @@ export class EntityPredicatesResolver {
138
138
  return { [ctx.targetEntity.primary]: { isNull: false } }
139
139
  }
140
140
  const predicates = (whens as WhenDefinition[]).map(it =>
141
- EntityPredicatesResolver.resolvePredicate(model, ctx.targetEntity, it, rolePermissionsByEntity),
141
+ EntityPredicatesResolver.resolvePredicate(model, ctx.targetEntity, it, rolePermissionsByEntity)
142
142
  )
143
143
  if (predicates.length > 1) {
144
144
  return { or: predicates }
@@ -1,10 +1,9 @@
1
1
  import { createMetadataStore } from '../../../utils/MetadataStore'
2
+ import { AllowDefinitionFactory } from '../permissions'
2
3
  import { Role } from '../roles'
3
- import { AllowDefinition } from '../permissions'
4
4
 
5
- export type EntityPermissionsDefinition =
6
- & AllowDefinition<any>
7
- & {
8
- role: Role<string>
9
- }
5
+ export type EntityPermissionsDefinition = {
6
+ factory: AllowDefinitionFactory<any>
7
+ role: Role<string>
8
+ }
10
9
  export const allowDefinitionsStore = createMetadataStore<EntityPermissionsDefinition[]>([])
@@ -1,4 +1,4 @@
1
- import { Acl } from '@contember/schema'
1
+ import { Acl, Model } from '@contember/schema'
2
2
  import { Role } from './roles'
3
3
  import { VariableDefinition } from './variables'
4
4
  import { PredicateEvaluationReference } from './references'
@@ -18,13 +18,19 @@ export interface AllowDefinition<E> {
18
18
  delete?: true
19
19
  }
20
20
 
21
- export const allow = <E, R extends Role<string>>(role: R | R[], args: AllowDefinition<E>): DecoratorFunction<E> => {
22
- return (entity: EntityConstructor<E>) => {
23
- (Array.isArray(role) ? role : [role]).forEach(role => {
24
- allowDefinitionsStore.update(entity, val => [...val, { ...args, role }])
21
+ export type AllowDefinitionFactory<E> = (args: {
22
+ model: Model.Schema
23
+ entity: Model.Entity<(keyof E) & string>
24
+ except: (...fields: (keyof E)[]) => (keyof E)[]
25
+ }) => AllowDefinition<E>
26
+
27
+ export const allow = <E, R extends Role<string>>(role: R | R[], args: AllowDefinition<E> | AllowDefinitionFactory<E>): DecoratorFunction<E> => {
28
+ return (entity: EntityConstructor<E>, context?: ClassDecoratorContext) => {
29
+ ;(Array.isArray(role) ? role : [role]).forEach(role => {
30
+ allowDefinitionsStore.update(entity, val => [...val, {
31
+ factory: typeof args === 'function' ? args : () => args,
32
+ role,
33
+ }], context)
25
34
  })
26
35
  }
27
36
  }
28
-
29
-
30
-
@@ -1,7 +1,11 @@
1
1
  import { Role } from './roles'
2
2
  import { Acl, Input } from '@contember/schema'
3
3
 
4
- export class VariableDefinition<Name extends string = string, Roles extends Role<string> = Role<string>, Variable extends Acl.Variable = Acl.Variable> {
4
+ export class VariableDefinition<
5
+ Name extends string = string,
6
+ Roles extends Role<string> = Role<string>,
7
+ Variable extends Acl.Variable = Acl.Variable,
8
+ > {
5
9
  constructor(
6
10
  public readonly name: Name,
7
11
  public readonly roles: Roles[],
@@ -4,7 +4,6 @@ import { ActionsFactory } from './internal/ActionsFactory'
4
4
  export * from './triggers'
5
5
  export * from './targets'
6
6
 
7
-
8
7
  export const createActions = (
9
8
  exportedDefinitions: Record<string, any>,
10
9
  ): Actions.Schema => {
@@ -6,10 +6,6 @@ import { ActionsTarget } from '../targets'
6
6
  import { Kind, parse, SelectionNode, ValueNode } from 'graphql'
7
7
 
8
8
  export class ActionsFactory {
9
- constructor(
10
- ) {
11
- }
12
-
13
9
  public create(
14
10
  exportedDefinitions: Record<string, any>,
15
11
  ): Actions.Schema {
@@ -24,10 +20,12 @@ export class ActionsFactory {
24
20
  targetsRegistry.register(name, def.definition)
25
21
  }
26
22
 
27
- const triggersDef = entityLikeDefinition.flatMap(([, entity]) => triggersStore.get(entity).map(it => ({
28
- ...it,
29
- entity,
30
- })))
23
+ const triggersDef = entityLikeDefinition.flatMap(([, entity]) =>
24
+ triggersStore.get(entity).map(it => ({
25
+ ...it,
26
+ entity,
27
+ }))
28
+ )
31
29
 
32
30
  const triggerNames = triggersDef.map(it => it.definition.name).filter((it): it is string => !!it)
33
31
  triggerNames.forEach((it, index, arr) => {
@@ -57,7 +55,6 @@ export class ActionsFactory {
57
55
  triggers[name] = trigger
58
56
  }
59
57
 
60
-
61
58
  return { triggers, targets: targetsRegistry.getTargets() }
62
59
  }
63
60
 
@@ -101,6 +98,7 @@ export class ActionsFactory {
101
98
  watch: this.parseSelection(trigger.watch),
102
99
  selection: trigger.selection ? this.parseSelection(trigger.selection) : undefined,
103
100
  priority: trigger.priority,
101
+ ...('withNodes' in trigger ? { withNodes: trigger.withNodes } : {}),
104
102
  }
105
103
  }
106
104
 
@@ -1,6 +1,5 @@
1
1
  import { Actions } from '@contember/schema'
2
2
 
3
-
4
3
  export class ActionsTarget {
5
4
  constructor(
6
5
  public readonly name: string | undefined,
@@ -35,15 +35,17 @@ export type BasicTriggerDefinition =
35
35
  export type WatchTriggerDefinition =
36
36
  & {
37
37
  readonly watch: Actions.SelectionNode | string
38
+ readonly withNodes?: boolean
38
39
  }
39
40
  & CommonTriggerDefinition
40
41
  & TargetDefinition
41
42
 
42
- export const trigger = <T>(definition: BasicTriggerDefinition): DecoratorFunction<T> => (entity: EntityConstructor<T>) => {
43
- triggersStore.update(entity, it => [...it, { type: 'basic', definition }])
44
- }
45
-
46
- export const watch = <T>(definition: WatchTriggerDefinition): DecoratorFunction<T> => (entity: EntityConstructor<T>) => {
47
- triggersStore.update(entity, it => [...it, { type: 'watch', definition }])
48
- }
43
+ export const trigger =
44
+ <T>(definition: BasicTriggerDefinition): DecoratorFunction<T> => (entity: EntityConstructor<T>, context?: ClassDecoratorContext) => {
45
+ triggersStore.update(entity, it => [...it, { type: 'basic', definition }], context)
46
+ }
49
47
 
48
+ export const watch =
49
+ <T>(definition: WatchTriggerDefinition): DecoratorFunction<T> => (entity: EntityConstructor<T>, context?: ClassDecoratorContext) => {
50
+ triggersStore.update(entity, it => [...it, { type: 'watch', definition }], context)
51
+ }
@@ -4,7 +4,7 @@ import * as AclDefinition from './acl/definition'
4
4
  import * as ActionsDefinition from './actions/definition'
5
5
  import { Model, Schema } from '@contember/schema'
6
6
  import { emptySchema } from '@contember/schema-utils'
7
- import { allStrict, StrictOptions, StrictDefinitionValidator } from './strict'
7
+ import { allStrict, StrictDefinitionValidator, StrictOptions } from './strict'
8
8
 
9
9
  export const createSchema = (definitions: Record<string, any>, modifyCallback?: (schema: Schema) => Schema, options?: {
10
10
  strict?: boolean | StrictOptions
package/src/index.ts CHANGED
@@ -14,20 +14,19 @@ export type { Role }
14
14
  export type { VariableDefinition } from './acl/definition'
15
15
  export type {
16
16
  ColumnDefinition,
17
+ EnumDefinition,
17
18
  FieldDefinition,
18
- OneHasOneDefinition,
19
- OneHasOneInverseDefinition,
20
- OneHasManyDefinition,
21
- ManyHasOneDefinition,
22
19
  ManyHasManyDefinition,
23
20
  ManyHasManyInverseDefinition,
24
- EnumDefinition,
21
+ ManyHasOneDefinition,
22
+ OneHasManyDefinition,
23
+ OneHasOneDefinition,
24
+ OneHasOneInverseDefinition,
25
25
  } from './model/definition'
26
26
 
27
- export { AclDefinition, ActionsDefinition, SchemaDefinition, InputValidation, createSchema }
27
+ export { AclDefinition, ActionsDefinition, createSchema, InputValidation, SchemaDefinition }
28
28
 
29
29
  export const c = {
30
-
31
30
  // ACL
32
31
  // ACL entity decorators
33
32
  AllowCustomPrimary: AclDefinition.allowCustomPrimary,
@@ -43,7 +42,6 @@ export const c = {
43
42
  canUpdate: AclDefinition.canUpdate,
44
43
  canDelete: AclDefinition.canDelete,
45
44
 
46
-
47
45
  // Actions
48
46
  // Actions entity decorators
49
47
  Watch: ActionsDefinition.watch,
@@ -51,7 +49,6 @@ export const c = {
51
49
  // Actions factories
52
50
  createActionsTarget: ActionsDefinition.createTarget,
53
51
 
54
-
55
52
  // Model
56
53
  // Model entity decorators
57
54
  ExtendEntity: SchemaDefinition.extendEntity,
@@ -81,7 +78,6 @@ export const c = {
81
78
  // Model factories
82
79
  createEnum: SchemaDefinition.createEnum,
83
80
 
84
-
85
81
  // Validation
86
82
  // Validation field decorators
87
83
  Assert: InputValidation.assert,
@@ -94,5 +90,4 @@ export const c = {
94
90
  ValidateWhen: InputValidation.when,
95
91
  // Validation utilities
96
92
  rules: InputValidation.rules,
97
-
98
93
  }
@@ -16,11 +16,13 @@ class ColumnBuilder<O extends PartialColumnOptions<never> = PartialColumnOptions
16
16
  type: Model.ColumnType,
17
17
  typeOptions: ColumnBuilder.TypeOptions = {},
18
18
  ): ColumnBuilder<O & PartialColumnOptions<'type'>> {
19
- return new ColumnBuilder<O & PartialColumnOptions<'type'>>({
20
- ...(this.options as object),
21
- type: type,
22
- ...typeOptions,
23
- } as O & PartialColumnOptions<'type'>)
19
+ return new ColumnBuilder<O & PartialColumnOptions<'type'>>(
20
+ {
21
+ ...(this.options as object),
22
+ type: type,
23
+ ...typeOptions,
24
+ } as O & PartialColumnOptions<'type'>,
25
+ )
24
26
  }
25
27
 
26
28
  public nullable(): ColumnBuilder<O> {
@@ -27,7 +27,6 @@ export default class ColumnProcessor implements FieldProcessor<ColumnBuilder.Opt
27
27
  nullable: options.nullable === undefined ? true : options.nullable,
28
28
  }
29
29
  if (type === Model.ColumnType.Enum) {
30
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
31
30
  return { ...common, type: type, columnType: options.enumName! }
32
31
  }
33
32
  return {
@@ -1,17 +1,21 @@
1
1
  import { extendEntity } from './extensions'
2
2
  import { DecoratorFunction } from '../../utils'
3
+ import { Model } from '@contember/schema'
3
4
 
4
- export type IndexOptions<T> = { fields: (keyof T)[] }
5
+ export type IndexOptions<T> = {
6
+ fields: (keyof T)[]
7
+ method?: Model.IndexMethod
8
+ }
5
9
  export function Index<T>(options: IndexOptions<T>): DecoratorFunction<T>
6
10
  export function Index<T>(...fields: (keyof T)[]): DecoratorFunction<T>
7
11
  export function Index<T>(options: IndexOptions<T> | keyof T, ...args: (keyof T)[]): DecoratorFunction<T> {
8
12
  return extendEntity(({ entity }) => {
9
- const fields = (typeof options !== 'object' ? [options, ...args] : options.fields) as string[]
13
+ const indexDef = (typeof options !== 'object' ? { fields: [options, ...args] } : options) as { fields: string[]; method?: Model.IndexMethod }
10
14
  return {
11
15
  ...entity,
12
16
  indexes: [
13
17
  ...entity.indexes,
14
- { fields },
18
+ indexDef,
15
19
  ],
16
20
  }
17
21
  })