@contember/schema-definition 2.1.0-alpha.9 → 2.1.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 (428) 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
  428. package/vitest.config.ts +0 -3
@@ -1,6 +1,6 @@
1
1
  import { expect, test } from 'bun:test'
2
2
  import { c, createSchema } from '../../../src'
3
- import { Acl } from '@contember/schema'
3
+ import { Acl, Model } from '@contember/schema'
4
4
 
5
5
  namespace SimpleModel {
6
6
  export const publicRole = c.createRole('public')
@@ -23,7 +23,6 @@ test('simple definitions', () => {
23
23
  })
24
24
  })
25
25
 
26
-
27
26
  namespace RoleOptions {
28
27
  export const publicRole = c.createRole('public', {
29
28
  debug: true,
@@ -46,7 +45,6 @@ test('role options', () => {
46
45
  })
47
46
  })
48
47
 
49
-
50
48
  namespace ModelWithPredicate {
51
49
  export const publicRole = c.createRole('public')
52
50
 
@@ -110,7 +108,6 @@ test('definition with a predicate on field', () => {
110
108
  })
111
109
  })
112
110
 
113
-
114
111
  namespace ModelWithModificationAcl {
115
112
  export const publicRole = c.createRole('public')
116
113
 
@@ -130,29 +127,28 @@ test('definition with update, create, delete predicates', () => {
130
127
  const schema = createSchema(ModelWithModificationAcl)
131
128
  expect(schema.acl.roles.public.entities.Book).toStrictEqual(
132
129
  {
133
- 'operations': {
134
- 'create': {
135
- 'isPublished': 'isPublished_eq_true',
136
- 'title': 'isPublished_eq_true',
137
- },
138
- 'delete': 'isPublished_eq_true',
139
- 'update': {
140
- 'isPublished': 'isPublished_eq_true',
141
- 'title': 'isPublished_eq_true',
142
- },
143
- },
144
- 'predicates': {
145
- 'isPublished_eq_true': {
146
- 'isPublished': {
147
- 'eq': true,
148
- },
149
- },
150
- },
130
+ 'operations': {
131
+ 'create': {
132
+ 'isPublished': 'isPublished_eq_true',
133
+ 'title': 'isPublished_eq_true',
134
+ },
135
+ 'delete': 'isPublished_eq_true',
136
+ 'update': {
137
+ 'isPublished': 'isPublished_eq_true',
138
+ 'title': 'isPublished_eq_true',
139
+ },
140
+ },
141
+ 'predicates': {
142
+ 'isPublished_eq_true': {
143
+ 'isPublished': {
144
+ 'eq': true,
145
+ },
146
+ },
147
+ },
151
148
  },
152
149
  )
153
150
  })
154
151
 
155
-
156
152
  namespace ModelWithMultiplePredicates {
157
153
  export const publicRole = c.createRole('public')
158
154
 
@@ -174,32 +170,31 @@ test('definition with multiple predicates on a single field', () => {
174
170
  const schema = createSchema(ModelWithMultiplePredicates)
175
171
  expect(schema.acl.roles.public.entities.Book).toStrictEqual(
176
172
  {
177
- 'operations': {
178
- 'read': {
179
- 'title': 'or_isPublished_eq_false_isPub',
180
- },
181
- },
182
- 'predicates': {
183
- 'or_isPublished_eq_false_isPub': {
184
- 'or': [
185
- {
186
- 'isPublished': {
187
- 'eq': false,
188
- },
189
- },
190
- {
191
- 'isPublished': {
192
- 'eq': true,
193
- },
194
- },
195
- ],
196
- },
197
- },
173
+ 'operations': {
174
+ 'read': {
175
+ 'title': 'or_isPublished_eq_false_isPub',
176
+ },
177
+ },
178
+ 'predicates': {
179
+ 'or_isPublished_eq_false_isPub': {
180
+ 'or': [
181
+ {
182
+ 'isPublished': {
183
+ 'eq': false,
184
+ },
185
+ },
186
+ {
187
+ 'isPublished': {
188
+ 'eq': true,
189
+ },
190
+ },
191
+ ],
192
+ },
193
+ },
198
194
  },
199
195
  )
200
196
  })
201
197
 
202
-
203
198
  namespace ModelWithJoinedPredicateCollision {
204
199
  export const publicRole = c.createRole('public')
205
200
 
@@ -225,47 +220,46 @@ test('definition with collision', () => {
225
220
  const schema = createSchema(ModelWithJoinedPredicateCollision)
226
221
  expect(schema.acl.roles.public.entities.Book).toStrictEqual(
227
222
  {
228
- 'operations': {
229
- 'read': {
230
- 'isPublishedLoremIpsumDolorSitAmet': 'or_isPublishedLoremIpsumDolor_1',
231
- 'title': 'or_isPublishedLoremIpsumDolor',
232
- },
233
- },
234
- 'predicates': {
235
- 'or_isPublishedLoremIpsumDolor': {
236
- 'or': [
237
- {
238
- 'isPublishedLoremIpsumDolorSitAmet': {
239
- 'eq': false,
240
- },
241
- },
242
- {
243
- 'isPublishedLoremIpsumDolorSitAmet': {
244
- 'eq': true,
245
- },
246
- },
247
- ],
248
- },
249
- 'or_isPublishedLoremIpsumDolor_1': {
250
- 'or': [
251
- {
252
- 'isPublishedLoremIpsumDolorSitAmet': {
253
- 'eq': false,
254
- },
255
- },
256
- {
257
- 'isPublishedLoremIpsumDolorSitAmet': {
258
- 'eq': false,
259
- },
260
- },
261
- ],
262
- },
263
- },
223
+ 'operations': {
224
+ 'read': {
225
+ 'isPublishedLoremIpsumDolorSitAmet': 'or_isPublishedLoremIpsumDolor_1',
226
+ 'title': 'or_isPublishedLoremIpsumDolor',
227
+ },
228
+ },
229
+ 'predicates': {
230
+ 'or_isPublishedLoremIpsumDolor': {
231
+ 'or': [
232
+ {
233
+ 'isPublishedLoremIpsumDolorSitAmet': {
234
+ 'eq': false,
235
+ },
236
+ },
237
+ {
238
+ 'isPublishedLoremIpsumDolorSitAmet': {
239
+ 'eq': true,
240
+ },
241
+ },
242
+ ],
243
+ },
244
+ 'or_isPublishedLoremIpsumDolor_1': {
245
+ 'or': [
246
+ {
247
+ 'isPublishedLoremIpsumDolorSitAmet': {
248
+ 'eq': false,
249
+ },
250
+ },
251
+ {
252
+ 'isPublishedLoremIpsumDolorSitAmet': {
253
+ 'eq': false,
254
+ },
255
+ },
256
+ ],
257
+ },
258
+ },
264
259
  },
265
260
  )
266
261
  })
267
262
 
268
-
269
263
  namespace ModelWithMultipleRolesForSinglePredicate {
270
264
  export const publicRole = c.createRole('public')
271
265
  export const adminRole = c.createRole('admin')
@@ -283,34 +277,34 @@ test('definition with multiple roles in single predicate', () => {
283
277
  const schema = createSchema(ModelWithMultipleRolesForSinglePredicate)
284
278
  expect(schema.acl.roles).toStrictEqual(
285
279
  {
286
- 'admin': {
287
- 'entities': {
288
- 'Book': {
289
- 'operations': {
290
- 'read': {
291
- 'title': true,
292
- },
293
- },
294
- 'predicates': {},
295
- },
296
- },
297
- 'stages': '*',
298
- 'variables': {},
299
- },
300
- 'public': {
301
- 'entities': {
302
- 'Book': {
303
- 'operations': {
304
- 'read': {
305
- 'title': true,
306
- },
307
- },
308
- 'predicates': {},
309
- },
310
- },
311
- 'stages': '*',
312
- 'variables': {},
313
- },
280
+ 'admin': {
281
+ 'entities': {
282
+ 'Book': {
283
+ 'operations': {
284
+ 'read': {
285
+ 'title': true,
286
+ },
287
+ },
288
+ 'predicates': {},
289
+ },
290
+ },
291
+ 'stages': '*',
292
+ 'variables': {},
293
+ },
294
+ 'public': {
295
+ 'entities': {
296
+ 'Book': {
297
+ 'operations': {
298
+ 'read': {
299
+ 'title': true,
300
+ },
301
+ },
302
+ 'predicates': {},
303
+ },
304
+ },
305
+ 'stages': '*',
306
+ 'variables': {},
307
+ },
314
308
  },
315
309
  )
316
310
  })
@@ -326,6 +320,7 @@ namespace ModelWithAclPredicateReferences {
326
320
  title = c.stringColumn()
327
321
  isPublished = c.boolColumn()
328
322
  }
323
+
329
324
  @c.Allow(publicRole, {
330
325
  when: { book: c.canRead('title') },
331
326
  read: ['content'],
@@ -340,41 +335,40 @@ test('definition with predicate references', () => {
340
335
  const schema = createSchema(ModelWithAclPredicateReferences)
341
336
  expect(schema.acl.roles.public.entities).toStrictEqual(
342
337
  {
343
- 'Book': {
344
- 'operations': {
345
- 'read': {
346
- 'title': 'isPublished_eq_true',
347
- },
348
- },
349
- 'predicates': {
350
- 'isPublished_eq_true': {
351
- 'isPublished': {
352
- 'eq': true,
353
- },
354
- },
355
- },
356
- },
357
- 'BookReview': {
358
- 'operations': {
359
- 'read': {
360
- 'content': 'book_isPublished_eq_true',
361
- },
362
- },
363
- 'predicates': {
364
- 'book_isPublished_eq_true': {
365
- 'book': {
366
- 'isPublished': {
367
- 'eq': true,
368
- },
369
- },
370
- },
371
- },
372
- },
338
+ 'Book': {
339
+ 'operations': {
340
+ 'read': {
341
+ 'title': 'isPublished_eq_true',
342
+ },
343
+ },
344
+ 'predicates': {
345
+ 'isPublished_eq_true': {
346
+ 'isPublished': {
347
+ 'eq': true,
348
+ },
349
+ },
350
+ },
351
+ },
352
+ 'BookReview': {
353
+ 'operations': {
354
+ 'read': {
355
+ 'content': 'book_isPublished_eq_true',
356
+ },
357
+ },
358
+ 'predicates': {
359
+ 'book_isPublished_eq_true': {
360
+ 'book': {
361
+ 'isPublished': {
362
+ 'eq': true,
363
+ },
364
+ },
365
+ },
366
+ },
367
+ },
373
368
  },
374
369
  )
375
370
  })
376
371
 
377
-
378
372
  namespace ModelWithVariables {
379
373
  export const managerRole = c.createRole('manager')
380
374
  export const bookIdVariable = c.createEntityVariable('bookId', 'Book', managerRole)
@@ -392,27 +386,27 @@ test('definition with variables', () => {
392
386
  const schema = createSchema(ModelWithVariables)
393
387
  expect(schema.acl.roles.manager).toStrictEqual(
394
388
  {
395
- 'entities': {
396
- 'Book': {
397
- 'operations': {
398
- 'read': {
399
- 'title': 'id_bookId',
400
- },
401
- },
402
- 'predicates': {
403
- 'id_bookId': {
404
- 'id': 'bookId',
405
- },
406
- },
407
- },
408
- },
409
- 'stages': '*',
410
- 'variables': {
411
- 'bookId': {
412
- 'entityName': 'Book',
413
- 'type': Acl.VariableType.entity,
414
- },
415
- },
389
+ 'entities': {
390
+ 'Book': {
391
+ 'operations': {
392
+ 'read': {
393
+ 'title': 'id_bookId',
394
+ },
395
+ },
396
+ 'predicates': {
397
+ 'id_bookId': {
398
+ 'id': 'bookId',
399
+ },
400
+ },
401
+ },
402
+ },
403
+ 'stages': '*',
404
+ 'variables': {
405
+ 'bookId': {
406
+ 'entityName': 'Book',
407
+ 'type': Acl.VariableType.entity,
408
+ },
409
+ },
416
410
  },
417
411
  )
418
412
  })
@@ -430,10 +424,10 @@ test('allow custom primary', () => {
430
424
  const schema = createSchema(ModelWithAllowCustomPrimary)
431
425
  expect(schema.acl.roles.public.entities.Book).toStrictEqual(
432
426
  {
433
- 'operations': {
434
- 'customPrimary': true,
435
- },
436
- 'predicates': {},
427
+ 'operations': {
428
+ 'customPrimary': true,
429
+ },
430
+ 'predicates': {},
437
431
  },
438
432
  )
439
433
  })
@@ -451,15 +445,14 @@ test('allow custom primary', () => {
451
445
  const schema = createSchema(ModelWithAllowCustomPrimaryAllRoles)
452
446
  expect(schema.acl.roles.public.entities.Book).toStrictEqual(
453
447
  {
454
- 'operations': {
455
- 'customPrimary': true,
456
- },
457
- 'predicates': {},
448
+ 'operations': {
449
+ 'customPrimary': true,
450
+ },
451
+ 'predicates': {},
458
452
  },
459
453
  )
460
454
  })
461
455
 
462
-
463
456
  namespace ModelWithInvalidAclPredicateReferences {
464
457
  export const publicRole = c.createRole('public')
465
458
 
@@ -484,12 +477,11 @@ namespace ModelWithInvalidAclPredicateReferences {
484
477
 
485
478
  test('definition with invalid predicate references', () => {
486
479
  expect(() => createSchema(ModelWithInvalidAclPredicateReferences)).toThrow(
487
- 'Predicate references are allowed only on relations. \n' +
488
- 'You cannot use "canRead("title")" on a column "content" of entity "BookReview".',
480
+ 'Predicate references are allowed only on relations. \n'
481
+ + 'You cannot use "canRead("title")" on a column "content" of entity "BookReview".',
489
482
  )
490
483
  })
491
484
 
492
-
493
485
  namespace ModelWithPredefinedVariables {
494
486
  export const customerRole = c.createRole('customer')
495
487
  export const personId = c.createPredefinedVariable('person', 'personID', customerRole)
@@ -545,7 +537,6 @@ test('invalid column', () => {
545
537
  expect(() => createSchema(InvalidModel)).toThrow('Field "bar" does not exist on entity "Book" in read ACL definition.')
546
538
  })
547
539
 
548
-
549
540
  namespace ExplicitIdPredicate {
550
541
  export const publicRole = c.createRole('public')
551
542
 
@@ -620,7 +611,6 @@ test('no root - valid', () => {
620
611
  })
621
612
  })
622
613
 
623
-
624
614
  namespace NoRootInvalid {
625
615
  export const publicRole = c.createRole('public')
626
616
 
@@ -642,3 +632,28 @@ namespace NoRootInvalid {
642
632
  test('no root - invalid combo', () => {
643
633
  expect(() => createSchema(NoRootInvalid)).toThrow('Operation update cannot be both allowed and disallowed on root on entity Book')
644
634
  })
635
+
636
+ namespace AllowFactoryModel {
637
+ export const publicRole = c.createRole('public')
638
+
639
+ @c.Allow(publicRole, ({ except }) => ({
640
+ read: except('confidential'),
641
+ }))
642
+ export class Book {
643
+ title = c.stringColumn()
644
+ confidential = c.stringColumn()
645
+ }
646
+ }
647
+
648
+ test('allow with factory', () => {
649
+ const schema = createSchema(AllowFactoryModel)
650
+ expect(schema.acl.roles.public.entities.Book).toStrictEqual({
651
+ 'operations': {
652
+ 'read': {
653
+ 'id': true,
654
+ 'title': true,
655
+ },
656
+ },
657
+ 'predicates': {},
658
+ })
659
+ })
@@ -3,7 +3,6 @@ import { expect, test } from 'bun:test'
3
3
  import { createActions } from '../../../src/actions/definition'
4
4
 
5
5
  namespace SimpleActions {
6
-
7
6
  @c.Watch({
8
7
  name: 'book_watch',
9
8
  watch: `
@@ -32,7 +31,6 @@ namespace SimpleActions {
32
31
  locale = c.manyHasOne(Locale)
33
32
  }
34
33
 
35
-
36
34
  export class Category {
37
35
  locales = c.oneHasMany(CategoryLocale, 'category')
38
36
  }
package/vitest.config.ts DELETED
@@ -1,3 +0,0 @@
1
- import { defineProject } from 'vitest/config'
2
-
3
- export default defineProject({})