@contember/schema-utils 2.1.0-alpha.37 → 2.1.0-alpha.39

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 (399) hide show
  1. package/dist/development/index.cjs +110 -0
  2. package/dist/development/index.cjs.map +1 -0
  3. package/dist/development/index.js +94 -0
  4. package/dist/development/index.js.map +1 -0
  5. package/dist/development/src/acl/AllowAllPermissionFactory.cjs +42 -0
  6. package/dist/development/src/acl/AllowAllPermissionFactory.cjs.map +1 -0
  7. package/dist/development/src/acl/AllowAllPermissionFactory.js +42 -0
  8. package/dist/development/src/acl/AllowAllPermissionFactory.js.map +1 -0
  9. package/dist/development/src/acl/PredicateDefinitionProcessor.cjs +69 -0
  10. package/dist/development/src/acl/PredicateDefinitionProcessor.cjs.map +1 -0
  11. package/dist/development/src/acl/PredicateDefinitionProcessor.js +69 -0
  12. package/dist/development/src/acl/PredicateDefinitionProcessor.js.map +1 -0
  13. package/dist/development/src/acl/schemaUtils.cjs +11 -0
  14. package/dist/development/src/acl/schemaUtils.cjs.map +1 -0
  15. package/dist/development/src/acl/schemaUtils.js +11 -0
  16. package/dist/development/src/acl/schemaUtils.js.map +1 -0
  17. package/dist/development/src/dataUtils.cjs +59 -0
  18. package/dist/development/src/dataUtils.cjs.map +1 -0
  19. package/dist/development/src/dataUtils.js +59 -0
  20. package/dist/development/src/dataUtils.js.map +1 -0
  21. package/dist/development/src/definition-generator/AclDefinitionCodeGenerator.cjs +118 -0
  22. package/dist/development/src/definition-generator/AclDefinitionCodeGenerator.cjs.map +1 -0
  23. package/dist/development/src/definition-generator/AclDefinitionCodeGenerator.js +118 -0
  24. package/dist/development/src/definition-generator/AclDefinitionCodeGenerator.js.map +1 -0
  25. package/dist/development/src/definition-generator/DefinitionCodeGenerator.cjs +218 -0
  26. package/dist/development/src/definition-generator/DefinitionCodeGenerator.cjs.map +1 -0
  27. package/dist/development/src/definition-generator/DefinitionCodeGenerator.js +218 -0
  28. package/dist/development/src/definition-generator/DefinitionCodeGenerator.js.map +1 -0
  29. package/dist/development/src/definition-generator/DefinitionNamingConventions.cjs +68 -0
  30. package/dist/development/src/definition-generator/DefinitionNamingConventions.cjs.map +1 -0
  31. package/dist/development/src/definition-generator/DefinitionNamingConventions.js +68 -0
  32. package/dist/development/src/definition-generator/DefinitionNamingConventions.js.map +1 -0
  33. package/dist/development/src/definition-generator/TsDefinitionGenerator.cjs +17 -0
  34. package/dist/development/src/definition-generator/TsDefinitionGenerator.cjs.map +1 -0
  35. package/dist/development/src/definition-generator/TsDefinitionGenerator.js +17 -0
  36. package/dist/development/src/definition-generator/TsDefinitionGenerator.js.map +1 -0
  37. package/dist/development/src/lax/LaxSchemaConverter.cjs +202 -0
  38. package/dist/development/src/lax/LaxSchemaConverter.cjs.map +1 -0
  39. package/dist/development/src/lax/LaxSchemaConverter.js +202 -0
  40. package/dist/development/src/lax/LaxSchemaConverter.js.map +1 -0
  41. package/dist/development/src/lax/schema.cjs +70 -0
  42. package/dist/development/src/lax/schema.cjs.map +1 -0
  43. package/dist/development/src/lax/schema.js +53 -0
  44. package/dist/development/src/lax/schema.js.map +1 -0
  45. package/dist/development/src/model/NamingConventions.cjs +28 -0
  46. package/dist/development/src/model/NamingConventions.cjs.map +1 -0
  47. package/dist/development/src/model/NamingConventions.js +28 -0
  48. package/dist/development/src/model/NamingConventions.js.map +1 -0
  49. package/dist/development/src/model/modelUtils.cjs +229 -0
  50. package/dist/development/src/model/modelUtils.cjs.map +1 -0
  51. package/dist/development/src/model/modelUtils.js +229 -0
  52. package/dist/development/src/model/modelUtils.js.map +1 -0
  53. package/dist/development/src/model/resolveDefaultColumnType.cjs +30 -0
  54. package/dist/development/src/model/resolveDefaultColumnType.cjs.map +1 -0
  55. package/dist/development/src/model/resolveDefaultColumnType.js +30 -0
  56. package/dist/development/src/model/resolveDefaultColumnType.js.map +1 -0
  57. package/dist/development/src/schemaChecksum.cjs +9 -0
  58. package/dist/development/src/schemaChecksum.cjs.map +1 -0
  59. package/dist/development/src/schemaChecksum.js +9 -0
  60. package/dist/development/src/schemaChecksum.js.map +1 -0
  61. package/dist/development/src/schemaFilter.cjs +24 -0
  62. package/dist/development/src/schemaFilter.cjs.map +1 -0
  63. package/dist/development/src/schemaFilter.js +24 -0
  64. package/dist/development/src/schemaFilter.js.map +1 -0
  65. package/dist/development/src/schemaNormalizer.cjs +72 -0
  66. package/dist/development/src/schemaNormalizer.cjs.map +1 -0
  67. package/dist/development/src/schemaNormalizer.js +72 -0
  68. package/dist/development/src/schemaNormalizer.js.map +1 -0
  69. package/dist/development/src/type-schema/acl.cjs +149 -0
  70. package/dist/development/src/type-schema/acl.cjs.map +1 -0
  71. package/dist/development/src/type-schema/acl.js +132 -0
  72. package/dist/development/src/type-schema/acl.js.map +1 -0
  73. package/dist/development/src/type-schema/actions.cjs +88 -0
  74. package/dist/development/src/type-schema/actions.cjs.map +1 -0
  75. package/dist/development/src/type-schema/actions.js +71 -0
  76. package/dist/development/src/type-schema/actions.js.map +1 -0
  77. package/dist/development/src/type-schema/condition.cjs +92 -0
  78. package/dist/development/src/type-schema/condition.cjs.map +1 -0
  79. package/dist/development/src/type-schema/condition.js +75 -0
  80. package/dist/development/src/type-schema/condition.js.map +1 -0
  81. package/dist/development/src/type-schema/model.cjs +222 -0
  82. package/dist/development/src/type-schema/model.cjs.map +1 -0
  83. package/dist/development/src/type-schema/model.js +206 -0
  84. package/dist/development/src/type-schema/model.js.map +1 -0
  85. package/dist/development/src/type-schema/settings.cjs +34 -0
  86. package/dist/development/src/type-schema/settings.cjs.map +1 -0
  87. package/dist/development/src/type-schema/settings.js +17 -0
  88. package/dist/development/src/type-schema/settings.js.map +1 -0
  89. package/dist/development/src/type-schema/validation.cjs +115 -0
  90. package/dist/development/src/type-schema/validation.cjs.map +1 -0
  91. package/dist/development/src/type-schema/validation.js +98 -0
  92. package/dist/development/src/type-schema/validation.js.map +1 -0
  93. package/dist/development/src/type-schema/where.cjs +46 -0
  94. package/dist/development/src/type-schema/where.cjs.map +1 -0
  95. package/dist/development/src/type-schema/where.js +29 -0
  96. package/dist/development/src/type-schema/where.js.map +1 -0
  97. package/dist/development/src/utils/assertNever.cjs +7 -0
  98. package/dist/development/src/utils/assertNever.cjs.map +1 -0
  99. package/dist/development/src/utils/assertNever.js +7 -0
  100. package/dist/development/src/utils/assertNever.js.map +1 -0
  101. package/dist/development/src/utils/deepCompare.cjs +134 -0
  102. package/dist/development/src/utils/deepCompare.cjs.map +1 -0
  103. package/dist/development/src/utils/deepCompare.js +134 -0
  104. package/dist/development/src/utils/deepCompare.js.map +1 -0
  105. package/dist/development/src/utils/isIt.cjs +7 -0
  106. package/dist/development/src/utils/isIt.cjs.map +1 -0
  107. package/dist/development/src/utils/isIt.js +7 -0
  108. package/dist/development/src/utils/isIt.js.map +1 -0
  109. package/dist/development/src/utils/printJsValue.cjs +42 -0
  110. package/dist/development/src/utils/printJsValue.cjs.map +1 -0
  111. package/dist/development/src/utils/printJsValue.js +42 -0
  112. package/dist/development/src/utils/printJsValue.js.map +1 -0
  113. package/dist/development/src/validation/AclValidator.cjs +168 -0
  114. package/dist/development/src/validation/AclValidator.cjs.map +1 -0
  115. package/dist/development/src/validation/AclValidator.js +168 -0
  116. package/dist/development/src/validation/AclValidator.js.map +1 -0
  117. package/dist/development/src/validation/ActionsValidator.cjs +127 -0
  118. package/dist/development/src/validation/ActionsValidator.cjs.map +1 -0
  119. package/dist/development/src/validation/ActionsValidator.js +110 -0
  120. package/dist/development/src/validation/ActionsValidator.js.map +1 -0
  121. package/dist/development/src/validation/MembershipResolver.cjs +129 -0
  122. package/dist/development/src/validation/MembershipResolver.cjs.map +1 -0
  123. package/dist/development/src/validation/MembershipResolver.js +129 -0
  124. package/dist/development/src/validation/MembershipResolver.js.map +1 -0
  125. package/dist/development/src/validation/ModelValidator.cjs +325 -0
  126. package/dist/development/src/validation/ModelValidator.cjs.map +1 -0
  127. package/dist/development/src/validation/ModelValidator.js +325 -0
  128. package/dist/development/src/validation/ModelValidator.js.map +1 -0
  129. package/dist/development/src/validation/SchemaValidator.cjs +29 -0
  130. package/dist/development/src/validation/SchemaValidator.cjs.map +1 -0
  131. package/dist/development/src/validation/SchemaValidator.js +29 -0
  132. package/dist/development/src/validation/SchemaValidator.js.map +1 -0
  133. package/dist/development/src/validation/ValidationValidator.cjs +121 -0
  134. package/dist/development/src/validation/ValidationValidator.cjs.map +1 -0
  135. package/dist/development/src/validation/ValidationValidator.js +121 -0
  136. package/dist/development/src/validation/ValidationValidator.js.map +1 -0
  137. package/dist/development/src/validation/errors.cjs +16 -0
  138. package/dist/development/src/validation/errors.cjs.map +1 -0
  139. package/dist/development/src/validation/errors.js +16 -0
  140. package/dist/development/src/validation/errors.js.map +1 -0
  141. package/dist/production/index.cjs +110 -0
  142. package/dist/production/index.cjs.map +1 -0
  143. package/dist/production/index.js +94 -0
  144. package/dist/production/index.js.map +1 -0
  145. package/dist/production/src/acl/AllowAllPermissionFactory.cjs +42 -0
  146. package/dist/production/src/acl/AllowAllPermissionFactory.cjs.map +1 -0
  147. package/dist/production/src/acl/AllowAllPermissionFactory.js +42 -0
  148. package/dist/production/src/acl/AllowAllPermissionFactory.js.map +1 -0
  149. package/dist/production/src/acl/PredicateDefinitionProcessor.cjs +69 -0
  150. package/dist/production/src/acl/PredicateDefinitionProcessor.cjs.map +1 -0
  151. package/dist/production/src/acl/PredicateDefinitionProcessor.js +69 -0
  152. package/dist/production/src/acl/PredicateDefinitionProcessor.js.map +1 -0
  153. package/dist/production/src/acl/schemaUtils.cjs +11 -0
  154. package/dist/production/src/acl/schemaUtils.cjs.map +1 -0
  155. package/dist/production/src/acl/schemaUtils.js +11 -0
  156. package/dist/production/src/acl/schemaUtils.js.map +1 -0
  157. package/dist/production/src/dataUtils.cjs +59 -0
  158. package/dist/production/src/dataUtils.cjs.map +1 -0
  159. package/dist/production/src/dataUtils.js +59 -0
  160. package/dist/production/src/dataUtils.js.map +1 -0
  161. package/dist/production/src/definition-generator/AclDefinitionCodeGenerator.cjs +118 -0
  162. package/dist/production/src/definition-generator/AclDefinitionCodeGenerator.cjs.map +1 -0
  163. package/dist/production/src/definition-generator/AclDefinitionCodeGenerator.js +118 -0
  164. package/dist/production/src/definition-generator/AclDefinitionCodeGenerator.js.map +1 -0
  165. package/dist/production/src/definition-generator/DefinitionCodeGenerator.cjs +218 -0
  166. package/dist/production/src/definition-generator/DefinitionCodeGenerator.cjs.map +1 -0
  167. package/dist/production/src/definition-generator/DefinitionCodeGenerator.js +218 -0
  168. package/dist/production/src/definition-generator/DefinitionCodeGenerator.js.map +1 -0
  169. package/dist/production/src/definition-generator/DefinitionNamingConventions.cjs +68 -0
  170. package/dist/production/src/definition-generator/DefinitionNamingConventions.cjs.map +1 -0
  171. package/dist/production/src/definition-generator/DefinitionNamingConventions.js +68 -0
  172. package/dist/production/src/definition-generator/DefinitionNamingConventions.js.map +1 -0
  173. package/dist/production/src/definition-generator/TsDefinitionGenerator.cjs +17 -0
  174. package/dist/production/src/definition-generator/TsDefinitionGenerator.cjs.map +1 -0
  175. package/dist/production/src/definition-generator/TsDefinitionGenerator.js +17 -0
  176. package/dist/production/src/definition-generator/TsDefinitionGenerator.js.map +1 -0
  177. package/dist/production/src/lax/LaxSchemaConverter.cjs +202 -0
  178. package/dist/production/src/lax/LaxSchemaConverter.cjs.map +1 -0
  179. package/dist/production/src/lax/LaxSchemaConverter.js +202 -0
  180. package/dist/production/src/lax/LaxSchemaConverter.js.map +1 -0
  181. package/dist/production/src/lax/schema.cjs +70 -0
  182. package/dist/production/src/lax/schema.cjs.map +1 -0
  183. package/dist/production/src/lax/schema.js +53 -0
  184. package/dist/production/src/lax/schema.js.map +1 -0
  185. package/dist/production/src/model/NamingConventions.cjs +28 -0
  186. package/dist/production/src/model/NamingConventions.cjs.map +1 -0
  187. package/dist/production/src/model/NamingConventions.js +28 -0
  188. package/dist/production/src/model/NamingConventions.js.map +1 -0
  189. package/dist/production/src/model/modelUtils.cjs +229 -0
  190. package/dist/production/src/model/modelUtils.cjs.map +1 -0
  191. package/dist/production/src/model/modelUtils.js +229 -0
  192. package/dist/production/src/model/modelUtils.js.map +1 -0
  193. package/dist/production/src/model/resolveDefaultColumnType.cjs +30 -0
  194. package/dist/production/src/model/resolveDefaultColumnType.cjs.map +1 -0
  195. package/dist/production/src/model/resolveDefaultColumnType.js +30 -0
  196. package/dist/production/src/model/resolveDefaultColumnType.js.map +1 -0
  197. package/dist/production/src/schemaChecksum.cjs +9 -0
  198. package/dist/production/src/schemaChecksum.cjs.map +1 -0
  199. package/dist/production/src/schemaChecksum.js +9 -0
  200. package/dist/production/src/schemaChecksum.js.map +1 -0
  201. package/dist/production/src/schemaFilter.cjs +24 -0
  202. package/dist/production/src/schemaFilter.cjs.map +1 -0
  203. package/dist/production/src/schemaFilter.js +24 -0
  204. package/dist/production/src/schemaFilter.js.map +1 -0
  205. package/dist/production/src/schemaNormalizer.cjs +72 -0
  206. package/dist/production/src/schemaNormalizer.cjs.map +1 -0
  207. package/dist/production/src/schemaNormalizer.js +72 -0
  208. package/dist/production/src/schemaNormalizer.js.map +1 -0
  209. package/dist/production/src/type-schema/acl.cjs +149 -0
  210. package/dist/production/src/type-schema/acl.cjs.map +1 -0
  211. package/dist/production/src/type-schema/acl.js +132 -0
  212. package/dist/production/src/type-schema/acl.js.map +1 -0
  213. package/dist/production/src/type-schema/actions.cjs +88 -0
  214. package/dist/production/src/type-schema/actions.cjs.map +1 -0
  215. package/dist/production/src/type-schema/actions.js +71 -0
  216. package/dist/production/src/type-schema/actions.js.map +1 -0
  217. package/dist/production/src/type-schema/condition.cjs +92 -0
  218. package/dist/production/src/type-schema/condition.cjs.map +1 -0
  219. package/dist/production/src/type-schema/condition.js +75 -0
  220. package/dist/production/src/type-schema/condition.js.map +1 -0
  221. package/dist/production/src/type-schema/model.cjs +222 -0
  222. package/dist/production/src/type-schema/model.cjs.map +1 -0
  223. package/dist/production/src/type-schema/model.js +206 -0
  224. package/dist/production/src/type-schema/model.js.map +1 -0
  225. package/dist/production/src/type-schema/settings.cjs +34 -0
  226. package/dist/production/src/type-schema/settings.cjs.map +1 -0
  227. package/dist/production/src/type-schema/settings.js +17 -0
  228. package/dist/production/src/type-schema/settings.js.map +1 -0
  229. package/dist/production/src/type-schema/validation.cjs +115 -0
  230. package/dist/production/src/type-schema/validation.cjs.map +1 -0
  231. package/dist/production/src/type-schema/validation.js +98 -0
  232. package/dist/production/src/type-schema/validation.js.map +1 -0
  233. package/dist/production/src/type-schema/where.cjs +46 -0
  234. package/dist/production/src/type-schema/where.cjs.map +1 -0
  235. package/dist/production/src/type-schema/where.js +29 -0
  236. package/dist/production/src/type-schema/where.js.map +1 -0
  237. package/dist/production/src/utils/assertNever.cjs +7 -0
  238. package/dist/production/src/utils/assertNever.cjs.map +1 -0
  239. package/dist/production/src/utils/assertNever.js +7 -0
  240. package/dist/production/src/utils/assertNever.js.map +1 -0
  241. package/dist/production/src/utils/deepCompare.cjs +134 -0
  242. package/dist/production/src/utils/deepCompare.cjs.map +1 -0
  243. package/dist/production/src/utils/deepCompare.js +134 -0
  244. package/dist/production/src/utils/deepCompare.js.map +1 -0
  245. package/dist/production/src/utils/isIt.cjs +7 -0
  246. package/dist/production/src/utils/isIt.cjs.map +1 -0
  247. package/dist/production/src/utils/isIt.js +7 -0
  248. package/dist/production/src/utils/isIt.js.map +1 -0
  249. package/dist/production/src/utils/printJsValue.cjs +42 -0
  250. package/dist/production/src/utils/printJsValue.cjs.map +1 -0
  251. package/dist/production/src/utils/printJsValue.js +42 -0
  252. package/dist/production/src/utils/printJsValue.js.map +1 -0
  253. package/dist/production/src/validation/AclValidator.cjs +168 -0
  254. package/dist/production/src/validation/AclValidator.cjs.map +1 -0
  255. package/dist/production/src/validation/AclValidator.js +168 -0
  256. package/dist/production/src/validation/AclValidator.js.map +1 -0
  257. package/dist/production/src/validation/ActionsValidator.cjs +127 -0
  258. package/dist/production/src/validation/ActionsValidator.cjs.map +1 -0
  259. package/dist/production/src/validation/ActionsValidator.js +110 -0
  260. package/dist/production/src/validation/ActionsValidator.js.map +1 -0
  261. package/dist/production/src/validation/MembershipResolver.cjs +129 -0
  262. package/dist/production/src/validation/MembershipResolver.cjs.map +1 -0
  263. package/dist/production/src/validation/MembershipResolver.js +129 -0
  264. package/dist/production/src/validation/MembershipResolver.js.map +1 -0
  265. package/dist/production/src/validation/ModelValidator.cjs +325 -0
  266. package/dist/production/src/validation/ModelValidator.cjs.map +1 -0
  267. package/dist/production/src/validation/ModelValidator.js +325 -0
  268. package/dist/production/src/validation/ModelValidator.js.map +1 -0
  269. package/dist/production/src/validation/SchemaValidator.cjs +29 -0
  270. package/dist/production/src/validation/SchemaValidator.cjs.map +1 -0
  271. package/dist/production/src/validation/SchemaValidator.js +29 -0
  272. package/dist/production/src/validation/SchemaValidator.js.map +1 -0
  273. package/dist/production/src/validation/ValidationValidator.cjs +121 -0
  274. package/dist/production/src/validation/ValidationValidator.cjs.map +1 -0
  275. package/dist/production/src/validation/ValidationValidator.js +121 -0
  276. package/dist/production/src/validation/ValidationValidator.js.map +1 -0
  277. package/dist/production/src/validation/errors.cjs +16 -0
  278. package/dist/production/src/validation/errors.cjs.map +1 -0
  279. package/dist/production/src/validation/errors.js +16 -0
  280. package/dist/production/src/validation/errors.js.map +1 -0
  281. package/dist/tests/cases/unit/conditionSchema.test.d.ts +2 -0
  282. package/dist/tests/cases/unit/conditionSchema.test.d.ts.map +1 -0
  283. package/dist/tests/cases/unit/deepCompare.test.d.ts +2 -0
  284. package/dist/tests/cases/unit/deepCompare.test.d.ts.map +1 -0
  285. package/dist/tests/cases/unit/laxSchemaConverter.test.d.ts +2 -0
  286. package/dist/tests/cases/unit/laxSchemaConverter.test.d.ts.map +1 -0
  287. package/dist/tests/cases/unit/membershipResolver.test.d.ts +2 -0
  288. package/dist/tests/cases/unit/membershipResolver.test.d.ts.map +1 -0
  289. package/dist/tests/cases/unit/modelSchema.test.d.ts +2 -0
  290. package/dist/tests/cases/unit/modelSchema.test.d.ts.map +1 -0
  291. package/dist/tests/cases/unit/modelValidator.test.d.ts +2 -0
  292. package/dist/tests/cases/unit/modelValidator.test.d.ts.map +1 -0
  293. package/dist/tests/cases/unit/printJsvalue.test.d.ts +2 -0
  294. package/dist/tests/cases/unit/printJsvalue.test.d.ts.map +1 -0
  295. package/dist/tests/cases/unit/schemas/acl.d.ts +12 -0
  296. package/dist/tests/cases/unit/schemas/acl.d.ts.map +1 -0
  297. package/dist/tests/cases/unit/schemas/basic.d.ts +4 -0
  298. package/dist/tests/cases/unit/schemas/basic.d.ts.map +1 -0
  299. package/dist/tests/cases/unit/schemas/complex.d.ts +12 -0
  300. package/dist/tests/cases/unit/schemas/complex.d.ts.map +1 -0
  301. package/dist/tests/cases/unit/schemas/enum.d.ts +6 -0
  302. package/dist/tests/cases/unit/schemas/enum.d.ts.map +1 -0
  303. package/dist/tests/cases/unit/schemas/relations.d.ts +14 -0
  304. package/dist/tests/cases/unit/schemas/relations.d.ts.map +1 -0
  305. package/dist/tests/cases/unit/schemas/unique.d.ts +4 -0
  306. package/dist/tests/cases/unit/schemas/unique.d.ts.map +1 -0
  307. package/dist/tests/cases/unit/schemas/view.d.ts +4 -0
  308. package/dist/tests/cases/unit/schemas/view.d.ts.map +1 -0
  309. package/dist/tests/cases/unit/tsDefinitionGenerator.test.d.ts +2 -0
  310. package/dist/tests/cases/unit/tsDefinitionGenerator.test.d.ts.map +1 -0
  311. package/dist/tests/cases/unit/whereSchema.test.d.ts +2 -0
  312. package/dist/tests/cases/unit/whereSchema.test.d.ts.map +1 -0
  313. package/dist/tests/tsconfig.tsbuildinfo +1 -0
  314. package/dist/types/acl/AllowAllPermissionFactory.d.ts +7 -0
  315. package/dist/types/acl/AllowAllPermissionFactory.d.ts.map +1 -0
  316. package/dist/types/acl/PredicateDefinitionProcessor.d.ts +32 -0
  317. package/dist/types/acl/PredicateDefinitionProcessor.d.ts.map +1 -0
  318. package/dist/types/acl/index.d.ts +4 -0
  319. package/dist/types/acl/index.d.ts.map +1 -0
  320. package/dist/types/acl/schemaUtils.d.ts +3 -0
  321. package/dist/types/acl/schemaUtils.d.ts.map +1 -0
  322. package/dist/types/dataUtils.d.ts +18 -0
  323. package/dist/types/dataUtils.d.ts.map +1 -0
  324. package/dist/types/definition-generator/AclDefinitionCodeGenerator.d.ts +19 -0
  325. package/dist/types/definition-generator/AclDefinitionCodeGenerator.d.ts.map +1 -0
  326. package/dist/types/definition-generator/DefinitionCodeGenerator.d.ts +27 -0
  327. package/dist/types/definition-generator/DefinitionCodeGenerator.d.ts.map +1 -0
  328. package/dist/types/definition-generator/DefinitionNamingConventions.d.ts +7 -0
  329. package/dist/types/definition-generator/DefinitionNamingConventions.d.ts.map +1 -0
  330. package/dist/types/definition-generator/TsDefinitionGenerator.d.ts +12 -0
  331. package/dist/types/definition-generator/TsDefinitionGenerator.d.ts.map +1 -0
  332. package/dist/types/definition-generator/index.d.ts +5 -0
  333. package/dist/types/definition-generator/index.d.ts.map +1 -0
  334. package/dist/types/index.d.ts +15 -0
  335. package/dist/types/index.d.ts.map +1 -0
  336. package/dist/types/lax/LaxSchemaConverter.d.ts +10 -0
  337. package/dist/types/lax/LaxSchemaConverter.d.ts.map +1 -0
  338. package/dist/types/lax/index.d.ts +3 -0
  339. package/dist/types/lax/index.d.ts.map +1 -0
  340. package/dist/types/lax/schema.d.ts +285 -0
  341. package/dist/types/lax/schema.d.ts.map +1 -0
  342. package/dist/types/model/NamingConventions.d.ts +17 -0
  343. package/dist/types/model/NamingConventions.d.ts.map +1 -0
  344. package/dist/types/model/index.d.ts +4 -0
  345. package/dist/types/model/index.d.ts.map +1 -0
  346. package/dist/types/model/modelUtils.d.ts +28 -0
  347. package/dist/types/model/modelUtils.d.ts.map +1 -0
  348. package/dist/types/model/resolveDefaultColumnType.d.ts +3 -0
  349. package/dist/types/model/resolveDefaultColumnType.d.ts.map +1 -0
  350. package/dist/types/schemaChecksum.d.ts +3 -0
  351. package/dist/types/schemaChecksum.d.ts.map +1 -0
  352. package/dist/types/schemaFilter.d.ts +3 -0
  353. package/dist/types/schemaFilter.d.ts.map +1 -0
  354. package/dist/types/schemaNormalizer.d.ts +3 -0
  355. package/dist/types/schemaNormalizer.d.ts.map +1 -0
  356. package/dist/types/tsconfig.tsbuildinfo +1 -0
  357. package/dist/types/type-schema/acl.d.ts +10 -0
  358. package/dist/types/type-schema/acl.d.ts.map +1 -0
  359. package/dist/types/type-schema/actions.d.ts +32 -0
  360. package/dist/types/type-schema/actions.d.ts.map +1 -0
  361. package/dist/types/type-schema/condition.d.ts +4 -0
  362. package/dist/types/type-schema/condition.d.ts.map +1 -0
  363. package/dist/types/type-schema/index.d.ts +6 -0
  364. package/dist/types/type-schema/index.d.ts.map +1 -0
  365. package/dist/types/type-schema/model.d.ts +30 -0
  366. package/dist/types/type-schema/model.d.ts.map +1 -0
  367. package/dist/types/type-schema/settings.d.ts +41 -0
  368. package/dist/types/type-schema/settings.d.ts.map +1 -0
  369. package/dist/types/type-schema/validation.d.ts +15 -0
  370. package/dist/types/type-schema/validation.d.ts.map +1 -0
  371. package/dist/types/type-schema/where.d.ts +7 -0
  372. package/dist/types/type-schema/where.d.ts.map +1 -0
  373. package/dist/types/utils/assertNever.d.ts +2 -0
  374. package/dist/types/utils/assertNever.d.ts.map +1 -0
  375. package/dist/types/utils/deepCompare.d.ts +13 -0
  376. package/dist/types/utils/deepCompare.d.ts.map +1 -0
  377. package/dist/types/utils/index.d.ts +4 -0
  378. package/dist/types/utils/index.d.ts.map +1 -0
  379. package/dist/types/utils/isIt.d.ts +2 -0
  380. package/dist/types/utils/isIt.d.ts.map +1 -0
  381. package/dist/types/utils/printJsValue.d.ts +13 -0
  382. package/dist/types/utils/printJsValue.d.ts.map +1 -0
  383. package/dist/types/validation/AclValidator.d.ts +20 -0
  384. package/dist/types/validation/AclValidator.d.ts.map +1 -0
  385. package/dist/types/validation/ActionsValidator.d.ts +13 -0
  386. package/dist/types/validation/ActionsValidator.d.ts.map +1 -0
  387. package/dist/types/validation/MembershipResolver.d.ts +37 -0
  388. package/dist/types/validation/MembershipResolver.d.ts.map +1 -0
  389. package/dist/types/validation/ModelValidator.d.ts +20 -0
  390. package/dist/types/validation/ModelValidator.d.ts.map +1 -0
  391. package/dist/types/validation/SchemaValidator.d.ts +11 -0
  392. package/dist/types/validation/SchemaValidator.d.ts.map +1 -0
  393. package/dist/types/validation/ValidationValidator.d.ts +14 -0
  394. package/dist/types/validation/ValidationValidator.d.ts.map +1 -0
  395. package/dist/types/validation/errors.d.ts +14 -0
  396. package/dist/types/validation/errors.d.ts.map +1 -0
  397. package/dist/types/validation/index.d.ts +7 -0
  398. package/dist/types/validation/index.d.ts.map +1 -0
  399. package/package.json +5 -5
@@ -0,0 +1,71 @@
1
+ import * as Typesafe from "@contember/typesafe";
2
+ const selectionNodeSchemaFactory = () => {
3
+ return (input, path = []) => {
4
+ return Typesafe.array(Typesafe.union(
5
+ Typesafe.string,
6
+ Typesafe.tuple(
7
+ Typesafe.string,
8
+ Typesafe.anyJsonObject,
9
+ selectionNodeSchemaFactory()
10
+ )
11
+ ))(input, path);
12
+ };
13
+ };
14
+ const webhookTargetSchema = Typesafe.intersection(
15
+ Typesafe.object({
16
+ type: Typesafe.literal("webhook"),
17
+ name: Typesafe.string,
18
+ url: Typesafe.string
19
+ }),
20
+ Typesafe.partial({
21
+ headers: Typesafe.record(Typesafe.string, Typesafe.string),
22
+ timeoutMs: Typesafe.integer,
23
+ maxAttempts: Typesafe.integer,
24
+ initialRepeatIntervalMs: Typesafe.integer,
25
+ batchSize: Typesafe.integer,
26
+ body: Typesafe.anyJsonObject,
27
+ payloadPath: Typesafe.array(Typesafe.string)
28
+ })
29
+ );
30
+ const anyTargetSchema = Typesafe.union(webhookTargetSchema);
31
+ const watchTriggerSchema = Typesafe.intersection(
32
+ Typesafe.object({
33
+ type: Typesafe.literal("watch"),
34
+ name: Typesafe.string,
35
+ entity: Typesafe.string,
36
+ watch: selectionNodeSchemaFactory(),
37
+ target: Typesafe.string
38
+ }),
39
+ Typesafe.partial({
40
+ selection: selectionNodeSchemaFactory(),
41
+ priority: Typesafe.integer,
42
+ withNodes: Typesafe.boolean
43
+ })
44
+ );
45
+ const basicTriggerSchema = Typesafe.intersection(
46
+ Typesafe.object({
47
+ type: Typesafe.literal("basic"),
48
+ name: Typesafe.string,
49
+ entity: Typesafe.string,
50
+ create: Typesafe.boolean,
51
+ delete: Typesafe.boolean,
52
+ update: Typesafe.union(Typesafe.boolean, Typesafe.array(Typesafe.string)),
53
+ target: Typesafe.string
54
+ }),
55
+ Typesafe.partial({
56
+ selection: selectionNodeSchemaFactory(),
57
+ priority: Typesafe.integer
58
+ })
59
+ );
60
+ const anyTriggerSchema = Typesafe.union(
61
+ watchTriggerSchema,
62
+ basicTriggerSchema
63
+ );
64
+ const actionsSchema = Typesafe.object({
65
+ triggers: Typesafe.record(Typesafe.string, anyTriggerSchema),
66
+ targets: Typesafe.record(Typesafe.string, anyTargetSchema)
67
+ });
68
+ export {
69
+ actionsSchema
70
+ };
71
+ //# sourceMappingURL=actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.js","sources":["../../../../../packages/schema-utils/src/type-schema/actions.ts"],"sourcesContent":["import * as Typesafe from '@contember/typesafe'\nimport { Actions } from '@contember/schema'\n\nconst selectionNodeSchemaFactory = (): Typesafe.Type<Actions.SelectionNode> => {\n\treturn (input: unknown, path: PropertyKey[] = []): Actions.SelectionNode => {\n\t\treturn Typesafe.array(Typesafe.union(\n\t\t\tTypesafe.string,\n\t\t\tTypesafe.tuple(\n\t\t\t\tTypesafe.string,\n\t\t\t\tTypesafe.anyJsonObject,\n\t\t\t\tselectionNodeSchemaFactory(),\n\t\t\t),\n\t\t))(input, path)\n\t}\n}\n\nconst webhookTargetSchema = Typesafe.intersection(\n\tTypesafe.object({\n\t\ttype: Typesafe.literal('webhook'),\n\t\tname: Typesafe.string,\n\t\turl: Typesafe.string,\n\t}),\n\tTypesafe.partial({\n\t\theaders: Typesafe.record(Typesafe.string, Typesafe.string),\n\t\ttimeoutMs: Typesafe.integer,\n\t\tmaxAttempts: Typesafe.integer,\n\t\tinitialRepeatIntervalMs: Typesafe.integer,\n\t\tbatchSize: Typesafe.integer,\n\t\tbody: Typesafe.anyJsonObject,\n\t\tpayloadPath: Typesafe.array(Typesafe.string),\n\t}),\n)\nconst webhookTargetSchemaCheck: Typesafe.Equals<Actions.WebhookTarget, ReturnType<typeof webhookTargetSchema>> = true\n\nconst anyTargetSchema: Typesafe.Type<Actions.AnyTarget> = Typesafe.union(webhookTargetSchema)\n\nconst watchTriggerSchema = Typesafe.intersection(\n\tTypesafe.object({\n\t\ttype: Typesafe.literal('watch'),\n\t\tname: Typesafe.string,\n\t\tentity: Typesafe.string,\n\t\twatch: selectionNodeSchemaFactory(),\n\t\ttarget: Typesafe.string,\n\t}),\n\tTypesafe.partial({\n\t\tselection: selectionNodeSchemaFactory(),\n\t\tpriority: Typesafe.integer,\n\t\twithNodes: Typesafe.boolean,\n\t}),\n)\n\nconst watchTriggerSchemaCheck: Typesafe.Equals<Actions.WatchTrigger, ReturnType<typeof watchTriggerSchema>> = true\n\nconst basicTriggerSchema = Typesafe.intersection(\n\tTypesafe.object({\n\t\ttype: Typesafe.literal('basic'),\n\t\tname: Typesafe.string,\n\t\tentity: Typesafe.string,\n\t\tcreate: Typesafe.boolean,\n\t\tdelete: Typesafe.boolean,\n\t\tupdate: Typesafe.union(Typesafe.boolean, Typesafe.array(Typesafe.string)),\n\t\ttarget: Typesafe.string,\n\t}),\n\tTypesafe.partial({\n\t\tselection: selectionNodeSchemaFactory(),\n\t\tpriority: Typesafe.integer,\n\t}),\n)\n\nconst basicTriggerSchemaCheck: Typesafe.Equals<Actions.BasicTrigger, ReturnType<typeof basicTriggerSchema>> = true\n\nconst anyTriggerSchema = Typesafe.union(\n\twatchTriggerSchema,\n\tbasicTriggerSchema,\n)\n\nexport const actionsSchema = Typesafe.object({\n\ttriggers: Typesafe.record(Typesafe.string, anyTriggerSchema),\n\ttargets: Typesafe.record(Typesafe.string, anyTargetSchema),\n})\n"],"names":[],"mappings":";AAGA,MAAM,6BAA6B,MAA4C;AAC9E,SAAO,CAAC,OAAgB,OAAsB,OAA8B;AAC3E,WAAO,SAAS,MAAM,SAAS;AAAA,MAC9B,SAAS;AAAA,MACT,SAAS;AAAA,QACR,SAAS;AAAA,QACT,SAAS;AAAA,QACT,2BAAA;AAAA,MAA2B;AAAA,IAC5B,CACA,EAAE,OAAO,IAAI;AAAA,EACf;AACD;AAEA,MAAM,sBAAsB,SAAS;AAAA,EACpC,SAAS,OAAO;AAAA,IACf,MAAM,SAAS,QAAQ,SAAS;AAAA,IAChC,MAAM,SAAS;AAAA,IACf,KAAK,SAAS;AAAA,EAAA,CACd;AAAA,EACD,SAAS,QAAQ;AAAA,IAChB,SAAS,SAAS,OAAO,SAAS,QAAQ,SAAS,MAAM;AAAA,IACzD,WAAW,SAAS;AAAA,IACpB,aAAa,SAAS;AAAA,IACtB,yBAAyB,SAAS;AAAA,IAClC,WAAW,SAAS;AAAA,IACpB,MAAM,SAAS;AAAA,IACf,aAAa,SAAS,MAAM,SAAS,MAAM;AAAA,EAAA,CAC3C;AACF;AAGA,MAAM,kBAAoD,SAAS,MAAM,mBAAmB;AAE5F,MAAM,qBAAqB,SAAS;AAAA,EACnC,SAAS,OAAO;AAAA,IACf,MAAM,SAAS,QAAQ,OAAO;AAAA,IAC9B,MAAM,SAAS;AAAA,IACf,QAAQ,SAAS;AAAA,IACjB,OAAO,2BAAA;AAAA,IACP,QAAQ,SAAS;AAAA,EAAA,CACjB;AAAA,EACD,SAAS,QAAQ;AAAA,IAChB,WAAW,2BAAA;AAAA,IACX,UAAU,SAAS;AAAA,IACnB,WAAW,SAAS;AAAA,EAAA,CACpB;AACF;AAIA,MAAM,qBAAqB,SAAS;AAAA,EACnC,SAAS,OAAO;AAAA,IACf,MAAM,SAAS,QAAQ,OAAO;AAAA,IAC9B,MAAM,SAAS;AAAA,IACf,QAAQ,SAAS;AAAA,IACjB,QAAQ,SAAS;AAAA,IACjB,QAAQ,SAAS;AAAA,IACjB,QAAQ,SAAS,MAAM,SAAS,SAAS,SAAS,MAAM,SAAS,MAAM,CAAC;AAAA,IACxE,QAAQ,SAAS;AAAA,EAAA,CACjB;AAAA,EACD,SAAS,QAAQ;AAAA,IAChB,WAAW,2BAAA;AAAA,IACX,UAAU,SAAS;AAAA,EAAA,CACnB;AACF;AAIA,MAAM,mBAAmB,SAAS;AAAA,EACjC;AAAA,EACA;AACD;AAEO,MAAM,gBAAgB,SAAS,OAAO;AAAA,EAC5C,UAAU,SAAS,OAAO,SAAS,QAAQ,gBAAgB;AAAA,EAC3D,SAAS,SAAS,OAAO,SAAS,QAAQ,eAAe;AAC1D,CAAC;"}
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const Typesafe = require("@contember/typesafe");
4
+ const schema = require("@contember/schema");
5
+ function _interopNamespaceDefault(e) {
6
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
7
+ if (e) {
8
+ for (const k in e) {
9
+ if (k !== "default") {
10
+ const d = Object.getOwnPropertyDescriptor(e, k);
11
+ Object.defineProperty(n, k, d.get ? d : {
12
+ enumerable: true,
13
+ get: () => e[k]
14
+ });
15
+ }
16
+ }
17
+ }
18
+ n.default = e;
19
+ return Object.freeze(n);
20
+ }
21
+ const Typesafe__namespace = /* @__PURE__ */ _interopNamespaceDefault(Typesafe);
22
+ const conditionSchema = (type) => {
23
+ const metadata = type ? resolveColumnMetadata(type) : { type: Typesafe__namespace.scalar };
24
+ return conditionSchemaInner(metadata);
25
+ };
26
+ const conditionSchemaInner = (metadata) => {
27
+ return (input, path = []) => {
28
+ const self = conditionSchemaInner(metadata);
29
+ const inner = metadata.type;
30
+ const objectSchema = Typesafe__namespace.noExtraProps(Typesafe__namespace.partial({
31
+ and: Typesafe__namespace.array(self),
32
+ or: Typesafe__namespace.array(self),
33
+ not: self,
34
+ null: Typesafe__namespace.boolean,
35
+ isNull: Typesafe__namespace.boolean,
36
+ never: Typesafe__namespace.true_,
37
+ always: Typesafe__namespace.true_,
38
+ ...metadata.isJson !== true ? {
39
+ eq: inner,
40
+ notEq: inner,
41
+ in: Typesafe__namespace.array(inner),
42
+ notIn: Typesafe__namespace.array(inner),
43
+ lt: inner,
44
+ lte: inner,
45
+ gt: inner,
46
+ gte: inner
47
+ } : {
48
+ // For JSON columns, allow includes operator
49
+ includes: inner
50
+ },
51
+ ...metadata.isString !== false ? {
52
+ contains: Typesafe__namespace.string,
53
+ startsWith: Typesafe__namespace.string,
54
+ endsWith: Typesafe__namespace.string,
55
+ containsCI: Typesafe__namespace.string,
56
+ startsWithCI: Typesafe__namespace.string,
57
+ endsWithCI: Typesafe__namespace.string
58
+ } : {}
59
+ }));
60
+ return objectSchema(input, path);
61
+ };
62
+ };
63
+ const resolveColumnMetadata = (type) => {
64
+ const resolvedType = Typesafe__namespace.nullable(resolveColumnTypeSchema(type));
65
+ return {
66
+ type: resolvedType,
67
+ isJson: type === schema.Model.ColumnType.Json,
68
+ isString: type === schema.Model.ColumnType.String
69
+ };
70
+ };
71
+ const resolveColumnTypeSchema = (type) => {
72
+ switch (type) {
73
+ case schema.Model.ColumnType.Bool:
74
+ return Typesafe__namespace.boolean;
75
+ // todo: validate format of string-like inputs uuid, date, enum
76
+ case schema.Model.ColumnType.Date:
77
+ case schema.Model.ColumnType.DateTime:
78
+ case schema.Model.ColumnType.Time:
79
+ case schema.Model.ColumnType.Uuid:
80
+ case schema.Model.ColumnType.Enum:
81
+ case schema.Model.ColumnType.String:
82
+ return Typesafe__namespace.string;
83
+ case schema.Model.ColumnType.Double:
84
+ return Typesafe__namespace.number;
85
+ case schema.Model.ColumnType.Int:
86
+ return Typesafe__namespace.integer;
87
+ case schema.Model.ColumnType.Json:
88
+ return Typesafe__namespace.anyJson;
89
+ }
90
+ };
91
+ exports.conditionSchema = conditionSchema;
92
+ //# sourceMappingURL=condition.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"condition.cjs","sources":["../../../../../packages/schema-utils/src/type-schema/condition.ts"],"sourcesContent":["import * as Typesafe from '@contember/typesafe'\nimport { Json, Type } from '@contember/typesafe'\nimport { Input, Model, Value } from '@contember/schema'\n\nexport const conditionSchema = <T extends Value.FieldValue>(type?: Model.ColumnType): Type<Input.Condition<T>> => {\n\tconst metadata = type ? resolveColumnMetadata(type) : { type: Typesafe.scalar }\n\treturn conditionSchemaInner(metadata)\n}\n\ninterface ResolvedColumnMetadata<T extends Json> {\n\ttype: Typesafe.Type<T>\n\tisJson?: boolean\n\tisString?: boolean\n}\n\nconst conditionSchemaInner = <T extends Json>(metadata: ResolvedColumnMetadata<T>): Type<Input.Condition<T>> => {\n\treturn (input: unknown, path: PropertyKey[] = []): Input.Condition<T> => {\n\t\tconst self = conditionSchemaInner(metadata)\n\t\tconst inner = metadata.type\n\t\tconst objectSchema = Typesafe.noExtraProps(Typesafe.partial({\n\t\t\tand: Typesafe.array(self),\n\t\t\tor: Typesafe.array(self),\n\t\t\tnot: self,\n\t\t\tnull: Typesafe.boolean,\n\t\t\tisNull: Typesafe.boolean,\n\t\t\tnever: Typesafe.true_,\n\t\t\talways: Typesafe.true_,\n\t\t\t...(metadata.isJson !== true\n\t\t\t\t? {\n\t\t\t\t\teq: inner,\n\t\t\t\t\tnotEq: inner,\n\t\t\t\t\tin: Typesafe.array(inner),\n\t\t\t\t\tnotIn: Typesafe.array(inner),\n\t\t\t\t\tlt: inner,\n\t\t\t\t\tlte: inner,\n\t\t\t\t\tgt: inner,\n\t\t\t\t\tgte: inner,\n\t\t\t\t}\n\t\t\t\t: {\n\t\t\t\t\t// For JSON columns, allow includes operator\n\t\t\t\t\tincludes: inner,\n\t\t\t\t}),\n\t\t\t...(metadata.isString !== false\n\t\t\t\t? {\n\t\t\t\t\tcontains: Typesafe.string,\n\t\t\t\t\tstartsWith: Typesafe.string,\n\t\t\t\t\tendsWith: Typesafe.string,\n\t\t\t\t\tcontainsCI: Typesafe.string,\n\t\t\t\t\tstartsWithCI: Typesafe.string,\n\t\t\t\t\tendsWithCI: Typesafe.string,\n\t\t\t\t}\n\t\t\t\t: {}),\n\t\t}))\n\t\treturn objectSchema(input, path) as Input.Condition<T>\n\t}\n}\n\nconst resolveColumnMetadata = (type: Model.ColumnType): ResolvedColumnMetadata<any> => {\n\tconst resolvedType = Typesafe.nullable(resolveColumnTypeSchema(type))\n\treturn {\n\t\ttype: resolvedType,\n\t\tisJson: type === Model.ColumnType.Json,\n\t\tisString: type === Model.ColumnType.String,\n\t}\n}\n\nconst resolveColumnTypeSchema = (type: Model.ColumnType) => {\n\tswitch (type) {\n\t\tcase Model.ColumnType.Bool:\n\t\t\treturn Typesafe.boolean\n\n\t\t// todo: validate format of string-like inputs uuid, date, enum\n\t\tcase Model.ColumnType.Date:\n\t\tcase Model.ColumnType.DateTime:\n\t\tcase Model.ColumnType.Time:\n\t\tcase Model.ColumnType.Uuid:\n\t\tcase Model.ColumnType.Enum:\n\t\tcase Model.ColumnType.String:\n\t\t\treturn Typesafe.string\n\t\tcase Model.ColumnType.Double:\n\t\t\treturn Typesafe.number\n\t\tcase Model.ColumnType.Int:\n\t\t\treturn Typesafe.integer\n\t\tcase Model.ColumnType.Json:\n\t\t\treturn Typesafe.anyJson\n\t}\n}\n"],"names":["Typesafe","Model"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAIO,MAAM,kBAAkB,CAA6B,SAAsD;AACjH,QAAM,WAAW,OAAO,sBAAsB,IAAI,IAAI,EAAE,MAAMA,oBAAS,OAAA;AACvE,SAAO,qBAAqB,QAAQ;AACrC;AAQA,MAAM,uBAAuB,CAAiB,aAAkE;AAC/G,SAAO,CAAC,OAAgB,OAAsB,OAA2B;AACxE,UAAM,OAAO,qBAAqB,QAAQ;AAC1C,UAAM,QAAQ,SAAS;AACvB,UAAM,eAAeA,oBAAS,aAAaA,oBAAS,QAAQ;AAAA,MAC3D,KAAKA,oBAAS,MAAM,IAAI;AAAA,MACxB,IAAIA,oBAAS,MAAM,IAAI;AAAA,MACvB,KAAK;AAAA,MACL,MAAMA,oBAAS;AAAA,MACf,QAAQA,oBAAS;AAAA,MACjB,OAAOA,oBAAS;AAAA,MAChB,QAAQA,oBAAS;AAAA,MACjB,GAAI,SAAS,WAAW,OACrB;AAAA,QACD,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,IAAIA,oBAAS,MAAM,KAAK;AAAA,QACxB,OAAOA,oBAAS,MAAM,KAAK;AAAA,QAC3B,IAAI;AAAA,QACJ,KAAK;AAAA,QACL,IAAI;AAAA,QACJ,KAAK;AAAA,MAAA,IAEJ;AAAA;AAAA,QAED,UAAU;AAAA,MAAA;AAAA,MAEZ,GAAI,SAAS,aAAa,QACvB;AAAA,QACD,UAAUA,oBAAS;AAAA,QACnB,YAAYA,oBAAS;AAAA,QACrB,UAAUA,oBAAS;AAAA,QACnB,YAAYA,oBAAS;AAAA,QACrB,cAAcA,oBAAS;AAAA,QACvB,YAAYA,oBAAS;AAAA,MAAA,IAEpB,CAAA;AAAA,IAAC,CACJ,CAAC;AACF,WAAO,aAAa,OAAO,IAAI;AAAA,EAChC;AACD;AAEA,MAAM,wBAAwB,CAAC,SAAwD;AACtF,QAAM,eAAeA,oBAAS,SAAS,wBAAwB,IAAI,CAAC;AACpE,SAAO;AAAA,IACN,MAAM;AAAA,IACN,QAAQ,SAASC,aAAM,WAAW;AAAA,IAClC,UAAU,SAASA,OAAAA,MAAM,WAAW;AAAA,EAAA;AAEtC;AAEA,MAAM,0BAA0B,CAAC,SAA2B;AAC3D,UAAQ,MAAA;AAAA,IACP,KAAKA,OAAAA,MAAM,WAAW;AACrB,aAAOD,oBAAS;AAAA;AAAA,IAGjB,KAAKC,OAAAA,MAAM,WAAW;AAAA,IACtB,KAAKA,OAAAA,MAAM,WAAW;AAAA,IACtB,KAAKA,OAAAA,MAAM,WAAW;AAAA,IACtB,KAAKA,OAAAA,MAAM,WAAW;AAAA,IACtB,KAAKA,OAAAA,MAAM,WAAW;AAAA,IACtB,KAAKA,OAAAA,MAAM,WAAW;AACrB,aAAOD,oBAAS;AAAA,IACjB,KAAKC,OAAAA,MAAM,WAAW;AACrB,aAAOD,oBAAS;AAAA,IACjB,KAAKC,OAAAA,MAAM,WAAW;AACrB,aAAOD,oBAAS;AAAA,IACjB,KAAKC,OAAAA,MAAM,WAAW;AACrB,aAAOD,oBAAS;AAAA,EAAA;AAEnB;;"}
@@ -0,0 +1,75 @@
1
+ import * as Typesafe from "@contember/typesafe";
2
+ import { Model } from "@contember/schema";
3
+ const conditionSchema = (type) => {
4
+ const metadata = type ? resolveColumnMetadata(type) : { type: Typesafe.scalar };
5
+ return conditionSchemaInner(metadata);
6
+ };
7
+ const conditionSchemaInner = (metadata) => {
8
+ return (input, path = []) => {
9
+ const self = conditionSchemaInner(metadata);
10
+ const inner = metadata.type;
11
+ const objectSchema = Typesafe.noExtraProps(Typesafe.partial({
12
+ and: Typesafe.array(self),
13
+ or: Typesafe.array(self),
14
+ not: self,
15
+ null: Typesafe.boolean,
16
+ isNull: Typesafe.boolean,
17
+ never: Typesafe.true_,
18
+ always: Typesafe.true_,
19
+ ...metadata.isJson !== true ? {
20
+ eq: inner,
21
+ notEq: inner,
22
+ in: Typesafe.array(inner),
23
+ notIn: Typesafe.array(inner),
24
+ lt: inner,
25
+ lte: inner,
26
+ gt: inner,
27
+ gte: inner
28
+ } : {
29
+ // For JSON columns, allow includes operator
30
+ includes: inner
31
+ },
32
+ ...metadata.isString !== false ? {
33
+ contains: Typesafe.string,
34
+ startsWith: Typesafe.string,
35
+ endsWith: Typesafe.string,
36
+ containsCI: Typesafe.string,
37
+ startsWithCI: Typesafe.string,
38
+ endsWithCI: Typesafe.string
39
+ } : {}
40
+ }));
41
+ return objectSchema(input, path);
42
+ };
43
+ };
44
+ const resolveColumnMetadata = (type) => {
45
+ const resolvedType = Typesafe.nullable(resolveColumnTypeSchema(type));
46
+ return {
47
+ type: resolvedType,
48
+ isJson: type === Model.ColumnType.Json,
49
+ isString: type === Model.ColumnType.String
50
+ };
51
+ };
52
+ const resolveColumnTypeSchema = (type) => {
53
+ switch (type) {
54
+ case Model.ColumnType.Bool:
55
+ return Typesafe.boolean;
56
+ // todo: validate format of string-like inputs uuid, date, enum
57
+ case Model.ColumnType.Date:
58
+ case Model.ColumnType.DateTime:
59
+ case Model.ColumnType.Time:
60
+ case Model.ColumnType.Uuid:
61
+ case Model.ColumnType.Enum:
62
+ case Model.ColumnType.String:
63
+ return Typesafe.string;
64
+ case Model.ColumnType.Double:
65
+ return Typesafe.number;
66
+ case Model.ColumnType.Int:
67
+ return Typesafe.integer;
68
+ case Model.ColumnType.Json:
69
+ return Typesafe.anyJson;
70
+ }
71
+ };
72
+ export {
73
+ conditionSchema
74
+ };
75
+ //# sourceMappingURL=condition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"condition.js","sources":["../../../../../packages/schema-utils/src/type-schema/condition.ts"],"sourcesContent":["import * as Typesafe from '@contember/typesafe'\nimport { Json, Type } from '@contember/typesafe'\nimport { Input, Model, Value } from '@contember/schema'\n\nexport const conditionSchema = <T extends Value.FieldValue>(type?: Model.ColumnType): Type<Input.Condition<T>> => {\n\tconst metadata = type ? resolveColumnMetadata(type) : { type: Typesafe.scalar }\n\treturn conditionSchemaInner(metadata)\n}\n\ninterface ResolvedColumnMetadata<T extends Json> {\n\ttype: Typesafe.Type<T>\n\tisJson?: boolean\n\tisString?: boolean\n}\n\nconst conditionSchemaInner = <T extends Json>(metadata: ResolvedColumnMetadata<T>): Type<Input.Condition<T>> => {\n\treturn (input: unknown, path: PropertyKey[] = []): Input.Condition<T> => {\n\t\tconst self = conditionSchemaInner(metadata)\n\t\tconst inner = metadata.type\n\t\tconst objectSchema = Typesafe.noExtraProps(Typesafe.partial({\n\t\t\tand: Typesafe.array(self),\n\t\t\tor: Typesafe.array(self),\n\t\t\tnot: self,\n\t\t\tnull: Typesafe.boolean,\n\t\t\tisNull: Typesafe.boolean,\n\t\t\tnever: Typesafe.true_,\n\t\t\talways: Typesafe.true_,\n\t\t\t...(metadata.isJson !== true\n\t\t\t\t? {\n\t\t\t\t\teq: inner,\n\t\t\t\t\tnotEq: inner,\n\t\t\t\t\tin: Typesafe.array(inner),\n\t\t\t\t\tnotIn: Typesafe.array(inner),\n\t\t\t\t\tlt: inner,\n\t\t\t\t\tlte: inner,\n\t\t\t\t\tgt: inner,\n\t\t\t\t\tgte: inner,\n\t\t\t\t}\n\t\t\t\t: {\n\t\t\t\t\t// For JSON columns, allow includes operator\n\t\t\t\t\tincludes: inner,\n\t\t\t\t}),\n\t\t\t...(metadata.isString !== false\n\t\t\t\t? {\n\t\t\t\t\tcontains: Typesafe.string,\n\t\t\t\t\tstartsWith: Typesafe.string,\n\t\t\t\t\tendsWith: Typesafe.string,\n\t\t\t\t\tcontainsCI: Typesafe.string,\n\t\t\t\t\tstartsWithCI: Typesafe.string,\n\t\t\t\t\tendsWithCI: Typesafe.string,\n\t\t\t\t}\n\t\t\t\t: {}),\n\t\t}))\n\t\treturn objectSchema(input, path) as Input.Condition<T>\n\t}\n}\n\nconst resolveColumnMetadata = (type: Model.ColumnType): ResolvedColumnMetadata<any> => {\n\tconst resolvedType = Typesafe.nullable(resolveColumnTypeSchema(type))\n\treturn {\n\t\ttype: resolvedType,\n\t\tisJson: type === Model.ColumnType.Json,\n\t\tisString: type === Model.ColumnType.String,\n\t}\n}\n\nconst resolveColumnTypeSchema = (type: Model.ColumnType) => {\n\tswitch (type) {\n\t\tcase Model.ColumnType.Bool:\n\t\t\treturn Typesafe.boolean\n\n\t\t// todo: validate format of string-like inputs uuid, date, enum\n\t\tcase Model.ColumnType.Date:\n\t\tcase Model.ColumnType.DateTime:\n\t\tcase Model.ColumnType.Time:\n\t\tcase Model.ColumnType.Uuid:\n\t\tcase Model.ColumnType.Enum:\n\t\tcase Model.ColumnType.String:\n\t\t\treturn Typesafe.string\n\t\tcase Model.ColumnType.Double:\n\t\t\treturn Typesafe.number\n\t\tcase Model.ColumnType.Int:\n\t\t\treturn Typesafe.integer\n\t\tcase Model.ColumnType.Json:\n\t\t\treturn Typesafe.anyJson\n\t}\n}\n"],"names":[],"mappings":";;AAIO,MAAM,kBAAkB,CAA6B,SAAsD;AACjH,QAAM,WAAW,OAAO,sBAAsB,IAAI,IAAI,EAAE,MAAM,SAAS,OAAA;AACvE,SAAO,qBAAqB,QAAQ;AACrC;AAQA,MAAM,uBAAuB,CAAiB,aAAkE;AAC/G,SAAO,CAAC,OAAgB,OAAsB,OAA2B;AACxE,UAAM,OAAO,qBAAqB,QAAQ;AAC1C,UAAM,QAAQ,SAAS;AACvB,UAAM,eAAe,SAAS,aAAa,SAAS,QAAQ;AAAA,MAC3D,KAAK,SAAS,MAAM,IAAI;AAAA,MACxB,IAAI,SAAS,MAAM,IAAI;AAAA,MACvB,KAAK;AAAA,MACL,MAAM,SAAS;AAAA,MACf,QAAQ,SAAS;AAAA,MACjB,OAAO,SAAS;AAAA,MAChB,QAAQ,SAAS;AAAA,MACjB,GAAI,SAAS,WAAW,OACrB;AAAA,QACD,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,IAAI,SAAS,MAAM,KAAK;AAAA,QACxB,OAAO,SAAS,MAAM,KAAK;AAAA,QAC3B,IAAI;AAAA,QACJ,KAAK;AAAA,QACL,IAAI;AAAA,QACJ,KAAK;AAAA,MAAA,IAEJ;AAAA;AAAA,QAED,UAAU;AAAA,MAAA;AAAA,MAEZ,GAAI,SAAS,aAAa,QACvB;AAAA,QACD,UAAU,SAAS;AAAA,QACnB,YAAY,SAAS;AAAA,QACrB,UAAU,SAAS;AAAA,QACnB,YAAY,SAAS;AAAA,QACrB,cAAc,SAAS;AAAA,QACvB,YAAY,SAAS;AAAA,MAAA,IAEpB,CAAA;AAAA,IAAC,CACJ,CAAC;AACF,WAAO,aAAa,OAAO,IAAI;AAAA,EAChC;AACD;AAEA,MAAM,wBAAwB,CAAC,SAAwD;AACtF,QAAM,eAAe,SAAS,SAAS,wBAAwB,IAAI,CAAC;AACpE,SAAO;AAAA,IACN,MAAM;AAAA,IACN,QAAQ,SAAS,MAAM,WAAW;AAAA,IAClC,UAAU,SAAS,MAAM,WAAW;AAAA,EAAA;AAEtC;AAEA,MAAM,0BAA0B,CAAC,SAA2B;AAC3D,UAAQ,MAAA;AAAA,IACP,KAAK,MAAM,WAAW;AACrB,aAAO,SAAS;AAAA;AAAA,IAGjB,KAAK,MAAM,WAAW;AAAA,IACtB,KAAK,MAAM,WAAW;AAAA,IACtB,KAAK,MAAM,WAAW;AAAA,IACtB,KAAK,MAAM,WAAW;AAAA,IACtB,KAAK,MAAM,WAAW;AAAA,IACtB,KAAK,MAAM,WAAW;AACrB,aAAO,SAAS;AAAA,IACjB,KAAK,MAAM,WAAW;AACrB,aAAO,SAAS;AAAA,IACjB,KAAK,MAAM,WAAW;AACrB,aAAO,SAAS;AAAA,IACjB,KAAK,MAAM,WAAW;AACrB,aAAO,SAAS;AAAA,EAAA;AAEnB;"}
@@ -0,0 +1,222 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const Typesafe = require("@contember/typesafe");
4
+ const schema = require("@contember/schema");
5
+ function _interopNamespaceDefault(e) {
6
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
7
+ if (e) {
8
+ for (const k in e) {
9
+ if (k !== "default") {
10
+ const d = Object.getOwnPropertyDescriptor(e, k);
11
+ Object.defineProperty(n, k, d.get ? d : {
12
+ enumerable: true,
13
+ get: () => e[k]
14
+ });
15
+ }
16
+ }
17
+ }
18
+ n.default = e;
19
+ return Object.freeze(n);
20
+ }
21
+ const Typesafe__namespace = /* @__PURE__ */ _interopNamespaceDefault(Typesafe);
22
+ const orderBySchema = Typesafe__namespace.array(Typesafe__namespace.object({
23
+ path: Typesafe__namespace.array(Typesafe__namespace.string),
24
+ direction: Typesafe__namespace.enumeration(
25
+ schema.Model.OrderDirection.asc,
26
+ schema.Model.OrderDirection.desc,
27
+ schema.Model.OrderDirection.ascNullsFirst,
28
+ schema.Model.OrderDirection.descNullsLast
29
+ )
30
+ }));
31
+ const joiningColumnSchema = Typesafe__namespace.object({
32
+ columnName: Typesafe__namespace.string,
33
+ onDelete: Typesafe__namespace.enumeration(schema.Model.OnDelete.cascade, schema.Model.OnDelete.restrict, schema.Model.OnDelete.setNull)
34
+ });
35
+ const oneHasManyRelationSchema = Typesafe__namespace.intersection(
36
+ Typesafe__namespace.object({
37
+ type: Typesafe__namespace.literal(schema.Model.RelationType.OneHasMany),
38
+ name: Typesafe__namespace.string,
39
+ target: Typesafe__namespace.string,
40
+ ownedBy: Typesafe__namespace.string
41
+ }),
42
+ Typesafe__namespace.partial({
43
+ orderBy: orderBySchema
44
+ })
45
+ );
46
+ const manyHasOneRelationSchema = Typesafe__namespace.intersection(
47
+ Typesafe__namespace.object({
48
+ type: Typesafe__namespace.literal(schema.Model.RelationType.ManyHasOne),
49
+ name: Typesafe__namespace.string,
50
+ target: Typesafe__namespace.string,
51
+ joiningColumn: joiningColumnSchema,
52
+ nullable: Typesafe__namespace.boolean
53
+ }),
54
+ Typesafe__namespace.partial({
55
+ inversedBy: Typesafe__namespace.string
56
+ })
57
+ );
58
+ const oneHasOneInverseRelationSchema = Typesafe__namespace.object({
59
+ type: Typesafe__namespace.literal(schema.Model.RelationType.OneHasOne),
60
+ name: Typesafe__namespace.string,
61
+ target: Typesafe__namespace.string,
62
+ ownedBy: Typesafe__namespace.string,
63
+ nullable: Typesafe__namespace.boolean
64
+ });
65
+ const oneHasOneOwningRelationSchema = Typesafe__namespace.intersection(
66
+ Typesafe__namespace.object({
67
+ type: Typesafe__namespace.literal(schema.Model.RelationType.OneHasOne),
68
+ name: Typesafe__namespace.string,
69
+ target: Typesafe__namespace.string,
70
+ joiningColumn: joiningColumnSchema,
71
+ nullable: Typesafe__namespace.boolean
72
+ }),
73
+ Typesafe__namespace.partial({
74
+ inversedBy: Typesafe__namespace.string,
75
+ orphanRemoval: Typesafe__namespace.literal(true)
76
+ })
77
+ );
78
+ const eventLogSchema = Typesafe__namespace.coalesce(
79
+ Typesafe__namespace.object({
80
+ enabled: Typesafe__namespace.boolean
81
+ }),
82
+ { enabled: true }
83
+ );
84
+ const manyHasManyOwningRelationSchema = Typesafe__namespace.intersection(
85
+ Typesafe__namespace.object({
86
+ type: Typesafe__namespace.literal(schema.Model.RelationType.ManyHasMany),
87
+ name: Typesafe__namespace.string,
88
+ target: Typesafe__namespace.string,
89
+ joiningTable: Typesafe__namespace.object({
90
+ tableName: Typesafe__namespace.string,
91
+ joiningColumn: joiningColumnSchema,
92
+ inverseJoiningColumn: joiningColumnSchema,
93
+ eventLog: eventLogSchema
94
+ })
95
+ }),
96
+ Typesafe__namespace.partial({
97
+ inversedBy: Typesafe__namespace.string,
98
+ orderBy: orderBySchema
99
+ })
100
+ );
101
+ const manyHasManyInverseRelationSchema = Typesafe__namespace.intersection(
102
+ Typesafe__namespace.object({
103
+ type: Typesafe__namespace.literal(schema.Model.RelationType.ManyHasMany),
104
+ name: Typesafe__namespace.string,
105
+ target: Typesafe__namespace.string,
106
+ ownedBy: Typesafe__namespace.string
107
+ }),
108
+ Typesafe__namespace.partial({
109
+ orderBy: orderBySchema
110
+ })
111
+ );
112
+ const intersectionSchema = Typesafe__namespace.intersection(
113
+ Typesafe__namespace.object({
114
+ precedence: Typesafe__namespace.enumeration("ALWAYS", "BY DEFAULT")
115
+ }),
116
+ Typesafe__namespace.partial({
117
+ start: Typesafe__namespace.number
118
+ })
119
+ );
120
+ const columnSchema = Typesafe__namespace.intersection(
121
+ Typesafe__namespace.object({
122
+ name: Typesafe__namespace.string,
123
+ columnName: Typesafe__namespace.string,
124
+ columnType: Typesafe__namespace.transform(Typesafe__namespace.string, (it, raw, path) => {
125
+ if (!it.replaceAll(/\s+/g, "").match(/^[\w_]+(?:\(\w+(?:,\w+)*\))?\w*(?:"[^"]+")?(\[])*$/)) {
126
+ throw Typesafe.ParseError.format(it, path, "valid column type");
127
+ }
128
+ return it;
129
+ }),
130
+ nullable: Typesafe__namespace.boolean,
131
+ type: Typesafe__namespace.enumeration(...Object.values(schema.Model.ColumnType))
132
+ }),
133
+ Typesafe__namespace.partial({
134
+ typeAlias: Typesafe__namespace.string,
135
+ list: Typesafe__namespace.boolean,
136
+ default: Typesafe__namespace.anyJson,
137
+ sequence: intersectionSchema,
138
+ collation: Typesafe__namespace.string
139
+ })
140
+ );
141
+ const fieldSchema = Typesafe__namespace.partiallyDiscriminatedUnion(
142
+ "type",
143
+ oneHasOneInverseRelationSchema,
144
+ oneHasOneOwningRelationSchema,
145
+ oneHasManyRelationSchema,
146
+ manyHasOneRelationSchema,
147
+ manyHasManyInverseRelationSchema,
148
+ manyHasManyOwningRelationSchema,
149
+ columnSchema
150
+ );
151
+ const viewSchemaInner = Typesafe__namespace.intersection(
152
+ Typesafe__namespace.object({
153
+ sql: Typesafe__namespace.string
154
+ }),
155
+ Typesafe__namespace.partial({
156
+ dependencies: Typesafe__namespace.array(Typesafe__namespace.string),
157
+ idSource: Typesafe__namespace.array(Typesafe__namespace.string),
158
+ materialized: Typesafe__namespace.boolean
159
+ })
160
+ );
161
+ const viewSchema = viewSchemaInner;
162
+ const indexSchemaBase = Typesafe__namespace.intersection(
163
+ Typesafe__namespace.object({
164
+ fields: Typesafe__namespace.array(Typesafe__namespace.string)
165
+ }),
166
+ Typesafe__namespace.partial({
167
+ name: Typesafe__namespace.string,
168
+ method: Typesafe__namespace.enumeration("btree", "gin", "gist", "hash", "brin", "spgist")
169
+ })
170
+ );
171
+ const indexesSchema = Typesafe__namespace.coalesce(
172
+ Typesafe__namespace.preprocess(
173
+ Typesafe__namespace.array(indexSchemaBase),
174
+ (it) => it?.constructor === Object ? Object.values(it) : it
175
+ ),
176
+ []
177
+ );
178
+ const uniqueConstraint = Typesafe__namespace.intersection(
179
+ Typesafe__namespace.object({
180
+ fields: Typesafe__namespace.array(Typesafe__namespace.string)
181
+ }),
182
+ Typesafe__namespace.partial({
183
+ timing: Typesafe__namespace.enumeration("deferrable", "deferred"),
184
+ name: Typesafe__namespace.string,
185
+ index: Typesafe__namespace.literal(false)
186
+ })
187
+ );
188
+ const uniqueIndex = Typesafe__namespace.intersection(
189
+ Typesafe__namespace.object({
190
+ fields: Typesafe__namespace.array(Typesafe__namespace.string),
191
+ index: Typesafe__namespace.literal(true)
192
+ }),
193
+ Typesafe__namespace.partial({
194
+ nulls: Typesafe__namespace.enumeration("distinct", "not distinct"),
195
+ method: Typesafe__namespace.enumeration("btree", "gin", "gist", "hash", "brin", "spgist")
196
+ })
197
+ );
198
+ const entitySchema = Typesafe__namespace.intersection(
199
+ Typesafe__namespace.object({
200
+ name: Typesafe__namespace.string,
201
+ primary: Typesafe__namespace.string,
202
+ primaryColumn: Typesafe__namespace.string,
203
+ tableName: Typesafe__namespace.string,
204
+ fields: Typesafe__namespace.record(Typesafe__namespace.string, fieldSchema),
205
+ unique: Typesafe__namespace.preprocess(
206
+ Typesafe__namespace.array(Typesafe__namespace.union(uniqueConstraint, uniqueIndex)),
207
+ (it) => it?.constructor === Object ? Object.values(it) : it
208
+ ),
209
+ indexes: indexesSchema,
210
+ eventLog: eventLogSchema
211
+ }),
212
+ Typesafe__namespace.partial({
213
+ view: viewSchema,
214
+ orderBy: orderBySchema
215
+ })
216
+ );
217
+ const modelSchema = Typesafe__namespace.object({
218
+ entities: Typesafe__namespace.record(Typesafe__namespace.string, entitySchema),
219
+ enums: Typesafe__namespace.record(Typesafe__namespace.string, Typesafe__namespace.array(Typesafe__namespace.string))
220
+ });
221
+ exports.modelSchema = modelSchema;
222
+ //# sourceMappingURL=model.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.cjs","sources":["../../../../../packages/schema-utils/src/type-schema/model.ts"],"sourcesContent":["import * as Typesafe from '@contember/typesafe'\nimport { Model } from '@contember/schema'\nimport { ParseError } from '@contember/typesafe'\n\nconst orderBySchema = Typesafe.array(Typesafe.object({\n\tpath: Typesafe.array(Typesafe.string),\n\tdirection: Typesafe.enumeration<Model.OrderDirection>(\n\t\tModel.OrderDirection.asc,\n\t\tModel.OrderDirection.desc,\n\t\tModel.OrderDirection.ascNullsFirst,\n\t\tModel.OrderDirection.descNullsLast,\n\t),\n}))\nconst joiningColumnSchema = Typesafe.object({\n\tcolumnName: Typesafe.string,\n\tonDelete: Typesafe.enumeration<Model.OnDelete>(Model.OnDelete.cascade, Model.OnDelete.restrict, Model.OnDelete.setNull),\n})\nconst oneHasManyRelationSchema = Typesafe.intersection(\n\tTypesafe.object({\n\t\ttype: Typesafe.literal(Model.RelationType.OneHasMany),\n\t\tname: Typesafe.string,\n\t\ttarget: Typesafe.string,\n\t\townedBy: Typesafe.string,\n\t}),\n\tTypesafe.partial({\n\t\torderBy: orderBySchema,\n\t}),\n)\nconst oneHasManyRelationSchemaCheck: Typesafe.Equals<Model.OneHasManyRelation, ReturnType<typeof oneHasManyRelationSchema>> = true\n\nconst manyHasOneRelationSchema = Typesafe.intersection(\n\tTypesafe.object({\n\t\ttype: Typesafe.literal(Model.RelationType.ManyHasOne),\n\t\tname: Typesafe.string,\n\t\ttarget: Typesafe.string,\n\t\tjoiningColumn: joiningColumnSchema,\n\t\tnullable: Typesafe.boolean,\n\t}),\n\tTypesafe.partial({\n\t\tinversedBy: Typesafe.string,\n\t}),\n)\n\nconst manyHasOneRelationSchemaCheck: Typesafe.Equals<Model.ManyHasOneRelation, ReturnType<typeof manyHasOneRelationSchema>> = true\n\nconst oneHasOneInverseRelationSchema = Typesafe.object({\n\ttype: Typesafe.literal(Model.RelationType.OneHasOne),\n\tname: Typesafe.string,\n\ttarget: Typesafe.string,\n\townedBy: Typesafe.string,\n\tnullable: Typesafe.boolean,\n})\nconst oneHasOneInverseRelationSchemaCheck: Typesafe.Equals<Model.OneHasOneInverseRelation, ReturnType<typeof oneHasOneInverseRelationSchema>> = true\n\nconst oneHasOneOwningRelationSchema = Typesafe.intersection(\n\tTypesafe.object({\n\t\ttype: Typesafe.literal(Model.RelationType.OneHasOne),\n\t\tname: Typesafe.string,\n\t\ttarget: Typesafe.string,\n\t\tjoiningColumn: joiningColumnSchema,\n\t\tnullable: Typesafe.boolean,\n\t}),\n\tTypesafe.partial({\n\t\tinversedBy: Typesafe.string,\n\t\torphanRemoval: Typesafe.literal(true),\n\t}),\n)\n\nconst oneHasOneOwningRelationSchemaCheck: Typesafe.Equals<Model.OneHasOneOwningRelation, ReturnType<typeof oneHasOneOwningRelationSchema>> = true\n\nconst eventLogSchema = Typesafe.coalesce(\n\tTypesafe.object({\n\t\tenabled: Typesafe.boolean,\n\t}),\n\t{ enabled: true },\n) as Typesafe.Type<{ readonly enabled: boolean }>\n\nconst manyHasManyOwningRelationSchema = Typesafe.intersection(\n\tTypesafe.object({\n\t\ttype: Typesafe.literal(Model.RelationType.ManyHasMany),\n\t\tname: Typesafe.string,\n\t\ttarget: Typesafe.string,\n\t\tjoiningTable: Typesafe.object({\n\t\t\ttableName: Typesafe.string,\n\t\t\tjoiningColumn: joiningColumnSchema,\n\t\t\tinverseJoiningColumn: joiningColumnSchema,\n\t\t\teventLog: eventLogSchema,\n\t\t}),\n\t}),\n\tTypesafe.partial({\n\t\tinversedBy: Typesafe.string,\n\t\torderBy: orderBySchema,\n\t}),\n)\nconst manyHasManyOwningRelationSchemaCheck: Typesafe.Equals<Model.ManyHasManyOwningRelation, ReturnType<typeof manyHasManyOwningRelationSchema>> =\n\ttrue\n\nconst manyHasManyInverseRelationSchema = Typesafe.intersection(\n\tTypesafe.object({\n\t\ttype: Typesafe.literal(Model.RelationType.ManyHasMany),\n\t\tname: Typesafe.string,\n\t\ttarget: Typesafe.string,\n\t\townedBy: Typesafe.string,\n\t}),\n\tTypesafe.partial({\n\t\torderBy: orderBySchema,\n\t}),\n)\nconst manyHasManyInverseRelationSchemaCheck: Typesafe.Equals<Model.ManyHasManyInverseRelation, ReturnType<typeof manyHasManyInverseRelationSchema>> =\n\ttrue\n\nconst intersectionSchema = Typesafe.intersection(\n\tTypesafe.object({\n\t\tprecedence: Typesafe.enumeration('ALWAYS', 'BY DEFAULT'),\n\t}),\n\tTypesafe.partial({\n\t\tstart: Typesafe.number,\n\t}),\n)\nconst intersectionSchemaCheck: Typesafe.Equals<Model.AnyColumn['sequence'], ReturnType<typeof intersectionSchema>> = true\n\nconst columnSchema = Typesafe.intersection(\n\tTypesafe.object({\n\t\tname: Typesafe.string,\n\t\tcolumnName: Typesafe.string,\n\t\tcolumnType: Typesafe.transform(Typesafe.string, (it, raw, path) => {\n\t\t\tif (!it.replaceAll(/\\s+/g, '').match(/^[\\w_]+(?:\\(\\w+(?:,\\w+)*\\))?\\w*(?:\"[^\"]+\")?(\\[])*$/)) {\n\t\t\t\tthrow ParseError.format(it, path, 'valid column type')\n\t\t\t}\n\t\t\treturn it\n\t\t}),\n\t\tnullable: Typesafe.boolean,\n\t\ttype: Typesafe.enumeration<Model.ColumnType>(...Object.values(Model.ColumnType)),\n\t}),\n\tTypesafe.partial({\n\t\ttypeAlias: Typesafe.string,\n\t\tlist: Typesafe.boolean,\n\t\tdefault: Typesafe.anyJson,\n\t\tsequence: intersectionSchema as Typesafe.Type<Model.AnyColumn['sequence']>,\n\t\tcollation: Typesafe.string as Typesafe.Type<Model.AnyColumn['collation']>,\n\t}),\n)\nconst columnSchemaCheck: Typesafe.Equals<Model.AnyColumn, ReturnType<typeof columnSchema>> = true\n\nconst fieldSchema: Typesafe.Type<Model.AnyField> = Typesafe.partiallyDiscriminatedUnion(\n\t'type',\n\toneHasOneInverseRelationSchema,\n\toneHasOneOwningRelationSchema,\n\toneHasManyRelationSchema,\n\tmanyHasOneRelationSchema,\n\tmanyHasManyInverseRelationSchema,\n\tmanyHasManyOwningRelationSchema,\n\tcolumnSchema,\n)\n\nconst viewSchemaInner = Typesafe.intersection(\n\tTypesafe.object({\n\t\tsql: Typesafe.string,\n\t}),\n\tTypesafe.partial({\n\t\tdependencies: Typesafe.array(Typesafe.string),\n\t\tidSource: Typesafe.array(Typesafe.string),\n\t\tmaterialized: Typesafe.boolean,\n\t}),\n)\nconst viewSchemaCheck: Typesafe.Equals<Model.View, ReturnType<typeof viewSchemaInner>> = true\nconst viewSchema: Typesafe.Type<Model.View> = viewSchemaInner\n\nconst indexSchemaBase = Typesafe.intersection(\n\tTypesafe.object({\n\t\tfields: Typesafe.array(Typesafe.string),\n\t}),\n\tTypesafe.partial({\n\t\tname: Typesafe.string,\n\t\tmethod: Typesafe.enumeration('btree', 'gin', 'gist', 'hash', 'brin', 'spgist'),\n\t}),\n)\nconst indexCheck: Typesafe.Equals<Model.Index, ReturnType<typeof indexSchemaBase>> = true\n\nconst indexesSchema = Typesafe.coalesce<Model.Indexes, Model.Indexes>(\n\tTypesafe.preprocess(\n\t\tTypesafe.array(indexSchemaBase),\n\t\tit => it?.constructor === Object ? Object.values(it) : it,\n\t),\n\t[],\n)\n\nconst uniqueConstraint = Typesafe.intersection(\n\tTypesafe.object({\n\t\tfields: Typesafe.array(Typesafe.string),\n\t}),\n\tTypesafe.partial({\n\t\ttiming: Typesafe.enumeration('deferrable', 'deferred'),\n\t\tname: Typesafe.string,\n\t\tindex: Typesafe.literal(false),\n\t}),\n)\nconst uniqueIndex = Typesafe.intersection(\n\tTypesafe.object({\n\t\tfields: Typesafe.array(Typesafe.string),\n\t\tindex: Typesafe.literal(true),\n\t}),\n\tTypesafe.partial({\n\t\tnulls: Typesafe.enumeration('distinct', 'not distinct'),\n\t\tmethod: Typesafe.enumeration('btree', 'gin', 'gist', 'hash', 'brin', 'spgist'),\n\t}),\n)\nconst uniqueConstraintCheck: Typesafe.Equals<Model.UniqueConstraint, ReturnType<typeof uniqueConstraint>> = true\nconst uniqueIndexCheck: Typesafe.Equals<Model.UniqueIndex, ReturnType<typeof uniqueIndex>> = true\n\nconst entitySchema = Typesafe.intersection(\n\tTypesafe.object({\n\t\tname: Typesafe.string,\n\t\tprimary: Typesafe.string,\n\t\tprimaryColumn: Typesafe.string,\n\t\ttableName: Typesafe.string,\n\t\tfields: Typesafe.record(Typesafe.string, fieldSchema),\n\t\tunique: Typesafe.preprocess<Model.Uniques>(\n\t\t\tTypesafe.array(Typesafe.union(uniqueConstraint, uniqueIndex)),\n\t\t\tit => it?.constructor === Object ? Object.values(it) : it,\n\t\t),\n\t\tindexes: indexesSchema,\n\t\teventLog: eventLogSchema,\n\t}),\n\tTypesafe.partial({\n\t\tview: viewSchema,\n\t\torderBy: orderBySchema,\n\t}),\n)\n\nconst entitySchemaCheck: Typesafe.Equals<Model.Entity, ReturnType<typeof entitySchema>> = true\n\nexport const modelSchema = Typesafe.object({\n\tentities: Typesafe.record(Typesafe.string, entitySchema),\n\tenums: Typesafe.record(Typesafe.string, Typesafe.array(Typesafe.string)),\n})\n"],"names":["Typesafe","Model","ParseError"],"mappings":"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"}