@contember/schema-utils 2.1.0-alpha.3 → 2.1.0-alpha.35

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 (435) hide show
  1. package/package.json +11 -6
  2. package/src/acl/AllowAllPermissionFactory.ts +1 -1
  3. package/src/acl/PredicateDefinitionProcessor.ts +5 -7
  4. package/src/dataUtils.ts +1 -1
  5. package/src/definition-generator/AclDefinitionCodeGenerator.ts +7 -8
  6. package/src/definition-generator/DefinitionCodeGenerator.ts +8 -14
  7. package/src/definition-generator/DefinitionNamingConventions.ts +50 -1
  8. package/src/index.ts +2 -2
  9. package/src/lax/LaxSchemaConverter.ts +0 -4
  10. package/src/lax/schema.ts +4 -1
  11. package/src/model/modelUtils.ts +2 -4
  12. package/src/schemaChecksum.ts +0 -1
  13. package/src/schemaFilter.ts +1 -1
  14. package/src/type-schema/acl.ts +15 -12
  15. package/src/type-schema/actions.ts +1 -2
  16. package/src/type-schema/condition.ts +25 -20
  17. package/src/type-schema/model.ts +12 -8
  18. package/src/type-schema/validation.ts +5 -4
  19. package/src/type-schema/where.ts +11 -9
  20. package/src/utils/deepCompare.ts +1 -1
  21. package/src/utils/printJsValue.ts +23 -25
  22. package/src/validation/AclValidator.ts +0 -2
  23. package/src/validation/ActionsValidator.ts +7 -7
  24. package/src/validation/MembershipResolver.ts +10 -9
  25. package/src/validation/ModelValidator.ts +43 -32
  26. package/src/validation/SchemaValidator.ts +7 -6
  27. package/src/validation/ValidationValidator.ts +1 -3
  28. package/src/validation/errors.ts +0 -3
  29. package/tests/cases/unit/conditionSchema.test.ts +1 -2
  30. package/tests/cases/unit/deepCompare.test.ts +2 -3
  31. package/tests/cases/unit/laxSchemaConverter.test.ts +0 -4
  32. package/tests/cases/unit/membershipResolver.test.ts +136 -49
  33. package/tests/cases/unit/modelSchema.test.ts +4 -4
  34. package/tests/cases/unit/modelValidator.test.ts +0 -1
  35. package/tests/cases/unit/printJsvalue.test.ts +11 -7
  36. package/tests/cases/unit/whereSchema.test.ts +19 -18
  37. package/dist/development/index.cjs +0 -110
  38. package/dist/development/index.cjs.map +0 -1
  39. package/dist/development/index.js +0 -94
  40. package/dist/development/index.js.map +0 -1
  41. package/dist/development/src/acl/AllowAllPermissionFactory.cjs +0 -42
  42. package/dist/development/src/acl/AllowAllPermissionFactory.cjs.map +0 -1
  43. package/dist/development/src/acl/AllowAllPermissionFactory.js +0 -42
  44. package/dist/development/src/acl/AllowAllPermissionFactory.js.map +0 -1
  45. package/dist/development/src/acl/PredicateDefinitionProcessor.cjs +0 -71
  46. package/dist/development/src/acl/PredicateDefinitionProcessor.cjs.map +0 -1
  47. package/dist/development/src/acl/PredicateDefinitionProcessor.js +0 -71
  48. package/dist/development/src/acl/PredicateDefinitionProcessor.js.map +0 -1
  49. package/dist/development/src/acl/schemaUtils.cjs +0 -11
  50. package/dist/development/src/acl/schemaUtils.cjs.map +0 -1
  51. package/dist/development/src/acl/schemaUtils.js +0 -11
  52. package/dist/development/src/acl/schemaUtils.js.map +0 -1
  53. package/dist/development/src/dataUtils.cjs +0 -59
  54. package/dist/development/src/dataUtils.cjs.map +0 -1
  55. package/dist/development/src/dataUtils.js +0 -59
  56. package/dist/development/src/dataUtils.js.map +0 -1
  57. package/dist/development/src/definition-generator/AclDefinitionCodeGenerator.cjs +0 -117
  58. package/dist/development/src/definition-generator/AclDefinitionCodeGenerator.cjs.map +0 -1
  59. package/dist/development/src/definition-generator/AclDefinitionCodeGenerator.js +0 -117
  60. package/dist/development/src/definition-generator/AclDefinitionCodeGenerator.js.map +0 -1
  61. package/dist/development/src/definition-generator/DefinitionCodeGenerator.cjs +0 -218
  62. package/dist/development/src/definition-generator/DefinitionCodeGenerator.cjs.map +0 -1
  63. package/dist/development/src/definition-generator/DefinitionCodeGenerator.js +0 -218
  64. package/dist/development/src/definition-generator/DefinitionCodeGenerator.js.map +0 -1
  65. package/dist/development/src/definition-generator/DefinitionNamingConventions.cjs +0 -19
  66. package/dist/development/src/definition-generator/DefinitionNamingConventions.cjs.map +0 -1
  67. package/dist/development/src/definition-generator/DefinitionNamingConventions.js +0 -19
  68. package/dist/development/src/definition-generator/DefinitionNamingConventions.js.map +0 -1
  69. package/dist/development/src/definition-generator/TsDefinitionGenerator.cjs +0 -17
  70. package/dist/development/src/definition-generator/TsDefinitionGenerator.cjs.map +0 -1
  71. package/dist/development/src/definition-generator/TsDefinitionGenerator.js +0 -17
  72. package/dist/development/src/definition-generator/TsDefinitionGenerator.js.map +0 -1
  73. package/dist/development/src/lax/LaxSchemaConverter.cjs +0 -202
  74. package/dist/development/src/lax/LaxSchemaConverter.cjs.map +0 -1
  75. package/dist/development/src/lax/LaxSchemaConverter.js +0 -202
  76. package/dist/development/src/lax/LaxSchemaConverter.js.map +0 -1
  77. package/dist/development/src/lax/schema.cjs +0 -70
  78. package/dist/development/src/lax/schema.cjs.map +0 -1
  79. package/dist/development/src/lax/schema.js +0 -53
  80. package/dist/development/src/lax/schema.js.map +0 -1
  81. package/dist/development/src/model/NamingConventions.cjs +0 -28
  82. package/dist/development/src/model/NamingConventions.cjs.map +0 -1
  83. package/dist/development/src/model/NamingConventions.js +0 -28
  84. package/dist/development/src/model/NamingConventions.js.map +0 -1
  85. package/dist/development/src/model/modelUtils.cjs +0 -231
  86. package/dist/development/src/model/modelUtils.cjs.map +0 -1
  87. package/dist/development/src/model/modelUtils.js +0 -231
  88. package/dist/development/src/model/modelUtils.js.map +0 -1
  89. package/dist/development/src/model/resolveDefaultColumnType.cjs +0 -30
  90. package/dist/development/src/model/resolveDefaultColumnType.cjs.map +0 -1
  91. package/dist/development/src/model/resolveDefaultColumnType.js +0 -30
  92. package/dist/development/src/model/resolveDefaultColumnType.js.map +0 -1
  93. package/dist/development/src/schemaChecksum.cjs +0 -9
  94. package/dist/development/src/schemaChecksum.cjs.map +0 -1
  95. package/dist/development/src/schemaChecksum.js +0 -9
  96. package/dist/development/src/schemaChecksum.js.map +0 -1
  97. package/dist/development/src/schemaFilter.cjs +0 -24
  98. package/dist/development/src/schemaFilter.cjs.map +0 -1
  99. package/dist/development/src/schemaFilter.js +0 -24
  100. package/dist/development/src/schemaFilter.js.map +0 -1
  101. package/dist/development/src/schemaNormalizer.cjs +0 -72
  102. package/dist/development/src/schemaNormalizer.cjs.map +0 -1
  103. package/dist/development/src/schemaNormalizer.js +0 -72
  104. package/dist/development/src/schemaNormalizer.js.map +0 -1
  105. package/dist/development/src/type-schema/acl.cjs +0 -146
  106. package/dist/development/src/type-schema/acl.cjs.map +0 -1
  107. package/dist/development/src/type-schema/acl.js +0 -129
  108. package/dist/development/src/type-schema/acl.js.map +0 -1
  109. package/dist/development/src/type-schema/actions.cjs +0 -87
  110. package/dist/development/src/type-schema/actions.cjs.map +0 -1
  111. package/dist/development/src/type-schema/actions.js +0 -70
  112. package/dist/development/src/type-schema/actions.js.map +0 -1
  113. package/dist/development/src/type-schema/condition.cjs +0 -89
  114. package/dist/development/src/type-schema/condition.cjs.map +0 -1
  115. package/dist/development/src/type-schema/condition.js +0 -72
  116. package/dist/development/src/type-schema/condition.js.map +0 -1
  117. package/dist/development/src/type-schema/model.cjs +0 -217
  118. package/dist/development/src/type-schema/model.cjs.map +0 -1
  119. package/dist/development/src/type-schema/model.js +0 -201
  120. package/dist/development/src/type-schema/model.js.map +0 -1
  121. package/dist/development/src/type-schema/settings.cjs +0 -34
  122. package/dist/development/src/type-schema/settings.cjs.map +0 -1
  123. package/dist/development/src/type-schema/settings.js +0 -17
  124. package/dist/development/src/type-schema/settings.js.map +0 -1
  125. package/dist/development/src/type-schema/validation.cjs +0 -115
  126. package/dist/development/src/type-schema/validation.cjs.map +0 -1
  127. package/dist/development/src/type-schema/validation.js +0 -98
  128. package/dist/development/src/type-schema/validation.js.map +0 -1
  129. package/dist/development/src/type-schema/where.cjs +0 -44
  130. package/dist/development/src/type-schema/where.cjs.map +0 -1
  131. package/dist/development/src/type-schema/where.js +0 -27
  132. package/dist/development/src/type-schema/where.js.map +0 -1
  133. package/dist/development/src/utils/assertNever.cjs +0 -7
  134. package/dist/development/src/utils/assertNever.cjs.map +0 -1
  135. package/dist/development/src/utils/assertNever.js +0 -7
  136. package/dist/development/src/utils/assertNever.js.map +0 -1
  137. package/dist/development/src/utils/deepCompare.cjs +0 -134
  138. package/dist/development/src/utils/deepCompare.cjs.map +0 -1
  139. package/dist/development/src/utils/deepCompare.js +0 -134
  140. package/dist/development/src/utils/deepCompare.js.map +0 -1
  141. package/dist/development/src/utils/isIt.cjs +0 -7
  142. package/dist/development/src/utils/isIt.cjs.map +0 -1
  143. package/dist/development/src/utils/isIt.js +0 -7
  144. package/dist/development/src/utils/isIt.js.map +0 -1
  145. package/dist/development/src/utils/printJsValue.cjs +0 -42
  146. package/dist/development/src/utils/printJsValue.cjs.map +0 -1
  147. package/dist/development/src/utils/printJsValue.js +0 -42
  148. package/dist/development/src/utils/printJsValue.js.map +0 -1
  149. package/dist/development/src/validation/AclValidator.cjs +0 -168
  150. package/dist/development/src/validation/AclValidator.cjs.map +0 -1
  151. package/dist/development/src/validation/AclValidator.js +0 -168
  152. package/dist/development/src/validation/AclValidator.js.map +0 -1
  153. package/dist/development/src/validation/ActionsValidator.cjs +0 -127
  154. package/dist/development/src/validation/ActionsValidator.cjs.map +0 -1
  155. package/dist/development/src/validation/ActionsValidator.js +0 -110
  156. package/dist/development/src/validation/ActionsValidator.js.map +0 -1
  157. package/dist/development/src/validation/MembershipResolver.cjs +0 -126
  158. package/dist/development/src/validation/MembershipResolver.cjs.map +0 -1
  159. package/dist/development/src/validation/MembershipResolver.js +0 -126
  160. package/dist/development/src/validation/MembershipResolver.js.map +0 -1
  161. package/dist/development/src/validation/ModelValidator.cjs +0 -310
  162. package/dist/development/src/validation/ModelValidator.cjs.map +0 -1
  163. package/dist/development/src/validation/ModelValidator.js +0 -310
  164. package/dist/development/src/validation/ModelValidator.js.map +0 -1
  165. package/dist/development/src/validation/SchemaValidator.cjs +0 -29
  166. package/dist/development/src/validation/SchemaValidator.cjs.map +0 -1
  167. package/dist/development/src/validation/SchemaValidator.js +0 -29
  168. package/dist/development/src/validation/SchemaValidator.js.map +0 -1
  169. package/dist/development/src/validation/ValidationValidator.cjs +0 -121
  170. package/dist/development/src/validation/ValidationValidator.cjs.map +0 -1
  171. package/dist/development/src/validation/ValidationValidator.js +0 -121
  172. package/dist/development/src/validation/ValidationValidator.js.map +0 -1
  173. package/dist/development/src/validation/errors.cjs +0 -16
  174. package/dist/development/src/validation/errors.cjs.map +0 -1
  175. package/dist/development/src/validation/errors.js +0 -16
  176. package/dist/development/src/validation/errors.js.map +0 -1
  177. package/dist/production/index.cjs +0 -110
  178. package/dist/production/index.cjs.map +0 -1
  179. package/dist/production/index.js +0 -94
  180. package/dist/production/index.js.map +0 -1
  181. package/dist/production/src/acl/AllowAllPermissionFactory.cjs +0 -42
  182. package/dist/production/src/acl/AllowAllPermissionFactory.cjs.map +0 -1
  183. package/dist/production/src/acl/AllowAllPermissionFactory.js +0 -42
  184. package/dist/production/src/acl/AllowAllPermissionFactory.js.map +0 -1
  185. package/dist/production/src/acl/PredicateDefinitionProcessor.cjs +0 -71
  186. package/dist/production/src/acl/PredicateDefinitionProcessor.cjs.map +0 -1
  187. package/dist/production/src/acl/PredicateDefinitionProcessor.js +0 -71
  188. package/dist/production/src/acl/PredicateDefinitionProcessor.js.map +0 -1
  189. package/dist/production/src/acl/schemaUtils.cjs +0 -11
  190. package/dist/production/src/acl/schemaUtils.cjs.map +0 -1
  191. package/dist/production/src/acl/schemaUtils.js +0 -11
  192. package/dist/production/src/acl/schemaUtils.js.map +0 -1
  193. package/dist/production/src/dataUtils.cjs +0 -59
  194. package/dist/production/src/dataUtils.cjs.map +0 -1
  195. package/dist/production/src/dataUtils.js +0 -59
  196. package/dist/production/src/dataUtils.js.map +0 -1
  197. package/dist/production/src/definition-generator/AclDefinitionCodeGenerator.cjs +0 -117
  198. package/dist/production/src/definition-generator/AclDefinitionCodeGenerator.cjs.map +0 -1
  199. package/dist/production/src/definition-generator/AclDefinitionCodeGenerator.js +0 -117
  200. package/dist/production/src/definition-generator/AclDefinitionCodeGenerator.js.map +0 -1
  201. package/dist/production/src/definition-generator/DefinitionCodeGenerator.cjs +0 -218
  202. package/dist/production/src/definition-generator/DefinitionCodeGenerator.cjs.map +0 -1
  203. package/dist/production/src/definition-generator/DefinitionCodeGenerator.js +0 -218
  204. package/dist/production/src/definition-generator/DefinitionCodeGenerator.js.map +0 -1
  205. package/dist/production/src/definition-generator/DefinitionNamingConventions.cjs +0 -19
  206. package/dist/production/src/definition-generator/DefinitionNamingConventions.cjs.map +0 -1
  207. package/dist/production/src/definition-generator/DefinitionNamingConventions.js +0 -19
  208. package/dist/production/src/definition-generator/DefinitionNamingConventions.js.map +0 -1
  209. package/dist/production/src/definition-generator/TsDefinitionGenerator.cjs +0 -17
  210. package/dist/production/src/definition-generator/TsDefinitionGenerator.cjs.map +0 -1
  211. package/dist/production/src/definition-generator/TsDefinitionGenerator.js +0 -17
  212. package/dist/production/src/definition-generator/TsDefinitionGenerator.js.map +0 -1
  213. package/dist/production/src/lax/LaxSchemaConverter.cjs +0 -202
  214. package/dist/production/src/lax/LaxSchemaConverter.cjs.map +0 -1
  215. package/dist/production/src/lax/LaxSchemaConverter.js +0 -202
  216. package/dist/production/src/lax/LaxSchemaConverter.js.map +0 -1
  217. package/dist/production/src/lax/schema.cjs +0 -70
  218. package/dist/production/src/lax/schema.cjs.map +0 -1
  219. package/dist/production/src/lax/schema.js +0 -53
  220. package/dist/production/src/lax/schema.js.map +0 -1
  221. package/dist/production/src/model/NamingConventions.cjs +0 -28
  222. package/dist/production/src/model/NamingConventions.cjs.map +0 -1
  223. package/dist/production/src/model/NamingConventions.js +0 -28
  224. package/dist/production/src/model/NamingConventions.js.map +0 -1
  225. package/dist/production/src/model/modelUtils.cjs +0 -231
  226. package/dist/production/src/model/modelUtils.cjs.map +0 -1
  227. package/dist/production/src/model/modelUtils.js +0 -231
  228. package/dist/production/src/model/modelUtils.js.map +0 -1
  229. package/dist/production/src/model/resolveDefaultColumnType.cjs +0 -30
  230. package/dist/production/src/model/resolveDefaultColumnType.cjs.map +0 -1
  231. package/dist/production/src/model/resolveDefaultColumnType.js +0 -30
  232. package/dist/production/src/model/resolveDefaultColumnType.js.map +0 -1
  233. package/dist/production/src/schemaChecksum.cjs +0 -9
  234. package/dist/production/src/schemaChecksum.cjs.map +0 -1
  235. package/dist/production/src/schemaChecksum.js +0 -9
  236. package/dist/production/src/schemaChecksum.js.map +0 -1
  237. package/dist/production/src/schemaFilter.cjs +0 -24
  238. package/dist/production/src/schemaFilter.cjs.map +0 -1
  239. package/dist/production/src/schemaFilter.js +0 -24
  240. package/dist/production/src/schemaFilter.js.map +0 -1
  241. package/dist/production/src/schemaNormalizer.cjs +0 -72
  242. package/dist/production/src/schemaNormalizer.cjs.map +0 -1
  243. package/dist/production/src/schemaNormalizer.js +0 -72
  244. package/dist/production/src/schemaNormalizer.js.map +0 -1
  245. package/dist/production/src/type-schema/acl.cjs +0 -146
  246. package/dist/production/src/type-schema/acl.cjs.map +0 -1
  247. package/dist/production/src/type-schema/acl.js +0 -129
  248. package/dist/production/src/type-schema/acl.js.map +0 -1
  249. package/dist/production/src/type-schema/actions.cjs +0 -87
  250. package/dist/production/src/type-schema/actions.cjs.map +0 -1
  251. package/dist/production/src/type-schema/actions.js +0 -70
  252. package/dist/production/src/type-schema/actions.js.map +0 -1
  253. package/dist/production/src/type-schema/condition.cjs +0 -89
  254. package/dist/production/src/type-schema/condition.cjs.map +0 -1
  255. package/dist/production/src/type-schema/condition.js +0 -72
  256. package/dist/production/src/type-schema/condition.js.map +0 -1
  257. package/dist/production/src/type-schema/model.cjs +0 -217
  258. package/dist/production/src/type-schema/model.cjs.map +0 -1
  259. package/dist/production/src/type-schema/model.js +0 -201
  260. package/dist/production/src/type-schema/model.js.map +0 -1
  261. package/dist/production/src/type-schema/settings.cjs +0 -34
  262. package/dist/production/src/type-schema/settings.cjs.map +0 -1
  263. package/dist/production/src/type-schema/settings.js +0 -17
  264. package/dist/production/src/type-schema/settings.js.map +0 -1
  265. package/dist/production/src/type-schema/validation.cjs +0 -115
  266. package/dist/production/src/type-schema/validation.cjs.map +0 -1
  267. package/dist/production/src/type-schema/validation.js +0 -98
  268. package/dist/production/src/type-schema/validation.js.map +0 -1
  269. package/dist/production/src/type-schema/where.cjs +0 -44
  270. package/dist/production/src/type-schema/where.cjs.map +0 -1
  271. package/dist/production/src/type-schema/where.js +0 -27
  272. package/dist/production/src/type-schema/where.js.map +0 -1
  273. package/dist/production/src/utils/assertNever.cjs +0 -7
  274. package/dist/production/src/utils/assertNever.cjs.map +0 -1
  275. package/dist/production/src/utils/assertNever.js +0 -7
  276. package/dist/production/src/utils/assertNever.js.map +0 -1
  277. package/dist/production/src/utils/deepCompare.cjs +0 -134
  278. package/dist/production/src/utils/deepCompare.cjs.map +0 -1
  279. package/dist/production/src/utils/deepCompare.js +0 -134
  280. package/dist/production/src/utils/deepCompare.js.map +0 -1
  281. package/dist/production/src/utils/isIt.cjs +0 -7
  282. package/dist/production/src/utils/isIt.cjs.map +0 -1
  283. package/dist/production/src/utils/isIt.js +0 -7
  284. package/dist/production/src/utils/isIt.js.map +0 -1
  285. package/dist/production/src/utils/printJsValue.cjs +0 -42
  286. package/dist/production/src/utils/printJsValue.cjs.map +0 -1
  287. package/dist/production/src/utils/printJsValue.js +0 -42
  288. package/dist/production/src/utils/printJsValue.js.map +0 -1
  289. package/dist/production/src/validation/AclValidator.cjs +0 -168
  290. package/dist/production/src/validation/AclValidator.cjs.map +0 -1
  291. package/dist/production/src/validation/AclValidator.js +0 -168
  292. package/dist/production/src/validation/AclValidator.js.map +0 -1
  293. package/dist/production/src/validation/ActionsValidator.cjs +0 -127
  294. package/dist/production/src/validation/ActionsValidator.cjs.map +0 -1
  295. package/dist/production/src/validation/ActionsValidator.js +0 -110
  296. package/dist/production/src/validation/ActionsValidator.js.map +0 -1
  297. package/dist/production/src/validation/MembershipResolver.cjs +0 -126
  298. package/dist/production/src/validation/MembershipResolver.cjs.map +0 -1
  299. package/dist/production/src/validation/MembershipResolver.js +0 -126
  300. package/dist/production/src/validation/MembershipResolver.js.map +0 -1
  301. package/dist/production/src/validation/ModelValidator.cjs +0 -310
  302. package/dist/production/src/validation/ModelValidator.cjs.map +0 -1
  303. package/dist/production/src/validation/ModelValidator.js +0 -310
  304. package/dist/production/src/validation/ModelValidator.js.map +0 -1
  305. package/dist/production/src/validation/SchemaValidator.cjs +0 -29
  306. package/dist/production/src/validation/SchemaValidator.cjs.map +0 -1
  307. package/dist/production/src/validation/SchemaValidator.js +0 -29
  308. package/dist/production/src/validation/SchemaValidator.js.map +0 -1
  309. package/dist/production/src/validation/ValidationValidator.cjs +0 -121
  310. package/dist/production/src/validation/ValidationValidator.cjs.map +0 -1
  311. package/dist/production/src/validation/ValidationValidator.js +0 -121
  312. package/dist/production/src/validation/ValidationValidator.js.map +0 -1
  313. package/dist/production/src/validation/errors.cjs +0 -16
  314. package/dist/production/src/validation/errors.cjs.map +0 -1
  315. package/dist/production/src/validation/errors.js +0 -16
  316. package/dist/production/src/validation/errors.js.map +0 -1
  317. package/dist/tests/cases/unit/conditionSchema.test.d.ts +0 -2
  318. package/dist/tests/cases/unit/conditionSchema.test.d.ts.map +0 -1
  319. package/dist/tests/cases/unit/deepCompare.test.d.ts +0 -2
  320. package/dist/tests/cases/unit/deepCompare.test.d.ts.map +0 -1
  321. package/dist/tests/cases/unit/laxSchemaConverter.test.d.ts +0 -2
  322. package/dist/tests/cases/unit/laxSchemaConverter.test.d.ts.map +0 -1
  323. package/dist/tests/cases/unit/membershipResolver.test.d.ts +0 -2
  324. package/dist/tests/cases/unit/membershipResolver.test.d.ts.map +0 -1
  325. package/dist/tests/cases/unit/modelSchema.test.d.ts +0 -2
  326. package/dist/tests/cases/unit/modelSchema.test.d.ts.map +0 -1
  327. package/dist/tests/cases/unit/modelValidator.test.d.ts +0 -2
  328. package/dist/tests/cases/unit/modelValidator.test.d.ts.map +0 -1
  329. package/dist/tests/cases/unit/printJsvalue.test.d.ts +0 -2
  330. package/dist/tests/cases/unit/printJsvalue.test.d.ts.map +0 -1
  331. package/dist/tests/cases/unit/schemas/acl.d.ts +0 -12
  332. package/dist/tests/cases/unit/schemas/acl.d.ts.map +0 -1
  333. package/dist/tests/cases/unit/schemas/basic.d.ts +0 -4
  334. package/dist/tests/cases/unit/schemas/basic.d.ts.map +0 -1
  335. package/dist/tests/cases/unit/schemas/complex.d.ts +0 -12
  336. package/dist/tests/cases/unit/schemas/complex.d.ts.map +0 -1
  337. package/dist/tests/cases/unit/schemas/enum.d.ts +0 -6
  338. package/dist/tests/cases/unit/schemas/enum.d.ts.map +0 -1
  339. package/dist/tests/cases/unit/schemas/relations.d.ts +0 -14
  340. package/dist/tests/cases/unit/schemas/relations.d.ts.map +0 -1
  341. package/dist/tests/cases/unit/schemas/unique.d.ts +0 -4
  342. package/dist/tests/cases/unit/schemas/unique.d.ts.map +0 -1
  343. package/dist/tests/cases/unit/schemas/view.d.ts +0 -4
  344. package/dist/tests/cases/unit/schemas/view.d.ts.map +0 -1
  345. package/dist/tests/cases/unit/tsDefinitionGenerator.test.d.ts +0 -2
  346. package/dist/tests/cases/unit/tsDefinitionGenerator.test.d.ts.map +0 -1
  347. package/dist/tests/cases/unit/whereSchema.test.d.ts +0 -2
  348. package/dist/tests/cases/unit/whereSchema.test.d.ts.map +0 -1
  349. package/dist/tests/tsconfig.tsbuildinfo +0 -1
  350. package/dist/types/acl/AllowAllPermissionFactory.d.ts +0 -7
  351. package/dist/types/acl/AllowAllPermissionFactory.d.ts.map +0 -1
  352. package/dist/types/acl/PredicateDefinitionProcessor.d.ts +0 -32
  353. package/dist/types/acl/PredicateDefinitionProcessor.d.ts.map +0 -1
  354. package/dist/types/acl/index.d.ts +0 -4
  355. package/dist/types/acl/index.d.ts.map +0 -1
  356. package/dist/types/acl/schemaUtils.d.ts +0 -3
  357. package/dist/types/acl/schemaUtils.d.ts.map +0 -1
  358. package/dist/types/dataUtils.d.ts +0 -18
  359. package/dist/types/dataUtils.d.ts.map +0 -1
  360. package/dist/types/definition-generator/AclDefinitionCodeGenerator.d.ts +0 -19
  361. package/dist/types/definition-generator/AclDefinitionCodeGenerator.d.ts.map +0 -1
  362. package/dist/types/definition-generator/DefinitionCodeGenerator.d.ts +0 -27
  363. package/dist/types/definition-generator/DefinitionCodeGenerator.d.ts.map +0 -1
  364. package/dist/types/definition-generator/DefinitionNamingConventions.d.ts +0 -7
  365. package/dist/types/definition-generator/DefinitionNamingConventions.d.ts.map +0 -1
  366. package/dist/types/definition-generator/TsDefinitionGenerator.d.ts +0 -12
  367. package/dist/types/definition-generator/TsDefinitionGenerator.d.ts.map +0 -1
  368. package/dist/types/definition-generator/index.d.ts +0 -5
  369. package/dist/types/definition-generator/index.d.ts.map +0 -1
  370. package/dist/types/index.d.ts +0 -15
  371. package/dist/types/index.d.ts.map +0 -1
  372. package/dist/types/lax/LaxSchemaConverter.d.ts +0 -10
  373. package/dist/types/lax/LaxSchemaConverter.d.ts.map +0 -1
  374. package/dist/types/lax/index.d.ts +0 -3
  375. package/dist/types/lax/index.d.ts.map +0 -1
  376. package/dist/types/lax/schema.d.ts +0 -285
  377. package/dist/types/lax/schema.d.ts.map +0 -1
  378. package/dist/types/model/NamingConventions.d.ts +0 -17
  379. package/dist/types/model/NamingConventions.d.ts.map +0 -1
  380. package/dist/types/model/index.d.ts +0 -4
  381. package/dist/types/model/index.d.ts.map +0 -1
  382. package/dist/types/model/modelUtils.d.ts +0 -28
  383. package/dist/types/model/modelUtils.d.ts.map +0 -1
  384. package/dist/types/model/resolveDefaultColumnType.d.ts +0 -3
  385. package/dist/types/model/resolveDefaultColumnType.d.ts.map +0 -1
  386. package/dist/types/schemaChecksum.d.ts +0 -3
  387. package/dist/types/schemaChecksum.d.ts.map +0 -1
  388. package/dist/types/schemaFilter.d.ts +0 -3
  389. package/dist/types/schemaFilter.d.ts.map +0 -1
  390. package/dist/types/schemaNormalizer.d.ts +0 -3
  391. package/dist/types/schemaNormalizer.d.ts.map +0 -1
  392. package/dist/types/tsconfig.tsbuildinfo +0 -1
  393. package/dist/types/type-schema/acl.d.ts +0 -10
  394. package/dist/types/type-schema/acl.d.ts.map +0 -1
  395. package/dist/types/type-schema/actions.d.ts +0 -31
  396. package/dist/types/type-schema/actions.d.ts.map +0 -1
  397. package/dist/types/type-schema/condition.d.ts +0 -4
  398. package/dist/types/type-schema/condition.d.ts.map +0 -1
  399. package/dist/types/type-schema/index.d.ts +0 -6
  400. package/dist/types/type-schema/index.d.ts.map +0 -1
  401. package/dist/types/type-schema/model.d.ts +0 -30
  402. package/dist/types/type-schema/model.d.ts.map +0 -1
  403. package/dist/types/type-schema/settings.d.ts +0 -41
  404. package/dist/types/type-schema/settings.d.ts.map +0 -1
  405. package/dist/types/type-schema/validation.d.ts +0 -15
  406. package/dist/types/type-schema/validation.d.ts.map +0 -1
  407. package/dist/types/type-schema/where.d.ts +0 -7
  408. package/dist/types/type-schema/where.d.ts.map +0 -1
  409. package/dist/types/utils/assertNever.d.ts +0 -2
  410. package/dist/types/utils/assertNever.d.ts.map +0 -1
  411. package/dist/types/utils/deepCompare.d.ts +0 -13
  412. package/dist/types/utils/deepCompare.d.ts.map +0 -1
  413. package/dist/types/utils/index.d.ts +0 -4
  414. package/dist/types/utils/index.d.ts.map +0 -1
  415. package/dist/types/utils/isIt.d.ts +0 -2
  416. package/dist/types/utils/isIt.d.ts.map +0 -1
  417. package/dist/types/utils/printJsValue.d.ts +0 -13
  418. package/dist/types/utils/printJsValue.d.ts.map +0 -1
  419. package/dist/types/validation/AclValidator.d.ts +0 -20
  420. package/dist/types/validation/AclValidator.d.ts.map +0 -1
  421. package/dist/types/validation/ActionsValidator.d.ts +0 -13
  422. package/dist/types/validation/ActionsValidator.d.ts.map +0 -1
  423. package/dist/types/validation/MembershipResolver.d.ts +0 -37
  424. package/dist/types/validation/MembershipResolver.d.ts.map +0 -1
  425. package/dist/types/validation/ModelValidator.d.ts +0 -20
  426. package/dist/types/validation/ModelValidator.d.ts.map +0 -1
  427. package/dist/types/validation/SchemaValidator.d.ts +0 -11
  428. package/dist/types/validation/SchemaValidator.d.ts.map +0 -1
  429. package/dist/types/validation/ValidationValidator.d.ts +0 -14
  430. package/dist/types/validation/ValidationValidator.d.ts.map +0 -1
  431. package/dist/types/validation/errors.d.ts +0 -14
  432. package/dist/types/validation/errors.d.ts.map +0 -1
  433. package/dist/types/validation/index.d.ts +0 -7
  434. package/dist/types/validation/index.d.ts.map +0 -1
  435. package/tests/cases/unit/schemas/.eslintignore +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contember/schema-utils",
3
- "version": "2.1.0-alpha.3",
3
+ "version": "2.1.0-alpha.35",
4
4
  "license": "Apache-2.0",
5
5
  "main": "./dist/production/index.js",
6
6
  "typings": "./dist/types/index.d.ts",
@@ -23,12 +23,17 @@
23
23
  }
24
24
  },
25
25
  "dependencies": {
26
- "@contember/schema": "2.1.0-alpha.3",
27
- "@contember/typesafe": "2.1.0-alpha.3"
26
+ "@contember/schema": "workspace:*",
27
+ "@contember/typesafe": "workspace:*"
28
28
  },
29
29
  "devDependencies": {
30
- "@contember/schema-definition": "2.1.0-alpha.3",
31
- "@types/node": "^20.17.22"
30
+ "@contember/schema-definition": "workspace:*",
31
+ "@types/node": "catalog:"
32
32
  },
33
- "type": "module"
33
+ "type": "module",
34
+ "repository": {
35
+ "type": "git",
36
+ "url": "git+https://github.com/contember/contember.git",
37
+ "directory": "packages/schema-utils"
38
+ }
34
39
  }
@@ -33,7 +33,7 @@ export class AllowAllPermissionFactory {
33
33
  ...(this.operations.includes(Acl.Operation.delete)
34
34
  ? {
35
35
  delete: true,
36
- }
36
+ }
37
37
  : {}),
38
38
  ...(allowCustomPrimary ? { customPrimary: true } : {}),
39
39
  },
@@ -28,9 +28,7 @@ class PredicateDefinitionProcessor {
28
28
  key,
29
29
  ])
30
30
  } else if (key === 'and' || key === 'or') {
31
- result[key] = (value as Acl.PredicateDefinition[]).map(it =>
32
- this.processInternal(entity, it, handler, [...path, key]),
33
- )
31
+ result[key] = (value as Acl.PredicateDefinition[]).map(it => this.processInternal(entity, it, handler, [...path, key]))
34
32
  } else if (!entity.fields[key] && handler.handleUndefinedField) {
35
33
  const undefinedResult = handler.handleUndefinedField({ entity, name: key, value, path })
36
34
  if (undefinedResult !== undefined) {
@@ -57,10 +55,10 @@ class PredicateDefinitionProcessor {
57
55
  path,
58
56
  })
59
57
  if (
60
- typeof processedValue === 'object' &&
61
- processedValue !== null &&
62
- 'constructor' in processedValue &&
63
- processedValue.constructor.name === 'Object'
58
+ typeof processedValue === 'object'
59
+ && processedValue !== null
60
+ && 'constructor' in processedValue
61
+ && processedValue.constructor.name === 'Object'
64
62
  ) {
65
63
  return this.processInternal(
66
64
  targetEntity,
package/src/dataUtils.ts CHANGED
@@ -36,7 +36,7 @@ export const resolveDefaultValue = (column: Model.AnyColumn, providers: Pick<Pro
36
36
  case Model.ColumnType.Uuid:
37
37
  break
38
38
  default:
39
- ((x: never) => {})(type)
39
+ ;((x: never) => {})(type)
40
40
  }
41
41
 
42
42
  if (column.nullable) {
@@ -3,21 +3,21 @@ import { IndentDecider, Literal, printJsValue } from '../utils/printJsValue'
3
3
  import { Acl, Model, Schema } from '@contember/schema'
4
4
  import { DefinitionNamingConventions } from './DefinitionNamingConventions'
5
5
 
6
-
7
6
  const indentFirstLevel: IndentDecider = (val, path) => path.length === 0
8
7
 
9
8
  export class AclDefinitionCodeGenerator {
10
-
11
9
  constructor(
12
10
  private readonly definitionNamingConventions = new DefinitionNamingConventions(),
13
11
  ) {
14
12
  }
15
13
 
16
14
  public generateRoles({ acl }: { acl: Acl.Schema }): string {
17
- return Object.entries(acl.roles).map(([name, values]) => this.generateRole({
18
- name,
19
- values,
20
- })).join('')
15
+ return Object.entries(acl.roles).map(([name, values]) =>
16
+ this.generateRole({
17
+ name,
18
+ values,
19
+ })
20
+ ).join('')
21
21
  }
22
22
 
23
23
  private generateRole({ name, values }: { name: string; values: Acl.RolePermissions }): string {
@@ -52,7 +52,7 @@ export class AclDefinitionCodeGenerator {
52
52
  return variablesOutput.join('')
53
53
  }
54
54
 
55
- public generateEntityAcl({ entity, schema }: { entity: Model.Entity; schema: Schema }): string {
55
+ public generateEntityAcl({ entity, schema }: { entity: Model.Entity; schema: Schema }): string {
56
56
  const aclOutput: string[] = []
57
57
  const numberOfEntityFieldsWithoutId = Object.keys(entity.fields).length - 1
58
58
  for (const [roleName, roleDefinition] of Object.entries(schema.acl.roles)) {
@@ -110,7 +110,6 @@ export class AclDefinitionCodeGenerator {
110
110
  for (const op of ['read', 'create', 'update'] as const) {
111
111
  const fields = Object.entries(operations[op] ?? {}).filter(([, it]) => it === predicate).map(([it]) => it)
112
112
  if (fields.length === 0) {
113
- continue
114
113
  } else if (fields.length === numberOfEntityFieldsWithoutId) {
115
114
  result[op] = true
116
115
  } else {
@@ -1,16 +1,9 @@
1
1
  import { Model, Schema, Writable } from '@contember/schema'
2
- import {
3
- acceptFieldVisitor,
4
- DefaultNamingConventions,
5
- isInverseRelation,
6
- NamingConventions,
7
- resolveDefaultColumnType,
8
- } from '../model'
2
+ import { acceptFieldVisitor, DefaultNamingConventions, isInverseRelation, NamingConventions, resolveDefaultColumnType } from '../model'
9
3
  import { printJsValue } from '../utils/printJsValue'
10
4
  import { DefinitionNamingConventions } from './DefinitionNamingConventions'
11
5
  import { AclDefinitionCodeGenerator } from './AclDefinitionCodeGenerator'
12
6
 
13
-
14
7
  export class DefinitionCodeGenerator {
15
8
  constructor(
16
9
  private readonly schemaNamingConventions: NamingConventions = new DefaultNamingConventions(),
@@ -57,7 +50,6 @@ ${Object.values(entity.fields).map(field => this.generateField({ field, entity,
57
50
  return `@c.Index(${fieldsList})`
58
51
  }
59
52
 
60
-
61
53
  private generateView({ entity }: { entity: Model.Entity }): string | undefined {
62
54
  if (!entity.view) {
63
55
  return undefined
@@ -85,7 +77,6 @@ ${Object.values(entity.fields).map(field => this.generateField({ field, entity,
85
77
  throw new Error(`Value ${providedValue} is not defined in enum ${enumName}`)
86
78
  }
87
79
  return `${enumName}.${enumValueKey}`
88
-
89
80
  }
90
81
  const formatOrderBy = (orderBy?: readonly Model.OrderBy[]) => {
91
82
  return orderBy?.map(it => {
@@ -157,13 +148,18 @@ ${Object.values(entity.fields).map(field => this.generateField({ field, entity,
157
148
  if (!relation.joiningTable.eventLog.enabled) {
158
149
  joiningTable.eventLog = { enabled: false }
159
150
  }
160
- if (columnNames[0] !== relation.joiningTable.joiningColumn.columnName || relation.joiningTable.joiningColumn.onDelete !== Model.OnDelete.cascade) {
151
+ if (
152
+ columnNames[0] !== relation.joiningTable.joiningColumn.columnName || relation.joiningTable.joiningColumn.onDelete !== Model.OnDelete.cascade
153
+ ) {
161
154
  joiningTable.joiningColumn = {
162
155
  columnName: relation.joiningTable.joiningColumn.columnName,
163
156
  onDelete: relation.joiningTable.joiningColumn.onDelete,
164
157
  }
165
158
  }
166
- if (columnNames[1] !== relation.joiningTable.inverseJoiningColumn.columnName || relation.joiningTable.inverseJoiningColumn.onDelete !== Model.OnDelete.cascade) {
159
+ if (
160
+ columnNames[1] !== relation.joiningTable.inverseJoiningColumn.columnName
161
+ || relation.joiningTable.inverseJoiningColumn.onDelete !== Model.OnDelete.cascade
162
+ ) {
167
163
  joiningTable.inverseJoiningColumn = {
168
164
  columnName: relation.joiningTable.inverseJoiningColumn.columnName,
169
165
  onDelete: relation.joiningTable.inverseJoiningColumn.onDelete,
@@ -215,7 +211,6 @@ ${Object.values(entity.fields).map(field => this.generateField({ field, entity,
215
211
  parts.push(`typeAlias(${printJsValue(column.typeAlias)})`)
216
212
  }
217
213
 
218
-
219
214
  // todo: sequence
220
215
  // todo: maybe single column unique()
221
216
 
@@ -227,7 +222,6 @@ ${Object.values(entity.fields).map(field => this.generateField({ field, entity,
227
222
  }
228
223
  }
229
224
 
230
-
231
225
  const ColumnToMethodMapping: {
232
226
  [K in Exclude<Model.ColumnType, Model.ColumnType.Enum>]: string
233
227
  } = {
@@ -1,5 +1,54 @@
1
1
  export class DefinitionNamingConventions {
2
- private static reservedWords = new Set(['do', 'if', 'in', 'for', 'let', 'new', 'try', 'var', 'case', 'else', 'enum', 'eval', 'null', 'this', 'true', 'void', 'with', 'await', 'break', 'catch', 'class', 'const', 'false', 'super', 'throw', 'while', 'yield', 'delete', 'export', 'import', 'public', 'return', 'static', 'switch', 'typeof', 'default', 'extends', 'finally', 'package', 'private', 'continue', 'debugger', 'function', 'arguments', 'interface', 'protected', 'implements', 'instanceof'])
2
+ private static reservedWords = new Set([
3
+ 'do',
4
+ 'if',
5
+ 'in',
6
+ 'for',
7
+ 'let',
8
+ 'new',
9
+ 'try',
10
+ 'var',
11
+ 'case',
12
+ 'else',
13
+ 'enum',
14
+ 'eval',
15
+ 'null',
16
+ 'this',
17
+ 'true',
18
+ 'void',
19
+ 'with',
20
+ 'await',
21
+ 'break',
22
+ 'catch',
23
+ 'class',
24
+ 'const',
25
+ 'false',
26
+ 'super',
27
+ 'throw',
28
+ 'while',
29
+ 'yield',
30
+ 'delete',
31
+ 'export',
32
+ 'import',
33
+ 'public',
34
+ 'return',
35
+ 'static',
36
+ 'switch',
37
+ 'typeof',
38
+ 'default',
39
+ 'extends',
40
+ 'finally',
41
+ 'package',
42
+ 'private',
43
+ 'continue',
44
+ 'debugger',
45
+ 'function',
46
+ 'arguments',
47
+ 'interface',
48
+ 'protected',
49
+ 'implements',
50
+ 'instanceof',
51
+ ])
3
52
 
4
53
  public formatIdentifier(id: string): string {
5
54
  // todo: validate
package/src/index.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Schema } from '@contember/schema'
2
2
  import { emptyModelSchema } from './model'
3
3
  import * as Typesafe from '@contember/typesafe'
4
- import { aclSchema, modelSchema, validationSchema, settingsSchema } from './type-schema'
4
+ import { aclSchema, modelSchema, settingsSchema, validationSchema } from './type-schema'
5
5
  import { actionsSchema } from './type-schema/actions'
6
6
 
7
7
  export * from './definition-generator'
@@ -13,7 +13,7 @@ export * from './validation'
13
13
  export * from './schemaNormalizer'
14
14
  export * from './schemaFilter'
15
15
  export * from './schemaChecksum'
16
- export { deepCompare, compareArraysIgnoreOrder } from './utils'
16
+ export { compareArraysIgnoreOrder, deepCompare } from './utils'
17
17
 
18
18
  export const emptySchema: Schema = {
19
19
  model: emptyModelSchema,
@@ -26,7 +26,6 @@ export class LaxSchemaConverter {
26
26
  const builder = new LaxSchemaBuilder(this.schema, this.conventions)
27
27
  return builder.build()
28
28
  }
29
-
30
29
  }
31
30
 
32
31
  class LaxSchemaBuilder {
@@ -44,10 +43,8 @@ class LaxSchemaBuilder {
44
43
  for (const [fieldName, fieldDefinition] of Object.entries(entityDefinition.fields)) {
45
44
  if (isColumnDefinition(fieldDefinition)) {
46
45
  this.processColumn(entityName, fieldName, fieldDefinition)
47
-
48
46
  } else if (fieldDefinition.type === 'enum') {
49
47
  this.processEnum(entityName, fieldName, fieldDefinition)
50
-
51
48
  } else {
52
49
  this.processRelation(entityName, fieldName, fieldDefinition)
53
50
  }
@@ -188,7 +185,6 @@ class LaxSchemaBuilder {
188
185
  ;(entity.fields as Writable<Model.Entity['fields']>)[field.name] = field
189
186
  }
190
187
 
191
-
192
188
  private getEntity(entityName: string): Model.Entity {
193
189
  return this.entities[entityName] ??= {
194
190
  name: entityName,
package/src/lax/schema.ts CHANGED
@@ -46,7 +46,10 @@ const LaxSchemaField = Typesafe.discriminatedUnion('type', {
46
46
  export type LaxSchemaField = ReturnType<typeof LaxSchemaField>
47
47
  export type LaxSchemaEnum = Extract<LaxSchemaField, { type: 'enum' }>
48
48
  export type LaxSchemaColumn = Extract<LaxSchemaField, { type: 'int' | 'float' | 'boolean' | 'string' | 'json' | 'datetime' | 'date' | 'uuid' }>
49
- export type LaxSchemaRelation = Extract<LaxSchemaField, {type: 'oneHasOne' | 'oneHasOneInverse' | 'manyHasMany' | 'manyHasManyInverse' | 'oneHasMany' | 'manyHasOne' }>
49
+ export type LaxSchemaRelation = Extract<
50
+ LaxSchemaField,
51
+ { type: 'oneHasOne' | 'oneHasOneInverse' | 'manyHasMany' | 'manyHasManyInverse' | 'oneHasMany' | 'manyHasOne' }
52
+ >
50
53
 
51
54
  const LaxSchemaEntity = Typesafe.object({
52
55
  fields: Typesafe.record(Typesafe.string, LaxSchemaField),
@@ -14,8 +14,7 @@ export class ModelError extends Error {
14
14
  }
15
15
  }
16
16
 
17
- const createEntityNotFoundError = (entityName: string) =>
18
- new ModelError(ModelErrorCode.ENTITY_NOT_FOUND, `Entity ${entityName} not found`)
17
+ const createEntityNotFoundError = (entityName: string) => new ModelError(ModelErrorCode.ENTITY_NOT_FOUND, `Entity ${entityName} not found`)
19
18
 
20
19
  const createFieldNotFoundError = (entityName: string, fieldName: string) =>
21
20
  new ModelError(ModelErrorCode.FIELD_NOT_FOUND, `Field ${fieldName} of entity ${entityName} not found`)
@@ -184,8 +183,7 @@ export const acceptRelationTypeVisitor = <T>(
184
183
  relation: relationObj,
185
184
  targetEntity: targetEntity,
186
185
  targetRelation: targetRelation as Model.ManyHasManyOwningRelation,
187
- },
188
- )
186
+ })
189
187
  case Model.RelationType.OneHasOne:
190
188
  return visitor.visitOneHasOneInverse({
191
189
  type: 'oneHasOneInverse',
@@ -1,7 +1,6 @@
1
1
  import { Schema } from '@contember/schema'
2
2
  import crypto from 'node:crypto'
3
3
 
4
-
5
4
  export const calculateSchemaChecksum = (schema: Schema): string => {
6
5
  const jsonSchema = JSON.stringify(schema)
7
6
 
@@ -15,7 +15,7 @@ export const filterSchemaByStage = <S extends Schema>(schema: S, stageSlug: stri
15
15
  ...(definition.inherits
16
16
  ? {
17
17
  inherits: definition.inherits.filter(it => roles.map(([role]) => role).includes(it)),
18
- }
18
+ }
19
19
  : {}),
20
20
  },
21
21
  ])
@@ -2,19 +2,22 @@ import { Acl, Model } from '@contember/schema'
2
2
  import * as Typesafe from '@contember/typesafe'
3
3
  import { conditionSchema } from './condition'
4
4
 
5
- const membershipMatchRuleSchema = Typesafe.record(
6
- Typesafe.string,
7
- Typesafe.union(
8
- Typesafe.literal(true),
9
- Typesafe.partial({
10
- variables: Typesafe.union(
11
- Typesafe.literal(true),
12
- Typesafe.record(
13
- Typesafe.string,
14
- Typesafe.union(Typesafe.literal(true), Typesafe.string),
5
+ const membershipMatchRuleSchema = Typesafe.union(
6
+ Typesafe.boolean,
7
+ Typesafe.record(
8
+ Typesafe.string,
9
+ Typesafe.union(
10
+ Typesafe.literal(true),
11
+ Typesafe.partial({
12
+ variables: Typesafe.union(
13
+ Typesafe.literal(true),
14
+ Typesafe.record(
15
+ Typesafe.string,
16
+ Typesafe.union(Typesafe.literal(true), Typesafe.string),
17
+ ),
15
18
  ),
16
- ),
17
- }),
19
+ }),
20
+ ),
18
21
  ),
19
22
  )
20
23
 
@@ -45,12 +45,12 @@ const watchTriggerSchema = Typesafe.intersection(
45
45
  Typesafe.partial({
46
46
  selection: selectionNodeSchemaFactory(),
47
47
  priority: Typesafe.integer,
48
+ withNodes: Typesafe.boolean,
48
49
  }),
49
50
  )
50
51
 
51
52
  const watchTriggerSchemaCheck: Typesafe.Equals<Actions.WatchTrigger, ReturnType<typeof watchTriggerSchema>> = true
52
53
 
53
-
54
54
  const basicTriggerSchema = Typesafe.intersection(
55
55
  Typesafe.object({
56
56
  type: Typesafe.literal('basic'),
@@ -69,7 +69,6 @@ const basicTriggerSchema = Typesafe.intersection(
69
69
 
70
70
  const basicTriggerSchemaCheck: Typesafe.Equals<Actions.BasicTrigger, ReturnType<typeof basicTriggerSchema>> = true
71
71
 
72
-
73
72
  const anyTriggerSchema = Typesafe.union(
74
73
  watchTriggerSchema,
75
74
  basicTriggerSchema,
@@ -25,24 +25,31 @@ const conditionSchemaInner = <T extends Json>(metadata: ResolvedColumnMetadata<T
25
25
  isNull: Typesafe.boolean,
26
26
  never: Typesafe.true_,
27
27
  always: Typesafe.true_,
28
- ...(metadata.isJson !== true ? {
29
- eq: inner,
30
- notEq: inner,
31
- in: Typesafe.array(inner),
32
- notIn: Typesafe.array(inner),
33
- lt: inner,
34
- lte: inner,
35
- gt: inner,
36
- gte: inner,
37
- } : {}),
38
- ...(metadata.isString !== false ? {
39
- contains: Typesafe.string,
40
- startsWith: Typesafe.string,
41
- endsWith: Typesafe.string,
42
- containsCI: Typesafe.string,
43
- startsWithCI: Typesafe.string,
44
- endsWithCI: Typesafe.string,
45
- } : {}),
28
+ ...(metadata.isJson !== true
29
+ ? {
30
+ eq: inner,
31
+ notEq: inner,
32
+ in: Typesafe.array(inner),
33
+ notIn: Typesafe.array(inner),
34
+ lt: inner,
35
+ lte: inner,
36
+ gt: inner,
37
+ gte: inner,
38
+ }
39
+ : {
40
+ // For JSON columns, allow includes operator
41
+ includes: inner,
42
+ }),
43
+ ...(metadata.isString !== false
44
+ ? {
45
+ contains: Typesafe.string,
46
+ startsWith: Typesafe.string,
47
+ endsWith: Typesafe.string,
48
+ containsCI: Typesafe.string,
49
+ startsWithCI: Typesafe.string,
50
+ endsWithCI: Typesafe.string,
51
+ }
52
+ : {}),
46
53
  }))
47
54
  return objectSchema(input, path) as Input.Condition<T>
48
55
  }
@@ -54,11 +61,9 @@ const resolveColumnMetadata = (type: Model.ColumnType): ResolvedColumnMetadata<a
54
61
  type: resolvedType,
55
62
  isJson: type === Model.ColumnType.Json,
56
63
  isString: type === Model.ColumnType.String,
57
-
58
64
  }
59
65
  }
60
66
 
61
-
62
67
  const resolveColumnTypeSchema = (type: Model.ColumnType) => {
63
68
  switch (type) {
64
69
  case Model.ColumnType.Bool:
@@ -52,7 +52,6 @@ const oneHasOneInverseRelationSchema = Typesafe.object({
52
52
  })
53
53
  const oneHasOneInverseRelationSchemaCheck: Typesafe.Equals<Model.OneHasOneInverseRelation, ReturnType<typeof oneHasOneInverseRelationSchema>> = true
54
54
 
55
-
56
55
  const oneHasOneOwningRelationSchema = Typesafe.intersection(
57
56
  Typesafe.object({
58
57
  type: Typesafe.literal(Model.RelationType.OneHasOne),
@@ -69,9 +68,12 @@ const oneHasOneOwningRelationSchema = Typesafe.intersection(
69
68
 
70
69
  const oneHasOneOwningRelationSchemaCheck: Typesafe.Equals<Model.OneHasOneOwningRelation, ReturnType<typeof oneHasOneOwningRelationSchema>> = true
71
70
 
72
- const eventLogSchema = Typesafe.coalesce(Typesafe.object({
73
- enabled: Typesafe.boolean,
74
- }), { enabled: true }) as Typesafe.Type<{ readonly enabled: boolean }>
71
+ const eventLogSchema = Typesafe.coalesce(
72
+ Typesafe.object({
73
+ enabled: Typesafe.boolean,
74
+ }),
75
+ { enabled: true },
76
+ ) as Typesafe.Type<{ readonly enabled: boolean }>
75
77
 
76
78
  const manyHasManyOwningRelationSchema = Typesafe.intersection(
77
79
  Typesafe.object({
@@ -90,7 +92,8 @@ const manyHasManyOwningRelationSchema = Typesafe.intersection(
90
92
  orderBy: orderBySchema,
91
93
  }),
92
94
  )
93
- const manyHasManyOwningRelationSchemaCheck: Typesafe.Equals<Model.ManyHasManyOwningRelation, ReturnType<typeof manyHasManyOwningRelationSchema>> = true
95
+ const manyHasManyOwningRelationSchemaCheck: Typesafe.Equals<Model.ManyHasManyOwningRelation, ReturnType<typeof manyHasManyOwningRelationSchema>> =
96
+ true
94
97
 
95
98
  const manyHasManyInverseRelationSchema = Typesafe.intersection(
96
99
  Typesafe.object({
@@ -103,7 +106,8 @@ const manyHasManyInverseRelationSchema = Typesafe.intersection(
103
106
  orderBy: orderBySchema,
104
107
  }),
105
108
  )
106
- const manyHasManyInverseRelationSchemaCheck: Typesafe.Equals<Model.ManyHasManyInverseRelation, ReturnType<typeof manyHasManyInverseRelationSchema>> = true
109
+ const manyHasManyInverseRelationSchemaCheck: Typesafe.Equals<Model.ManyHasManyInverseRelation, ReturnType<typeof manyHasManyInverseRelationSchema>> =
110
+ true
107
111
 
108
112
  const intersectionSchema = Typesafe.intersection(
109
113
  Typesafe.object({
@@ -162,13 +166,13 @@ const viewSchemaInner = Typesafe.intersection(
162
166
  const viewSchemaCheck: Typesafe.Equals<Model.View, ReturnType<typeof viewSchemaInner>> = true
163
167
  const viewSchema: Typesafe.Type<Model.View> = viewSchemaInner
164
168
 
165
-
166
169
  const indexSchemaBase = Typesafe.intersection(
167
170
  Typesafe.object({
168
171
  fields: Typesafe.array(Typesafe.string),
169
172
  }),
170
173
  Typesafe.partial({
171
174
  name: Typesafe.string,
175
+ method: Typesafe.enumeration('btree', 'gin', 'gist', 'hash', 'brin', 'spgist'),
172
176
  }),
173
177
  )
174
178
  const indexCheck: Typesafe.Equals<Model.Index, ReturnType<typeof indexSchemaBase>> = true
@@ -198,6 +202,7 @@ const uniqueIndex = Typesafe.intersection(
198
202
  }),
199
203
  Typesafe.partial({
200
204
  nulls: Typesafe.enumeration('distinct', 'not distinct'),
205
+ method: Typesafe.enumeration('btree', 'gin', 'gist', 'hash', 'brin', 'spgist'),
201
206
  }),
202
207
  )
203
208
  const uniqueConstraintCheck: Typesafe.Equals<Model.UniqueConstraint, ReturnType<typeof uniqueConstraint>> = true
@@ -229,4 +234,3 @@ export const modelSchema = Typesafe.object({
229
234
  entities: Typesafe.record(Typesafe.string, entitySchema),
230
235
  enums: Typesafe.record(Typesafe.string, Typesafe.array(Typesafe.string)),
231
236
  })
232
-
@@ -9,10 +9,11 @@ const messageSchema = Typesafe.intersection(
9
9
  parameters: Typesafe.array(Typesafe.union(Typesafe.string, Typesafe.number)),
10
10
  }),
11
11
  )
12
- const literalArgumentFactory = <T extends Typesafe.Json>(inner: Typesafe.Type<T>) => Typesafe.object({
13
- type: Typesafe.literal(Validation.ArgumentType.literal),
14
- value: inner,
15
- })
12
+ const literalArgumentFactory = <T extends Typesafe.Json>(inner: Typesafe.Type<T>) =>
13
+ Typesafe.object({
14
+ type: Typesafe.literal(Validation.ArgumentType.literal),
15
+ value: inner,
16
+ })
16
17
 
17
18
  const validatorArgumentSchema = Typesafe.object({
18
19
  type: Typesafe.literal(Validation.ArgumentType.validator),
@@ -12,15 +12,17 @@ export const whereSchema = ({ schema, entity }: {
12
12
  and: Typesafe.array(whereSchema({ schema, entity })),
13
13
  or: Typesafe.array(whereSchema({ schema, entity })),
14
14
  not: whereSchema({ schema, entity }),
15
- ...Object.fromEntries(Object.values(entity.fields).map((it): [string, Typesafe.Type<Input.Where[any]>] => {
16
- return [
17
- it.name,
18
- acceptFieldVisitor(schema, entity, it.name, {
19
- visitColumn: ({ column }) => conditionSchema(column.type),
20
- visitRelation: ({ targetEntity }) => whereSchema({ schema, entity: targetEntity }),
21
- }),
22
- ]
23
- })),
15
+ ...Object.fromEntries(
16
+ Object.values(entity.fields).map((it): [string, Typesafe.Type<Input.Where[any]>] => {
17
+ return [
18
+ it.name,
19
+ acceptFieldVisitor(schema, entity, it.name, {
20
+ visitColumn: ({ column }) => conditionSchema(column.type),
21
+ visitRelation: ({ targetEntity }) => whereSchema({ schema, entity: targetEntity }),
22
+ }),
23
+ ]
24
+ }),
25
+ ),
24
26
  }))
25
27
 
26
28
  return whereSchemaInner(input, path)
@@ -94,7 +94,7 @@ export function deepCompare(a: any, b: any, path: Path = [], getCustomComparator
94
94
  if (aType === 'date') {
95
95
  const aTime = a.getTime()
96
96
  const bTime = b.getTime()
97
- if (aTime == bTime) {
97
+ if (aTime === bTime) {
98
98
  return []
99
99
  }
100
100
  return [