@contember/schema-utils 1.4.0-rc.8 → 2.0.0-alpha.8

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 (486) hide show
  1. package/dist/development/index.cjs +109 -0
  2. package/dist/development/index.cjs.map +1 -0
  3. package/dist/development/index.js +93 -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 +71 -0
  10. package/dist/development/src/acl/PredicateDefinitionProcessor.cjs.map +1 -0
  11. package/dist/development/src/acl/PredicateDefinitionProcessor.js +71 -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 +221 -0
  26. package/dist/development/src/definition-generator/DefinitionCodeGenerator.cjs.map +1 -0
  27. package/dist/development/src/definition-generator/DefinitionCodeGenerator.js +221 -0
  28. package/dist/development/src/definition-generator/DefinitionCodeGenerator.js.map +1 -0
  29. package/dist/development/src/definition-generator/DefinitionNamingConventions.cjs +19 -0
  30. package/dist/development/src/definition-generator/DefinitionNamingConventions.cjs.map +1 -0
  31. package/dist/development/src/definition-generator/DefinitionNamingConventions.js +19 -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 +231 -0
  50. package/dist/development/src/model/modelUtils.cjs.map +1 -0
  51. package/dist/development/src/model/modelUtils.js +231 -0
  52. package/dist/development/src/model/modelUtils.js.map +1 -0
  53. package/dist/development/src/model/resolveDefaultColumnType.cjs +28 -0
  54. package/dist/development/src/model/resolveDefaultColumnType.cjs.map +1 -0
  55. package/dist/development/src/model/resolveDefaultColumnType.js +28 -0
  56. package/dist/development/src/model/resolveDefaultColumnType.js.map +1 -0
  57. package/dist/development/src/schemaFilter.cjs +24 -0
  58. package/dist/development/src/schemaFilter.cjs.map +1 -0
  59. package/dist/development/src/schemaFilter.js +24 -0
  60. package/dist/development/src/schemaFilter.js.map +1 -0
  61. package/dist/development/src/schemaNormalizer.cjs +70 -0
  62. package/dist/development/src/schemaNormalizer.cjs.map +1 -0
  63. package/dist/development/src/schemaNormalizer.js +70 -0
  64. package/dist/development/src/schemaNormalizer.js.map +1 -0
  65. package/dist/development/src/type-schema/acl.cjs +143 -0
  66. package/dist/development/src/type-schema/acl.cjs.map +1 -0
  67. package/dist/development/src/type-schema/acl.js +126 -0
  68. package/dist/development/src/type-schema/acl.js.map +1 -0
  69. package/dist/development/src/type-schema/actions.cjs +87 -0
  70. package/dist/development/src/type-schema/actions.cjs.map +1 -0
  71. package/dist/development/src/type-schema/actions.js +70 -0
  72. package/dist/development/src/type-schema/actions.js.map +1 -0
  73. package/dist/development/src/type-schema/condition.cjs +87 -0
  74. package/dist/development/src/type-schema/condition.cjs.map +1 -0
  75. package/dist/development/src/type-schema/condition.js +70 -0
  76. package/dist/development/src/type-schema/condition.js.map +1 -0
  77. package/dist/development/src/type-schema/model.cjs +195 -0
  78. package/dist/development/src/type-schema/model.cjs.map +1 -0
  79. package/dist/development/src/type-schema/model.js +178 -0
  80. package/dist/development/src/type-schema/model.js.map +1 -0
  81. package/dist/development/src/type-schema/settings.cjs +32 -0
  82. package/dist/development/src/type-schema/settings.cjs.map +1 -0
  83. package/dist/development/src/type-schema/settings.js +15 -0
  84. package/dist/development/src/type-schema/settings.js.map +1 -0
  85. package/dist/development/src/type-schema/validation.cjs +115 -0
  86. package/dist/development/src/type-schema/validation.cjs.map +1 -0
  87. package/dist/development/src/type-schema/validation.js +98 -0
  88. package/dist/development/src/type-schema/validation.js.map +1 -0
  89. package/dist/development/src/type-schema/where.cjs +44 -0
  90. package/dist/development/src/type-schema/where.cjs.map +1 -0
  91. package/dist/development/src/type-schema/where.js +27 -0
  92. package/dist/development/src/type-schema/where.js.map +1 -0
  93. package/dist/development/src/utils/assertNever.cjs +7 -0
  94. package/dist/development/src/utils/assertNever.cjs.map +1 -0
  95. package/dist/development/src/utils/assertNever.js +7 -0
  96. package/dist/development/src/utils/assertNever.js.map +1 -0
  97. package/dist/development/src/utils/deepCompare.cjs +134 -0
  98. package/dist/development/src/utils/deepCompare.cjs.map +1 -0
  99. package/dist/development/src/utils/deepCompare.js +134 -0
  100. package/dist/development/src/utils/deepCompare.js.map +1 -0
  101. package/dist/development/src/utils/isIt.cjs +7 -0
  102. package/dist/development/src/utils/isIt.cjs.map +1 -0
  103. package/dist/development/src/utils/isIt.js +7 -0
  104. package/dist/development/src/utils/isIt.js.map +1 -0
  105. package/dist/development/src/utils/printJsValue.cjs +42 -0
  106. package/dist/development/src/utils/printJsValue.cjs.map +1 -0
  107. package/dist/development/src/utils/printJsValue.js +42 -0
  108. package/dist/development/src/utils/printJsValue.js.map +1 -0
  109. package/dist/development/src/validation/AclValidator.cjs +168 -0
  110. package/dist/development/src/validation/AclValidator.cjs.map +1 -0
  111. package/dist/development/src/validation/AclValidator.js +168 -0
  112. package/dist/development/src/validation/AclValidator.js.map +1 -0
  113. package/dist/development/src/validation/ActionsValidator.cjs +127 -0
  114. package/dist/development/src/validation/ActionsValidator.cjs.map +1 -0
  115. package/dist/development/src/validation/ActionsValidator.js +110 -0
  116. package/dist/development/src/validation/ActionsValidator.js.map +1 -0
  117. package/dist/development/src/validation/MembershipResolver.cjs +126 -0
  118. package/dist/development/src/validation/MembershipResolver.cjs.map +1 -0
  119. package/dist/development/src/validation/MembershipResolver.js +126 -0
  120. package/dist/development/src/validation/MembershipResolver.js.map +1 -0
  121. package/dist/development/src/validation/ModelValidator.cjs +310 -0
  122. package/dist/development/src/validation/ModelValidator.cjs.map +1 -0
  123. package/dist/development/src/validation/ModelValidator.js +310 -0
  124. package/dist/development/src/validation/ModelValidator.js.map +1 -0
  125. package/dist/development/src/validation/SchemaValidator.cjs +29 -0
  126. package/dist/development/src/validation/SchemaValidator.cjs.map +1 -0
  127. package/dist/development/src/validation/SchemaValidator.js +29 -0
  128. package/dist/development/src/validation/SchemaValidator.js.map +1 -0
  129. package/dist/development/src/validation/ValidationValidator.cjs +121 -0
  130. package/dist/development/src/validation/ValidationValidator.cjs.map +1 -0
  131. package/dist/development/src/validation/ValidationValidator.js +121 -0
  132. package/dist/development/src/validation/ValidationValidator.js.map +1 -0
  133. package/dist/development/src/validation/errors.cjs +16 -0
  134. package/dist/development/src/validation/errors.cjs.map +1 -0
  135. package/dist/development/src/validation/errors.js +16 -0
  136. package/dist/development/src/validation/errors.js.map +1 -0
  137. package/dist/production/index.cjs +109 -0
  138. package/dist/production/index.cjs.map +1 -0
  139. package/dist/production/index.js +93 -0
  140. package/dist/production/index.js.map +1 -0
  141. package/dist/production/src/acl/AllowAllPermissionFactory.cjs +42 -0
  142. package/dist/production/src/acl/AllowAllPermissionFactory.cjs.map +1 -0
  143. package/dist/production/src/acl/AllowAllPermissionFactory.js +42 -0
  144. package/dist/production/src/acl/AllowAllPermissionFactory.js.map +1 -0
  145. package/dist/production/src/acl/PredicateDefinitionProcessor.cjs +71 -0
  146. package/dist/production/src/acl/PredicateDefinitionProcessor.cjs.map +1 -0
  147. package/dist/production/src/acl/PredicateDefinitionProcessor.js +71 -0
  148. package/dist/production/src/acl/PredicateDefinitionProcessor.js.map +1 -0
  149. package/dist/production/src/acl/schemaUtils.cjs +11 -0
  150. package/dist/production/src/acl/schemaUtils.cjs.map +1 -0
  151. package/dist/production/src/acl/schemaUtils.js +11 -0
  152. package/dist/production/src/acl/schemaUtils.js.map +1 -0
  153. package/dist/production/src/dataUtils.cjs +59 -0
  154. package/dist/production/src/dataUtils.cjs.map +1 -0
  155. package/dist/production/src/dataUtils.js +59 -0
  156. package/dist/production/src/dataUtils.js.map +1 -0
  157. package/dist/production/src/definition-generator/AclDefinitionCodeGenerator.cjs +118 -0
  158. package/dist/production/src/definition-generator/AclDefinitionCodeGenerator.cjs.map +1 -0
  159. package/dist/production/src/definition-generator/AclDefinitionCodeGenerator.js +118 -0
  160. package/dist/production/src/definition-generator/AclDefinitionCodeGenerator.js.map +1 -0
  161. package/dist/production/src/definition-generator/DefinitionCodeGenerator.cjs +221 -0
  162. package/dist/production/src/definition-generator/DefinitionCodeGenerator.cjs.map +1 -0
  163. package/dist/production/src/definition-generator/DefinitionCodeGenerator.js +221 -0
  164. package/dist/production/src/definition-generator/DefinitionCodeGenerator.js.map +1 -0
  165. package/dist/production/src/definition-generator/DefinitionNamingConventions.cjs +19 -0
  166. package/dist/production/src/definition-generator/DefinitionNamingConventions.cjs.map +1 -0
  167. package/dist/production/src/definition-generator/DefinitionNamingConventions.js +19 -0
  168. package/dist/production/src/definition-generator/DefinitionNamingConventions.js.map +1 -0
  169. package/dist/production/src/definition-generator/TsDefinitionGenerator.cjs +17 -0
  170. package/dist/production/src/definition-generator/TsDefinitionGenerator.cjs.map +1 -0
  171. package/dist/production/src/definition-generator/TsDefinitionGenerator.js +17 -0
  172. package/dist/production/src/definition-generator/TsDefinitionGenerator.js.map +1 -0
  173. package/dist/production/src/lax/LaxSchemaConverter.cjs +202 -0
  174. package/dist/production/src/lax/LaxSchemaConverter.cjs.map +1 -0
  175. package/dist/production/src/lax/LaxSchemaConverter.js +202 -0
  176. package/dist/production/src/lax/LaxSchemaConverter.js.map +1 -0
  177. package/dist/production/src/lax/schema.cjs +70 -0
  178. package/dist/production/src/lax/schema.cjs.map +1 -0
  179. package/dist/production/src/lax/schema.js +53 -0
  180. package/dist/production/src/lax/schema.js.map +1 -0
  181. package/dist/production/src/model/NamingConventions.cjs +28 -0
  182. package/dist/production/src/model/NamingConventions.cjs.map +1 -0
  183. package/dist/production/src/model/NamingConventions.js +28 -0
  184. package/dist/production/src/model/NamingConventions.js.map +1 -0
  185. package/dist/production/src/model/modelUtils.cjs +231 -0
  186. package/dist/production/src/model/modelUtils.cjs.map +1 -0
  187. package/dist/production/src/model/modelUtils.js +231 -0
  188. package/dist/production/src/model/modelUtils.js.map +1 -0
  189. package/dist/production/src/model/resolveDefaultColumnType.cjs +28 -0
  190. package/dist/production/src/model/resolveDefaultColumnType.cjs.map +1 -0
  191. package/dist/production/src/model/resolveDefaultColumnType.js +28 -0
  192. package/dist/production/src/model/resolveDefaultColumnType.js.map +1 -0
  193. package/dist/production/src/schemaFilter.cjs +24 -0
  194. package/dist/production/src/schemaFilter.cjs.map +1 -0
  195. package/dist/production/src/schemaFilter.js +24 -0
  196. package/dist/production/src/schemaFilter.js.map +1 -0
  197. package/dist/production/src/schemaNormalizer.cjs +70 -0
  198. package/dist/production/src/schemaNormalizer.cjs.map +1 -0
  199. package/dist/production/src/schemaNormalizer.js +70 -0
  200. package/dist/production/src/schemaNormalizer.js.map +1 -0
  201. package/dist/production/src/type-schema/acl.cjs +143 -0
  202. package/dist/production/src/type-schema/acl.cjs.map +1 -0
  203. package/dist/production/src/type-schema/acl.js +126 -0
  204. package/dist/production/src/type-schema/acl.js.map +1 -0
  205. package/dist/production/src/type-schema/actions.cjs +87 -0
  206. package/dist/production/src/type-schema/actions.cjs.map +1 -0
  207. package/dist/production/src/type-schema/actions.js +70 -0
  208. package/dist/production/src/type-schema/actions.js.map +1 -0
  209. package/dist/production/src/type-schema/condition.cjs +87 -0
  210. package/dist/production/src/type-schema/condition.cjs.map +1 -0
  211. package/dist/production/src/type-schema/condition.js +70 -0
  212. package/dist/production/src/type-schema/condition.js.map +1 -0
  213. package/dist/production/src/type-schema/model.cjs +195 -0
  214. package/dist/production/src/type-schema/model.cjs.map +1 -0
  215. package/dist/production/src/type-schema/model.js +178 -0
  216. package/dist/production/src/type-schema/model.js.map +1 -0
  217. package/dist/production/src/type-schema/settings.cjs +32 -0
  218. package/dist/production/src/type-schema/settings.cjs.map +1 -0
  219. package/dist/production/src/type-schema/settings.js +15 -0
  220. package/dist/production/src/type-schema/settings.js.map +1 -0
  221. package/dist/production/src/type-schema/validation.cjs +115 -0
  222. package/dist/production/src/type-schema/validation.cjs.map +1 -0
  223. package/dist/production/src/type-schema/validation.js +98 -0
  224. package/dist/production/src/type-schema/validation.js.map +1 -0
  225. package/dist/production/src/type-schema/where.cjs +44 -0
  226. package/dist/production/src/type-schema/where.cjs.map +1 -0
  227. package/dist/production/src/type-schema/where.js +27 -0
  228. package/dist/production/src/type-schema/where.js.map +1 -0
  229. package/dist/production/src/utils/assertNever.cjs +7 -0
  230. package/dist/production/src/utils/assertNever.cjs.map +1 -0
  231. package/dist/production/src/utils/assertNever.js +7 -0
  232. package/dist/production/src/utils/assertNever.js.map +1 -0
  233. package/dist/production/src/utils/deepCompare.cjs +134 -0
  234. package/dist/production/src/utils/deepCompare.cjs.map +1 -0
  235. package/dist/production/src/utils/deepCompare.js +134 -0
  236. package/dist/production/src/utils/deepCompare.js.map +1 -0
  237. package/dist/production/src/utils/isIt.cjs +7 -0
  238. package/dist/production/src/utils/isIt.cjs.map +1 -0
  239. package/dist/production/src/utils/isIt.js +7 -0
  240. package/dist/production/src/utils/isIt.js.map +1 -0
  241. package/dist/production/src/utils/printJsValue.cjs +42 -0
  242. package/dist/production/src/utils/printJsValue.cjs.map +1 -0
  243. package/dist/production/src/utils/printJsValue.js +42 -0
  244. package/dist/production/src/utils/printJsValue.js.map +1 -0
  245. package/dist/production/src/validation/AclValidator.cjs +168 -0
  246. package/dist/production/src/validation/AclValidator.cjs.map +1 -0
  247. package/dist/production/src/validation/AclValidator.js +168 -0
  248. package/dist/production/src/validation/AclValidator.js.map +1 -0
  249. package/dist/production/src/validation/ActionsValidator.cjs +127 -0
  250. package/dist/production/src/validation/ActionsValidator.cjs.map +1 -0
  251. package/dist/production/src/validation/ActionsValidator.js +110 -0
  252. package/dist/production/src/validation/ActionsValidator.js.map +1 -0
  253. package/dist/production/src/validation/MembershipResolver.cjs +126 -0
  254. package/dist/production/src/validation/MembershipResolver.cjs.map +1 -0
  255. package/dist/production/src/validation/MembershipResolver.js +126 -0
  256. package/dist/production/src/validation/MembershipResolver.js.map +1 -0
  257. package/dist/production/src/validation/ModelValidator.cjs +310 -0
  258. package/dist/production/src/validation/ModelValidator.cjs.map +1 -0
  259. package/dist/production/src/validation/ModelValidator.js +310 -0
  260. package/dist/production/src/validation/ModelValidator.js.map +1 -0
  261. package/dist/production/src/validation/SchemaValidator.cjs +29 -0
  262. package/dist/production/src/validation/SchemaValidator.cjs.map +1 -0
  263. package/dist/production/src/validation/SchemaValidator.js +29 -0
  264. package/dist/production/src/validation/SchemaValidator.js.map +1 -0
  265. package/dist/production/src/validation/ValidationValidator.cjs +121 -0
  266. package/dist/production/src/validation/ValidationValidator.cjs.map +1 -0
  267. package/dist/production/src/validation/ValidationValidator.js +121 -0
  268. package/dist/production/src/validation/ValidationValidator.js.map +1 -0
  269. package/dist/production/src/validation/errors.cjs +16 -0
  270. package/dist/production/src/validation/errors.cjs.map +1 -0
  271. package/dist/production/src/validation/errors.js +16 -0
  272. package/dist/production/src/validation/errors.js.map +1 -0
  273. package/dist/tests/cases/unit/schemas/acl.d.ts +7 -7
  274. package/dist/tests/cases/unit/schemas/acl.d.ts.map +1 -1
  275. package/dist/tests/cases/unit/schemas/basic.d.ts +1 -1
  276. package/dist/tests/cases/unit/schemas/basic.d.ts.map +1 -1
  277. package/dist/tests/cases/unit/schemas/enum.d.ts +3 -3
  278. package/dist/tests/cases/unit/schemas/enum.d.ts.map +1 -1
  279. package/dist/tests/cases/unit/schemas/relations.d.ts +7 -7
  280. package/dist/tests/cases/unit/schemas/relations.d.ts.map +1 -1
  281. package/dist/tests/cases/unit/schemas/unique.d.ts +1 -1
  282. package/dist/tests/cases/unit/schemas/unique.d.ts.map +1 -1
  283. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  284. package/dist/{src → types}/acl/schemaUtils.d.ts.map +1 -1
  285. package/dist/{src → types}/dataUtils.d.ts +1 -1
  286. package/dist/types/dataUtils.d.ts.map +1 -0
  287. package/dist/{src → types}/lax/schema.d.ts +21 -21
  288. package/dist/{src → types}/model/modelUtils.d.ts +1 -1
  289. package/dist/types/model/modelUtils.d.ts.map +1 -0
  290. package/dist/{src → types}/model/resolveDefaultColumnType.d.ts.map +1 -1
  291. package/dist/{src → types}/schemaFilter.d.ts.map +1 -1
  292. package/dist/{src → types}/schemaNormalizer.d.ts.map +1 -1
  293. package/dist/types/tsconfig.tsbuildinfo +1 -0
  294. package/dist/{src → types}/type-schema/condition.d.ts +1 -2
  295. package/dist/types/type-schema/condition.d.ts.map +1 -0
  296. package/dist/types/type-schema/settings.d.ts +46 -0
  297. package/dist/types/type-schema/settings.d.ts.map +1 -0
  298. package/dist/{src → types}/type-schema/where.d.ts.map +1 -1
  299. package/dist/{src → types}/utils/deepCompare.d.ts.map +1 -1
  300. package/dist/types/utils/isIt.d.ts +2 -0
  301. package/dist/{src → types}/utils/isIt.d.ts.map +1 -1
  302. package/dist/{src → types}/utils/printJsValue.d.ts.map +1 -1
  303. package/dist/{src → types}/validation/MembershipResolver.d.ts.map +1 -1
  304. package/package.json +24 -12
  305. package/src/tsconfig.json +1 -1
  306. package/tests/cases/unit/tsDefinitionGenerator.test.ts +4 -3
  307. package/tests/tsconfig.json +2 -1
  308. package/vitest.config.ts +3 -0
  309. package/dist/src/acl/AllowAllPermissionFactory.js +0 -42
  310. package/dist/src/acl/AllowAllPermissionFactory.js.map +0 -1
  311. package/dist/src/acl/PredicateDefinitionProcessor.js +0 -75
  312. package/dist/src/acl/PredicateDefinitionProcessor.js.map +0 -1
  313. package/dist/src/acl/index.js +0 -20
  314. package/dist/src/acl/index.js.map +0 -1
  315. package/dist/src/acl/schemaUtils.js +0 -9
  316. package/dist/src/acl/schemaUtils.js.map +0 -1
  317. package/dist/src/dataUtils.d.ts.map +0 -1
  318. package/dist/src/dataUtils.js +0 -58
  319. package/dist/src/dataUtils.js.map +0 -1
  320. package/dist/src/definition-generator/AclDefinitionCodeGenerator.js +0 -116
  321. package/dist/src/definition-generator/AclDefinitionCodeGenerator.js.map +0 -1
  322. package/dist/src/definition-generator/DefinitionCodeGenerator.js +0 -216
  323. package/dist/src/definition-generator/DefinitionCodeGenerator.js.map +0 -1
  324. package/dist/src/definition-generator/DefinitionNamingConventions.js +0 -18
  325. package/dist/src/definition-generator/DefinitionNamingConventions.js.map +0 -1
  326. package/dist/src/definition-generator/TsDefinitionGenerator.js +0 -20
  327. package/dist/src/definition-generator/TsDefinitionGenerator.js.map +0 -1
  328. package/dist/src/definition-generator/index.js +0 -21
  329. package/dist/src/definition-generator/index.js.map +0 -1
  330. package/dist/src/index.js +0 -59
  331. package/dist/src/index.js.map +0 -1
  332. package/dist/src/lax/LaxSchemaConverter.js +0 -203
  333. package/dist/src/lax/LaxSchemaConverter.js.map +0 -1
  334. package/dist/src/lax/index.js +0 -21
  335. package/dist/src/lax/index.js.map +0 -1
  336. package/dist/src/lax/schema.js +0 -67
  337. package/dist/src/lax/schema.js.map +0 -1
  338. package/dist/src/model/NamingConventions.js +0 -29
  339. package/dist/src/model/NamingConventions.js.map +0 -1
  340. package/dist/src/model/index.js +0 -20
  341. package/dist/src/model/index.js.map +0 -1
  342. package/dist/src/model/modelUtils.d.ts.map +0 -1
  343. package/dist/src/model/modelUtils.js +0 -219
  344. package/dist/src/model/modelUtils.js.map +0 -1
  345. package/dist/src/model/resolveDefaultColumnType.js +0 -29
  346. package/dist/src/model/resolveDefaultColumnType.js.map +0 -1
  347. package/dist/src/schemaFilter.js +0 -29
  348. package/dist/src/schemaFilter.js.map +0 -1
  349. package/dist/src/schemaNormalizer.js +0 -72
  350. package/dist/src/schemaNormalizer.js.map +0 -1
  351. package/dist/src/tsconfig.tsbuildinfo +0 -1
  352. package/dist/src/type-schema/acl.js +0 -114
  353. package/dist/src/type-schema/acl.js.map +0 -1
  354. package/dist/src/type-schema/actions.js +0 -77
  355. package/dist/src/type-schema/actions.js.map +0 -1
  356. package/dist/src/type-schema/condition.d.ts.map +0 -1
  357. package/dist/src/type-schema/condition.js +0 -95
  358. package/dist/src/type-schema/condition.js.map +0 -1
  359. package/dist/src/type-schema/index.js +0 -22
  360. package/dist/src/type-schema/index.js.map +0 -1
  361. package/dist/src/type-schema/model.js +0 -156
  362. package/dist/src/type-schema/model.js.map +0 -1
  363. package/dist/src/type-schema/settings.d.ts +0 -35
  364. package/dist/src/type-schema/settings.d.ts.map +0 -1
  365. package/dist/src/type-schema/settings.js +0 -39
  366. package/dist/src/type-schema/settings.js.map +0 -1
  367. package/dist/src/type-schema/validation.js +0 -95
  368. package/dist/src/type-schema/validation.js.map +0 -1
  369. package/dist/src/type-schema/where.js +0 -50
  370. package/dist/src/type-schema/where.js.map +0 -1
  371. package/dist/src/utils/assertNever.js +0 -8
  372. package/dist/src/utils/assertNever.js.map +0 -1
  373. package/dist/src/utils/deepCompare.js +0 -136
  374. package/dist/src/utils/deepCompare.js.map +0 -1
  375. package/dist/src/utils/index.js +0 -20
  376. package/dist/src/utils/index.js.map +0 -1
  377. package/dist/src/utils/isIt.d.ts +0 -2
  378. package/dist/src/utils/isIt.js +0 -11
  379. package/dist/src/utils/isIt.js.map +0 -1
  380. package/dist/src/utils/printJsValue.js +0 -57
  381. package/dist/src/utils/printJsValue.js.map +0 -1
  382. package/dist/src/validation/AclValidator.js +0 -147
  383. package/dist/src/validation/AclValidator.js.map +0 -1
  384. package/dist/src/validation/ActionsValidator.js +0 -134
  385. package/dist/src/validation/ActionsValidator.js.map +0 -1
  386. package/dist/src/validation/MembershipResolver.js +0 -113
  387. package/dist/src/validation/MembershipResolver.js.map +0 -1
  388. package/dist/src/validation/ModelValidator.js +0 -306
  389. package/dist/src/validation/ModelValidator.js.map +0 -1
  390. package/dist/src/validation/SchemaValidator.js +0 -27
  391. package/dist/src/validation/SchemaValidator.js.map +0 -1
  392. package/dist/src/validation/ValidationValidator.js +0 -109
  393. package/dist/src/validation/ValidationValidator.js.map +0 -1
  394. package/dist/src/validation/errors.js +0 -17
  395. package/dist/src/validation/errors.js.map +0 -1
  396. package/dist/src/validation/index.js +0 -23
  397. package/dist/src/validation/index.js.map +0 -1
  398. package/dist/tests/cases/unit/conditionSchema.test.js +0 -50
  399. package/dist/tests/cases/unit/conditionSchema.test.js.map +0 -1
  400. package/dist/tests/cases/unit/deepCompare.test.js +0 -43
  401. package/dist/tests/cases/unit/deepCompare.test.js.map +0 -1
  402. package/dist/tests/cases/unit/laxSchemaConverter.test.js +0 -118
  403. package/dist/tests/cases/unit/laxSchemaConverter.test.js.map +0 -1
  404. package/dist/tests/cases/unit/membershipResolver.test.js +0 -168
  405. package/dist/tests/cases/unit/membershipResolver.test.js.map +0 -1
  406. package/dist/tests/cases/unit/modelValidator.test.js +0 -97
  407. package/dist/tests/cases/unit/modelValidator.test.js.map +0 -1
  408. package/dist/tests/cases/unit/printJsvalue.test.js +0 -90
  409. package/dist/tests/cases/unit/printJsvalue.test.js.map +0 -1
  410. package/dist/tests/cases/unit/schemas/acl.js +0 -47
  411. package/dist/tests/cases/unit/schemas/acl.js.map +0 -1
  412. package/dist/tests/cases/unit/schemas/basic.js +0 -11
  413. package/dist/tests/cases/unit/schemas/basic.js.map +0 -1
  414. package/dist/tests/cases/unit/schemas/enum.js +0 -13
  415. package/dist/tests/cases/unit/schemas/enum.js.map +0 -1
  416. package/dist/tests/cases/unit/schemas/relations.js +0 -27
  417. package/dist/tests/cases/unit/schemas/relations.js.map +0 -1
  418. package/dist/tests/cases/unit/schemas/unique.js +0 -20
  419. package/dist/tests/cases/unit/schemas/unique.js.map +0 -1
  420. package/dist/tests/cases/unit/tsDefinitionGenerator.test.js +0 -58
  421. package/dist/tests/cases/unit/tsDefinitionGenerator.test.js.map +0 -1
  422. package/dist/tests/cases/unit/whereSchema.test.js +0 -85
  423. package/dist/tests/cases/unit/whereSchema.test.js.map +0 -1
  424. /package/dist/{src → types}/acl/AllowAllPermissionFactory.d.ts +0 -0
  425. /package/dist/{src → types}/acl/AllowAllPermissionFactory.d.ts.map +0 -0
  426. /package/dist/{src → types}/acl/PredicateDefinitionProcessor.d.ts +0 -0
  427. /package/dist/{src → types}/acl/PredicateDefinitionProcessor.d.ts.map +0 -0
  428. /package/dist/{src → types}/acl/index.d.ts +0 -0
  429. /package/dist/{src → types}/acl/index.d.ts.map +0 -0
  430. /package/dist/{src → types}/acl/schemaUtils.d.ts +0 -0
  431. /package/dist/{src → types}/definition-generator/AclDefinitionCodeGenerator.d.ts +0 -0
  432. /package/dist/{src → types}/definition-generator/AclDefinitionCodeGenerator.d.ts.map +0 -0
  433. /package/dist/{src → types}/definition-generator/DefinitionCodeGenerator.d.ts +0 -0
  434. /package/dist/{src → types}/definition-generator/DefinitionCodeGenerator.d.ts.map +0 -0
  435. /package/dist/{src → types}/definition-generator/DefinitionNamingConventions.d.ts +0 -0
  436. /package/dist/{src → types}/definition-generator/DefinitionNamingConventions.d.ts.map +0 -0
  437. /package/dist/{src → types}/definition-generator/TsDefinitionGenerator.d.ts +0 -0
  438. /package/dist/{src → types}/definition-generator/TsDefinitionGenerator.d.ts.map +0 -0
  439. /package/dist/{src → types}/definition-generator/index.d.ts +0 -0
  440. /package/dist/{src → types}/definition-generator/index.d.ts.map +0 -0
  441. /package/dist/{src → types}/index.d.ts +0 -0
  442. /package/dist/{src → types}/index.d.ts.map +0 -0
  443. /package/dist/{src → types}/lax/LaxSchemaConverter.d.ts +0 -0
  444. /package/dist/{src → types}/lax/LaxSchemaConverter.d.ts.map +0 -0
  445. /package/dist/{src → types}/lax/index.d.ts +0 -0
  446. /package/dist/{src → types}/lax/index.d.ts.map +0 -0
  447. /package/dist/{src → types}/lax/schema.d.ts.map +0 -0
  448. /package/dist/{src → types}/model/NamingConventions.d.ts +0 -0
  449. /package/dist/{src → types}/model/NamingConventions.d.ts.map +0 -0
  450. /package/dist/{src → types}/model/index.d.ts +0 -0
  451. /package/dist/{src → types}/model/index.d.ts.map +0 -0
  452. /package/dist/{src → types}/model/resolveDefaultColumnType.d.ts +0 -0
  453. /package/dist/{src → types}/schemaFilter.d.ts +0 -0
  454. /package/dist/{src → types}/schemaNormalizer.d.ts +0 -0
  455. /package/dist/{src → types}/type-schema/acl.d.ts +0 -0
  456. /package/dist/{src → types}/type-schema/acl.d.ts.map +0 -0
  457. /package/dist/{src → types}/type-schema/actions.d.ts +0 -0
  458. /package/dist/{src → types}/type-schema/actions.d.ts.map +0 -0
  459. /package/dist/{src → types}/type-schema/index.d.ts +0 -0
  460. /package/dist/{src → types}/type-schema/index.d.ts.map +0 -0
  461. /package/dist/{src → types}/type-schema/model.d.ts +0 -0
  462. /package/dist/{src → types}/type-schema/model.d.ts.map +0 -0
  463. /package/dist/{src → types}/type-schema/validation.d.ts +0 -0
  464. /package/dist/{src → types}/type-schema/validation.d.ts.map +0 -0
  465. /package/dist/{src → types}/type-schema/where.d.ts +0 -0
  466. /package/dist/{src → types}/utils/assertNever.d.ts +0 -0
  467. /package/dist/{src → types}/utils/assertNever.d.ts.map +0 -0
  468. /package/dist/{src → types}/utils/deepCompare.d.ts +0 -0
  469. /package/dist/{src → types}/utils/index.d.ts +0 -0
  470. /package/dist/{src → types}/utils/index.d.ts.map +0 -0
  471. /package/dist/{src → types}/utils/printJsValue.d.ts +0 -0
  472. /package/dist/{src → types}/validation/AclValidator.d.ts +0 -0
  473. /package/dist/{src → types}/validation/AclValidator.d.ts.map +0 -0
  474. /package/dist/{src → types}/validation/ActionsValidator.d.ts +0 -0
  475. /package/dist/{src → types}/validation/ActionsValidator.d.ts.map +0 -0
  476. /package/dist/{src → types}/validation/MembershipResolver.d.ts +0 -0
  477. /package/dist/{src → types}/validation/ModelValidator.d.ts +0 -0
  478. /package/dist/{src → types}/validation/ModelValidator.d.ts.map +0 -0
  479. /package/dist/{src → types}/validation/SchemaValidator.d.ts +0 -0
  480. /package/dist/{src → types}/validation/SchemaValidator.d.ts.map +0 -0
  481. /package/dist/{src → types}/validation/ValidationValidator.d.ts +0 -0
  482. /package/dist/{src → types}/validation/ValidationValidator.d.ts.map +0 -0
  483. /package/dist/{src → types}/validation/errors.d.ts +0 -0
  484. /package/dist/{src → types}/validation/errors.d.ts.map +0 -0
  485. /package/dist/{src → types}/validation/index.d.ts +0 -0
  486. /package/dist/{src → types}/validation/index.d.ts.map +0 -0
@@ -1,306 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ModelValidator = void 0;
4
- const schema_1 = require("@contember/schema");
5
- const errors_1 = require("./errors");
6
- const model_1 = require("../model");
7
- const IDENTIFIER_PATTERN = /^[_a-zA-Z][_a-zA-Z0-9]*$/;
8
- const RESERVED_WORDS = ['and', 'or', 'not'];
9
- class ModelValidator {
10
- constructor(model) {
11
- this.model = model;
12
- }
13
- validate() {
14
- const errorBuilder = new errors_1.ErrorBuilder([], []);
15
- this.validateEnums(this.model.enums, errorBuilder.for('enums'));
16
- this.validateEntities(this.model.entities, errorBuilder.for('entities'));
17
- return errorBuilder.errors;
18
- }
19
- validateEnums(enums, errors) {
20
- for (const [enumName, enumValues] of Object.entries(enums)) {
21
- for (const value of enumValues) {
22
- const valueErrors = errors.for(enumName, value);
23
- this.validateIdentifier(value, valueErrors);
24
- }
25
- }
26
- }
27
- validateEntities(entities, errors) {
28
- for (const [entityName, entity] of Object.entries(entities)) {
29
- const entityErrors = errors.for(entityName);
30
- if (entity.name !== entityName) {
31
- entityErrors.add('MODEL_NAME_MISMATCH', `Entity name "${entity.name}" does not match the name in a map "${entityName}"`);
32
- }
33
- this.validateEntity(entity, entityErrors);
34
- }
35
- const entitiesArr = Object.values(this.model.entities);
36
- this.validateMetaSuffixCollisions(entitiesArr, errors);
37
- this.validateTableNameCollisions(entitiesArr, errors);
38
- this.validateAliasedTypesCollision(entitiesArr, errors);
39
- }
40
- validateEntity(entity, errors) {
41
- this.validateIdentifier(entity.name, errors);
42
- this.validateEntityName(entity.name, errors);
43
- for (const [fieldName, field] of Object.entries(entity.fields)) {
44
- const fieldErrors = errors.for(fieldName);
45
- this.validateField(entity, field, fieldErrors);
46
- if (field.name !== fieldName) {
47
- fieldErrors.add('MODEL_NAME_MISMATCH', `Field name "${field.name}" does not match the name in a map "${fieldName}"`);
48
- }
49
- }
50
- this.validateUniqueConstraints(entity.unique, new Set(Object.keys(entity.fields)), errors.for('unique'));
51
- this.validateColumnNamesCollision(entity, errors);
52
- }
53
- validateUniqueConstraints(uniqueConstraints, fields, errors) {
54
- for (const constraint of uniqueConstraints) {
55
- for (const field of constraint.fields) {
56
- if (!fields.has(field)) {
57
- errors.add('MODEL_UNDEFINED_FIELD', `Referenced field ${field} in a constraint does not exists`);
58
- }
59
- }
60
- }
61
- }
62
- validateColumnNamesCollision(entity, errors) {
63
- const existingColumnNames = new Map();
64
- const addColumnName = (fieldName, columnName) => {
65
- if (existingColumnNames.has(columnName)) {
66
- const exitingName = existingColumnNames.get(columnName);
67
- errors
68
- .for(fieldName)
69
- .add('MODEL_NAME_COLLISION', `Column name "${columnName}" on field "${fieldName}" collides with a column name on field "${exitingName}".`);
70
- }
71
- existingColumnNames.set(columnName, fieldName);
72
- };
73
- (0, model_1.acceptEveryFieldVisitor)(this.model, entity, {
74
- visitColumn: ({ column }) => {
75
- addColumnName(column.name, column.columnName);
76
- },
77
- visitOneHasOneOwning: ({ relation }) => {
78
- addColumnName(relation.name, relation.joiningColumn.columnName);
79
- },
80
- visitManyHasOne: ({ relation }) => {
81
- addColumnName(relation.name, relation.joiningColumn.columnName);
82
- },
83
- visitOneHasOneInverse: () => { },
84
- visitOneHasMany: () => { },
85
- visitManyHasManyInverse: () => { },
86
- visitManyHasManyOwning: () => { },
87
- });
88
- }
89
- validateField(partialEntity, field, errors) {
90
- this.validateIdentifier(field.name, errors);
91
- if (isRelation(field)) {
92
- this.validateRelation(partialEntity, field, errors);
93
- }
94
- else {
95
- if (field.sequence && field.nullable) {
96
- errors.add('MODEL_INVALID_COLUMN_DEFINITION', 'Column with sequence cannot be nullable.');
97
- }
98
- }
99
- }
100
- validateRelation(partialEntity, field, errors) {
101
- var _a;
102
- const entityName = partialEntity.name;
103
- const targetEntityName = field.target;
104
- const targetEntity = this.model.entities[targetEntityName] || undefined;
105
- if (!targetEntity) {
106
- return errors.add('MODEL_UNDEFINED_ENTITY', `Target entity ${targetEntityName} not found`);
107
- }
108
- if (((it) => 'orderBy' in it)(field)) {
109
- (_a = field.orderBy) === null || _a === void 0 ? void 0 : _a.forEach(it => {
110
- let entity = targetEntity;
111
- for (let i = 0; i < it.path.length; i++) {
112
- const orderByField = entity.fields[it.path[i]];
113
- const pathStr = it.path.slice(0, i + 1).join('.');
114
- if (!orderByField) {
115
- errors.add('MODEL_UNDEFINED_FIELD', `Invalid orderBy of ${entityName}::${field.name}: field ${pathStr} is not defined`);
116
- return;
117
- }
118
- if (i + 1 < it.path.length) {
119
- const targetEntity = (0, model_1.getTargetEntity)(this.model, entity, orderByField.name);
120
- if (!targetEntity) {
121
- errors.add('MODEL_RELATION_REQUIRED', `Invalid orderBy of ${entityName}::${field.name}: field ${pathStr} is not a relation`);
122
- return;
123
- }
124
- entity = targetEntity;
125
- }
126
- }
127
- });
128
- }
129
- if (partialEntity.view) {
130
- if (field.type === schema_1.Model.RelationType.ManyHasMany) {
131
- return errors.add('MODEL_INVALID_VIEW_USAGE', 'Many-has-many relation is not allowed on a view entity.');
132
- }
133
- if (!targetEntity.view &&
134
- field.type === schema_1.Model.RelationType.OneHasMany) {
135
- return errors.add('MODEL_INVALID_VIEW_USAGE', 'One-has-many relation fields on views must point to a view entity.');
136
- }
137
- if (!targetEntity.view &&
138
- field.type === schema_1.Model.RelationType.OneHasOne &&
139
- !('joiningColumn' in field)) {
140
- return errors.add('MODEL_INVALID_VIEW_USAGE', 'One-has-one relation fields on views must be owning or point to a view entity.');
141
- }
142
- }
143
- if ((0, model_1.isInverseRelation)(field)) {
144
- const ownedBy = field.ownedBy;
145
- const targetField = targetEntity.fields[ownedBy];
146
- const relationDescription = `Target relation ${targetEntityName}::${ownedBy}:`;
147
- if (!targetField) {
148
- return errors.add('MODEL_UNDEFINED_FIELD', `${relationDescription} not exists`);
149
- }
150
- if (!isRelation(targetField)) {
151
- return errors.add('MODEL_RELATION_REQUIRED', `${relationDescription} not a relation`);
152
- }
153
- if (targetField.target !== entityName) {
154
- return errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} back reference to entity ${entityName} expected, but ${targetField.target} given`);
155
- }
156
- if (!(0, model_1.isOwningRelation)(targetField)) {
157
- errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} not an owning relation`);
158
- return;
159
- }
160
- if (!targetField.inversedBy) {
161
- return errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} inverse relation is not set`);
162
- }
163
- if (targetField.inversedBy !== field.name) {
164
- return errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} back reference ${entityName}::${field.name} expected, ${targetField.target}::${targetField.inversedBy} given`);
165
- }
166
- if (field.type === schema_1.Model.RelationType.OneHasOne && targetField.type !== schema_1.Model.RelationType.OneHasOne) {
167
- return errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} "OneHasOne" type expected, "${targetField.type}" given`);
168
- }
169
- if (field.type === schema_1.Model.RelationType.OneHasMany && targetField.type !== schema_1.Model.RelationType.ManyHasOne) {
170
- return errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} "ManyHasOne" type expected, "${targetField.type}" given`);
171
- }
172
- if (field.type === schema_1.Model.RelationType.ManyHasMany && targetField.type !== schema_1.Model.RelationType.ManyHasMany) {
173
- return errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} "ManyHasMany" type expected, "${targetField.type}" given`);
174
- }
175
- }
176
- else {
177
- const inversedBy = field.inversedBy;
178
- if (targetEntity.view) {
179
- if ('joiningColumn' in field) {
180
- return errors.add('MODEL_INVALID_VIEW_USAGE', `View entity ${targetEntity.name} cannot be referenced from an owning relation. Try switching the owning side.`);
181
- }
182
- }
183
- if (inversedBy) {
184
- const targetField = targetEntity.fields[inversedBy];
185
- const relationDescription = `Target relation ${targetEntityName}::${inversedBy}:`;
186
- if (!targetField) {
187
- return errors.add('MODEL_UNDEFINED_FIELD', `${relationDescription} not exists`);
188
- }
189
- if (!isRelation(targetField)) {
190
- return errors.add('MODEL_RELATION_REQUIRED', `${relationDescription} not a relation`);
191
- }
192
- if (targetField.target !== entityName) {
193
- return errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} back reference to entity ${entityName} expected, but ${targetField.target} given`);
194
- }
195
- if (!(0, model_1.isInverseRelation)(targetField)) {
196
- return errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} not an inverse relation`);
197
- }
198
- if (!targetField.ownedBy) {
199
- return errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} owning relation is not set`);
200
- }
201
- if (targetField.ownedBy !== field.name) {
202
- return errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} back reference ${entityName}::${field.name} expected, ${targetField.target}::${targetField.ownedBy} given`);
203
- }
204
- if (field.type === schema_1.Model.RelationType.OneHasOne && targetField.type !== schema_1.Model.RelationType.OneHasOne) {
205
- return errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} "OneHasOne" type expected, "${targetField.type}" given`);
206
- }
207
- if (field.type === schema_1.Model.RelationType.ManyHasOne && targetField.type !== schema_1.Model.RelationType.OneHasMany) {
208
- return errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} "ManyHasOne" type expected, "${targetField.type}" given`);
209
- }
210
- if (field.type === schema_1.Model.RelationType.ManyHasMany && targetField.type !== schema_1.Model.RelationType.ManyHasMany) {
211
- return errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} "ManyHasMany" type expected, "${targetField.type}" given`);
212
- }
213
- }
214
- }
215
- }
216
- validateIdentifier(value, errorBuilder) {
217
- if (!value.match(IDENTIFIER_PATTERN)) {
218
- return errorBuilder.add('MODEL_INVALID_IDENTIFIER', `${value} must match pattern ${IDENTIFIER_PATTERN.source}`);
219
- }
220
- if (RESERVED_WORDS.includes(value)) {
221
- errorBuilder.add('MODEL_INVALID_IDENTIFIER', `${value} is reserved word`);
222
- }
223
- }
224
- validateEntityName(value, errorBuilder) {
225
- if (['Query', 'Mutation'].includes(value)) {
226
- errorBuilder.add('MODEL_INVALID_ENTITY_NAME', `${value} is reserved word`);
227
- }
228
- }
229
- validateMetaSuffixCollisions(entities, errorBuilder) {
230
- const entityNames = new Set(entities.map(it => it.name));
231
- for (const entity of entities) {
232
- if (entity.name.endsWith('Meta')) {
233
- const baseName = entity.name.substring(0, entity.name.length - 4);
234
- if (entityNames.has(baseName)) {
235
- errorBuilder.for(entity.name)
236
- .add('MODEL_NAME_COLLISION', `entity ${entity.name} collides with entity ${baseName}, because a GraphQL type with "Meta" suffix is created for every entity`);
237
- }
238
- }
239
- }
240
- }
241
- validateTableNameCollisions(entities, errorBuilder) {
242
- const relationNames = {};
243
- for (const entity of entities) {
244
- const description = `table name ${entity.tableName} of entity ${entity.name}`;
245
- if (relationNames[entity.tableName]) {
246
- errorBuilder
247
- .for(entity.name)
248
- .add('MODEL_NAME_COLLISION', `${description} collides with a ${relationNames[entity.tableName]}`);
249
- }
250
- else {
251
- relationNames[entity.tableName] = description;
252
- }
253
- }
254
- for (const entity of entities) {
255
- const entityErrorBuilder = errorBuilder.for(entity.name);
256
- (0, model_1.acceptEveryFieldVisitor)(this.model, entity, {
257
- visitManyHasManyOwning: ({ entity, relation }) => {
258
- const joiningTable = relation.joiningTable;
259
- const description = `joining table name ${joiningTable.tableName} of relation ${entity.name}::${relation.name}`;
260
- if (relationNames[joiningTable.tableName]) {
261
- entityErrorBuilder
262
- .for(relation.name)
263
- .add('MODEL_NAME_COLLISION', `${description} collides with a ${relationNames[joiningTable.tableName]}.` +
264
- 'Consider using plural for a relation name or change the joining table name using .joiningTable(...) in schema definition.');
265
- }
266
- else {
267
- relationNames[joiningTable.tableName] = description;
268
- }
269
- },
270
- visitColumn: () => { },
271
- visitManyHasManyInverse: () => { },
272
- visitOneHasMany: () => { },
273
- visitOneHasOneInverse: () => { },
274
- visitOneHasOneOwning: () => { },
275
- visitManyHasOne: () => { },
276
- });
277
- }
278
- }
279
- validateAliasedTypesCollision(entities, errorBuilder) {
280
- const aliasedTypes = new Map();
281
- for (const entity of entities) {
282
- (0, model_1.acceptEveryFieldVisitor)(this.model, entity, {
283
- visitColumn: ({ column }) => {
284
- if (!column.typeAlias) {
285
- return;
286
- }
287
- if (aliasedTypes.has(column.typeAlias) && aliasedTypes.get(column.typeAlias) !== column.type) {
288
- errorBuilder
289
- .for(column.name)
290
- .add('MODEL_NAME_COLLISION', `Type alias ${column.typeAlias} already exists for base type ${column.type}`);
291
- }
292
- aliasedTypes.set(column.typeAlias, column.type);
293
- },
294
- visitManyHasManyOwning: () => { },
295
- visitManyHasManyInverse: () => { },
296
- visitOneHasMany: () => { },
297
- visitOneHasOneInverse: () => { },
298
- visitOneHasOneOwning: () => { },
299
- visitManyHasOne: () => { },
300
- });
301
- }
302
- }
303
- }
304
- exports.ModelValidator = ModelValidator;
305
- const isRelation = (field) => Object.values(schema_1.Model.RelationType).includes(field.type);
306
- //# sourceMappingURL=ModelValidator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ModelValidator.js","sourceRoot":"","sources":["../../../src/validation/ModelValidator.ts"],"names":[],"mappings":"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"}
@@ -1,27 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SchemaValidator = void 0;
4
- const AclValidator_1 = require("./AclValidator");
5
- const ModelValidator_1 = require("./ModelValidator");
6
- const ValidationValidator_1 = require("./ValidationValidator");
7
- const ActionsValidator_1 = require("./ActionsValidator");
8
- class SchemaValidator {
9
- static validate(schema, skippedErrors = []) {
10
- const modelValidator = new ModelValidator_1.ModelValidator(schema.model);
11
- const modelErrors = modelValidator.validate();
12
- const aclValidator = new AclValidator_1.AclValidator(schema.model);
13
- const aclErrors = aclValidator.validate(schema.acl);
14
- const validationValidator = new ValidationValidator_1.ValidationValidator(schema.model);
15
- const validationErrors = validationValidator.validate(schema.validation);
16
- const actionsValidator = new ActionsValidator_1.ActionsValidator(schema.model);
17
- const actionsErrors = actionsValidator.validate(schema.actions);
18
- const allErrors = [...aclErrors, ...modelErrors, ...validationErrors, ...actionsErrors];
19
- if (skippedErrors.length === 0) {
20
- return allErrors;
21
- }
22
- return allErrors.filter(err => !skippedErrors.some(rule => err.code === rule.code
23
- && (!rule.path || err.path.join('.') === rule.path)));
24
- }
25
- }
26
- exports.SchemaValidator = SchemaValidator;
27
- //# sourceMappingURL=SchemaValidator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SchemaValidator.js","sourceRoot":"","sources":["../../../src/validation/SchemaValidator.ts"],"names":[],"mappings":";;;AAEA,iDAA6C;AAC7C,qDAAiD;AACjD,+DAA2D;AAC3D,yDAAqD;AAQrD,MAAa,eAAe;IACpB,MAAM,CAAC,QAAQ,CAAC,MAAc,EAAE,gBAAgD,EAAE;QACxF,MAAM,cAAc,GAAG,IAAI,+BAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACvD,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAA;QAE7C,MAAM,YAAY,GAAG,IAAI,2BAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACnD,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAGnD,MAAM,mBAAmB,GAAG,IAAI,yCAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACjE,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAExE,MAAM,gBAAgB,GAAG,IAAI,mCAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC3D,MAAM,aAAa,GAAI,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAEhE,MAAM,SAAS,GAAG,CAAC,GAAG,SAAS,EAAE,GAAG,WAAW,EAAE,GAAG,gBAAgB,EAAE,GAAG,aAAa,CAAC,CAAA;QACvF,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;YAC/B,OAAO,SAAS,CAAA;SAChB;QACD,OAAO,SAAS,CAAC,MAAM,CACtB,GAAG,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,IAAI,CACzB,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;eAC1B,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CACpD,CACD,CAAA;IACF,CAAC;CACD;AA1BD,0CA0BC"}
@@ -1,109 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ValidationValidator = void 0;
4
- const errors_1 = require("./errors");
5
- const model_1 = require("../model");
6
- class ValidationValidator {
7
- constructor(model) {
8
- this.model = model;
9
- }
10
- validate(schema) {
11
- const errorBuilder = new errors_1.ErrorBuilder([], ['validation']);
12
- for (const entityName in schema) {
13
- const entity = this.model.entities[entityName];
14
- const entityErrorBuilder = errorBuilder.for(entityName);
15
- if (!entity) {
16
- entityErrorBuilder.add('VALIDATION_UNDEFINED_ENTITY', 'Entity not found');
17
- }
18
- else {
19
- this.validateEntityRules(entityErrorBuilder, schema[entityName], entity);
20
- }
21
- }
22
- return errorBuilder.errors;
23
- }
24
- validateEntityRules(errorBuilder, entitySchema, entity) {
25
- for (const fieldName in entitySchema) {
26
- const field = entity.fields[fieldName];
27
- const fieldErrorBuilder = errorBuilder.for(fieldName);
28
- if (!field) {
29
- fieldErrorBuilder.add('VALIDATION_UNDEFINED_FIELD', 'Field not found');
30
- }
31
- else {
32
- this.validateFieldRules(fieldErrorBuilder, entitySchema[fieldName], entity, field);
33
- }
34
- }
35
- }
36
- validateFieldRules(errorBuilder, fieldSchema, entity, field) {
37
- for (const i in fieldSchema) {
38
- this.validateFieldRule(errorBuilder.for(i), fieldSchema[i], entity, field);
39
- }
40
- }
41
- validateFieldRule(errorBuilder, rule, entity, field) {
42
- const errorMessage = (0, model_1.acceptFieldVisitor)(this.model, entity, field, {
43
- visitColumn: () => null,
44
- visitHasOne: () => null,
45
- visitHasMany: () => {
46
- return 'Rules on has-many relations are currently not supported.';
47
- },
48
- });
49
- if (errorMessage) {
50
- return errorBuilder.add('VALIDATION_NOT_IMPLEMENTED', errorMessage);
51
- }
52
- this.validateValidator(errorBuilder.for('validator'), rule.validator, entity, field);
53
- }
54
- validateValidator(errorBuilder, validator, entity, field) {
55
- const validatorCast = validator;
56
- switch (validatorCast.operation) {
57
- case 'and':
58
- case 'or':
59
- return validatorCast.args
60
- .forEach((it, index) => this.validateValidatorArgument(errorBuilder.for(String(index)), it, entity, field));
61
- case 'conditional':
62
- this.validateValidatorArgument(errorBuilder.for('condition'), validatorCast.args[0], entity, field);
63
- this.validateValidatorArgument(errorBuilder.for('rule'), validatorCast.args[1], entity, field);
64
- return;
65
- case 'pattern':
66
- case 'lengthRange':
67
- case 'range':
68
- case 'equals':
69
- case 'empty':
70
- case 'defined':
71
- return;
72
- case 'not':
73
- return this.validateValidatorArgument(errorBuilder, validatorCast.args[0], entity, field);
74
- case 'inContext':
75
- const pathArgResult = this.validatePathArgument(errorBuilder.for('path'), validatorCast.args[0], entity);
76
- if (pathArgResult === undefined) {
77
- return undefined;
78
- }
79
- return this.validateValidatorArgument(errorBuilder.for('validator'), validatorCast.args[1], entity, pathArgResult);
80
- case 'every':
81
- case 'any':
82
- return this.validateValidatorArgument(errorBuilder, validatorCast.args[0], entity, field);
83
- case 'filter':
84
- this.validateValidatorArgument(errorBuilder.for('filter'), validatorCast.args[0], entity, field);
85
- this.validateValidatorArgument(errorBuilder.for('validator'), validatorCast.args[1], entity, field);
86
- return;
87
- default:
88
- ((_) => {
89
- errorBuilder.for('operation', `Operation ${validatorCast.operation} is not an valid option`);
90
- })(validatorCast);
91
- }
92
- }
93
- validateValidatorArgument(errorBuilder, argument, entity, field) {
94
- this.validateValidator(errorBuilder.for('validator'), argument.validator, entity, field);
95
- }
96
- validatePathArgument(errorBuilder, argument, entity) {
97
- const isRelation = (0, model_1.acceptFieldVisitor)(this.model, entity, argument.path[0], {
98
- visitColumn: () => false,
99
- visitRelation: () => true,
100
- });
101
- if (isRelation) {
102
- errorBuilder.add('VALIDATION_NOT_IMPLEMENTED', 'Rules depending on relations are currently not supported.');
103
- return undefined;
104
- }
105
- return entity.fields[argument.path[0]];
106
- }
107
- }
108
- exports.ValidationValidator = ValidationValidator;
109
- //# sourceMappingURL=ValidationValidator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ValidationValidator.js","sourceRoot":"","sources":["../../../src/validation/ValidationValidator.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ErrorBuilder = void 0;
4
- class ErrorBuilder {
5
- constructor(errors, path = []) {
6
- this.errors = errors;
7
- this.path = path;
8
- }
9
- for(...path) {
10
- return new ErrorBuilder(this.errors, [...this.path, ...path]);
11
- }
12
- add(code, message) {
13
- this.errors.push({ path: this.path, message, code });
14
- }
15
- }
16
- exports.ErrorBuilder = ErrorBuilder;
17
- //# sourceMappingURL=errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/validation/errors.ts"],"names":[],"mappings":";;;AAoCA,MAAa,YAAY;IACxB,YAA4B,MAAyB,EAAmB,OAAiB,EAAE;QAA/D,WAAM,GAAN,MAAM,CAAmB;QAAmB,SAAI,GAAJ,IAAI,CAAe;IAAG,CAAC;IAE/F,GAAG,CAAC,GAAG,IAAc;QACpB,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;IAC9D,CAAC;IAED,GAAG,CAAC,IAAyB,EAAE,OAAe;QAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;IACrD,CAAC;CACD;AAVD,oCAUC"}
@@ -1,23 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./AclValidator"), exports);
18
- __exportStar(require("./ModelValidator"), exports);
19
- __exportStar(require("./ValidationValidator"), exports);
20
- __exportStar(require("./errors"), exports);
21
- __exportStar(require("./SchemaValidator"), exports);
22
- __exportStar(require("./MembershipResolver"), exports);
23
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/validation/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA8B;AAC9B,mDAAgC;AAChC,wDAAqC;AACrC,2CAAwB;AACxB,oDAAiC;AACjC,uDAAoC"}
@@ -1,50 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_1 = require("vitest");
4
- const type_schema_1 = require("../../../src/type-schema");
5
- const schema_1 = require("@contember/schema");
6
- (0, vitest_1.describe)('condition schema', () => {
7
- (0, vitest_1.test)('accept composite type', () => {
8
- const condition = {
9
- and: [{ isNull: true }, { not: { isNull: false } }],
10
- };
11
- vitest_1.assert.deepStrictEqual((0, type_schema_1.conditionSchema)()(condition), condition);
12
- });
13
- (0, vitest_1.test)('accept string-only condition for unknown type', () => {
14
- const condition = {
15
- containsCI: 'foo',
16
- };
17
- vitest_1.assert.deepStrictEqual((0, type_schema_1.conditionSchema)()(condition), condition);
18
- });
19
- (0, vitest_1.test)('accept string-only condition for string type', () => {
20
- const condition = {
21
- containsCI: 'foo',
22
- };
23
- vitest_1.assert.deepStrictEqual((0, type_schema_1.conditionSchema)(schema_1.Model.ColumnType.String)(condition), condition);
24
- });
25
- (0, vitest_1.test)('reject string-only condition for int type', () => {
26
- const condition = {
27
- containsCI: 'foo',
28
- };
29
- vitest_1.assert.throw(() => (0, type_schema_1.conditionSchema)(schema_1.Model.ColumnType.Int)(condition), 'value at root: extra property containsCI found');
30
- });
31
- (0, vitest_1.test)('accept non-json condition for unknown type', () => {
32
- const condition = {
33
- eq: 'foo',
34
- };
35
- vitest_1.assert.deepStrictEqual((0, type_schema_1.conditionSchema)()(condition), condition);
36
- });
37
- (0, vitest_1.test)('accept non-json condition for string type', () => {
38
- const condition = {
39
- eq: 'foo',
40
- };
41
- vitest_1.assert.deepStrictEqual((0, type_schema_1.conditionSchema)(schema_1.Model.ColumnType.String)(condition), condition);
42
- });
43
- (0, vitest_1.test)('reject non-json condition for json type', () => {
44
- const condition = {
45
- eq: 'foo',
46
- };
47
- vitest_1.assert.throw(() => (0, type_schema_1.conditionSchema)(schema_1.Model.ColumnType.Json)(condition), 'value at root: extra property eq found');
48
- });
49
- });
50
- //# sourceMappingURL=conditionSchema.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"conditionSchema.test.js","sourceRoot":"","sources":["../../../../tests/cases/unit/conditionSchema.test.ts"],"names":[],"mappings":";;AAAA,mCAA+C;AAC/C,0DAA0D;AAC1D,8CAAyC;AAEzC,IAAA,iBAAQ,EAAC,kBAAkB,EAAE,GAAG,EAAE;IACjC,IAAA,aAAI,EAAC,uBAAuB,EAAE,GAAG,EAAE;QAClC,MAAM,SAAS,GAAG;YACjB,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;SACnD,CAAA;QACD,eAAM,CAAC,eAAe,CAAC,IAAA,6BAAe,GAAE,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAA;IAChE,CAAC,CAAC,CAAA;IAEF,IAAA,aAAI,EAAC,+CAA+C,EAAE,GAAG,EAAE;QAC1D,MAAM,SAAS,GAAG;YACjB,UAAU,EAAE,KAAK;SACjB,CAAA;QACD,eAAM,CAAC,eAAe,CAAC,IAAA,6BAAe,GAAE,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAA;IAChE,CAAC,CAAC,CAAA;IAEF,IAAA,aAAI,EAAC,8CAA8C,EAAE,GAAG,EAAE;QACzD,MAAM,SAAS,GAAG;YACjB,UAAU,EAAE,KAAK;SACjB,CAAA;QACD,eAAM,CAAC,eAAe,CAAC,IAAA,6BAAe,EAAC,cAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAA;IACvF,CAAC,CAAC,CAAA;IAEF,IAAA,aAAI,EAAC,2CAA2C,EAAE,GAAG,EAAE;QACtD,MAAM,SAAS,GAAG;YACjB,UAAU,EAAE,KAAK;SACjB,CAAA;QACD,eAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAA,6BAAe,EAAC,cAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,gDAAgD,CAAC,CAAA;IACvH,CAAC,CAAC,CAAA;IAGF,IAAA,aAAI,EAAC,4CAA4C,EAAE,GAAG,EAAE;QACvD,MAAM,SAAS,GAAG;YACjB,EAAE,EAAE,KAAK;SACT,CAAA;QACD,eAAM,CAAC,eAAe,CAAC,IAAA,6BAAe,GAAE,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAA;IAChE,CAAC,CAAC,CAAA;IAEF,IAAA,aAAI,EAAC,2CAA2C,EAAE,GAAG,EAAE;QACtD,MAAM,SAAS,GAAG;YACjB,EAAE,EAAE,KAAK;SACT,CAAA;QACD,eAAM,CAAC,eAAe,CAAC,IAAA,6BAAe,EAAC,cAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAA;IACvF,CAAC,CAAC,CAAA;IAEF,IAAA,aAAI,EAAC,yCAAyC,EAAE,GAAG,EAAE;QACpD,MAAM,SAAS,GAAG;YACjB,EAAE,EAAE,KAAK;SACT,CAAA;QACD,eAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAA,6BAAe,EAAC,cAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,EAAE,wCAAwC,CAAC,CAAA;IAChH,CAAC,CAAC,CAAA;AACH,CAAC,CAAC,CAAA"}
@@ -1,43 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_1 = require("vitest");
4
- const src_1 = require("../../../src");
5
- (0, vitest_1.describe)('deep compare', () => {
6
- (0, vitest_1.test)('compare array ignore order - success', () => {
7
- const actual = (0, src_1.compareArraysIgnoreOrder)([
8
- { foo: 'bar' },
9
- { lorem: 'ipsum' },
10
- ], [
11
- { lorem: 'ipsum' },
12
- { foo: 'bar' },
13
- ], []);
14
- vitest_1.assert.deepStrictEqual(actual, []);
15
- });
16
- (0, vitest_1.test)('compare array ignore order - missing in A', () => {
17
- const actual = (0, src_1.compareArraysIgnoreOrder)([
18
- { lorem: 'ipsum' },
19
- { lorem: 'ipsum' },
20
- ], [
21
- { lorem: 'ipsum' },
22
- { foo: 'bar' },
23
- ], []);
24
- vitest_1.assert.deepStrictEqual(actual, [{
25
- path: [],
26
- message: 'Array item: {"lorem":"ipsum"} not found in [{"foo":"bar"}]',
27
- }]);
28
- });
29
- (0, vitest_1.test)('compare array ignore order - missing in B', () => {
30
- const actual = (0, src_1.compareArraysIgnoreOrder)([
31
- { foo: 'bar' },
32
- { lorem: 'ipsum' },
33
- ], [
34
- { lorem: 'ipsum' },
35
- { lorem: 'ipsum' },
36
- ], []);
37
- vitest_1.assert.deepStrictEqual(actual, [{
38
- path: [],
39
- message: 'Array item: {"foo":"bar"} not found in [{"lorem":"ipsum"},{"lorem":"ipsum"}]',
40
- }]);
41
- });
42
- });
43
- //# sourceMappingURL=deepCompare.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deepCompare.test.js","sourceRoot":"","sources":["../../../../tests/cases/unit/deepCompare.test.ts"],"names":[],"mappings":";;AAAA,mCAA+C;AAC/C,sCAAuD;AAEvD,IAAA,iBAAQ,EAAC,cAAc,EAAE,GAAG,EAAE;IAC7B,IAAA,aAAI,EAAC,sCAAsC,EAAE,GAAG,EAAE;QACjD,MAAM,MAAM,GAAG,IAAA,8BAAwB,EAAC;YACvC,EAAE,GAAG,EAAE,KAAK,EAAE;YACd,EAAE,KAAK,EAAE,OAAO,EAAE;SAClB,EAAE;YACF,EAAE,KAAK,EAAE,OAAO,EAAE;YAClB,EAAE,GAAG,EAAE,KAAK,EAAE;SACd,EAAE,EAAE,CAAC,CAAA;QACN,eAAM,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IACnC,CAAC,CAAC,CAAA;IAEF,IAAA,aAAI,EAAC,2CAA2C,EAAE,GAAG,EAAE;QACtD,MAAM,MAAM,GAAG,IAAA,8BAAwB,EAAC;YACvC,EAAE,KAAK,EAAE,OAAO,EAAE;YAClB,EAAE,KAAK,EAAE,OAAO,EAAE;SAClB,EAAE;YACF,EAAE,KAAK,EAAE,OAAO,EAAE;YAClB,EAAE,GAAG,EAAE,KAAK,EAAE;SACd,EAAE,EAAE,CAAC,CAAA;QACN,eAAM,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;gBAC/B,IAAI,EAAE,EAAE;gBACR,OAAO,EAAE,4DAA4D;aACrE,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,IAAA,aAAI,EAAC,2CAA2C,EAAE,GAAG,EAAE;QACtD,MAAM,MAAM,GAAG,IAAA,8BAAwB,EAAC;YACvC,EAAE,GAAG,EAAE,KAAK,EAAE;YACd,EAAE,KAAK,EAAE,OAAO,EAAE;SAClB,EAAE;YACF,EAAE,KAAK,EAAE,OAAO,EAAE;YAClB,EAAE,KAAK,EAAE,OAAO,EAAE;SAClB,EAAE,EAAE,CAAC,CAAA;QACN,eAAM,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;gBAC/B,IAAI,EAAE,EAAE;gBACR,OAAO,EAAE,8EAA8E;aACvF,CAAC,CACD,CAAA;IACF,CAAC,CAAC,CAAA;AACH,CAAC,CAAC,CAAA"}