@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
package/CLAUDE.md ADDED
@@ -0,0 +1,64 @@
1
+ # schema-definition
2
+
3
+ TypeScript decorator-based API for defining Contember schemas. Converts decorated classes into the internal `Schema` representation (model + ACL + validation + actions).
4
+
5
+ ## Schema Building Flow
6
+
7
+ `createSchema(definitions)` orchestrates:
8
+ 1. `SchemaDefinition.createModel()` — entities and fields from decorated classes
9
+ 2. `InputValidation.parseDefinition()` — validation rules from property decorators
10
+ 3. `AclDefinition.createAcl()` — permissions from `@allow` decorators and role/variable definitions
11
+ 4. `ActionsDefinition.createActions()` — triggers from `@trigger`/`@watch` decorators
12
+
13
+ ## Field Definitions (Fluent API)
14
+
15
+ Column factories: `column()`, `stringColumn()`, `intColumn()`, `boolColumn()`, `doubleColumn()`, `dateColumn()`, `timeColumn()`, `dateTimeColumn()`, `jsonColumn()`, `enumColumn()`, `uuidColumn()`
16
+
17
+ Chainable methods: `.nullable()`, `.notNull()`, `.default()`, `.unique()`, `.sequence()`, `.columnName()`, `.columnType()`, `.collation()`
18
+
19
+ Relation factories: `manyHasOne()`, `oneHasOne()`, `oneHasMany()`, `manyHasMany()`, `manyHasManyInverse()`, `oneHasOneInverse()`
20
+
21
+ Relation methods: `.inversedBy()`, `.joiningColumn()`, `.onDelete()` / `.cascadeOnDelete()` / `.setNullOnDelete()`, `.notNull()`, `.removeOrphan()`, `.orderBy()`
22
+
23
+ ## Entity Decorators
24
+
25
+ - `@Index({ fields, method? })` — database index
26
+ - `@Unique({ fields, timing?, nulls? })` — unique constraint
27
+ - `@View(sql, { dependencies?, idSource?, materialized? })` — database view
28
+ - `@OrderBy(field, direction)` — default ordering
29
+ - `@DisableEventLog()` — disable audit triggers
30
+
31
+ ## ACL Definition
32
+
33
+ - `createRole(name, options)` — define a role
34
+ - `@allow(role, { read?, create?, update?, delete?, when? })` — entity permissions
35
+ - `createEntityVariable()`, `createConditionVariable()`, `createPredefinedVariable()` — ACL variables
36
+ - `canRead()`, `canUpdate()`, `canCreate()`, `canDelete()` — predicate references
37
+
38
+ ## Validation
39
+
40
+ Property decorators: `@assert()`, `@required()`, `@assertDefined()`, `@assertNotEmpty()`, `@assertPattern()`, `@assertMinLength()`, `@assertMaxLength()`
41
+
42
+ Conditional: `@when(condition).assertMinLength(3, 'msg')`
43
+
44
+ ## Actions
45
+
46
+ - `@trigger({ name, create?, update?, delete?, target })` — basic CRUD trigger
47
+ - `@watch({ name, watch, target })` — deep change tracking
48
+ - `createActionsTarget({ name, ...config })` — webhook target
49
+
50
+ ## Metadata Storage
51
+
52
+ Supports both legacy TypeScript decorators (`reflect-metadata`) and TC39 Stage 3 decorators via `createMetadataStore()`.
53
+
54
+ ## Convenience Export
55
+
56
+ The `c` object bundles all decorators and factories for concise usage: `c.stringColumn()`, `c.manyHasOne()`, `c.Allow()`, `c.Assert()`, etc.
57
+
58
+ ## Key Directories
59
+
60
+ - `model/definition/fieldDefinitions/` — ColumnDefinition, relation definitions
61
+ - `model/definition/internal/` — SchemaBuilder, EntityRegistry, EnumRegistry
62
+ - `acl/definition/` — roles, permissions, variables, AclFactory
63
+ - `validation/` — rule builders, parseDefinition
64
+ - `actions/definition/` — triggers, targets, ActionsFactory
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const index = require("./src/acl/definition/index.cjs");
4
4
  const index$1 = require("./src/actions/definition/index.cjs");
5
- const index$3 = require("./src/validation/index.cjs");
5
+ const index$2 = require("./src/validation/index.cjs");
6
6
  const SchemaBuilder = require("./src/model/builder/SchemaBuilder.cjs");
7
7
  const ColumnBuilder = require("./src/model/builder/ColumnBuilder.cjs");
8
8
  const ManyHasManyBuilder = require("./src/model/builder/ManyHasManyBuilder.cjs");
@@ -10,32 +10,32 @@ const OneHasManyBuilder = require("./src/model/builder/OneHasManyBuilder.cjs");
10
10
  const ManyHasOneBuilder = require("./src/model/builder/ManyHasOneBuilder.cjs");
11
11
  const OneHasOneBuilder = require("./src/model/builder/OneHasOneBuilder.cjs");
12
12
  const FieldBuilder = require("./src/model/builder/FieldBuilder.cjs");
13
- const index$2 = require("./src/model/definition/index.cjs");
13
+ const index$3 = require("./src/model/definition/index.cjs");
14
14
  const createSchema = require("./src/createSchema.cjs");
15
15
  const schemaUtils = require("@contember/schema-utils");
16
16
  const PermissionsBuilder = require("./src/acl/builder/PermissionsBuilder.cjs");
17
17
  const presets = require("./src/presets.cjs");
18
- const customPrimary = require("./src/acl/definition/customPrimary.cjs");
19
- const permissions = require("./src/acl/definition/permissions.cjs");
20
- const roles = require("./src/acl/definition/roles.cjs");
21
- const variables = require("./src/acl/definition/variables.cjs");
22
- const references = require("./src/acl/definition/references.cjs");
23
- const triggers = require("./src/actions/definition/triggers.cjs");
24
- const targets = require("./src/actions/definition/targets.cjs");
25
- const extensions = require("./src/model/definition/extensions.cjs");
26
- const IndexDefinition = require("./src/model/definition/IndexDefinition.cjs");
27
- const UniqueDefinition = require("./src/model/definition/UniqueDefinition.cjs");
28
- const ViewDefinition = require("./src/model/definition/ViewDefinition.cjs");
29
- const EventLogDefinition = require("./src/model/definition/EventLogDefinition.cjs");
30
- const OrderByDefinition = require("./src/model/definition/OrderByDefinition.cjs");
31
- const ColumnDefinition = require("./src/model/definition/fieldDefinitions/ColumnDefinition.cjs");
32
- const ManyHasManyDefinition = require("./src/model/definition/fieldDefinitions/ManyHasManyDefinition.cjs");
33
- const ManyHasManyInverseDefinition = require("./src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.cjs");
34
- const ManyHasOneDefinition = require("./src/model/definition/fieldDefinitions/ManyHasOneDefinition.cjs");
35
- const OneHasOneDefinition = require("./src/model/definition/fieldDefinitions/OneHasOneDefinition.cjs");
36
- const OneHasOneInverseDefinition = require("./src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.cjs");
37
- const OneHasManyDefinition = require("./src/model/definition/fieldDefinitions/OneHasManyDefinition.cjs");
38
18
  const EnumDefinition = require("./src/model/definition/EnumDefinition.cjs");
19
+ const OneHasManyDefinition = require("./src/model/definition/fieldDefinitions/OneHasManyDefinition.cjs");
20
+ const OneHasOneInverseDefinition = require("./src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.cjs");
21
+ const OneHasOneDefinition = require("./src/model/definition/fieldDefinitions/OneHasOneDefinition.cjs");
22
+ const ManyHasOneDefinition = require("./src/model/definition/fieldDefinitions/ManyHasOneDefinition.cjs");
23
+ const ManyHasManyInverseDefinition = require("./src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.cjs");
24
+ const ManyHasManyDefinition = require("./src/model/definition/fieldDefinitions/ManyHasManyDefinition.cjs");
25
+ const ColumnDefinition = require("./src/model/definition/fieldDefinitions/ColumnDefinition.cjs");
26
+ const OrderByDefinition = require("./src/model/definition/OrderByDefinition.cjs");
27
+ const EventLogDefinition = require("./src/model/definition/EventLogDefinition.cjs");
28
+ const ViewDefinition = require("./src/model/definition/ViewDefinition.cjs");
29
+ const UniqueDefinition = require("./src/model/definition/UniqueDefinition.cjs");
30
+ const IndexDefinition = require("./src/model/definition/IndexDefinition.cjs");
31
+ const extensions = require("./src/model/definition/extensions.cjs");
32
+ const targets = require("./src/actions/definition/targets.cjs");
33
+ const triggers = require("./src/actions/definition/triggers.cjs");
34
+ const references = require("./src/acl/definition/references.cjs");
35
+ const variables = require("./src/acl/definition/variables.cjs");
36
+ const roles = require("./src/acl/definition/roles.cjs");
37
+ const permissions = require("./src/acl/definition/permissions.cjs");
38
+ const customPrimary = require("./src/acl/definition/customPrimary.cjs");
39
39
  const c = {
40
40
  // ACL
41
41
  // ACL entity decorators
@@ -87,20 +87,20 @@ const c = {
87
87
  createEnum: EnumDefinition.createEnum,
88
88
  // Validation
89
89
  // Validation field decorators
90
- Assert: index$3.assert,
91
- Required: index$3.required,
92
- AssertDefined: index$3.assertDefined,
93
- AssertNotEmpty: index$3.assertNotEmpty,
94
- AssertPattern: index$3.assertPattern,
95
- AssertMinLength: index$3.assertMinLength,
96
- AssertMaxLength: index$3.assertMaxLength,
97
- ValidateWhen: index$3.when,
90
+ Assert: index$2.assert,
91
+ Required: index$2.required,
92
+ AssertDefined: index$2.assertDefined,
93
+ AssertNotEmpty: index$2.assertNotEmpty,
94
+ AssertPattern: index$2.assertPattern,
95
+ AssertMinLength: index$2.assertMinLength,
96
+ AssertMaxLength: index$2.assertMaxLength,
97
+ ValidateWhen: index$2.when,
98
98
  // Validation utilities
99
- rules: index$3.rules
99
+ rules: index$2.rules
100
100
  };
101
101
  exports.AclDefinition = index;
102
102
  exports.ActionsDefinition = index$1;
103
- exports.InputValidation = index$3;
103
+ exports.InputValidation = index$2;
104
104
  exports.SchemaBuilder = SchemaBuilder.default;
105
105
  exports.ColumnBuilder = ColumnBuilder;
106
106
  exports.ManyHasManyBuilder = ManyHasManyBuilder;
@@ -108,7 +108,7 @@ exports.OneHasManyBuilder = OneHasManyBuilder;
108
108
  exports.ManyHasOneBuilder = ManyHasOneBuilder;
109
109
  exports.OneHasOneBuilder = OneHasOneBuilder;
110
110
  exports.FieldBuilder = FieldBuilder;
111
- exports.SchemaDefinition = index$2;
111
+ exports.SchemaDefinition = index$3;
112
112
  exports.createSchema = createSchema.createSchema;
113
113
  Object.defineProperty(exports, "AllowAllPermissionFactory", {
114
114
  enumerable: true,
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../packages/schema-definition/src/index.ts"],"sourcesContent":["import * as AclDefinition from './acl/definition'\nimport { Role } from './acl/definition'\nimport * as ActionsDefinition from './actions/definition'\nimport * as InputValidation from './validation'\nimport { SchemaDefinition } from './model'\nimport { createSchema } from './createSchema'\n\nexport { AllowAllPermissionFactory } from '@contember/schema-utils'\nexport { PermissionsBuilder } from './acl/builder/PermissionsBuilder'\nexport * from './model'\nexport * from './presets'\n\nexport type { Role }\nexport type { VariableDefinition } from './acl/definition'\nexport type {\n\tColumnDefinition,\n\tFieldDefinition,\n\tOneHasOneDefinition,\n\tOneHasOneInverseDefinition,\n\tOneHasManyDefinition,\n\tManyHasOneDefinition,\n\tManyHasManyDefinition,\n\tManyHasManyInverseDefinition,\n\tEnumDefinition,\n} from './model/definition'\n\nexport { AclDefinition, ActionsDefinition, SchemaDefinition, InputValidation, createSchema }\n\nexport const c = {\n\n\t// ACL\n\t// ACL entity decorators\n\tAllowCustomPrimary: AclDefinition.allowCustomPrimary,\n\tAllow: AclDefinition.allow,\n\t// ACL factories\n\tcreateRole: AclDefinition.createRole,\n\tcreateConditionVariable: AclDefinition.createConditionVariable,\n\tcreateEntityVariable: AclDefinition.createEntityVariable,\n\tcreatePredefinedVariable: AclDefinition.createPredefinedVariable,\n\t// ACL utilities\n\tcanCreate: AclDefinition.canCreate,\n\tcanRead: AclDefinition.canRead,\n\tcanUpdate: AclDefinition.canUpdate,\n\tcanDelete: AclDefinition.canDelete,\n\n\n\t// Actions\n\t// Actions entity decorators\n\tWatch: ActionsDefinition.watch,\n\tTrigger: ActionsDefinition.trigger,\n\t// Actions factories\n\tcreateActionsTarget: ActionsDefinition.createTarget,\n\n\n\t// Model\n\t// Model entity decorators\n\tExtendEntity: SchemaDefinition.extendEntity,\n\tIndex: SchemaDefinition.Index,\n\tUnique: SchemaDefinition.Unique,\n\tView: SchemaDefinition.View,\n\tDisableEventLog: SchemaDefinition.DisableEventLog,\n\tOrderBy: SchemaDefinition.OrderBy,\n\t// Model field factories\n\tcolumn: SchemaDefinition.column,\n\tboolColumn: SchemaDefinition.boolColumn,\n\tintColumn: SchemaDefinition.intColumn,\n\tdoubleColumn: SchemaDefinition.doubleColumn,\n\tdateColumn: SchemaDefinition.dateColumn,\n\ttimeColumn: SchemaDefinition.timeColumn,\n\tdateTimeColumn: SchemaDefinition.dateTimeColumn,\n\tjsonColumn: SchemaDefinition.jsonColumn,\n\tstringColumn: SchemaDefinition.stringColumn,\n\tenumColumn: SchemaDefinition.enumColumn,\n\tuuidColumn: SchemaDefinition.uuidColumn,\n\tmanyHasMany: SchemaDefinition.manyHasMany,\n\tmanyHasManyInverse: SchemaDefinition.manyHasManyInverse,\n\tmanyHasOne: SchemaDefinition.manyHasOne,\n\toneHasOne: SchemaDefinition.oneHasOne,\n\toneHasOneInverse: SchemaDefinition.oneHasOneInverse,\n\toneHasMany: SchemaDefinition.oneHasMany,\n\t// Model factories\n\tcreateEnum: SchemaDefinition.createEnum,\n\n\n\t// Validation\n\t// Validation field decorators\n\tAssert: InputValidation.assert,\n\tRequired: InputValidation.required,\n\tAssertDefined: InputValidation.assertDefined,\n\tAssertNotEmpty: InputValidation.assertNotEmpty,\n\tAssertPattern: InputValidation.assertPattern,\n\tAssertMinLength: InputValidation.assertMinLength,\n\tAssertMaxLength: InputValidation.assertMaxLength,\n\tValidateWhen: InputValidation.when,\n\t// Validation utilities\n\trules: InputValidation.rules,\n\n}\n"],"names":["AclDefinition.allowCustomPrimary","AclDefinition.allow","AclDefinition.createRole","AclDefinition.createConditionVariable","AclDefinition.createEntityVariable","AclDefinition.createPredefinedVariable","AclDefinition.canCreate","AclDefinition.canRead","AclDefinition.canUpdate","AclDefinition.canDelete","ActionsDefinition.watch","ActionsDefinition.trigger","ActionsDefinition.createTarget","SchemaDefinition.extendEntity","SchemaDefinition.Index","SchemaDefinition.Unique","SchemaDefinition.View","SchemaDefinition.DisableEventLog","SchemaDefinition.OrderBy","SchemaDefinition.column","SchemaDefinition.boolColumn","SchemaDefinition.intColumn","SchemaDefinition.doubleColumn","SchemaDefinition.dateColumn","SchemaDefinition.timeColumn","SchemaDefinition.dateTimeColumn","SchemaDefinition.jsonColumn","SchemaDefinition.stringColumn","SchemaDefinition.enumColumn","SchemaDefinition.uuidColumn","SchemaDefinition.manyHasMany","SchemaDefinition.manyHasManyInverse","SchemaDefinition.manyHasOne","SchemaDefinition.oneHasOne","SchemaDefinition.oneHasOneInverse","SchemaDefinition.oneHasMany","SchemaDefinition.createEnum","InputValidation.assert","InputValidation.required","InputValidation.assertDefined","InputValidation.assertNotEmpty","InputValidation.assertPattern","InputValidation.assertMinLength","InputValidation.assertMaxLength","InputValidation.when","InputValidation.rules"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BO,MAAM,IAAI;AAAA;AAAA;AAAA,EAIhB,oBAAoBA,cAAc;AAAA,EAClC,OAAOC,YAAc;AAAA;AAAA,EAErB,YAAYC,MAAc;AAAA,EAC1B,yBAAyBC,UAAc;AAAA,EACvC,sBAAsBC,UAAc;AAAA,EACpC,0BAA0BC,UAAc;AAAA;AAAA,EAExC,WAAWC,WAAc;AAAA,EACzB,SAASC,WAAc;AAAA,EACvB,WAAWC,WAAc;AAAA,EACzB,WAAWC,WAAc;AAAA;AAAA;AAAA,EAKzB,OAAOC,SAAkB;AAAA,EACzB,SAASC,SAAkB;AAAA;AAAA,EAE3B,qBAAqBC,QAAkB;AAAA;AAAA;AAAA,EAKvC,cAAcC,WAAiB;AAAA,EAC/B,OAAOC,gBAAiB;AAAA,EACxB,QAAQC,iBAAiB;AAAA,EACzB,MAAMC,eAAiB;AAAA,EACvB,iBAAiBC,mBAAiB;AAAA,EAClC,SAASC,kBAAiB;AAAA;AAAA,EAE1B,QAAQC,iBAAiB;AAAA,EACzB,YAAYC,iBAAiB;AAAA,EAC7B,WAAWC,iBAAiB;AAAA,EAC5B,cAAcC,iBAAiB;AAAA,EAC/B,YAAYC,iBAAiB;AAAA,EAC7B,YAAYC,iBAAiB;AAAA,EAC7B,gBAAgBC,iBAAiB;AAAA,EACjC,YAAYC,iBAAiB;AAAA,EAC7B,cAAcC,iBAAiB;AAAA,EAC/B,YAAYC,iBAAiB;AAAA,EAC7B,YAAYC,iBAAiB;AAAA,EAC7B,aAAaC,sBAAiB;AAAA,EAC9B,oBAAoBC,6BAAiB;AAAA,EACrC,YAAYC,qBAAiB;AAAA,EAC7B,WAAWC,oBAAiB;AAAA,EAC5B,kBAAkBC,2BAAiB;AAAA,EACnC,YAAYC,qBAAiB;AAAA;AAAA,EAE7B,YAAYC,eAAiB;AAAA;AAAA;AAAA,EAK7B,QAAQC,QAAgB;AAAA,EACxB,UAAUC,QAAgB;AAAA,EAC1B,eAAeC,QAAgB;AAAA,EAC/B,gBAAgBC,QAAgB;AAAA,EAChC,eAAeC,QAAgB;AAAA,EAC/B,iBAAiBC,QAAgB;AAAA,EACjC,iBAAiBC,QAAgB;AAAA,EACjC,cAAcC,QAAgB;AAAA;AAAA,EAE9B,OAAOC,QAAAA;AAER;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../packages/schema-definition/src/index.ts"],"sourcesContent":["import * as AclDefinition from './acl/definition'\nimport { Role } from './acl/definition'\nimport * as ActionsDefinition from './actions/definition'\nimport * as InputValidation from './validation'\nimport { SchemaDefinition } from './model'\nimport { createSchema } from './createSchema'\n\nexport { AllowAllPermissionFactory } from '@contember/schema-utils'\nexport { PermissionsBuilder } from './acl/builder/PermissionsBuilder'\nexport * from './model'\nexport * from './presets'\n\nexport type { Role }\nexport type { VariableDefinition } from './acl/definition'\nexport type {\n\tColumnDefinition,\n\tEnumDefinition,\n\tFieldDefinition,\n\tManyHasManyDefinition,\n\tManyHasManyInverseDefinition,\n\tManyHasOneDefinition,\n\tOneHasManyDefinition,\n\tOneHasOneDefinition,\n\tOneHasOneInverseDefinition,\n} from './model/definition'\n\nexport { AclDefinition, ActionsDefinition, createSchema, InputValidation, SchemaDefinition }\n\nexport const c = {\n\t// ACL\n\t// ACL entity decorators\n\tAllowCustomPrimary: AclDefinition.allowCustomPrimary,\n\tAllow: AclDefinition.allow,\n\t// ACL factories\n\tcreateRole: AclDefinition.createRole,\n\tcreateConditionVariable: AclDefinition.createConditionVariable,\n\tcreateEntityVariable: AclDefinition.createEntityVariable,\n\tcreatePredefinedVariable: AclDefinition.createPredefinedVariable,\n\t// ACL utilities\n\tcanCreate: AclDefinition.canCreate,\n\tcanRead: AclDefinition.canRead,\n\tcanUpdate: AclDefinition.canUpdate,\n\tcanDelete: AclDefinition.canDelete,\n\n\t// Actions\n\t// Actions entity decorators\n\tWatch: ActionsDefinition.watch,\n\tTrigger: ActionsDefinition.trigger,\n\t// Actions factories\n\tcreateActionsTarget: ActionsDefinition.createTarget,\n\n\t// Model\n\t// Model entity decorators\n\tExtendEntity: SchemaDefinition.extendEntity,\n\tIndex: SchemaDefinition.Index,\n\tUnique: SchemaDefinition.Unique,\n\tView: SchemaDefinition.View,\n\tDisableEventLog: SchemaDefinition.DisableEventLog,\n\tOrderBy: SchemaDefinition.OrderBy,\n\t// Model field factories\n\tcolumn: SchemaDefinition.column,\n\tboolColumn: SchemaDefinition.boolColumn,\n\tintColumn: SchemaDefinition.intColumn,\n\tdoubleColumn: SchemaDefinition.doubleColumn,\n\tdateColumn: SchemaDefinition.dateColumn,\n\ttimeColumn: SchemaDefinition.timeColumn,\n\tdateTimeColumn: SchemaDefinition.dateTimeColumn,\n\tjsonColumn: SchemaDefinition.jsonColumn,\n\tstringColumn: SchemaDefinition.stringColumn,\n\tenumColumn: SchemaDefinition.enumColumn,\n\tuuidColumn: SchemaDefinition.uuidColumn,\n\tmanyHasMany: SchemaDefinition.manyHasMany,\n\tmanyHasManyInverse: SchemaDefinition.manyHasManyInverse,\n\tmanyHasOne: SchemaDefinition.manyHasOne,\n\toneHasOne: SchemaDefinition.oneHasOne,\n\toneHasOneInverse: SchemaDefinition.oneHasOneInverse,\n\toneHasMany: SchemaDefinition.oneHasMany,\n\t// Model factories\n\tcreateEnum: SchemaDefinition.createEnum,\n\n\t// Validation\n\t// Validation field decorators\n\tAssert: InputValidation.assert,\n\tRequired: InputValidation.required,\n\tAssertDefined: InputValidation.assertDefined,\n\tAssertNotEmpty: InputValidation.assertNotEmpty,\n\tAssertPattern: InputValidation.assertPattern,\n\tAssertMinLength: InputValidation.assertMinLength,\n\tAssertMaxLength: InputValidation.assertMaxLength,\n\tValidateWhen: InputValidation.when,\n\t// Validation utilities\n\trules: InputValidation.rules,\n}\n"],"names":["AclDefinition.allowCustomPrimary","AclDefinition.allow","AclDefinition.createRole","AclDefinition.createConditionVariable","AclDefinition.createEntityVariable","AclDefinition.createPredefinedVariable","AclDefinition.canCreate","AclDefinition.canRead","AclDefinition.canUpdate","AclDefinition.canDelete","ActionsDefinition.watch","ActionsDefinition.trigger","ActionsDefinition.createTarget","SchemaDefinition.extendEntity","SchemaDefinition.Index","SchemaDefinition.Unique","SchemaDefinition.View","SchemaDefinition.DisableEventLog","SchemaDefinition.OrderBy","SchemaDefinition.column","SchemaDefinition.boolColumn","SchemaDefinition.intColumn","SchemaDefinition.doubleColumn","SchemaDefinition.dateColumn","SchemaDefinition.timeColumn","SchemaDefinition.dateTimeColumn","SchemaDefinition.jsonColumn","SchemaDefinition.stringColumn","SchemaDefinition.enumColumn","SchemaDefinition.uuidColumn","SchemaDefinition.manyHasMany","SchemaDefinition.manyHasManyInverse","SchemaDefinition.manyHasOne","SchemaDefinition.oneHasOne","SchemaDefinition.oneHasOneInverse","SchemaDefinition.oneHasMany","SchemaDefinition.createEnum","InputValidation.assert","InputValidation.required","InputValidation.assertDefined","InputValidation.assertNotEmpty","InputValidation.assertPattern","InputValidation.assertMinLength","InputValidation.assertMaxLength","InputValidation.when","InputValidation.rules"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BO,MAAM,IAAI;AAAA;AAAA;AAAA,EAGhB,oBAAoBA,cAAAA;AAAAA,EACpB,OAAOC,YAAAA;AAAAA;AAAAA,EAEP,YAAYC,MAAAA;AAAAA,EACZ,yBAAyBC,UAAAA;AAAAA,EACzB,sBAAsBC,UAAAA;AAAAA,EACtB,0BAA0BC,UAAAA;AAAAA;AAAAA,EAE1B,WAAWC,WAAAA;AAAAA,EACX,SAASC,WAAAA;AAAAA,EACT,WAAWC,WAAAA;AAAAA,EACX,WAAWC,WAAAA;AAAAA;AAAAA;AAAAA,EAIX,OAAOC,SAAAA;AAAAA,EACP,SAASC,SAAAA;AAAAA;AAAAA,EAET,qBAAqBC,QAAAA;AAAAA;AAAAA;AAAAA,EAIrB,cAAcC,WAAAA;AAAAA,EACd,OAAOC,gBAAAA;AAAAA,EACP,QAAQC,iBAAAA;AAAAA,EACR,MAAMC,eAAAA;AAAAA,EACN,iBAAiBC,mBAAAA;AAAAA,EACjB,SAASC,kBAAAA;AAAAA;AAAAA,EAET,QAAQC,iBAAAA;AAAAA,EACR,YAAYC,iBAAAA;AAAAA,EACZ,WAAWC,iBAAAA;AAAAA,EACX,cAAcC,iBAAAA;AAAAA,EACd,YAAYC,iBAAAA;AAAAA,EACZ,YAAYC,iBAAAA;AAAAA,EACZ,gBAAgBC,iBAAAA;AAAAA,EAChB,YAAYC,iBAAAA;AAAAA,EACZ,cAAcC,iBAAAA;AAAAA,EACd,YAAYC,iBAAAA;AAAAA,EACZ,YAAYC,iBAAAA;AAAAA,EACZ,aAAaC,sBAAAA;AAAAA,EACb,oBAAoBC,6BAAAA;AAAAA,EACpB,YAAYC,qBAAAA;AAAAA,EACZ,WAAWC,oBAAAA;AAAAA,EACX,kBAAkBC,2BAAAA;AAAAA,EAClB,YAAYC,qBAAAA;AAAAA;AAAAA,EAEZ,YAAYC,eAAAA;AAAAA;AAAAA;AAAAA,EAIZ,QAAQC,QAAAA;AAAAA,EACR,UAAUC,QAAAA;AAAAA,EACV,eAAeC,QAAAA;AAAAA,EACf,gBAAgBC,QAAAA;AAAAA,EAChB,eAAeC,QAAAA;AAAAA,EACf,iBAAiBC,QAAAA;AAAAA,EACjB,iBAAiBC,QAAAA;AAAAA,EACjB,cAAcC,QAAAA;AAAAA;AAAAA,EAEd,OAAOC,QAAAA;AACR;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,7 +1,7 @@
1
1
  import * as index from "./src/acl/definition/index.js";
2
2
  import * as index$1 from "./src/actions/definition/index.js";
3
- import { assert, required, assertDefined, assertNotEmpty, assertPattern, assertMinLength, assertMaxLength, when, rules } from "./src/validation/index.js";
4
- import * as index$3 from "./src/validation/index.js";
3
+ import { rules, when, assertMaxLength, assertMinLength, assertPattern, assertNotEmpty, assertDefined, required, assert } from "./src/validation/index.js";
4
+ import * as index$2 from "./src/validation/index.js";
5
5
  import { default as default2 } from "./src/model/builder/SchemaBuilder.js";
6
6
  import { default as default3 } from "./src/model/builder/ColumnBuilder.js";
7
7
  import { default as default4 } from "./src/model/builder/ManyHasManyBuilder.js";
@@ -9,32 +9,32 @@ import { default as default5 } from "./src/model/builder/OneHasManyBuilder.js";
9
9
  import { default as default6 } from "./src/model/builder/ManyHasOneBuilder.js";
10
10
  import { default as default7 } from "./src/model/builder/OneHasOneBuilder.js";
11
11
  import { default as default8 } from "./src/model/builder/FieldBuilder.js";
12
- import * as index$2 from "./src/model/definition/index.js";
12
+ import * as index$3 from "./src/model/definition/index.js";
13
13
  import { createSchema } from "./src/createSchema.js";
14
14
  import { AllowAllPermissionFactory } from "@contember/schema-utils";
15
15
  import { PermissionsBuilder } from "./src/acl/builder/PermissionsBuilder.js";
16
16
  import { settingsPresets } from "./src/presets.js";
17
- import { allowCustomPrimary } from "./src/acl/definition/customPrimary.js";
18
- import { allow } from "./src/acl/definition/permissions.js";
19
- import { createRole } from "./src/acl/definition/roles.js";
20
- import { createConditionVariable, createEntityVariable, createPredefinedVariable } from "./src/acl/definition/variables.js";
21
- import { canCreate, canRead, canUpdate, canDelete } from "./src/acl/definition/references.js";
22
- import { watch, trigger } from "./src/actions/definition/triggers.js";
23
- import { createTarget } from "./src/actions/definition/targets.js";
24
- import { extendEntity } from "./src/model/definition/extensions.js";
25
- import { Index } from "./src/model/definition/IndexDefinition.js";
26
- import { Unique } from "./src/model/definition/UniqueDefinition.js";
27
- import { View } from "./src/model/definition/ViewDefinition.js";
28
- import { DisableEventLog } from "./src/model/definition/EventLogDefinition.js";
29
- import { OrderBy } from "./src/model/definition/OrderByDefinition.js";
30
- import { column, boolColumn, intColumn, doubleColumn, dateColumn, timeColumn, dateTimeColumn, jsonColumn, stringColumn, enumColumn, uuidColumn } from "./src/model/definition/fieldDefinitions/ColumnDefinition.js";
31
- import { manyHasMany } from "./src/model/definition/fieldDefinitions/ManyHasManyDefinition.js";
32
- import { manyHasManyInverse } from "./src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.js";
33
- import { manyHasOne } from "./src/model/definition/fieldDefinitions/ManyHasOneDefinition.js";
34
- import { oneHasOne } from "./src/model/definition/fieldDefinitions/OneHasOneDefinition.js";
35
- import { oneHasOneInverse } from "./src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.js";
36
- import { oneHasMany } from "./src/model/definition/fieldDefinitions/OneHasManyDefinition.js";
37
17
  import { createEnum } from "./src/model/definition/EnumDefinition.js";
18
+ import { oneHasMany } from "./src/model/definition/fieldDefinitions/OneHasManyDefinition.js";
19
+ import { oneHasOneInverse } from "./src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.js";
20
+ import { oneHasOne } from "./src/model/definition/fieldDefinitions/OneHasOneDefinition.js";
21
+ import { manyHasOne } from "./src/model/definition/fieldDefinitions/ManyHasOneDefinition.js";
22
+ import { manyHasManyInverse } from "./src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.js";
23
+ import { manyHasMany } from "./src/model/definition/fieldDefinitions/ManyHasManyDefinition.js";
24
+ import { uuidColumn, enumColumn, stringColumn, jsonColumn, dateTimeColumn, timeColumn, dateColumn, doubleColumn, intColumn, boolColumn, column } from "./src/model/definition/fieldDefinitions/ColumnDefinition.js";
25
+ import { OrderBy } from "./src/model/definition/OrderByDefinition.js";
26
+ import { DisableEventLog } from "./src/model/definition/EventLogDefinition.js";
27
+ import { View } from "./src/model/definition/ViewDefinition.js";
28
+ import { Unique } from "./src/model/definition/UniqueDefinition.js";
29
+ import { Index } from "./src/model/definition/IndexDefinition.js";
30
+ import { extendEntity } from "./src/model/definition/extensions.js";
31
+ import { createTarget } from "./src/actions/definition/targets.js";
32
+ import { trigger, watch } from "./src/actions/definition/triggers.js";
33
+ import { canDelete, canUpdate, canRead, canCreate } from "./src/acl/definition/references.js";
34
+ import { createPredefinedVariable, createEntityVariable, createConditionVariable } from "./src/acl/definition/variables.js";
35
+ import { createRole } from "./src/acl/definition/roles.js";
36
+ import { allow } from "./src/acl/definition/permissions.js";
37
+ import { allowCustomPrimary } from "./src/acl/definition/customPrimary.js";
38
38
  const c = {
39
39
  // ACL
40
40
  // ACL entity decorators
@@ -103,14 +103,14 @@ export {
103
103
  AllowAllPermissionFactory,
104
104
  default3 as ColumnBuilder,
105
105
  default8 as FieldBuilder,
106
- index$3 as InputValidation,
106
+ index$2 as InputValidation,
107
107
  default4 as ManyHasManyBuilder,
108
108
  default6 as ManyHasOneBuilder,
109
109
  default5 as OneHasManyBuilder,
110
110
  default7 as OneHasOneBuilder,
111
111
  PermissionsBuilder,
112
112
  default2 as SchemaBuilder,
113
- index$2 as SchemaDefinition,
113
+ index$3 as SchemaDefinition,
114
114
  c,
115
115
  createSchema,
116
116
  settingsPresets
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../packages/schema-definition/src/index.ts"],"sourcesContent":["import * as AclDefinition from './acl/definition'\nimport { Role } from './acl/definition'\nimport * as ActionsDefinition from './actions/definition'\nimport * as InputValidation from './validation'\nimport { SchemaDefinition } from './model'\nimport { createSchema } from './createSchema'\n\nexport { AllowAllPermissionFactory } from '@contember/schema-utils'\nexport { PermissionsBuilder } from './acl/builder/PermissionsBuilder'\nexport * from './model'\nexport * from './presets'\n\nexport type { Role }\nexport type { VariableDefinition } from './acl/definition'\nexport type {\n\tColumnDefinition,\n\tFieldDefinition,\n\tOneHasOneDefinition,\n\tOneHasOneInverseDefinition,\n\tOneHasManyDefinition,\n\tManyHasOneDefinition,\n\tManyHasManyDefinition,\n\tManyHasManyInverseDefinition,\n\tEnumDefinition,\n} from './model/definition'\n\nexport { AclDefinition, ActionsDefinition, SchemaDefinition, InputValidation, createSchema }\n\nexport const c = {\n\n\t// ACL\n\t// ACL entity decorators\n\tAllowCustomPrimary: AclDefinition.allowCustomPrimary,\n\tAllow: AclDefinition.allow,\n\t// ACL factories\n\tcreateRole: AclDefinition.createRole,\n\tcreateConditionVariable: AclDefinition.createConditionVariable,\n\tcreateEntityVariable: AclDefinition.createEntityVariable,\n\tcreatePredefinedVariable: AclDefinition.createPredefinedVariable,\n\t// ACL utilities\n\tcanCreate: AclDefinition.canCreate,\n\tcanRead: AclDefinition.canRead,\n\tcanUpdate: AclDefinition.canUpdate,\n\tcanDelete: AclDefinition.canDelete,\n\n\n\t// Actions\n\t// Actions entity decorators\n\tWatch: ActionsDefinition.watch,\n\tTrigger: ActionsDefinition.trigger,\n\t// Actions factories\n\tcreateActionsTarget: ActionsDefinition.createTarget,\n\n\n\t// Model\n\t// Model entity decorators\n\tExtendEntity: SchemaDefinition.extendEntity,\n\tIndex: SchemaDefinition.Index,\n\tUnique: SchemaDefinition.Unique,\n\tView: SchemaDefinition.View,\n\tDisableEventLog: SchemaDefinition.DisableEventLog,\n\tOrderBy: SchemaDefinition.OrderBy,\n\t// Model field factories\n\tcolumn: SchemaDefinition.column,\n\tboolColumn: SchemaDefinition.boolColumn,\n\tintColumn: SchemaDefinition.intColumn,\n\tdoubleColumn: SchemaDefinition.doubleColumn,\n\tdateColumn: SchemaDefinition.dateColumn,\n\ttimeColumn: SchemaDefinition.timeColumn,\n\tdateTimeColumn: SchemaDefinition.dateTimeColumn,\n\tjsonColumn: SchemaDefinition.jsonColumn,\n\tstringColumn: SchemaDefinition.stringColumn,\n\tenumColumn: SchemaDefinition.enumColumn,\n\tuuidColumn: SchemaDefinition.uuidColumn,\n\tmanyHasMany: SchemaDefinition.manyHasMany,\n\tmanyHasManyInverse: SchemaDefinition.manyHasManyInverse,\n\tmanyHasOne: SchemaDefinition.manyHasOne,\n\toneHasOne: SchemaDefinition.oneHasOne,\n\toneHasOneInverse: SchemaDefinition.oneHasOneInverse,\n\toneHasMany: SchemaDefinition.oneHasMany,\n\t// Model factories\n\tcreateEnum: SchemaDefinition.createEnum,\n\n\n\t// Validation\n\t// Validation field decorators\n\tAssert: InputValidation.assert,\n\tRequired: InputValidation.required,\n\tAssertDefined: InputValidation.assertDefined,\n\tAssertNotEmpty: InputValidation.assertNotEmpty,\n\tAssertPattern: InputValidation.assertPattern,\n\tAssertMinLength: InputValidation.assertMinLength,\n\tAssertMaxLength: InputValidation.assertMaxLength,\n\tValidateWhen: InputValidation.when,\n\t// Validation utilities\n\trules: InputValidation.rules,\n\n}\n"],"names":["AclDefinition.allowCustomPrimary","AclDefinition.allow","ActionsDefinition.watch","ActionsDefinition.trigger","ActionsDefinition.createTarget","SchemaDefinition.extendEntity","InputValidation.assert","InputValidation.required","InputValidation.assertDefined","InputValidation.assertNotEmpty","InputValidation.assertPattern","InputValidation.assertMinLength","InputValidation.assertMaxLength","InputValidation.when"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BO,MAAM,IAAI;AAAA;AAAA;AAAA,EAIhB,oBAAoBA;AAAAA,EACpB,OAAOC;AAAAA;AAAAA,EAEP;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA,EAKA,OAAOC;AAAAA,EACP,SAASC;AAAAA;AAAAA,EAET,qBAAqBC;AAAAA;AAAAA;AAAAA,EAKrB,cAAcC;AAAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA;AAAA;AAAA,EAKA,QAAQC;AAAAA,EACR,UAAUC;AAAAA,EACV,eAAeC;AAAAA,EACf,gBAAgBC;AAAAA,EAChB,eAAeC;AAAAA,EACf,iBAAiBC;AAAAA,EACjB,iBAAiBC;AAAAA,EACjB,cAAcC;AAAAA;AAAAA,EAEd;AAED;"}
1
+ {"version":3,"file":"index.js","sources":["../../../packages/schema-definition/src/index.ts"],"sourcesContent":["import * as AclDefinition from './acl/definition'\nimport { Role } from './acl/definition'\nimport * as ActionsDefinition from './actions/definition'\nimport * as InputValidation from './validation'\nimport { SchemaDefinition } from './model'\nimport { createSchema } from './createSchema'\n\nexport { AllowAllPermissionFactory } from '@contember/schema-utils'\nexport { PermissionsBuilder } from './acl/builder/PermissionsBuilder'\nexport * from './model'\nexport * from './presets'\n\nexport type { Role }\nexport type { VariableDefinition } from './acl/definition'\nexport type {\n\tColumnDefinition,\n\tEnumDefinition,\n\tFieldDefinition,\n\tManyHasManyDefinition,\n\tManyHasManyInverseDefinition,\n\tManyHasOneDefinition,\n\tOneHasManyDefinition,\n\tOneHasOneDefinition,\n\tOneHasOneInverseDefinition,\n} from './model/definition'\n\nexport { AclDefinition, ActionsDefinition, createSchema, InputValidation, SchemaDefinition }\n\nexport const c = {\n\t// ACL\n\t// ACL entity decorators\n\tAllowCustomPrimary: AclDefinition.allowCustomPrimary,\n\tAllow: AclDefinition.allow,\n\t// ACL factories\n\tcreateRole: AclDefinition.createRole,\n\tcreateConditionVariable: AclDefinition.createConditionVariable,\n\tcreateEntityVariable: AclDefinition.createEntityVariable,\n\tcreatePredefinedVariable: AclDefinition.createPredefinedVariable,\n\t// ACL utilities\n\tcanCreate: AclDefinition.canCreate,\n\tcanRead: AclDefinition.canRead,\n\tcanUpdate: AclDefinition.canUpdate,\n\tcanDelete: AclDefinition.canDelete,\n\n\t// Actions\n\t// Actions entity decorators\n\tWatch: ActionsDefinition.watch,\n\tTrigger: ActionsDefinition.trigger,\n\t// Actions factories\n\tcreateActionsTarget: ActionsDefinition.createTarget,\n\n\t// Model\n\t// Model entity decorators\n\tExtendEntity: SchemaDefinition.extendEntity,\n\tIndex: SchemaDefinition.Index,\n\tUnique: SchemaDefinition.Unique,\n\tView: SchemaDefinition.View,\n\tDisableEventLog: SchemaDefinition.DisableEventLog,\n\tOrderBy: SchemaDefinition.OrderBy,\n\t// Model field factories\n\tcolumn: SchemaDefinition.column,\n\tboolColumn: SchemaDefinition.boolColumn,\n\tintColumn: SchemaDefinition.intColumn,\n\tdoubleColumn: SchemaDefinition.doubleColumn,\n\tdateColumn: SchemaDefinition.dateColumn,\n\ttimeColumn: SchemaDefinition.timeColumn,\n\tdateTimeColumn: SchemaDefinition.dateTimeColumn,\n\tjsonColumn: SchemaDefinition.jsonColumn,\n\tstringColumn: SchemaDefinition.stringColumn,\n\tenumColumn: SchemaDefinition.enumColumn,\n\tuuidColumn: SchemaDefinition.uuidColumn,\n\tmanyHasMany: SchemaDefinition.manyHasMany,\n\tmanyHasManyInverse: SchemaDefinition.manyHasManyInverse,\n\tmanyHasOne: SchemaDefinition.manyHasOne,\n\toneHasOne: SchemaDefinition.oneHasOne,\n\toneHasOneInverse: SchemaDefinition.oneHasOneInverse,\n\toneHasMany: SchemaDefinition.oneHasMany,\n\t// Model factories\n\tcreateEnum: SchemaDefinition.createEnum,\n\n\t// Validation\n\t// Validation field decorators\n\tAssert: InputValidation.assert,\n\tRequired: InputValidation.required,\n\tAssertDefined: InputValidation.assertDefined,\n\tAssertNotEmpty: InputValidation.assertNotEmpty,\n\tAssertPattern: InputValidation.assertPattern,\n\tAssertMinLength: InputValidation.assertMinLength,\n\tAssertMaxLength: InputValidation.assertMaxLength,\n\tValidateWhen: InputValidation.when,\n\t// Validation utilities\n\trules: InputValidation.rules,\n}\n"],"names":["AclDefinition.allowCustomPrimary","AclDefinition.allow","ActionsDefinition.watch","ActionsDefinition.trigger","ActionsDefinition.createTarget","SchemaDefinition.extendEntity","InputValidation.assert","InputValidation.required","InputValidation.assertDefined","InputValidation.assertNotEmpty","InputValidation.assertPattern","InputValidation.assertMinLength","InputValidation.assertMaxLength","InputValidation.when"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BO,MAAM,IAAI;AAAA;AAAA;AAAA,EAGhB,oBAAoBA;AAAAA,EACpB,OAAOC;AAAAA;AAAAA,EAEP;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA,EAIA,OAAOC;AAAAA,EACP,SAASC;AAAAA;AAAAA,EAET,qBAAqBC;AAAAA;AAAAA;AAAAA,EAIrB,cAAcC;AAAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA;AAAA;AAAA,EAIA,QAAQC;AAAAA,EACR,UAAUC;AAAAA,EACV,eAAeC;AAAAA,EACf,gBAAgBC;AAAAA,EAChB,eAAeC;AAAAA,EACf,iBAAiBC;AAAAA,EACjB,iBAAiBC;AAAAA,EACjB,cAAcC;AAAAA;AAAAA,EAEd;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityPermissionsBuilder.cjs","sources":["../../../../../../packages/schema-definition/src/acl/builder/EntityPermissionsBuilder.ts"],"sourcesContent":["import { tuple } from '../../utils'\nimport EntitySelector from './EntitySelector'\nimport { Acl, Model, Writable } from '@contember/schema'\nimport FieldSelector from './FieldSelector'\nimport FieldPermissionsBuilder from './FieldPermissionsBuilder'\nimport { PermissionsBuilder } from './PermissionsBuilder'\nimport PredicateReference, { resolvePredicateReference } from './PredicateReference'\n\nexport default class EntityPermissionsBuilder {\n\tpublic constructor(public readonly builder: PermissionsBuilder, private readonly entities: Model.Entity[]) {}\n\n\tget schema(): Model.Schema {\n\t\treturn this.builder.schema\n\t}\n\n\tget permissions(): Acl.Permissions {\n\t\treturn this.builder.permissions\n\t}\n\n\taddPredicate(name: string, predicate: Acl.PredicateDefinition<PredicateReference>): EntityPermissionsBuilder {\n\t\tconst predicates = this.entities.reduce<Acl.Permissions>(\n\t\t\t(acc, entity) => ({\n\t\t\t\t...acc,\n\t\t\t\t[entity.name]: {\n\t\t\t\t\toperations: {},\n\t\t\t\t\tpredicates: { [name]: resolvePredicateReference(this.schema, this.permissions, entity, predicate) },\n\t\t\t\t},\n\t\t\t}),\n\t\t\t{},\n\t\t)\n\n\t\treturn this.add(predicates)\n\t}\n\n\tallow(operations: Acl.Operation[], predicate: Acl.Predicate = true): EntityPermissionsBuilder {\n\t\treturn this.updateAll(operations, predicate)\n\t}\n\n\tallowAll(predicate: Acl.Predicate = true): EntityPermissionsBuilder {\n\t\treturn this.updateAll(\n\t\t\t[Acl.Operation.read, Acl.Operation.create, Acl.Operation.update, Acl.Operation.delete],\n\t\t\tpredicate,\n\t\t)\n\t}\n\n\tallowOnlyRead(predicate: Acl.Predicate = true): EntityPermissionsBuilder {\n\t\treturn this.disallowAll().allow([Acl.Operation.read], predicate)\n\t}\n\n\tdisallowAll(): EntityPermissionsBuilder {\n\t\treturn this.updateAll([Acl.Operation.read, Acl.Operation.create, Acl.Operation.update, Acl.Operation.delete], false)\n\t}\n\n\tallowDelete(predicate: Acl.Predicate = true): EntityPermissionsBuilder {\n\t\treturn this.addEntityPermission(() => ({ operations: { delete: predicate }, predicates: {} }))\n\t}\n\n\tallowCustomPrimary(): EntityPermissionsBuilder {\n\t\treturn this.addEntityPermission(() => ({ operations: { customPrimary: true }, predicates: {} }))\n\t}\n\n\tprivate updateAll(operations: Acl.Operation[], predicate: Acl.Predicate): EntityPermissionsBuilder {\n\t\treturn this.addEntityPermission(entity => {\n\t\t\tconst fieldPermissions = Object.keys(entity.fields).reduce(\n\t\t\t\t(permissions: Acl.FieldPermissions, fieldName): Acl.FieldPermissions => {\n\t\t\t\t\treturn { ...permissions, [fieldName]: predicate }\n\t\t\t\t},\n\t\t\t\t{},\n\t\t\t)\n\t\t\tconst entityOperations: Writable<Acl.EntityOperations> = {}\n\t\t\tif (operations.includes(Acl.Operation.read)) {\n\t\t\t\tentityOperations.read = fieldPermissions\n\t\t\t}\n\t\t\tif (operations.includes(Acl.Operation.create)) {\n\t\t\t\tentityOperations.create = fieldPermissions\n\t\t\t}\n\t\t\tif (operations.includes(Acl.Operation.update)) {\n\t\t\t\tentityOperations.update = fieldPermissions\n\t\t\t}\n\t\t\tif (operations.includes(Acl.Operation.delete)) {\n\t\t\t\tentityOperations.delete = predicate\n\t\t\t}\n\t\t\treturn {\n\t\t\t\toperations: entityOperations,\n\t\t\t\tpredicates: {},\n\t\t\t}\n\t\t})\n\t}\n\n\tprivate addEntityPermission(\n\t\tentityPermission: (entity: Model.Entity) => Acl.EntityPermissions,\n\t): EntityPermissionsBuilder {\n\t\tconst permissions = this.entities.reduce<Acl.Permissions>(\n\t\t\t(acc, entity) => ({ ...acc, [entity.name]: entityPermission(entity) }),\n\t\t\t{},\n\t\t)\n\t\treturn this.add(permissions)\n\t}\n\n\tpublic add(permissions: Acl.Permissions): EntityPermissionsBuilder {\n\t\treturn new EntityPermissionsBuilder(this.builder.add(permissions), this.entities)\n\t}\n\n\tpublic onEntity(entitySelector: EntitySelector | string | string[]): EntityPermissionsBuilder {\n\t\treturn this.builder.onEntity(entitySelector)\n\t}\n\n\tpublic onEveryEntity(): EntityPermissionsBuilder {\n\t\treturn this.builder.onEveryEntity()\n\t}\n\n\tonField(fieldSelector: FieldSelector | string | string[]): FieldPermissionsBuilder {\n\t\tif (typeof fieldSelector === 'string') {\n\t\t\tfieldSelector = FieldSelector.named(fieldSelector)\n\t\t} else if (Array.isArray(fieldSelector)) {\n\t\t\tfieldSelector = FieldSelector.named(...fieldSelector)\n\t\t}\n\t\tconst fieldSelectorConst = fieldSelector\n\t\tconst fields = this.entities\n\t\t\t.map(it =>\n\t\t\t\ttuple(\n\t\t\t\t\tit,\n\t\t\t\t\tObject.values(it.fields).filter(field => fieldSelectorConst.matches(this.schema, it, field)),\n\t\t\t\t),\n\t\t\t)\n\t\t\t.reduce<[Model.Entity, Model.AnyField][]>(\n\t\t\t\t(acc, [entity, fields]) => [...acc, ...fields.map(it => tuple(entity, it))],\n\t\t\t\t[],\n\t\t\t)\n\t\treturn new FieldPermissionsBuilder(this, fields)\n\t}\n\n\tonEveryField(): FieldPermissionsBuilder {\n\t\treturn this.onField(FieldSelector.every())\n\t}\n}\n"],"names":["resolvePredicateReference","Acl","tuple","fields"],"mappings":";;;;;;;AAQA,MAAqB,yBAAyB;AAAA,EACtC,YAA4B,SAA8C,UAA0B;AAAxE,SAAA,UAAA;AAA8C,SAAA,WAAA;AAAA,EAAA;AAAA,EAEjF,IAAI,SAAuB;AAC1B,WAAO,KAAK,QAAQ;AAAA,EAAA;AAAA,EAGrB,IAAI,cAA+B;AAClC,WAAO,KAAK,QAAQ;AAAA,EAAA;AAAA,EAGrB,aAAa,MAAc,WAAkF;AACtG,UAAA,aAAa,KAAK,SAAS;AAAA,MAChC,CAAC,KAAK,YAAY;AAAA,QACjB,GAAG;AAAA,QACH,CAAC,OAAO,IAAI,GAAG;AAAA,UACd,YAAY,CAAC;AAAA,UACb,YAAY,EAAE,CAAC,IAAI,GAAGA,6CAA0B,KAAK,QAAQ,KAAK,aAAa,QAAQ,SAAS,EAAE;AAAA,QAAA;AAAA,MACnG;AAAA,MAED,CAAA;AAAA,IACD;AAEO,WAAA,KAAK,IAAI,UAAU;AAAA,EAAA;AAAA,EAG3B,MAAM,YAA6B,YAA2B,MAAgC;AACtF,WAAA,KAAK,UAAU,YAAY,SAAS;AAAA,EAAA;AAAA,EAG5C,SAAS,YAA2B,MAAgC;AACnE,WAAO,KAAK;AAAA,MACX,CAACC,OAAA,IAAI,UAAU,MAAMA,OAAAA,IAAI,UAAU,QAAQA,OAAA,IAAI,UAAU,QAAQA,WAAI,UAAU,MAAM;AAAA,MACrF;AAAA,IACD;AAAA,EAAA;AAAA,EAGD,cAAc,YAA2B,MAAgC;AACjE,WAAA,KAAK,cAAc,MAAM,CAACA,OAAAA,IAAI,UAAU,IAAI,GAAG,SAAS;AAAA,EAAA;AAAA,EAGhE,cAAwC;AACvC,WAAO,KAAK,UAAU,CAACA,OAAAA,IAAI,UAAU,MAAMA,OAAAA,IAAI,UAAU,QAAQA,OAAA,IAAI,UAAU,QAAQA,OAAAA,IAAI,UAAU,MAAM,GAAG,KAAK;AAAA,EAAA;AAAA,EAGpH,YAAY,YAA2B,MAAgC;AACtE,WAAO,KAAK,oBAAoB,OAAO,EAAE,YAAY,EAAE,QAAQ,aAAa,YAAY,CAAC,EAAA,EAAI;AAAA,EAAA;AAAA,EAG9F,qBAA+C;AAC9C,WAAO,KAAK,oBAAoB,OAAO,EAAE,YAAY,EAAE,eAAe,QAAQ,YAAY,CAAC,EAAA,EAAI;AAAA,EAAA;AAAA,EAGxF,UAAU,YAA6B,WAAoD;AAC3F,WAAA,KAAK,oBAAoB,CAAU,WAAA;AACzC,YAAM,mBAAmB,OAAO,KAAK,OAAO,MAAM,EAAE;AAAA,QACnD,CAAC,aAAmC,cAAoC;AACvE,iBAAO,EAAE,GAAG,aAAa,CAAC,SAAS,GAAG,UAAU;AAAA,QACjD;AAAA,QACA,CAAA;AAAA,MACD;AACA,YAAM,mBAAmD,CAAC;AAC1D,UAAI,WAAW,SAASA,OAAI,IAAA,UAAU,IAAI,GAAG;AAC5C,yBAAiB,OAAO;AAAA,MAAA;AAEzB,UAAI,WAAW,SAASA,OAAI,IAAA,UAAU,MAAM,GAAG;AAC9C,yBAAiB,SAAS;AAAA,MAAA;AAE3B,UAAI,WAAW,SAASA,OAAI,IAAA,UAAU,MAAM,GAAG;AAC9C,yBAAiB,SAAS;AAAA,MAAA;AAE3B,UAAI,WAAW,SAASA,OAAI,IAAA,UAAU,MAAM,GAAG;AAC9C,yBAAiB,SAAS;AAAA,MAAA;AAEpB,aAAA;AAAA,QACN,YAAY;AAAA,QACZ,YAAY,CAAA;AAAA,MACb;AAAA,IAAA,CACA;AAAA,EAAA;AAAA,EAGM,oBACP,kBAC2B;AACrB,UAAA,cAAc,KAAK,SAAS;AAAA,MACjC,CAAC,KAAK,YAAY,EAAE,GAAG,KAAK,CAAC,OAAO,IAAI,GAAG,iBAAiB,MAAM;MAClE,CAAA;AAAA,IACD;AACO,WAAA,KAAK,IAAI,WAAW;AAAA,EAAA;AAAA,EAGrB,IAAI,aAAwD;AAC3D,WAAA,IAAI,yBAAyB,KAAK,QAAQ,IAAI,WAAW,GAAG,KAAK,QAAQ;AAAA,EAAA;AAAA,EAG1E,SAAS,gBAA8E;AACtF,WAAA,KAAK,QAAQ,SAAS,cAAc;AAAA,EAAA;AAAA,EAGrC,gBAA0C;AACzC,WAAA,KAAK,QAAQ,cAAc;AAAA,EAAA;AAAA,EAGnC,QAAQ,eAA2E;AAC9E,QAAA,OAAO,kBAAkB,UAAU;AACtB,sBAAA,cAAc,MAAM,aAAa;AAAA,IACvC,WAAA,MAAM,QAAQ,aAAa,GAAG;AACxB,sBAAA,cAAc,MAAM,GAAG,aAAa;AAAA,IAAA;AAErD,UAAM,qBAAqB;AACrB,UAAA,SAAS,KAAK,SAClB;AAAA,MAAI,CACJ,OAAAC,MAAA;AAAA,QACC;AAAA,QACA,OAAO,OAAO,GAAG,MAAM,EAAE,OAAO,CAAS,UAAA,mBAAmB,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC;AAAA,MAAA;AAAA,IAC5F,EAEA;AAAA,MACA,CAAC,KAAK,CAAC,QAAQC,OAAM,MAAM,CAAC,GAAG,KAAK,GAAGA,QAAO,IAAI,CAAA,OAAMD,MAAAA,MAAM,QAAQ,EAAE,CAAC,CAAC;AAAA,MAC1E,CAAA;AAAA,IACD;AACM,WAAA,IAAI,wBAAwB,MAAM,MAAM;AAAA,EAAA;AAAA,EAGhD,eAAwC;AACvC,WAAO,KAAK,QAAQ,cAAc,MAAA,CAAO;AAAA,EAAA;AAE3C;;"}
1
+ {"version":3,"file":"EntityPermissionsBuilder.cjs","sources":["../../../../../../packages/schema-definition/src/acl/builder/EntityPermissionsBuilder.ts"],"sourcesContent":["import { tuple } from '../../utils'\nimport EntitySelector from './EntitySelector'\nimport { Acl, Model, Writable } from '@contember/schema'\nimport FieldSelector from './FieldSelector'\nimport FieldPermissionsBuilder from './FieldPermissionsBuilder'\nimport { PermissionsBuilder } from './PermissionsBuilder'\nimport PredicateReference, { resolvePredicateReference } from './PredicateReference'\n\nexport default class EntityPermissionsBuilder {\n\tpublic constructor(public readonly builder: PermissionsBuilder, private readonly entities: Model.Entity[]) {}\n\n\tget schema(): Model.Schema {\n\t\treturn this.builder.schema\n\t}\n\n\tget permissions(): Acl.Permissions {\n\t\treturn this.builder.permissions\n\t}\n\n\taddPredicate(name: string, predicate: Acl.PredicateDefinition<PredicateReference>): EntityPermissionsBuilder {\n\t\tconst predicates = this.entities.reduce<Acl.Permissions>(\n\t\t\t(acc, entity) => ({\n\t\t\t\t...acc,\n\t\t\t\t[entity.name]: {\n\t\t\t\t\toperations: {},\n\t\t\t\t\tpredicates: { [name]: resolvePredicateReference(this.schema, this.permissions, entity, predicate) },\n\t\t\t\t},\n\t\t\t}),\n\t\t\t{},\n\t\t)\n\n\t\treturn this.add(predicates)\n\t}\n\n\tallow(operations: Acl.Operation[], predicate: Acl.Predicate = true): EntityPermissionsBuilder {\n\t\treturn this.updateAll(operations, predicate)\n\t}\n\n\tallowAll(predicate: Acl.Predicate = true): EntityPermissionsBuilder {\n\t\treturn this.updateAll(\n\t\t\t[Acl.Operation.read, Acl.Operation.create, Acl.Operation.update, Acl.Operation.delete],\n\t\t\tpredicate,\n\t\t)\n\t}\n\n\tallowOnlyRead(predicate: Acl.Predicate = true): EntityPermissionsBuilder {\n\t\treturn this.disallowAll().allow([Acl.Operation.read], predicate)\n\t}\n\n\tdisallowAll(): EntityPermissionsBuilder {\n\t\treturn this.updateAll([Acl.Operation.read, Acl.Operation.create, Acl.Operation.update, Acl.Operation.delete], false)\n\t}\n\n\tallowDelete(predicate: Acl.Predicate = true): EntityPermissionsBuilder {\n\t\treturn this.addEntityPermission(() => ({ operations: { delete: predicate }, predicates: {} }))\n\t}\n\n\tallowCustomPrimary(): EntityPermissionsBuilder {\n\t\treturn this.addEntityPermission(() => ({ operations: { customPrimary: true }, predicates: {} }))\n\t}\n\n\tprivate updateAll(operations: Acl.Operation[], predicate: Acl.Predicate): EntityPermissionsBuilder {\n\t\treturn this.addEntityPermission(entity => {\n\t\t\tconst fieldPermissions = Object.keys(entity.fields).reduce(\n\t\t\t\t(permissions: Acl.FieldPermissions, fieldName): Acl.FieldPermissions => {\n\t\t\t\t\treturn { ...permissions, [fieldName]: predicate }\n\t\t\t\t},\n\t\t\t\t{},\n\t\t\t)\n\t\t\tconst entityOperations: Writable<Acl.EntityOperations> = {}\n\t\t\tif (operations.includes(Acl.Operation.read)) {\n\t\t\t\tentityOperations.read = fieldPermissions\n\t\t\t}\n\t\t\tif (operations.includes(Acl.Operation.create)) {\n\t\t\t\tentityOperations.create = fieldPermissions\n\t\t\t}\n\t\t\tif (operations.includes(Acl.Operation.update)) {\n\t\t\t\tentityOperations.update = fieldPermissions\n\t\t\t}\n\t\t\tif (operations.includes(Acl.Operation.delete)) {\n\t\t\t\tentityOperations.delete = predicate\n\t\t\t}\n\t\t\treturn {\n\t\t\t\toperations: entityOperations,\n\t\t\t\tpredicates: {},\n\t\t\t}\n\t\t})\n\t}\n\n\tprivate addEntityPermission(\n\t\tentityPermission: (entity: Model.Entity) => Acl.EntityPermissions,\n\t): EntityPermissionsBuilder {\n\t\tconst permissions = this.entities.reduce<Acl.Permissions>(\n\t\t\t(acc, entity) => ({ ...acc, [entity.name]: entityPermission(entity) }),\n\t\t\t{},\n\t\t)\n\t\treturn this.add(permissions)\n\t}\n\n\tpublic add(permissions: Acl.Permissions): EntityPermissionsBuilder {\n\t\treturn new EntityPermissionsBuilder(this.builder.add(permissions), this.entities)\n\t}\n\n\tpublic onEntity(entitySelector: EntitySelector | string | string[]): EntityPermissionsBuilder {\n\t\treturn this.builder.onEntity(entitySelector)\n\t}\n\n\tpublic onEveryEntity(): EntityPermissionsBuilder {\n\t\treturn this.builder.onEveryEntity()\n\t}\n\n\tonField(fieldSelector: FieldSelector | string | string[]): FieldPermissionsBuilder {\n\t\tif (typeof fieldSelector === 'string') {\n\t\t\tfieldSelector = FieldSelector.named(fieldSelector)\n\t\t} else if (Array.isArray(fieldSelector)) {\n\t\t\tfieldSelector = FieldSelector.named(...fieldSelector)\n\t\t}\n\t\tconst fieldSelectorConst = fieldSelector\n\t\tconst fields = this.entities\n\t\t\t.map(it =>\n\t\t\t\ttuple(\n\t\t\t\t\tit,\n\t\t\t\t\tObject.values(it.fields).filter(field => fieldSelectorConst.matches(this.schema, it, field)),\n\t\t\t\t)\n\t\t\t)\n\t\t\t.reduce<[Model.Entity, Model.AnyField][]>(\n\t\t\t\t(acc, [entity, fields]) => [...acc, ...fields.map(it => tuple(entity, it))],\n\t\t\t\t[],\n\t\t\t)\n\t\treturn new FieldPermissionsBuilder(this, fields)\n\t}\n\n\tonEveryField(): FieldPermissionsBuilder {\n\t\treturn this.onField(FieldSelector.every())\n\t}\n}\n"],"names":["resolvePredicateReference","Acl","tuple","fields"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityPermissionsBuilder.js","sources":["../../../../../../packages/schema-definition/src/acl/builder/EntityPermissionsBuilder.ts"],"sourcesContent":["import { tuple } from '../../utils'\nimport EntitySelector from './EntitySelector'\nimport { Acl, Model, Writable } from '@contember/schema'\nimport FieldSelector from './FieldSelector'\nimport FieldPermissionsBuilder from './FieldPermissionsBuilder'\nimport { PermissionsBuilder } from './PermissionsBuilder'\nimport PredicateReference, { resolvePredicateReference } from './PredicateReference'\n\nexport default class EntityPermissionsBuilder {\n\tpublic constructor(public readonly builder: PermissionsBuilder, private readonly entities: Model.Entity[]) {}\n\n\tget schema(): Model.Schema {\n\t\treturn this.builder.schema\n\t}\n\n\tget permissions(): Acl.Permissions {\n\t\treturn this.builder.permissions\n\t}\n\n\taddPredicate(name: string, predicate: Acl.PredicateDefinition<PredicateReference>): EntityPermissionsBuilder {\n\t\tconst predicates = this.entities.reduce<Acl.Permissions>(\n\t\t\t(acc, entity) => ({\n\t\t\t\t...acc,\n\t\t\t\t[entity.name]: {\n\t\t\t\t\toperations: {},\n\t\t\t\t\tpredicates: { [name]: resolvePredicateReference(this.schema, this.permissions, entity, predicate) },\n\t\t\t\t},\n\t\t\t}),\n\t\t\t{},\n\t\t)\n\n\t\treturn this.add(predicates)\n\t}\n\n\tallow(operations: Acl.Operation[], predicate: Acl.Predicate = true): EntityPermissionsBuilder {\n\t\treturn this.updateAll(operations, predicate)\n\t}\n\n\tallowAll(predicate: Acl.Predicate = true): EntityPermissionsBuilder {\n\t\treturn this.updateAll(\n\t\t\t[Acl.Operation.read, Acl.Operation.create, Acl.Operation.update, Acl.Operation.delete],\n\t\t\tpredicate,\n\t\t)\n\t}\n\n\tallowOnlyRead(predicate: Acl.Predicate = true): EntityPermissionsBuilder {\n\t\treturn this.disallowAll().allow([Acl.Operation.read], predicate)\n\t}\n\n\tdisallowAll(): EntityPermissionsBuilder {\n\t\treturn this.updateAll([Acl.Operation.read, Acl.Operation.create, Acl.Operation.update, Acl.Operation.delete], false)\n\t}\n\n\tallowDelete(predicate: Acl.Predicate = true): EntityPermissionsBuilder {\n\t\treturn this.addEntityPermission(() => ({ operations: { delete: predicate }, predicates: {} }))\n\t}\n\n\tallowCustomPrimary(): EntityPermissionsBuilder {\n\t\treturn this.addEntityPermission(() => ({ operations: { customPrimary: true }, predicates: {} }))\n\t}\n\n\tprivate updateAll(operations: Acl.Operation[], predicate: Acl.Predicate): EntityPermissionsBuilder {\n\t\treturn this.addEntityPermission(entity => {\n\t\t\tconst fieldPermissions = Object.keys(entity.fields).reduce(\n\t\t\t\t(permissions: Acl.FieldPermissions, fieldName): Acl.FieldPermissions => {\n\t\t\t\t\treturn { ...permissions, [fieldName]: predicate }\n\t\t\t\t},\n\t\t\t\t{},\n\t\t\t)\n\t\t\tconst entityOperations: Writable<Acl.EntityOperations> = {}\n\t\t\tif (operations.includes(Acl.Operation.read)) {\n\t\t\t\tentityOperations.read = fieldPermissions\n\t\t\t}\n\t\t\tif (operations.includes(Acl.Operation.create)) {\n\t\t\t\tentityOperations.create = fieldPermissions\n\t\t\t}\n\t\t\tif (operations.includes(Acl.Operation.update)) {\n\t\t\t\tentityOperations.update = fieldPermissions\n\t\t\t}\n\t\t\tif (operations.includes(Acl.Operation.delete)) {\n\t\t\t\tentityOperations.delete = predicate\n\t\t\t}\n\t\t\treturn {\n\t\t\t\toperations: entityOperations,\n\t\t\t\tpredicates: {},\n\t\t\t}\n\t\t})\n\t}\n\n\tprivate addEntityPermission(\n\t\tentityPermission: (entity: Model.Entity) => Acl.EntityPermissions,\n\t): EntityPermissionsBuilder {\n\t\tconst permissions = this.entities.reduce<Acl.Permissions>(\n\t\t\t(acc, entity) => ({ ...acc, [entity.name]: entityPermission(entity) }),\n\t\t\t{},\n\t\t)\n\t\treturn this.add(permissions)\n\t}\n\n\tpublic add(permissions: Acl.Permissions): EntityPermissionsBuilder {\n\t\treturn new EntityPermissionsBuilder(this.builder.add(permissions), this.entities)\n\t}\n\n\tpublic onEntity(entitySelector: EntitySelector | string | string[]): EntityPermissionsBuilder {\n\t\treturn this.builder.onEntity(entitySelector)\n\t}\n\n\tpublic onEveryEntity(): EntityPermissionsBuilder {\n\t\treturn this.builder.onEveryEntity()\n\t}\n\n\tonField(fieldSelector: FieldSelector | string | string[]): FieldPermissionsBuilder {\n\t\tif (typeof fieldSelector === 'string') {\n\t\t\tfieldSelector = FieldSelector.named(fieldSelector)\n\t\t} else if (Array.isArray(fieldSelector)) {\n\t\t\tfieldSelector = FieldSelector.named(...fieldSelector)\n\t\t}\n\t\tconst fieldSelectorConst = fieldSelector\n\t\tconst fields = this.entities\n\t\t\t.map(it =>\n\t\t\t\ttuple(\n\t\t\t\t\tit,\n\t\t\t\t\tObject.values(it.fields).filter(field => fieldSelectorConst.matches(this.schema, it, field)),\n\t\t\t\t),\n\t\t\t)\n\t\t\t.reduce<[Model.Entity, Model.AnyField][]>(\n\t\t\t\t(acc, [entity, fields]) => [...acc, ...fields.map(it => tuple(entity, it))],\n\t\t\t\t[],\n\t\t\t)\n\t\treturn new FieldPermissionsBuilder(this, fields)\n\t}\n\n\tonEveryField(): FieldPermissionsBuilder {\n\t\treturn this.onField(FieldSelector.every())\n\t}\n}\n"],"names":["fields"],"mappings":"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"}
1
+ {"version":3,"file":"EntityPermissionsBuilder.js","sources":["../../../../../../packages/schema-definition/src/acl/builder/EntityPermissionsBuilder.ts"],"sourcesContent":["import { tuple } from '../../utils'\nimport EntitySelector from './EntitySelector'\nimport { Acl, Model, Writable } from '@contember/schema'\nimport FieldSelector from './FieldSelector'\nimport FieldPermissionsBuilder from './FieldPermissionsBuilder'\nimport { PermissionsBuilder } from './PermissionsBuilder'\nimport PredicateReference, { resolvePredicateReference } from './PredicateReference'\n\nexport default class EntityPermissionsBuilder {\n\tpublic constructor(public readonly builder: PermissionsBuilder, private readonly entities: Model.Entity[]) {}\n\n\tget schema(): Model.Schema {\n\t\treturn this.builder.schema\n\t}\n\n\tget permissions(): Acl.Permissions {\n\t\treturn this.builder.permissions\n\t}\n\n\taddPredicate(name: string, predicate: Acl.PredicateDefinition<PredicateReference>): EntityPermissionsBuilder {\n\t\tconst predicates = this.entities.reduce<Acl.Permissions>(\n\t\t\t(acc, entity) => ({\n\t\t\t\t...acc,\n\t\t\t\t[entity.name]: {\n\t\t\t\t\toperations: {},\n\t\t\t\t\tpredicates: { [name]: resolvePredicateReference(this.schema, this.permissions, entity, predicate) },\n\t\t\t\t},\n\t\t\t}),\n\t\t\t{},\n\t\t)\n\n\t\treturn this.add(predicates)\n\t}\n\n\tallow(operations: Acl.Operation[], predicate: Acl.Predicate = true): EntityPermissionsBuilder {\n\t\treturn this.updateAll(operations, predicate)\n\t}\n\n\tallowAll(predicate: Acl.Predicate = true): EntityPermissionsBuilder {\n\t\treturn this.updateAll(\n\t\t\t[Acl.Operation.read, Acl.Operation.create, Acl.Operation.update, Acl.Operation.delete],\n\t\t\tpredicate,\n\t\t)\n\t}\n\n\tallowOnlyRead(predicate: Acl.Predicate = true): EntityPermissionsBuilder {\n\t\treturn this.disallowAll().allow([Acl.Operation.read], predicate)\n\t}\n\n\tdisallowAll(): EntityPermissionsBuilder {\n\t\treturn this.updateAll([Acl.Operation.read, Acl.Operation.create, Acl.Operation.update, Acl.Operation.delete], false)\n\t}\n\n\tallowDelete(predicate: Acl.Predicate = true): EntityPermissionsBuilder {\n\t\treturn this.addEntityPermission(() => ({ operations: { delete: predicate }, predicates: {} }))\n\t}\n\n\tallowCustomPrimary(): EntityPermissionsBuilder {\n\t\treturn this.addEntityPermission(() => ({ operations: { customPrimary: true }, predicates: {} }))\n\t}\n\n\tprivate updateAll(operations: Acl.Operation[], predicate: Acl.Predicate): EntityPermissionsBuilder {\n\t\treturn this.addEntityPermission(entity => {\n\t\t\tconst fieldPermissions = Object.keys(entity.fields).reduce(\n\t\t\t\t(permissions: Acl.FieldPermissions, fieldName): Acl.FieldPermissions => {\n\t\t\t\t\treturn { ...permissions, [fieldName]: predicate }\n\t\t\t\t},\n\t\t\t\t{},\n\t\t\t)\n\t\t\tconst entityOperations: Writable<Acl.EntityOperations> = {}\n\t\t\tif (operations.includes(Acl.Operation.read)) {\n\t\t\t\tentityOperations.read = fieldPermissions\n\t\t\t}\n\t\t\tif (operations.includes(Acl.Operation.create)) {\n\t\t\t\tentityOperations.create = fieldPermissions\n\t\t\t}\n\t\t\tif (operations.includes(Acl.Operation.update)) {\n\t\t\t\tentityOperations.update = fieldPermissions\n\t\t\t}\n\t\t\tif (operations.includes(Acl.Operation.delete)) {\n\t\t\t\tentityOperations.delete = predicate\n\t\t\t}\n\t\t\treturn {\n\t\t\t\toperations: entityOperations,\n\t\t\t\tpredicates: {},\n\t\t\t}\n\t\t})\n\t}\n\n\tprivate addEntityPermission(\n\t\tentityPermission: (entity: Model.Entity) => Acl.EntityPermissions,\n\t): EntityPermissionsBuilder {\n\t\tconst permissions = this.entities.reduce<Acl.Permissions>(\n\t\t\t(acc, entity) => ({ ...acc, [entity.name]: entityPermission(entity) }),\n\t\t\t{},\n\t\t)\n\t\treturn this.add(permissions)\n\t}\n\n\tpublic add(permissions: Acl.Permissions): EntityPermissionsBuilder {\n\t\treturn new EntityPermissionsBuilder(this.builder.add(permissions), this.entities)\n\t}\n\n\tpublic onEntity(entitySelector: EntitySelector | string | string[]): EntityPermissionsBuilder {\n\t\treturn this.builder.onEntity(entitySelector)\n\t}\n\n\tpublic onEveryEntity(): EntityPermissionsBuilder {\n\t\treturn this.builder.onEveryEntity()\n\t}\n\n\tonField(fieldSelector: FieldSelector | string | string[]): FieldPermissionsBuilder {\n\t\tif (typeof fieldSelector === 'string') {\n\t\t\tfieldSelector = FieldSelector.named(fieldSelector)\n\t\t} else if (Array.isArray(fieldSelector)) {\n\t\t\tfieldSelector = FieldSelector.named(...fieldSelector)\n\t\t}\n\t\tconst fieldSelectorConst = fieldSelector\n\t\tconst fields = this.entities\n\t\t\t.map(it =>\n\t\t\t\ttuple(\n\t\t\t\t\tit,\n\t\t\t\t\tObject.values(it.fields).filter(field => fieldSelectorConst.matches(this.schema, it, field)),\n\t\t\t\t)\n\t\t\t)\n\t\t\t.reduce<[Model.Entity, Model.AnyField][]>(\n\t\t\t\t(acc, [entity, fields]) => [...acc, ...fields.map(it => tuple(entity, it))],\n\t\t\t\t[],\n\t\t\t)\n\t\treturn new FieldPermissionsBuilder(this, fields)\n\t}\n\n\tonEveryField(): FieldPermissionsBuilder {\n\t\treturn this.onField(FieldSelector.every())\n\t}\n}\n"],"names":["fields"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntitySelector.cjs","sources":["../../../../../../packages/schema-definition/src/acl/builder/EntitySelector.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\n\ntype Matcher = (schema: Model.Schema, entity: Model.Entity) => boolean\n\nexport default class EntitySelector {\n\tprivate constructor(private readonly matchers: Matcher[]) {}\n\n\tpublic static every() {\n\t\treturn new EntitySelector([])\n\t}\n\n\tpublic static named(...name: string[]) {\n\t\treturn EntitySelector.every().named(...name)\n\t}\n\n\tpublic named(...name: string[]) {\n\t\treturn this.matching((schema, entity) => name.includes(entity.name))\n\t}\n\n\tpublic havingRelation(name: string, targetEntityName?: string) {\n\t\treturn this.matching(\n\t\t\t(schema, entity) =>\n\t\t\t\tentity.fields[name] &&\n\t\t\t\tacceptFieldVisitor(schema, entity, name, {\n\t\t\t\t\tvisitColumn: () => false,\n\t\t\t\t\tvisitRelation: ({ targetEntity }) => !targetEntityName || targetEntity.name === targetEntityName,\n\t\t\t\t}),\n\t\t)\n\t}\n\n\tpublic matching(matcher: Matcher): EntitySelector {\n\t\treturn new EntitySelector([...this.matchers, matcher])\n\t}\n\n\tpublic matches(schema: Model.Schema, entity: Model.Entity): boolean {\n\t\treturn this.matchers.reduce<boolean>((prev, predicate) => prev && predicate(schema, entity), true)\n\t}\n}\n"],"names":["acceptFieldVisitor"],"mappings":";;AAKA,MAAqB,eAAe;AAAA,EAC3B,YAA6B,UAAqB;AAArB,SAAA,WAAA;AAAA,EAAA;AAAA,EAErC,OAAc,QAAQ;AACd,WAAA,IAAI,eAAe,EAAE;AAAA,EAAA;AAAA,EAG7B,OAAc,SAAS,MAAgB;AACtC,WAAO,eAAe,MAAA,EAAQ,MAAM,GAAG,IAAI;AAAA,EAAA;AAAA,EAGrC,SAAS,MAAgB;AACxB,WAAA,KAAK,SAAS,CAAC,QAAQ,WAAW,KAAK,SAAS,OAAO,IAAI,CAAC;AAAA,EAAA;AAAA,EAG7D,eAAe,MAAc,kBAA2B;AAC9D,WAAO,KAAK;AAAA,MACX,CAAC,QAAQ,WACR,OAAO,OAAO,IAAI,KAClBA,+BAAmB,QAAQ,QAAQ,MAAM;AAAA,QACxC,aAAa,MAAM;AAAA,QACnB,eAAe,CAAC,EAAE,aAAA,MAAmB,CAAC,oBAAoB,aAAa,SAAS;AAAA,MAChF,CAAA;AAAA,IACH;AAAA,EAAA;AAAA,EAGM,SAAS,SAAkC;AACjD,WAAO,IAAI,eAAe,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC;AAAA,EAAA;AAAA,EAG/C,QAAQ,QAAsB,QAA+B;AAC5D,WAAA,KAAK,SAAS,OAAgB,CAAC,MAAM,cAAc,QAAQ,UAAU,QAAQ,MAAM,GAAG,IAAI;AAAA,EAAA;AAEnG;;"}
1
+ {"version":3,"file":"EntitySelector.cjs","sources":["../../../../../../packages/schema-definition/src/acl/builder/EntitySelector.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\n\ntype Matcher = (schema: Model.Schema, entity: Model.Entity) => boolean\n\nexport default class EntitySelector {\n\tprivate constructor(private readonly matchers: Matcher[]) {}\n\n\tpublic static every() {\n\t\treturn new EntitySelector([])\n\t}\n\n\tpublic static named(...name: string[]) {\n\t\treturn EntitySelector.every().named(...name)\n\t}\n\n\tpublic named(...name: string[]) {\n\t\treturn this.matching((schema, entity) => name.includes(entity.name))\n\t}\n\n\tpublic havingRelation(name: string, targetEntityName?: string) {\n\t\treturn this.matching(\n\t\t\t(schema, entity) =>\n\t\t\t\tentity.fields[name]\n\t\t\t\t&& acceptFieldVisitor(schema, entity, name, {\n\t\t\t\t\tvisitColumn: () => false,\n\t\t\t\t\tvisitRelation: ({ targetEntity }) => !targetEntityName || targetEntity.name === targetEntityName,\n\t\t\t\t}),\n\t\t)\n\t}\n\n\tpublic matching(matcher: Matcher): EntitySelector {\n\t\treturn new EntitySelector([...this.matchers, matcher])\n\t}\n\n\tpublic matches(schema: Model.Schema, entity: Model.Entity): boolean {\n\t\treturn this.matchers.reduce<boolean>((prev, predicate) => prev && predicate(schema, entity), true)\n\t}\n}\n"],"names":["acceptFieldVisitor"],"mappings":";;AAKA,MAAqB,eAAe;AAAA,EAC3B,YAA6B,UAAqB;AAArB,SAAA,WAAA;AAAA,EAAsB;AAAA,EAE3D,OAAc,QAAQ;AACrB,WAAO,IAAI,eAAe,EAAE;AAAA,EAC7B;AAAA,EAEA,OAAc,SAAS,MAAgB;AACtC,WAAO,eAAe,MAAA,EAAQ,MAAM,GAAG,IAAI;AAAA,EAC5C;AAAA,EAEO,SAAS,MAAgB;AAC/B,WAAO,KAAK,SAAS,CAAC,QAAQ,WAAW,KAAK,SAAS,OAAO,IAAI,CAAC;AAAA,EACpE;AAAA,EAEO,eAAe,MAAc,kBAA2B;AAC9D,WAAO,KAAK;AAAA,MACX,CAAC,QAAQ,WACR,OAAO,OAAO,IAAI,KACfA,+BAAmB,QAAQ,QAAQ,MAAM;AAAA,QAC3C,aAAa,MAAM;AAAA,QACnB,eAAe,CAAC,EAAE,aAAA,MAAmB,CAAC,oBAAoB,aAAa,SAAS;AAAA,MAAA,CAChF;AAAA,IAAA;AAAA,EAEJ;AAAA,EAEO,SAAS,SAAkC;AACjD,WAAO,IAAI,eAAe,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC;AAAA,EACtD;AAAA,EAEO,QAAQ,QAAsB,QAA+B;AACnE,WAAO,KAAK,SAAS,OAAgB,CAAC,MAAM,cAAc,QAAQ,UAAU,QAAQ,MAAM,GAAG,IAAI;AAAA,EAClG;AACD;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntitySelector.js","sources":["../../../../../../packages/schema-definition/src/acl/builder/EntitySelector.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\n\ntype Matcher = (schema: Model.Schema, entity: Model.Entity) => boolean\n\nexport default class EntitySelector {\n\tprivate constructor(private readonly matchers: Matcher[]) {}\n\n\tpublic static every() {\n\t\treturn new EntitySelector([])\n\t}\n\n\tpublic static named(...name: string[]) {\n\t\treturn EntitySelector.every().named(...name)\n\t}\n\n\tpublic named(...name: string[]) {\n\t\treturn this.matching((schema, entity) => name.includes(entity.name))\n\t}\n\n\tpublic havingRelation(name: string, targetEntityName?: string) {\n\t\treturn this.matching(\n\t\t\t(schema, entity) =>\n\t\t\t\tentity.fields[name] &&\n\t\t\t\tacceptFieldVisitor(schema, entity, name, {\n\t\t\t\t\tvisitColumn: () => false,\n\t\t\t\t\tvisitRelation: ({ targetEntity }) => !targetEntityName || targetEntity.name === targetEntityName,\n\t\t\t\t}),\n\t\t)\n\t}\n\n\tpublic matching(matcher: Matcher): EntitySelector {\n\t\treturn new EntitySelector([...this.matchers, matcher])\n\t}\n\n\tpublic matches(schema: Model.Schema, entity: Model.Entity): boolean {\n\t\treturn this.matchers.reduce<boolean>((prev, predicate) => prev && predicate(schema, entity), true)\n\t}\n}\n"],"names":[],"mappings":";AAKA,MAAqB,eAAe;AAAA,EAC3B,YAA6B,UAAqB;AAArB,SAAA,WAAA;AAAA,EAAA;AAAA,EAErC,OAAc,QAAQ;AACd,WAAA,IAAI,eAAe,EAAE;AAAA,EAAA;AAAA,EAG7B,OAAc,SAAS,MAAgB;AACtC,WAAO,eAAe,MAAA,EAAQ,MAAM,GAAG,IAAI;AAAA,EAAA;AAAA,EAGrC,SAAS,MAAgB;AACxB,WAAA,KAAK,SAAS,CAAC,QAAQ,WAAW,KAAK,SAAS,OAAO,IAAI,CAAC;AAAA,EAAA;AAAA,EAG7D,eAAe,MAAc,kBAA2B;AAC9D,WAAO,KAAK;AAAA,MACX,CAAC,QAAQ,WACR,OAAO,OAAO,IAAI,KAClB,mBAAmB,QAAQ,QAAQ,MAAM;AAAA,QACxC,aAAa,MAAM;AAAA,QACnB,eAAe,CAAC,EAAE,aAAA,MAAmB,CAAC,oBAAoB,aAAa,SAAS;AAAA,MAChF,CAAA;AAAA,IACH;AAAA,EAAA;AAAA,EAGM,SAAS,SAAkC;AACjD,WAAO,IAAI,eAAe,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC;AAAA,EAAA;AAAA,EAG/C,QAAQ,QAAsB,QAA+B;AAC5D,WAAA,KAAK,SAAS,OAAgB,CAAC,MAAM,cAAc,QAAQ,UAAU,QAAQ,MAAM,GAAG,IAAI;AAAA,EAAA;AAEnG;"}
1
+ {"version":3,"file":"EntitySelector.js","sources":["../../../../../../packages/schema-definition/src/acl/builder/EntitySelector.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\n\ntype Matcher = (schema: Model.Schema, entity: Model.Entity) => boolean\n\nexport default class EntitySelector {\n\tprivate constructor(private readonly matchers: Matcher[]) {}\n\n\tpublic static every() {\n\t\treturn new EntitySelector([])\n\t}\n\n\tpublic static named(...name: string[]) {\n\t\treturn EntitySelector.every().named(...name)\n\t}\n\n\tpublic named(...name: string[]) {\n\t\treturn this.matching((schema, entity) => name.includes(entity.name))\n\t}\n\n\tpublic havingRelation(name: string, targetEntityName?: string) {\n\t\treturn this.matching(\n\t\t\t(schema, entity) =>\n\t\t\t\tentity.fields[name]\n\t\t\t\t&& acceptFieldVisitor(schema, entity, name, {\n\t\t\t\t\tvisitColumn: () => false,\n\t\t\t\t\tvisitRelation: ({ targetEntity }) => !targetEntityName || targetEntity.name === targetEntityName,\n\t\t\t\t}),\n\t\t)\n\t}\n\n\tpublic matching(matcher: Matcher): EntitySelector {\n\t\treturn new EntitySelector([...this.matchers, matcher])\n\t}\n\n\tpublic matches(schema: Model.Schema, entity: Model.Entity): boolean {\n\t\treturn this.matchers.reduce<boolean>((prev, predicate) => prev && predicate(schema, entity), true)\n\t}\n}\n"],"names":[],"mappings":";AAKA,MAAqB,eAAe;AAAA,EAC3B,YAA6B,UAAqB;AAArB,SAAA,WAAA;AAAA,EAAsB;AAAA,EAE3D,OAAc,QAAQ;AACrB,WAAO,IAAI,eAAe,EAAE;AAAA,EAC7B;AAAA,EAEA,OAAc,SAAS,MAAgB;AACtC,WAAO,eAAe,MAAA,EAAQ,MAAM,GAAG,IAAI;AAAA,EAC5C;AAAA,EAEO,SAAS,MAAgB;AAC/B,WAAO,KAAK,SAAS,CAAC,QAAQ,WAAW,KAAK,SAAS,OAAO,IAAI,CAAC;AAAA,EACpE;AAAA,EAEO,eAAe,MAAc,kBAA2B;AAC9D,WAAO,KAAK;AAAA,MACX,CAAC,QAAQ,WACR,OAAO,OAAO,IAAI,KACf,mBAAmB,QAAQ,QAAQ,MAAM;AAAA,QAC3C,aAAa,MAAM;AAAA,QACnB,eAAe,CAAC,EAAE,aAAA,MAAmB,CAAC,oBAAoB,aAAa,SAAS;AAAA,MAAA,CAChF;AAAA,IAAA;AAAA,EAEJ;AAAA,EAEO,SAAS,SAAkC;AACjD,WAAO,IAAI,eAAe,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC;AAAA,EACtD;AAAA,EAEO,QAAQ,QAAsB,QAA+B;AACnE,WAAO,KAAK,SAAS,OAAgB,CAAC,MAAM,cAAc,QAAQ,UAAU,QAAQ,MAAM,GAAG,IAAI;AAAA,EAClG;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"FieldPermissionsBuilder.cjs","sources":["../../../../../../packages/schema-definition/src/acl/builder/FieldPermissionsBuilder.ts"],"sourcesContent":["import FieldSelector from './FieldSelector'\nimport EntityPermissionsBuilder from './EntityPermissionsBuilder'\nimport { Acl, Model, Writable } from '@contember/schema'\nimport EntitySelector from './EntitySelector'\nimport { PermissionsBuilder } from './PermissionsBuilder'\n\nexport default class FieldPermissionsBuilder {\n\tpublic constructor(\n\t\tpublic entityPermissionsBuilder: EntityPermissionsBuilder,\n\t\tprivate readonly fields: [Model.Entity, Model.AnyField][],\n\t) {}\n\n\tget builder(): PermissionsBuilder {\n\t\treturn this.entityPermissionsBuilder.builder\n\t}\n\n\tget schema(): Model.Schema {\n\t\treturn this.entityPermissionsBuilder.schema\n\t}\n\n\tget permissions(): Acl.Permissions {\n\t\treturn this.entityPermissionsBuilder.permissions\n\t}\n\n\tpublic allowCreate(predicate: Acl.Predicate = true): FieldPermissionsBuilder {\n\t\treturn this.allow([Acl.Operation.create], predicate)\n\t}\n\n\tpublic allowRead(predicate: Acl.Predicate = true): FieldPermissionsBuilder {\n\t\treturn this.allow([Acl.Operation.read], predicate)\n\t}\n\n\tpublic allowUpdate(predicate: Acl.Predicate = true): FieldPermissionsBuilder {\n\t\treturn this.allow([Acl.Operation.update], predicate)\n\t}\n\n\tpublic allowAll(predicate: Acl.Predicate = true): FieldPermissionsBuilder {\n\t\treturn this.allow([Acl.Operation.create, Acl.Operation.read, Acl.Operation.update], predicate)\n\t}\n\n\tpublic allow(\n\t\toperations: (Acl.Operation.create | Acl.Operation.read | Acl.Operation.update)[],\n\t\tpredicate: Acl.Predicate = true,\n\t): FieldPermissionsBuilder {\n\t\tconst permissions: Writable<Acl.Permissions> = {}\n\t\tfor (const [entity, field] of this.fields) {\n\t\t\tif (!permissions[entity.name]) {\n\t\t\t\tpermissions[entity.name] = { operations: {}, predicates: {} }\n\t\t\t}\n\t\t\tconst entityOperations: Writable<Acl.EntityOperations> = permissions[entity.name].operations\n\t\t\tfor (const op of operations) {\n\t\t\t\tentityOperations[op] = {\n\t\t\t\t\t...(permissions[entity.name].operations[op] || {}),\n\t\t\t\t\t[field.name]: predicate,\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn new FieldPermissionsBuilder(this.entityPermissionsBuilder.add(permissions), this.fields)\n\t}\n\n\tpublic onEntity(entitySelector: EntitySelector | string | string[]): EntityPermissionsBuilder {\n\t\treturn this.entityPermissionsBuilder.onEntity(entitySelector)\n\t}\n\n\tpublic onEveryEntity(): EntityPermissionsBuilder {\n\t\treturn this.entityPermissionsBuilder.onEveryEntity()\n\t}\n\n\tpublic onField(fieldSelector: FieldSelector | string | string[]) {\n\t\treturn this.entityPermissionsBuilder.onField(fieldSelector)\n\t}\n\n\tpublic onEveryField(): FieldPermissionsBuilder {\n\t\treturn this.entityPermissionsBuilder.onEveryField()\n\t}\n}\n"],"names":["Acl"],"mappings":";;AAMA,MAAqB,wBAAwB;AAAA,EACrC,YACC,0BACU,QAChB;AAFM,SAAA,2BAAA;AACU,SAAA,SAAA;AAAA,EAAA;AAAA,EAGlB,IAAI,UAA8B;AACjC,WAAO,KAAK,yBAAyB;AAAA,EAAA;AAAA,EAGtC,IAAI,SAAuB;AAC1B,WAAO,KAAK,yBAAyB;AAAA,EAAA;AAAA,EAGtC,IAAI,cAA+B;AAClC,WAAO,KAAK,yBAAyB;AAAA,EAAA;AAAA,EAG/B,YAAY,YAA2B,MAA+B;AAC5E,WAAO,KAAK,MAAM,CAACA,OAAAA,IAAI,UAAU,MAAM,GAAG,SAAS;AAAA,EAAA;AAAA,EAG7C,UAAU,YAA2B,MAA+B;AAC1E,WAAO,KAAK,MAAM,CAACA,OAAAA,IAAI,UAAU,IAAI,GAAG,SAAS;AAAA,EAAA;AAAA,EAG3C,YAAY,YAA2B,MAA+B;AAC5E,WAAO,KAAK,MAAM,CAACA,OAAAA,IAAI,UAAU,MAAM,GAAG,SAAS;AAAA,EAAA;AAAA,EAG7C,SAAS,YAA2B,MAA+B;AACzE,WAAO,KAAK,MAAM,CAACA,OAAAA,IAAI,UAAU,QAAQA,OAAAA,IAAI,UAAU,MAAMA,OAAA,IAAI,UAAU,MAAM,GAAG,SAAS;AAAA,EAAA;AAAA,EAGvF,MACN,YACA,YAA2B,MACD;AAC1B,UAAM,cAAyC,CAAC;AAChD,eAAW,CAAC,QAAQ,KAAK,KAAK,KAAK,QAAQ;AAC1C,UAAI,CAAC,YAAY,OAAO,IAAI,GAAG;AAClB,oBAAA,OAAO,IAAI,IAAI,EAAE,YAAY,CAAC,GAAG,YAAY,GAAG;AAAA,MAAA;AAE7D,YAAM,mBAAmD,YAAY,OAAO,IAAI,EAAE;AAClF,iBAAW,MAAM,YAAY;AAC5B,yBAAiB,EAAE,IAAI;AAAA,UACtB,GAAI,YAAY,OAAO,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC;AAAA,UAChD,CAAC,MAAM,IAAI,GAAG;AAAA,QACf;AAAA,MAAA;AAAA,IACD;AAEM,WAAA,IAAI,wBAAwB,KAAK,yBAAyB,IAAI,WAAW,GAAG,KAAK,MAAM;AAAA,EAAA;AAAA,EAGxF,SAAS,gBAA8E;AACtF,WAAA,KAAK,yBAAyB,SAAS,cAAc;AAAA,EAAA;AAAA,EAGtD,gBAA0C;AACzC,WAAA,KAAK,yBAAyB,cAAc;AAAA,EAAA;AAAA,EAG7C,QAAQ,eAAkD;AACzD,WAAA,KAAK,yBAAyB,QAAQ,aAAa;AAAA,EAAA;AAAA,EAGpD,eAAwC;AACvC,WAAA,KAAK,yBAAyB,aAAa;AAAA,EAAA;AAEpD;;"}
1
+ {"version":3,"file":"FieldPermissionsBuilder.cjs","sources":["../../../../../../packages/schema-definition/src/acl/builder/FieldPermissionsBuilder.ts"],"sourcesContent":["import FieldSelector from './FieldSelector'\nimport EntityPermissionsBuilder from './EntityPermissionsBuilder'\nimport { Acl, Model, Writable } from '@contember/schema'\nimport EntitySelector from './EntitySelector'\nimport { PermissionsBuilder } from './PermissionsBuilder'\n\nexport default class FieldPermissionsBuilder {\n\tpublic constructor(\n\t\tpublic entityPermissionsBuilder: EntityPermissionsBuilder,\n\t\tprivate readonly fields: [Model.Entity, Model.AnyField][],\n\t) {}\n\n\tget builder(): PermissionsBuilder {\n\t\treturn this.entityPermissionsBuilder.builder\n\t}\n\n\tget schema(): Model.Schema {\n\t\treturn this.entityPermissionsBuilder.schema\n\t}\n\n\tget permissions(): Acl.Permissions {\n\t\treturn this.entityPermissionsBuilder.permissions\n\t}\n\n\tpublic allowCreate(predicate: Acl.Predicate = true): FieldPermissionsBuilder {\n\t\treturn this.allow([Acl.Operation.create], predicate)\n\t}\n\n\tpublic allowRead(predicate: Acl.Predicate = true): FieldPermissionsBuilder {\n\t\treturn this.allow([Acl.Operation.read], predicate)\n\t}\n\n\tpublic allowUpdate(predicate: Acl.Predicate = true): FieldPermissionsBuilder {\n\t\treturn this.allow([Acl.Operation.update], predicate)\n\t}\n\n\tpublic allowAll(predicate: Acl.Predicate = true): FieldPermissionsBuilder {\n\t\treturn this.allow([Acl.Operation.create, Acl.Operation.read, Acl.Operation.update], predicate)\n\t}\n\n\tpublic allow(\n\t\toperations: (Acl.Operation.create | Acl.Operation.read | Acl.Operation.update)[],\n\t\tpredicate: Acl.Predicate = true,\n\t): FieldPermissionsBuilder {\n\t\tconst permissions: Writable<Acl.Permissions> = {}\n\t\tfor (const [entity, field] of this.fields) {\n\t\t\tif (!permissions[entity.name]) {\n\t\t\t\tpermissions[entity.name] = { operations: {}, predicates: {} }\n\t\t\t}\n\t\t\tconst entityOperations: Writable<Acl.EntityOperations> = permissions[entity.name].operations\n\t\t\tfor (const op of operations) {\n\t\t\t\tentityOperations[op] = {\n\t\t\t\t\t...(permissions[entity.name].operations[op] || {}),\n\t\t\t\t\t[field.name]: predicate,\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn new FieldPermissionsBuilder(this.entityPermissionsBuilder.add(permissions), this.fields)\n\t}\n\n\tpublic onEntity(entitySelector: EntitySelector | string | string[]): EntityPermissionsBuilder {\n\t\treturn this.entityPermissionsBuilder.onEntity(entitySelector)\n\t}\n\n\tpublic onEveryEntity(): EntityPermissionsBuilder {\n\t\treturn this.entityPermissionsBuilder.onEveryEntity()\n\t}\n\n\tpublic onField(fieldSelector: FieldSelector | string | string[]) {\n\t\treturn this.entityPermissionsBuilder.onField(fieldSelector)\n\t}\n\n\tpublic onEveryField(): FieldPermissionsBuilder {\n\t\treturn this.entityPermissionsBuilder.onEveryField()\n\t}\n}\n"],"names":["Acl"],"mappings":";;AAMA,MAAqB,wBAAwB;AAAA,EACrC,YACC,0BACU,QAChB;AAFM,SAAA,2BAAA;AACU,SAAA,SAAA;AAAA,EACf;AAAA,EAEH,IAAI,UAA8B;AACjC,WAAO,KAAK,yBAAyB;AAAA,EACtC;AAAA,EAEA,IAAI,SAAuB;AAC1B,WAAO,KAAK,yBAAyB;AAAA,EACtC;AAAA,EAEA,IAAI,cAA+B;AAClC,WAAO,KAAK,yBAAyB;AAAA,EACtC;AAAA,EAEO,YAAY,YAA2B,MAA+B;AAC5E,WAAO,KAAK,MAAM,CAACA,OAAAA,IAAI,UAAU,MAAM,GAAG,SAAS;AAAA,EACpD;AAAA,EAEO,UAAU,YAA2B,MAA+B;AAC1E,WAAO,KAAK,MAAM,CAACA,OAAAA,IAAI,UAAU,IAAI,GAAG,SAAS;AAAA,EAClD;AAAA,EAEO,YAAY,YAA2B,MAA+B;AAC5E,WAAO,KAAK,MAAM,CAACA,OAAAA,IAAI,UAAU,MAAM,GAAG,SAAS;AAAA,EACpD;AAAA,EAEO,SAAS,YAA2B,MAA+B;AACzE,WAAO,KAAK,MAAM,CAACA,OAAAA,IAAI,UAAU,QAAQA,OAAAA,IAAI,UAAU,MAAMA,OAAAA,IAAI,UAAU,MAAM,GAAG,SAAS;AAAA,EAC9F;AAAA,EAEO,MACN,YACA,YAA2B,MACD;AAC1B,UAAM,cAAyC,CAAA;AAC/C,eAAW,CAAC,QAAQ,KAAK,KAAK,KAAK,QAAQ;AAC1C,UAAI,CAAC,YAAY,OAAO,IAAI,GAAG;AAC9B,oBAAY,OAAO,IAAI,IAAI,EAAE,YAAY,CAAA,GAAI,YAAY,GAAC;AAAA,MAC3D;AACA,YAAM,mBAAmD,YAAY,OAAO,IAAI,EAAE;AAClF,iBAAW,MAAM,YAAY;AAC5B,yBAAiB,EAAE,IAAI;AAAA,UACtB,GAAI,YAAY,OAAO,IAAI,EAAE,WAAW,EAAE,KAAK,CAAA;AAAA,UAC/C,CAAC,MAAM,IAAI,GAAG;AAAA,QAAA;AAAA,MAEhB;AAAA,IACD;AACA,WAAO,IAAI,wBAAwB,KAAK,yBAAyB,IAAI,WAAW,GAAG,KAAK,MAAM;AAAA,EAC/F;AAAA,EAEO,SAAS,gBAA8E;AAC7F,WAAO,KAAK,yBAAyB,SAAS,cAAc;AAAA,EAC7D;AAAA,EAEO,gBAA0C;AAChD,WAAO,KAAK,yBAAyB,cAAA;AAAA,EACtC;AAAA,EAEO,QAAQ,eAAkD;AAChE,WAAO,KAAK,yBAAyB,QAAQ,aAAa;AAAA,EAC3D;AAAA,EAEO,eAAwC;AAC9C,WAAO,KAAK,yBAAyB,aAAA;AAAA,EACtC;AACD;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"FieldPermissionsBuilder.js","sources":["../../../../../../packages/schema-definition/src/acl/builder/FieldPermissionsBuilder.ts"],"sourcesContent":["import FieldSelector from './FieldSelector'\nimport EntityPermissionsBuilder from './EntityPermissionsBuilder'\nimport { Acl, Model, Writable } from '@contember/schema'\nimport EntitySelector from './EntitySelector'\nimport { PermissionsBuilder } from './PermissionsBuilder'\n\nexport default class FieldPermissionsBuilder {\n\tpublic constructor(\n\t\tpublic entityPermissionsBuilder: EntityPermissionsBuilder,\n\t\tprivate readonly fields: [Model.Entity, Model.AnyField][],\n\t) {}\n\n\tget builder(): PermissionsBuilder {\n\t\treturn this.entityPermissionsBuilder.builder\n\t}\n\n\tget schema(): Model.Schema {\n\t\treturn this.entityPermissionsBuilder.schema\n\t}\n\n\tget permissions(): Acl.Permissions {\n\t\treturn this.entityPermissionsBuilder.permissions\n\t}\n\n\tpublic allowCreate(predicate: Acl.Predicate = true): FieldPermissionsBuilder {\n\t\treturn this.allow([Acl.Operation.create], predicate)\n\t}\n\n\tpublic allowRead(predicate: Acl.Predicate = true): FieldPermissionsBuilder {\n\t\treturn this.allow([Acl.Operation.read], predicate)\n\t}\n\n\tpublic allowUpdate(predicate: Acl.Predicate = true): FieldPermissionsBuilder {\n\t\treturn this.allow([Acl.Operation.update], predicate)\n\t}\n\n\tpublic allowAll(predicate: Acl.Predicate = true): FieldPermissionsBuilder {\n\t\treturn this.allow([Acl.Operation.create, Acl.Operation.read, Acl.Operation.update], predicate)\n\t}\n\n\tpublic allow(\n\t\toperations: (Acl.Operation.create | Acl.Operation.read | Acl.Operation.update)[],\n\t\tpredicate: Acl.Predicate = true,\n\t): FieldPermissionsBuilder {\n\t\tconst permissions: Writable<Acl.Permissions> = {}\n\t\tfor (const [entity, field] of this.fields) {\n\t\t\tif (!permissions[entity.name]) {\n\t\t\t\tpermissions[entity.name] = { operations: {}, predicates: {} }\n\t\t\t}\n\t\t\tconst entityOperations: Writable<Acl.EntityOperations> = permissions[entity.name].operations\n\t\t\tfor (const op of operations) {\n\t\t\t\tentityOperations[op] = {\n\t\t\t\t\t...(permissions[entity.name].operations[op] || {}),\n\t\t\t\t\t[field.name]: predicate,\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn new FieldPermissionsBuilder(this.entityPermissionsBuilder.add(permissions), this.fields)\n\t}\n\n\tpublic onEntity(entitySelector: EntitySelector | string | string[]): EntityPermissionsBuilder {\n\t\treturn this.entityPermissionsBuilder.onEntity(entitySelector)\n\t}\n\n\tpublic onEveryEntity(): EntityPermissionsBuilder {\n\t\treturn this.entityPermissionsBuilder.onEveryEntity()\n\t}\n\n\tpublic onField(fieldSelector: FieldSelector | string | string[]) {\n\t\treturn this.entityPermissionsBuilder.onField(fieldSelector)\n\t}\n\n\tpublic onEveryField(): FieldPermissionsBuilder {\n\t\treturn this.entityPermissionsBuilder.onEveryField()\n\t}\n}\n"],"names":[],"mappings":";AAMA,MAAqB,wBAAwB;AAAA,EACrC,YACC,0BACU,QAChB;AAFM,SAAA,2BAAA;AACU,SAAA,SAAA;AAAA,EAAA;AAAA,EAGlB,IAAI,UAA8B;AACjC,WAAO,KAAK,yBAAyB;AAAA,EAAA;AAAA,EAGtC,IAAI,SAAuB;AAC1B,WAAO,KAAK,yBAAyB;AAAA,EAAA;AAAA,EAGtC,IAAI,cAA+B;AAClC,WAAO,KAAK,yBAAyB;AAAA,EAAA;AAAA,EAG/B,YAAY,YAA2B,MAA+B;AAC5E,WAAO,KAAK,MAAM,CAAC,IAAI,UAAU,MAAM,GAAG,SAAS;AAAA,EAAA;AAAA,EAG7C,UAAU,YAA2B,MAA+B;AAC1E,WAAO,KAAK,MAAM,CAAC,IAAI,UAAU,IAAI,GAAG,SAAS;AAAA,EAAA;AAAA,EAG3C,YAAY,YAA2B,MAA+B;AAC5E,WAAO,KAAK,MAAM,CAAC,IAAI,UAAU,MAAM,GAAG,SAAS;AAAA,EAAA;AAAA,EAG7C,SAAS,YAA2B,MAA+B;AACzE,WAAO,KAAK,MAAM,CAAC,IAAI,UAAU,QAAQ,IAAI,UAAU,MAAM,IAAI,UAAU,MAAM,GAAG,SAAS;AAAA,EAAA;AAAA,EAGvF,MACN,YACA,YAA2B,MACD;AAC1B,UAAM,cAAyC,CAAC;AAChD,eAAW,CAAC,QAAQ,KAAK,KAAK,KAAK,QAAQ;AAC1C,UAAI,CAAC,YAAY,OAAO,IAAI,GAAG;AAClB,oBAAA,OAAO,IAAI,IAAI,EAAE,YAAY,CAAC,GAAG,YAAY,GAAG;AAAA,MAAA;AAE7D,YAAM,mBAAmD,YAAY,OAAO,IAAI,EAAE;AAClF,iBAAW,MAAM,YAAY;AAC5B,yBAAiB,EAAE,IAAI;AAAA,UACtB,GAAI,YAAY,OAAO,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC;AAAA,UAChD,CAAC,MAAM,IAAI,GAAG;AAAA,QACf;AAAA,MAAA;AAAA,IACD;AAEM,WAAA,IAAI,wBAAwB,KAAK,yBAAyB,IAAI,WAAW,GAAG,KAAK,MAAM;AAAA,EAAA;AAAA,EAGxF,SAAS,gBAA8E;AACtF,WAAA,KAAK,yBAAyB,SAAS,cAAc;AAAA,EAAA;AAAA,EAGtD,gBAA0C;AACzC,WAAA,KAAK,yBAAyB,cAAc;AAAA,EAAA;AAAA,EAG7C,QAAQ,eAAkD;AACzD,WAAA,KAAK,yBAAyB,QAAQ,aAAa;AAAA,EAAA;AAAA,EAGpD,eAAwC;AACvC,WAAA,KAAK,yBAAyB,aAAa;AAAA,EAAA;AAEpD;"}
1
+ {"version":3,"file":"FieldPermissionsBuilder.js","sources":["../../../../../../packages/schema-definition/src/acl/builder/FieldPermissionsBuilder.ts"],"sourcesContent":["import FieldSelector from './FieldSelector'\nimport EntityPermissionsBuilder from './EntityPermissionsBuilder'\nimport { Acl, Model, Writable } from '@contember/schema'\nimport EntitySelector from './EntitySelector'\nimport { PermissionsBuilder } from './PermissionsBuilder'\n\nexport default class FieldPermissionsBuilder {\n\tpublic constructor(\n\t\tpublic entityPermissionsBuilder: EntityPermissionsBuilder,\n\t\tprivate readonly fields: [Model.Entity, Model.AnyField][],\n\t) {}\n\n\tget builder(): PermissionsBuilder {\n\t\treturn this.entityPermissionsBuilder.builder\n\t}\n\n\tget schema(): Model.Schema {\n\t\treturn this.entityPermissionsBuilder.schema\n\t}\n\n\tget permissions(): Acl.Permissions {\n\t\treturn this.entityPermissionsBuilder.permissions\n\t}\n\n\tpublic allowCreate(predicate: Acl.Predicate = true): FieldPermissionsBuilder {\n\t\treturn this.allow([Acl.Operation.create], predicate)\n\t}\n\n\tpublic allowRead(predicate: Acl.Predicate = true): FieldPermissionsBuilder {\n\t\treturn this.allow([Acl.Operation.read], predicate)\n\t}\n\n\tpublic allowUpdate(predicate: Acl.Predicate = true): FieldPermissionsBuilder {\n\t\treturn this.allow([Acl.Operation.update], predicate)\n\t}\n\n\tpublic allowAll(predicate: Acl.Predicate = true): FieldPermissionsBuilder {\n\t\treturn this.allow([Acl.Operation.create, Acl.Operation.read, Acl.Operation.update], predicate)\n\t}\n\n\tpublic allow(\n\t\toperations: (Acl.Operation.create | Acl.Operation.read | Acl.Operation.update)[],\n\t\tpredicate: Acl.Predicate = true,\n\t): FieldPermissionsBuilder {\n\t\tconst permissions: Writable<Acl.Permissions> = {}\n\t\tfor (const [entity, field] of this.fields) {\n\t\t\tif (!permissions[entity.name]) {\n\t\t\t\tpermissions[entity.name] = { operations: {}, predicates: {} }\n\t\t\t}\n\t\t\tconst entityOperations: Writable<Acl.EntityOperations> = permissions[entity.name].operations\n\t\t\tfor (const op of operations) {\n\t\t\t\tentityOperations[op] = {\n\t\t\t\t\t...(permissions[entity.name].operations[op] || {}),\n\t\t\t\t\t[field.name]: predicate,\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn new FieldPermissionsBuilder(this.entityPermissionsBuilder.add(permissions), this.fields)\n\t}\n\n\tpublic onEntity(entitySelector: EntitySelector | string | string[]): EntityPermissionsBuilder {\n\t\treturn this.entityPermissionsBuilder.onEntity(entitySelector)\n\t}\n\n\tpublic onEveryEntity(): EntityPermissionsBuilder {\n\t\treturn this.entityPermissionsBuilder.onEveryEntity()\n\t}\n\n\tpublic onField(fieldSelector: FieldSelector | string | string[]) {\n\t\treturn this.entityPermissionsBuilder.onField(fieldSelector)\n\t}\n\n\tpublic onEveryField(): FieldPermissionsBuilder {\n\t\treturn this.entityPermissionsBuilder.onEveryField()\n\t}\n}\n"],"names":[],"mappings":";AAMA,MAAqB,wBAAwB;AAAA,EACrC,YACC,0BACU,QAChB;AAFM,SAAA,2BAAA;AACU,SAAA,SAAA;AAAA,EACf;AAAA,EAEH,IAAI,UAA8B;AACjC,WAAO,KAAK,yBAAyB;AAAA,EACtC;AAAA,EAEA,IAAI,SAAuB;AAC1B,WAAO,KAAK,yBAAyB;AAAA,EACtC;AAAA,EAEA,IAAI,cAA+B;AAClC,WAAO,KAAK,yBAAyB;AAAA,EACtC;AAAA,EAEO,YAAY,YAA2B,MAA+B;AAC5E,WAAO,KAAK,MAAM,CAAC,IAAI,UAAU,MAAM,GAAG,SAAS;AAAA,EACpD;AAAA,EAEO,UAAU,YAA2B,MAA+B;AAC1E,WAAO,KAAK,MAAM,CAAC,IAAI,UAAU,IAAI,GAAG,SAAS;AAAA,EAClD;AAAA,EAEO,YAAY,YAA2B,MAA+B;AAC5E,WAAO,KAAK,MAAM,CAAC,IAAI,UAAU,MAAM,GAAG,SAAS;AAAA,EACpD;AAAA,EAEO,SAAS,YAA2B,MAA+B;AACzE,WAAO,KAAK,MAAM,CAAC,IAAI,UAAU,QAAQ,IAAI,UAAU,MAAM,IAAI,UAAU,MAAM,GAAG,SAAS;AAAA,EAC9F;AAAA,EAEO,MACN,YACA,YAA2B,MACD;AAC1B,UAAM,cAAyC,CAAA;AAC/C,eAAW,CAAC,QAAQ,KAAK,KAAK,KAAK,QAAQ;AAC1C,UAAI,CAAC,YAAY,OAAO,IAAI,GAAG;AAC9B,oBAAY,OAAO,IAAI,IAAI,EAAE,YAAY,CAAA,GAAI,YAAY,GAAC;AAAA,MAC3D;AACA,YAAM,mBAAmD,YAAY,OAAO,IAAI,EAAE;AAClF,iBAAW,MAAM,YAAY;AAC5B,yBAAiB,EAAE,IAAI;AAAA,UACtB,GAAI,YAAY,OAAO,IAAI,EAAE,WAAW,EAAE,KAAK,CAAA;AAAA,UAC/C,CAAC,MAAM,IAAI,GAAG;AAAA,QAAA;AAAA,MAEhB;AAAA,IACD;AACA,WAAO,IAAI,wBAAwB,KAAK,yBAAyB,IAAI,WAAW,GAAG,KAAK,MAAM;AAAA,EAC/F;AAAA,EAEO,SAAS,gBAA8E;AAC7F,WAAO,KAAK,yBAAyB,SAAS,cAAc;AAAA,EAC7D;AAAA,EAEO,gBAA0C;AAChD,WAAO,KAAK,yBAAyB,cAAA;AAAA,EACtC;AAAA,EAEO,QAAQ,eAAkD;AAChE,WAAO,KAAK,yBAAyB,QAAQ,aAAa;AAAA,EAC3D;AAAA,EAEO,eAAwC;AAC9C,WAAO,KAAK,yBAAyB,aAAA;AAAA,EACtC;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"FieldSelector.cjs","sources":["../../../../../../packages/schema-definition/src/acl/builder/FieldSelector.ts"],"sourcesContent":["import { Model } from '@contember/schema'\n\ntype Matcher = (schema: Model.Schema, entity: Model.Entity, field: Model.AnyField) => boolean\n\nexport default class FieldSelector {\n\tprivate constructor(private readonly matchers: Matcher[]) {}\n\n\tpublic static every() {\n\t\treturn new FieldSelector([])\n\t}\n\n\tpublic static named(...name: string[]) {\n\t\treturn FieldSelector.every().named(...name)\n\t}\n\n\tpublic named(...name: string[]) {\n\t\treturn this.matching((schema, entity, field) => name.includes(field.name))\n\t}\n\n\tpublic except(...name: string[]) {\n\t\treturn this.matching((schema, entity, field) => !name.includes(field.name))\n\t}\n\n\tpublic matching(matcher: Matcher): FieldSelector {\n\t\treturn new FieldSelector([...this.matchers, matcher])\n\t}\n\n\tpublic matches(schema: Model.Schema, entity: Model.Entity, field: Model.AnyField): boolean {\n\t\treturn this.matchers.reduce<boolean>((prev, predicate) => prev && predicate(schema, entity, field), true)\n\t}\n}\n"],"names":[],"mappings":";AAIA,MAAqB,cAAc;AAAA,EAC1B,YAA6B,UAAqB;AAArB,SAAA,WAAA;AAAA,EAAA;AAAA,EAErC,OAAc,QAAQ;AACd,WAAA,IAAI,cAAc,EAAE;AAAA,EAAA;AAAA,EAG5B,OAAc,SAAS,MAAgB;AACtC,WAAO,cAAc,MAAA,EAAQ,MAAM,GAAG,IAAI;AAAA,EAAA;AAAA,EAGpC,SAAS,MAAgB;AACxB,WAAA,KAAK,SAAS,CAAC,QAAQ,QAAQ,UAAU,KAAK,SAAS,MAAM,IAAI,CAAC;AAAA,EAAA;AAAA,EAGnE,UAAU,MAAgB;AACzB,WAAA,KAAK,SAAS,CAAC,QAAQ,QAAQ,UAAU,CAAC,KAAK,SAAS,MAAM,IAAI,CAAC;AAAA,EAAA;AAAA,EAGpE,SAAS,SAAiC;AAChD,WAAO,IAAI,cAAc,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC;AAAA,EAAA;AAAA,EAG9C,QAAQ,QAAsB,QAAsB,OAAgC;AAC1F,WAAO,KAAK,SAAS,OAAgB,CAAC,MAAM,cAAc,QAAQ,UAAU,QAAQ,QAAQ,KAAK,GAAG,IAAI;AAAA,EAAA;AAE1G;;"}
1
+ {"version":3,"file":"FieldSelector.cjs","sources":["../../../../../../packages/schema-definition/src/acl/builder/FieldSelector.ts"],"sourcesContent":["import { Model } from '@contember/schema'\n\ntype Matcher = (schema: Model.Schema, entity: Model.Entity, field: Model.AnyField) => boolean\n\nexport default class FieldSelector {\n\tprivate constructor(private readonly matchers: Matcher[]) {}\n\n\tpublic static every() {\n\t\treturn new FieldSelector([])\n\t}\n\n\tpublic static named(...name: string[]) {\n\t\treturn FieldSelector.every().named(...name)\n\t}\n\n\tpublic named(...name: string[]) {\n\t\treturn this.matching((schema, entity, field) => name.includes(field.name))\n\t}\n\n\tpublic except(...name: string[]) {\n\t\treturn this.matching((schema, entity, field) => !name.includes(field.name))\n\t}\n\n\tpublic matching(matcher: Matcher): FieldSelector {\n\t\treturn new FieldSelector([...this.matchers, matcher])\n\t}\n\n\tpublic matches(schema: Model.Schema, entity: Model.Entity, field: Model.AnyField): boolean {\n\t\treturn this.matchers.reduce<boolean>((prev, predicate) => prev && predicate(schema, entity, field), true)\n\t}\n}\n"],"names":[],"mappings":";AAIA,MAAqB,cAAc;AAAA,EAC1B,YAA6B,UAAqB;AAArB,SAAA,WAAA;AAAA,EAAsB;AAAA,EAE3D,OAAc,QAAQ;AACrB,WAAO,IAAI,cAAc,EAAE;AAAA,EAC5B;AAAA,EAEA,OAAc,SAAS,MAAgB;AACtC,WAAO,cAAc,MAAA,EAAQ,MAAM,GAAG,IAAI;AAAA,EAC3C;AAAA,EAEO,SAAS,MAAgB;AAC/B,WAAO,KAAK,SAAS,CAAC,QAAQ,QAAQ,UAAU,KAAK,SAAS,MAAM,IAAI,CAAC;AAAA,EAC1E;AAAA,EAEO,UAAU,MAAgB;AAChC,WAAO,KAAK,SAAS,CAAC,QAAQ,QAAQ,UAAU,CAAC,KAAK,SAAS,MAAM,IAAI,CAAC;AAAA,EAC3E;AAAA,EAEO,SAAS,SAAiC;AAChD,WAAO,IAAI,cAAc,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC;AAAA,EACrD;AAAA,EAEO,QAAQ,QAAsB,QAAsB,OAAgC;AAC1F,WAAO,KAAK,SAAS,OAAgB,CAAC,MAAM,cAAc,QAAQ,UAAU,QAAQ,QAAQ,KAAK,GAAG,IAAI;AAAA,EACzG;AACD;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"FieldSelector.js","sources":["../../../../../../packages/schema-definition/src/acl/builder/FieldSelector.ts"],"sourcesContent":["import { Model } from '@contember/schema'\n\ntype Matcher = (schema: Model.Schema, entity: Model.Entity, field: Model.AnyField) => boolean\n\nexport default class FieldSelector {\n\tprivate constructor(private readonly matchers: Matcher[]) {}\n\n\tpublic static every() {\n\t\treturn new FieldSelector([])\n\t}\n\n\tpublic static named(...name: string[]) {\n\t\treturn FieldSelector.every().named(...name)\n\t}\n\n\tpublic named(...name: string[]) {\n\t\treturn this.matching((schema, entity, field) => name.includes(field.name))\n\t}\n\n\tpublic except(...name: string[]) {\n\t\treturn this.matching((schema, entity, field) => !name.includes(field.name))\n\t}\n\n\tpublic matching(matcher: Matcher): FieldSelector {\n\t\treturn new FieldSelector([...this.matchers, matcher])\n\t}\n\n\tpublic matches(schema: Model.Schema, entity: Model.Entity, field: Model.AnyField): boolean {\n\t\treturn this.matchers.reduce<boolean>((prev, predicate) => prev && predicate(schema, entity, field), true)\n\t}\n}\n"],"names":[],"mappings":"AAIA,MAAqB,cAAc;AAAA,EAC1B,YAA6B,UAAqB;AAArB,SAAA,WAAA;AAAA,EAAA;AAAA,EAErC,OAAc,QAAQ;AACd,WAAA,IAAI,cAAc,EAAE;AAAA,EAAA;AAAA,EAG5B,OAAc,SAAS,MAAgB;AACtC,WAAO,cAAc,MAAA,EAAQ,MAAM,GAAG,IAAI;AAAA,EAAA;AAAA,EAGpC,SAAS,MAAgB;AACxB,WAAA,KAAK,SAAS,CAAC,QAAQ,QAAQ,UAAU,KAAK,SAAS,MAAM,IAAI,CAAC;AAAA,EAAA;AAAA,EAGnE,UAAU,MAAgB;AACzB,WAAA,KAAK,SAAS,CAAC,QAAQ,QAAQ,UAAU,CAAC,KAAK,SAAS,MAAM,IAAI,CAAC;AAAA,EAAA;AAAA,EAGpE,SAAS,SAAiC;AAChD,WAAO,IAAI,cAAc,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC;AAAA,EAAA;AAAA,EAG9C,QAAQ,QAAsB,QAAsB,OAAgC;AAC1F,WAAO,KAAK,SAAS,OAAgB,CAAC,MAAM,cAAc,QAAQ,UAAU,QAAQ,QAAQ,KAAK,GAAG,IAAI;AAAA,EAAA;AAE1G;"}
1
+ {"version":3,"file":"FieldSelector.js","sources":["../../../../../../packages/schema-definition/src/acl/builder/FieldSelector.ts"],"sourcesContent":["import { Model } from '@contember/schema'\n\ntype Matcher = (schema: Model.Schema, entity: Model.Entity, field: Model.AnyField) => boolean\n\nexport default class FieldSelector {\n\tprivate constructor(private readonly matchers: Matcher[]) {}\n\n\tpublic static every() {\n\t\treturn new FieldSelector([])\n\t}\n\n\tpublic static named(...name: string[]) {\n\t\treturn FieldSelector.every().named(...name)\n\t}\n\n\tpublic named(...name: string[]) {\n\t\treturn this.matching((schema, entity, field) => name.includes(field.name))\n\t}\n\n\tpublic except(...name: string[]) {\n\t\treturn this.matching((schema, entity, field) => !name.includes(field.name))\n\t}\n\n\tpublic matching(matcher: Matcher): FieldSelector {\n\t\treturn new FieldSelector([...this.matchers, matcher])\n\t}\n\n\tpublic matches(schema: Model.Schema, entity: Model.Entity, field: Model.AnyField): boolean {\n\t\treturn this.matchers.reduce<boolean>((prev, predicate) => prev && predicate(schema, entity, field), true)\n\t}\n}\n"],"names":[],"mappings":"AAIA,MAAqB,cAAc;AAAA,EAC1B,YAA6B,UAAqB;AAArB,SAAA,WAAA;AAAA,EAAsB;AAAA,EAE3D,OAAc,QAAQ;AACrB,WAAO,IAAI,cAAc,EAAE;AAAA,EAC5B;AAAA,EAEA,OAAc,SAAS,MAAgB;AACtC,WAAO,cAAc,MAAA,EAAQ,MAAM,GAAG,IAAI;AAAA,EAC3C;AAAA,EAEO,SAAS,MAAgB;AAC/B,WAAO,KAAK,SAAS,CAAC,QAAQ,QAAQ,UAAU,KAAK,SAAS,MAAM,IAAI,CAAC;AAAA,EAC1E;AAAA,EAEO,UAAU,MAAgB;AAChC,WAAO,KAAK,SAAS,CAAC,QAAQ,QAAQ,UAAU,CAAC,KAAK,SAAS,MAAM,IAAI,CAAC;AAAA,EAC3E;AAAA,EAEO,SAAS,SAAiC;AAChD,WAAO,IAAI,cAAc,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC;AAAA,EACrD;AAAA,EAEO,QAAQ,QAAsB,QAAsB,OAAgC;AAC1F,WAAO,KAAK,SAAS,OAAgB,CAAC,MAAM,cAAc,QAAQ,UAAU,QAAQ,QAAQ,KAAK,GAAG,IAAI;AAAA,EACzG;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PermissionOverrider.cjs","sources":["../../../../../../packages/schema-definition/src/acl/builder/PermissionOverrider.ts"],"sourcesContent":["import { Acl } from '@contember/schema'\nimport { tuple } from '../../utils'\n\nexport default class PermissionOverrider {\n\tpublic override(original: Acl.Permissions, overrides: Acl.Permissions): Acl.Permissions {\n\t\treturn Object.entries({ ...overrides, ...original })\n\t\t\t.map(([key, value]) => {\n\t\t\t\tif (overrides[key]) {\n\t\t\t\t\treturn tuple(key, this.overrideEntityPermissions(value, overrides[key]))\n\t\t\t\t}\n\t\t\t\treturn tuple(key, value)\n\t\t\t})\n\t\t\t.reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {})\n\t}\n\n\tprivate overrideEntityPermissions(\n\t\toriginal: Acl.EntityPermissions,\n\t\toverrides: Acl.EntityPermissions,\n\t): Acl.EntityPermissions {\n\t\treturn {\n\t\t\tpredicates: { ...original.predicates, ...overrides.predicates },\n\t\t\toperations: {\n\t\t\t\tcreate: { ...(original.operations.create || {}), ...(overrides.operations.create || {}) },\n\t\t\t\tread: { ...(original.operations.read || {}), ...(overrides.operations.read || {}) },\n\t\t\t\tupdate: { ...(original.operations.update || {}), ...(overrides.operations.update || {}) },\n\t\t\t\t...(original.operations.delete === undefined && overrides.operations.delete === undefined\n\t\t\t\t\t? {}\n\t\t\t\t\t: {\n\t\t\t\t\t\tdelete: overrides.operations.delete ?? original.operations.delete,\n\t\t\t\t\t }),\n\t\t\t\t...(original.operations.customPrimary === undefined && overrides.operations.customPrimary === undefined\n\t\t\t\t\t? {}\n\t\t\t\t\t: {\n\t\t\t\t\t\tcustomPrimary: overrides.operations.customPrimary ?? original.operations.customPrimary,\n\t\t\t\t\t }),\n\t\t\t\t...(original.operations.noRoot || overrides.operations.noRoot ? {\n\t\t\t\t\tnoRoot: [\n\t\t\t\t\t\t...(original.operations.noRoot || []),\n\t\t\t\t\t\t...(overrides.operations.noRoot || []),\n\t\t\t\t\t],\n\t\t\t\t} : {}),\n\t\t\t},\n\t\t}\n\t}\n}\n"],"names":["tuple"],"mappings":";;;AAGA,MAAqB,oBAAoB;AAAA,EACjC,SAAS,UAA2B,WAA6C;AACvF,WAAO,OAAO,QAAQ,EAAE,GAAG,WAAW,GAAG,UAAU,EACjD,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AAClB,UAAA,UAAU,GAAG,GAAG;AACZ,eAAAA,MAAA,MAAM,KAAK,KAAK,0BAA0B,OAAO,UAAU,GAAG,CAAC,CAAC;AAAA,MAAA;AAEjE,aAAAA,MAAA,MAAM,KAAK,KAAK;AAAA,IACvB,CAAA,EACA,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,MAAM,IAAI,CAAA,CAAE;AAAA,EAAA;AAAA,EAGvD,0BACP,UACA,WACwB;AACjB,WAAA;AAAA,MACN,YAAY,EAAE,GAAG,SAAS,YAAY,GAAG,UAAU,WAAW;AAAA,MAC9D,YAAY;AAAA,QACX,QAAQ,EAAE,GAAI,SAAS,WAAW,UAAU,IAAK,GAAI,UAAU,WAAW,UAAU,GAAI;AAAA,QACxF,MAAM,EAAE,GAAI,SAAS,WAAW,QAAQ,IAAK,GAAI,UAAU,WAAW,QAAQ,GAAI;AAAA,QAClF,QAAQ,EAAE,GAAI,SAAS,WAAW,UAAU,IAAK,GAAI,UAAU,WAAW,UAAU,GAAI;AAAA,QACxF,GAAI,SAAS,WAAW,WAAW,UAAa,UAAU,WAAW,WAAW,SAC7E,KACA;AAAA,UACD,QAAQ,UAAU,WAAW,UAAU,SAAS,WAAW;AAAA,QAC1D;AAAA,QACH,GAAI,SAAS,WAAW,kBAAkB,UAAa,UAAU,WAAW,kBAAkB,SAC3F,KACA;AAAA,UACD,eAAe,UAAU,WAAW,iBAAiB,SAAS,WAAW;AAAA,QACxE;AAAA,QACH,GAAI,SAAS,WAAW,UAAU,UAAU,WAAW,SAAS;AAAA,UAC/D,QAAQ;AAAA,YACP,GAAI,SAAS,WAAW,UAAU,CAAC;AAAA,YACnC,GAAI,UAAU,WAAW,UAAU,CAAA;AAAA,UAAC;AAAA,QACrC,IACG,CAAA;AAAA,MAAC;AAAA,IAEP;AAAA,EAAA;AAEF;;"}
1
+ {"version":3,"file":"PermissionOverrider.cjs","sources":["../../../../../../packages/schema-definition/src/acl/builder/PermissionOverrider.ts"],"sourcesContent":["import { Acl } from '@contember/schema'\nimport { tuple } from '../../utils'\n\nexport default class PermissionOverrider {\n\tpublic override(original: Acl.Permissions, overrides: Acl.Permissions): Acl.Permissions {\n\t\treturn Object.entries({ ...overrides, ...original })\n\t\t\t.map(([key, value]) => {\n\t\t\t\tif (overrides[key]) {\n\t\t\t\t\treturn tuple(key, this.overrideEntityPermissions(value, overrides[key]))\n\t\t\t\t}\n\t\t\t\treturn tuple(key, value)\n\t\t\t})\n\t\t\t.reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {})\n\t}\n\n\tprivate overrideEntityPermissions(\n\t\toriginal: Acl.EntityPermissions,\n\t\toverrides: Acl.EntityPermissions,\n\t): Acl.EntityPermissions {\n\t\treturn {\n\t\t\tpredicates: { ...original.predicates, ...overrides.predicates },\n\t\t\toperations: {\n\t\t\t\tcreate: { ...(original.operations.create || {}), ...(overrides.operations.create || {}) },\n\t\t\t\tread: { ...(original.operations.read || {}), ...(overrides.operations.read || {}) },\n\t\t\t\tupdate: { ...(original.operations.update || {}), ...(overrides.operations.update || {}) },\n\t\t\t\t...(original.operations.delete === undefined && overrides.operations.delete === undefined\n\t\t\t\t\t? {}\n\t\t\t\t\t: {\n\t\t\t\t\t\tdelete: overrides.operations.delete ?? original.operations.delete,\n\t\t\t\t\t}),\n\t\t\t\t...(original.operations.customPrimary === undefined && overrides.operations.customPrimary === undefined\n\t\t\t\t\t? {}\n\t\t\t\t\t: {\n\t\t\t\t\t\tcustomPrimary: overrides.operations.customPrimary ?? original.operations.customPrimary,\n\t\t\t\t\t}),\n\t\t\t\t...(original.operations.noRoot || overrides.operations.noRoot\n\t\t\t\t\t? {\n\t\t\t\t\t\tnoRoot: [\n\t\t\t\t\t\t\t...(original.operations.noRoot || []),\n\t\t\t\t\t\t\t...(overrides.operations.noRoot || []),\n\t\t\t\t\t\t],\n\t\t\t\t\t}\n\t\t\t\t\t: {}),\n\t\t\t},\n\t\t}\n\t}\n}\n"],"names":["tuple"],"mappings":";;;AAGA,MAAqB,oBAAoB;AAAA,EACjC,SAAS,UAA2B,WAA6C;AACvF,WAAO,OAAO,QAAQ,EAAE,GAAG,WAAW,GAAG,UAAU,EACjD,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AACtB,UAAI,UAAU,GAAG,GAAG;AACnB,eAAOA,MAAAA,MAAM,KAAK,KAAK,0BAA0B,OAAO,UAAU,GAAG,CAAC,CAAC;AAAA,MACxE;AACA,aAAOA,MAAAA,MAAM,KAAK,KAAK;AAAA,IACxB,CAAC,EACA,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,MAAA,IAAU,CAAA,CAAE;AAAA,EAC/D;AAAA,EAEQ,0BACP,UACA,WACwB;AACxB,WAAO;AAAA,MACN,YAAY,EAAE,GAAG,SAAS,YAAY,GAAG,UAAU,WAAA;AAAA,MACnD,YAAY;AAAA,QACX,QAAQ,EAAE,GAAI,SAAS,WAAW,UAAU,IAAK,GAAI,UAAU,WAAW,UAAU,GAAC;AAAA,QACrF,MAAM,EAAE,GAAI,SAAS,WAAW,QAAQ,IAAK,GAAI,UAAU,WAAW,QAAQ,GAAC;AAAA,QAC/E,QAAQ,EAAE,GAAI,SAAS,WAAW,UAAU,IAAK,GAAI,UAAU,WAAW,UAAU,GAAC;AAAA,QACrF,GAAI,SAAS,WAAW,WAAW,UAAa,UAAU,WAAW,WAAW,SAC7E,KACA;AAAA,UACD,QAAQ,UAAU,WAAW,UAAU,SAAS,WAAW;AAAA,QAAA;AAAA,QAE7D,GAAI,SAAS,WAAW,kBAAkB,UAAa,UAAU,WAAW,kBAAkB,SAC3F,KACA;AAAA,UACD,eAAe,UAAU,WAAW,iBAAiB,SAAS,WAAW;AAAA,QAAA;AAAA,QAE3E,GAAI,SAAS,WAAW,UAAU,UAAU,WAAW,SACpD;AAAA,UACD,QAAQ;AAAA,YACP,GAAI,SAAS,WAAW,UAAU,CAAA;AAAA,YAClC,GAAI,UAAU,WAAW,UAAU,CAAA;AAAA,UAAC;AAAA,QACrC,IAEC,CAAA;AAAA,MAAC;AAAA,IACL;AAAA,EAEF;AACD;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PermissionOverrider.js","sources":["../../../../../../packages/schema-definition/src/acl/builder/PermissionOverrider.ts"],"sourcesContent":["import { Acl } from '@contember/schema'\nimport { tuple } from '../../utils'\n\nexport default class PermissionOverrider {\n\tpublic override(original: Acl.Permissions, overrides: Acl.Permissions): Acl.Permissions {\n\t\treturn Object.entries({ ...overrides, ...original })\n\t\t\t.map(([key, value]) => {\n\t\t\t\tif (overrides[key]) {\n\t\t\t\t\treturn tuple(key, this.overrideEntityPermissions(value, overrides[key]))\n\t\t\t\t}\n\t\t\t\treturn tuple(key, value)\n\t\t\t})\n\t\t\t.reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {})\n\t}\n\n\tprivate overrideEntityPermissions(\n\t\toriginal: Acl.EntityPermissions,\n\t\toverrides: Acl.EntityPermissions,\n\t): Acl.EntityPermissions {\n\t\treturn {\n\t\t\tpredicates: { ...original.predicates, ...overrides.predicates },\n\t\t\toperations: {\n\t\t\t\tcreate: { ...(original.operations.create || {}), ...(overrides.operations.create || {}) },\n\t\t\t\tread: { ...(original.operations.read || {}), ...(overrides.operations.read || {}) },\n\t\t\t\tupdate: { ...(original.operations.update || {}), ...(overrides.operations.update || {}) },\n\t\t\t\t...(original.operations.delete === undefined && overrides.operations.delete === undefined\n\t\t\t\t\t? {}\n\t\t\t\t\t: {\n\t\t\t\t\t\tdelete: overrides.operations.delete ?? original.operations.delete,\n\t\t\t\t\t }),\n\t\t\t\t...(original.operations.customPrimary === undefined && overrides.operations.customPrimary === undefined\n\t\t\t\t\t? {}\n\t\t\t\t\t: {\n\t\t\t\t\t\tcustomPrimary: overrides.operations.customPrimary ?? original.operations.customPrimary,\n\t\t\t\t\t }),\n\t\t\t\t...(original.operations.noRoot || overrides.operations.noRoot ? {\n\t\t\t\t\tnoRoot: [\n\t\t\t\t\t\t...(original.operations.noRoot || []),\n\t\t\t\t\t\t...(overrides.operations.noRoot || []),\n\t\t\t\t\t],\n\t\t\t\t} : {}),\n\t\t\t},\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;AAGA,MAAqB,oBAAoB;AAAA,EACjC,SAAS,UAA2B,WAA6C;AACvF,WAAO,OAAO,QAAQ,EAAE,GAAG,WAAW,GAAG,UAAU,EACjD,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AAClB,UAAA,UAAU,GAAG,GAAG;AACZ,eAAA,MAAM,KAAK,KAAK,0BAA0B,OAAO,UAAU,GAAG,CAAC,CAAC;AAAA,MAAA;AAEjE,aAAA,MAAM,KAAK,KAAK;AAAA,IACvB,CAAA,EACA,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,MAAM,IAAI,CAAA,CAAE;AAAA,EAAA;AAAA,EAGvD,0BACP,UACA,WACwB;AACjB,WAAA;AAAA,MACN,YAAY,EAAE,GAAG,SAAS,YAAY,GAAG,UAAU,WAAW;AAAA,MAC9D,YAAY;AAAA,QACX,QAAQ,EAAE,GAAI,SAAS,WAAW,UAAU,IAAK,GAAI,UAAU,WAAW,UAAU,GAAI;AAAA,QACxF,MAAM,EAAE,GAAI,SAAS,WAAW,QAAQ,IAAK,GAAI,UAAU,WAAW,QAAQ,GAAI;AAAA,QAClF,QAAQ,EAAE,GAAI,SAAS,WAAW,UAAU,IAAK,GAAI,UAAU,WAAW,UAAU,GAAI;AAAA,QACxF,GAAI,SAAS,WAAW,WAAW,UAAa,UAAU,WAAW,WAAW,SAC7E,KACA;AAAA,UACD,QAAQ,UAAU,WAAW,UAAU,SAAS,WAAW;AAAA,QAC1D;AAAA,QACH,GAAI,SAAS,WAAW,kBAAkB,UAAa,UAAU,WAAW,kBAAkB,SAC3F,KACA;AAAA,UACD,eAAe,UAAU,WAAW,iBAAiB,SAAS,WAAW;AAAA,QACxE;AAAA,QACH,GAAI,SAAS,WAAW,UAAU,UAAU,WAAW,SAAS;AAAA,UAC/D,QAAQ;AAAA,YACP,GAAI,SAAS,WAAW,UAAU,CAAC;AAAA,YACnC,GAAI,UAAU,WAAW,UAAU,CAAA;AAAA,UAAC;AAAA,QACrC,IACG,CAAA;AAAA,MAAC;AAAA,IAEP;AAAA,EAAA;AAEF;"}
1
+ {"version":3,"file":"PermissionOverrider.js","sources":["../../../../../../packages/schema-definition/src/acl/builder/PermissionOverrider.ts"],"sourcesContent":["import { Acl } from '@contember/schema'\nimport { tuple } from '../../utils'\n\nexport default class PermissionOverrider {\n\tpublic override(original: Acl.Permissions, overrides: Acl.Permissions): Acl.Permissions {\n\t\treturn Object.entries({ ...overrides, ...original })\n\t\t\t.map(([key, value]) => {\n\t\t\t\tif (overrides[key]) {\n\t\t\t\t\treturn tuple(key, this.overrideEntityPermissions(value, overrides[key]))\n\t\t\t\t}\n\t\t\t\treturn tuple(key, value)\n\t\t\t})\n\t\t\t.reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {})\n\t}\n\n\tprivate overrideEntityPermissions(\n\t\toriginal: Acl.EntityPermissions,\n\t\toverrides: Acl.EntityPermissions,\n\t): Acl.EntityPermissions {\n\t\treturn {\n\t\t\tpredicates: { ...original.predicates, ...overrides.predicates },\n\t\t\toperations: {\n\t\t\t\tcreate: { ...(original.operations.create || {}), ...(overrides.operations.create || {}) },\n\t\t\t\tread: { ...(original.operations.read || {}), ...(overrides.operations.read || {}) },\n\t\t\t\tupdate: { ...(original.operations.update || {}), ...(overrides.operations.update || {}) },\n\t\t\t\t...(original.operations.delete === undefined && overrides.operations.delete === undefined\n\t\t\t\t\t? {}\n\t\t\t\t\t: {\n\t\t\t\t\t\tdelete: overrides.operations.delete ?? original.operations.delete,\n\t\t\t\t\t}),\n\t\t\t\t...(original.operations.customPrimary === undefined && overrides.operations.customPrimary === undefined\n\t\t\t\t\t? {}\n\t\t\t\t\t: {\n\t\t\t\t\t\tcustomPrimary: overrides.operations.customPrimary ?? original.operations.customPrimary,\n\t\t\t\t\t}),\n\t\t\t\t...(original.operations.noRoot || overrides.operations.noRoot\n\t\t\t\t\t? {\n\t\t\t\t\t\tnoRoot: [\n\t\t\t\t\t\t\t...(original.operations.noRoot || []),\n\t\t\t\t\t\t\t...(overrides.operations.noRoot || []),\n\t\t\t\t\t\t],\n\t\t\t\t\t}\n\t\t\t\t\t: {}),\n\t\t\t},\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;AAGA,MAAqB,oBAAoB;AAAA,EACjC,SAAS,UAA2B,WAA6C;AACvF,WAAO,OAAO,QAAQ,EAAE,GAAG,WAAW,GAAG,UAAU,EACjD,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AACtB,UAAI,UAAU,GAAG,GAAG;AACnB,eAAO,MAAM,KAAK,KAAK,0BAA0B,OAAO,UAAU,GAAG,CAAC,CAAC;AAAA,MACxE;AACA,aAAO,MAAM,KAAK,KAAK;AAAA,IACxB,CAAC,EACA,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,MAAA,IAAU,CAAA,CAAE;AAAA,EAC/D;AAAA,EAEQ,0BACP,UACA,WACwB;AACxB,WAAO;AAAA,MACN,YAAY,EAAE,GAAG,SAAS,YAAY,GAAG,UAAU,WAAA;AAAA,MACnD,YAAY;AAAA,QACX,QAAQ,EAAE,GAAI,SAAS,WAAW,UAAU,IAAK,GAAI,UAAU,WAAW,UAAU,GAAC;AAAA,QACrF,MAAM,EAAE,GAAI,SAAS,WAAW,QAAQ,IAAK,GAAI,UAAU,WAAW,QAAQ,GAAC;AAAA,QAC/E,QAAQ,EAAE,GAAI,SAAS,WAAW,UAAU,IAAK,GAAI,UAAU,WAAW,UAAU,GAAC;AAAA,QACrF,GAAI,SAAS,WAAW,WAAW,UAAa,UAAU,WAAW,WAAW,SAC7E,KACA;AAAA,UACD,QAAQ,UAAU,WAAW,UAAU,SAAS,WAAW;AAAA,QAAA;AAAA,QAE7D,GAAI,SAAS,WAAW,kBAAkB,UAAa,UAAU,WAAW,kBAAkB,SAC3F,KACA;AAAA,UACD,eAAe,UAAU,WAAW,iBAAiB,SAAS,WAAW;AAAA,QAAA;AAAA,QAE3E,GAAI,SAAS,WAAW,UAAU,UAAU,WAAW,SACpD;AAAA,UACD,QAAQ;AAAA,YACP,GAAI,SAAS,WAAW,UAAU,CAAA;AAAA,YAClC,GAAI,UAAU,WAAW,UAAU,CAAA;AAAA,UAAC;AAAA,QACrC,IAEC,CAAA;AAAA,MAAC;AAAA,IACL;AAAA,EAEF;AACD;"}
@@ -36,9 +36,7 @@ class PermissionsBuilder {
36
36
  entitySelector = EntitySelector.named(...entitySelector);
37
37
  }
38
38
  const entitySelectorWithType = entitySelector;
39
- const entities = Object.values(this.schema.entities).filter(
40
- (entity) => entitySelectorWithType.matches(this.schema, entity)
41
- );
39
+ const entities = Object.values(this.schema.entities).filter((entity) => entitySelectorWithType.matches(this.schema, entity));
42
40
  return new EntityPermissionsBuilder(this, entities);
43
41
  }
44
42
  onEveryEntity() {