@contember/schema-utils 2.1.0-alpha.36 → 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 @@
1
+ {"version":3,"file":"LaxSchemaConverter.cjs","sources":["../../../../../packages/schema-utils/src/lax/LaxSchemaConverter.ts"],"sourcesContent":["import { Model, Schema, Writable } from '@contember/schema'\nimport { LaxSchema, LaxSchemaColumn, LaxSchemaEnum, LaxSchemaField, LaxSchemaRelation } from './schema'\nimport { DefaultNamingConventions, NamingConventions, resolveDefaultColumnType } from '../model'\nimport { emptySchema } from '../index'\n\nconst simpleColumnTypes: { [K in LaxSchemaColumn['type']]: { type: Model.ColumnType; columnType: string } } = {\n\tboolean: { type: Model.ColumnType.Bool, columnType: 'boolean' },\n\tint: { type: Model.ColumnType.Int, columnType: 'integer' },\n\tdate: { type: Model.ColumnType.Date, columnType: 'date' },\n\tdatetime: { type: Model.ColumnType.DateTime, columnType: 'timestamptz' },\n\tfloat: { type: Model.ColumnType.Double, columnType: 'double precision' },\n\tjson: { type: Model.ColumnType.Json, columnType: 'jsonb' },\n\tstring: { type: Model.ColumnType.String, columnType: 'text' },\n}\n\nconst isColumnDefinition = (field: LaxSchemaField): field is LaxSchemaColumn => field.type in simpleColumnTypes\n\nexport class LaxSchemaConverter {\n\tconstructor(\n\t\tprivate readonly schema: LaxSchema,\n\t\tprivate readonly conventions: NamingConventions = new DefaultNamingConventions(),\n\t) {\n\t}\n\n\tpublic convert(): Schema {\n\t\tconst builder = new LaxSchemaBuilder(this.schema, this.conventions)\n\t\treturn builder.build()\n\t}\n}\n\nclass LaxSchemaBuilder {\n\tprivate readonly entities: Record<string, Model.Entity> = {}\n\tprivate readonly enums: Record<string, string[]> = {}\n\n\tconstructor(\n\t\tprivate readonly schema: LaxSchema,\n\t\tprivate readonly conventions: NamingConventions = new DefaultNamingConventions(),\n\t) {\n\t}\n\n\tpublic build(): Schema {\n\t\tfor (const [entityName, entityDefinition] of Object.entries(this.schema.entities)) {\n\t\t\tfor (const [fieldName, fieldDefinition] of Object.entries(entityDefinition.fields)) {\n\t\t\t\tif (isColumnDefinition(fieldDefinition)) {\n\t\t\t\t\tthis.processColumn(entityName, fieldName, fieldDefinition)\n\t\t\t\t} else if (fieldDefinition.type === 'enum') {\n\t\t\t\t\tthis.processEnum(entityName, fieldName, fieldDefinition)\n\t\t\t\t} else {\n\t\t\t\t\tthis.processRelation(entityName, fieldName, fieldDefinition)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\t...emptySchema,\n\t\t\tmodel: {\n\t\t\t\tenums: this.enums,\n\t\t\t\tentities: this.entities,\n\t\t\t},\n\t\t}\n\t}\n\n\tprivate processColumn(entityName: string, fieldName: string, columnDef: LaxSchemaColumn) {\n\t\tconst columnName = this.conventions.getColumnName(fieldName)\n\t\tthis.registerField(entityName, {\n\t\t\tname: fieldName,\n\t\t\tcolumnName: columnName,\n\t\t\ttype: simpleColumnTypes[columnDef.type].type,\n\t\t\tnullable: !columnDef.notNull,\n\t\t\tcolumnType: simpleColumnTypes[columnDef.type].columnType,\n\t\t})\n\t}\n\n\tprivate processEnum(entityName: string, fieldName: string, enumDef: LaxSchemaEnum) {\n\t\tthis.enums[enumDef.enumName] = Array.from(new Set([...this.enums[enumDef.enumName] ?? [], ...enumDef.values]))\n\t\tconst columnName = this.conventions.getColumnName(fieldName)\n\t\tthis.registerField(entityName, {\n\t\t\tname: fieldName,\n\t\t\tcolumnName: columnName,\n\t\t\ttype: Model.ColumnType.Enum,\n\t\t\tnullable: !enumDef.notNull,\n\t\t\tcolumnType: enumDef.enumName,\n\t\t})\n\t}\n\n\tprivate processRelation(entityName: string, fieldName: string, relDef: LaxSchemaRelation) {\n\t\tswitch (relDef.type) {\n\t\t\tcase 'manyHasMany':\n\t\t\t\tconst joiningColumns = this.conventions.getJoiningTableColumnNames(entityName, fieldName, relDef.targetEntity, relDef.targetField)\n\t\t\t\tthis.registerField(entityName, {\n\t\t\t\t\ttype: Model.RelationType.ManyHasMany,\n\t\t\t\t\tname: fieldName,\n\t\t\t\t\ttarget: relDef.targetEntity,\n\t\t\t\t\tinversedBy: relDef.targetField,\n\t\t\t\t\tjoiningTable: {\n\t\t\t\t\t\ttableName: this.conventions.getJoiningTableName(entityName, fieldName),\n\t\t\t\t\t\tjoiningColumn: {\n\t\t\t\t\t\t\tcolumnName: joiningColumns[0],\n\t\t\t\t\t\t\tonDelete: Model.OnDelete.cascade,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tinverseJoiningColumn: {\n\t\t\t\t\t\t\tcolumnName: joiningColumns[1],\n\t\t\t\t\t\t\tonDelete: Model.OnDelete.cascade,\n\t\t\t\t\t\t},\n\t\t\t\t\t\teventLog: { enabled: true },\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tif (!this.schema.entities[relDef.targetEntity].fields[relDef.targetField]) {\n\t\t\t\t\tthis.processRelation(relDef.targetEntity, relDef.targetField, {\n\t\t\t\t\t\ttype: 'manyHasManyInverse',\n\t\t\t\t\t\ttargetEntity: entityName,\n\t\t\t\t\t\ttargetField: fieldName,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase 'manyHasManyInverse':\n\t\t\t\tthis.registerField(entityName, {\n\t\t\t\t\ttype: Model.RelationType.ManyHasMany,\n\t\t\t\t\tname: fieldName,\n\t\t\t\t\ttarget: relDef.targetEntity,\n\t\t\t\t\townedBy: relDef.targetField,\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tcase 'manyHasOne':\n\t\t\t\tthis.registerField(entityName, {\n\t\t\t\t\ttype: Model.RelationType.ManyHasOne,\n\t\t\t\t\tname: fieldName,\n\t\t\t\t\ttarget: relDef.targetEntity,\n\t\t\t\t\tinversedBy: relDef.targetField,\n\t\t\t\t\tjoiningColumn: {\n\t\t\t\t\t\tcolumnName: this.conventions.getJoiningColumnName(fieldName),\n\t\t\t\t\t\tonDelete: Model.OnDelete.restrict,\n\t\t\t\t\t},\n\t\t\t\t\tnullable: !relDef.notNull,\n\t\t\t\t})\n\t\t\t\tif (!this.schema.entities[relDef.targetEntity].fields[relDef.targetField]) {\n\t\t\t\t\tthis.processRelation(relDef.targetEntity, relDef.targetField, {\n\t\t\t\t\t\ttype: 'oneHasMany',\n\t\t\t\t\t\ttargetEntity: entityName,\n\t\t\t\t\t\ttargetField: fieldName,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase 'oneHasMany':\n\t\t\t\tthis.registerField(entityName, {\n\t\t\t\t\ttype: Model.RelationType.OneHasMany,\n\t\t\t\t\tname: fieldName,\n\t\t\t\t\ttarget: relDef.targetEntity,\n\t\t\t\t\townedBy: relDef.targetField,\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tcase 'oneHasOne':\n\t\t\t\tthis.registerField(entityName, {\n\t\t\t\t\ttype: Model.RelationType.OneHasOne,\n\t\t\t\t\tname: fieldName,\n\t\t\t\t\ttarget: relDef.targetEntity,\n\t\t\t\t\tinversedBy: relDef.targetField,\n\t\t\t\t\tjoiningColumn: {\n\t\t\t\t\t\tcolumnName: this.conventions.getJoiningColumnName(fieldName),\n\t\t\t\t\t\tonDelete: Model.OnDelete.restrict,\n\t\t\t\t\t},\n\t\t\t\t\tnullable: !relDef.notNull,\n\t\t\t\t})\n\t\t\t\tif (!this.schema.entities[relDef.targetEntity].fields[relDef.targetField]) {\n\t\t\t\t\tthis.processRelation(relDef.targetEntity, relDef.targetField, {\n\t\t\t\t\t\ttype: 'oneHasOneInverse',\n\t\t\t\t\t\ttargetEntity: entityName,\n\t\t\t\t\t\ttargetField: fieldName,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase 'oneHasOneInverse':\n\t\t\t\tthis.registerField(entityName, {\n\t\t\t\t\ttype: Model.RelationType.OneHasOne,\n\t\t\t\t\tname: fieldName,\n\t\t\t\t\ttarget: relDef.targetEntity,\n\t\t\t\t\townedBy: relDef.targetField,\n\t\t\t\t\tnullable: !relDef.notNull,\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\tprivate registerField(entityName: string, field: Model.AnyField) {\n\t\tconst entity = this.getEntity(entityName)\n\t\t;(entity.fields as Writable<Model.Entity['fields']>)[field.name] = field\n\t}\n\n\tprivate getEntity(entityName: string): Model.Entity {\n\t\treturn this.entities[entityName] ??= {\n\t\t\tname: entityName,\n\t\t\tunique: [],\n\t\t\tindexes: [],\n\t\t\tprimary: 'id',\n\t\t\tprimaryColumn: 'id',\n\t\t\ttableName: this.conventions.getTableName(entityName),\n\t\t\teventLog: { enabled: true },\n\t\t\tfields: {\n\t\t\t\tid: {\n\t\t\t\t\tname: 'id',\n\t\t\t\t\tcolumnName: 'id',\n\t\t\t\t\ttype: Model.ColumnType.Uuid,\n\t\t\t\t\tcolumnType: resolveDefaultColumnType(Model.ColumnType.Uuid),\n\t\t\t\t\tnullable: false,\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\t}\n}\n"],"names":["Model","schema","DefaultNamingConventions","emptySchema","resolveDefaultColumnType"],"mappings":";;;;;;;;;AAKA,MAAM,oBAAwG;AAAA,EAC7G,SAAS,EAAE,MAAMA,OAAAA,MAAM,WAAW,MAAM,YAAY,UAAA;AAAA,EACpD,KAAK,EAAE,MAAMA,OAAAA,MAAM,WAAW,KAAK,YAAY,UAAA;AAAA,EAC/C,MAAM,EAAE,MAAMA,OAAAA,MAAM,WAAW,MAAM,YAAY,OAAA;AAAA,EACjD,UAAU,EAAE,MAAMA,OAAAA,MAAM,WAAW,UAAU,YAAY,cAAA;AAAA,EACzD,OAAO,EAAE,MAAMA,OAAAA,MAAM,WAAW,QAAQ,YAAY,mBAAA;AAAA,EACpD,MAAM,EAAE,MAAMA,OAAAA,MAAM,WAAW,MAAM,YAAY,QAAA;AAAA,EACjD,QAAQ,EAAE,MAAMA,OAAAA,MAAM,WAAW,QAAQ,YAAY,OAAA;AACtD;AAEA,MAAM,qBAAqB,CAAC,UAAoD,MAAM,QAAQ;AAEvF,MAAM,mBAAmB;AAAA,EAC/B,YACkBC,SACA,cAAiC,IAAIC,kBAAAA,4BACrD;AAFgB,SAAA,SAAAD;AACA,SAAA,cAAA;AAAA,EAElB;AAAA,EAEO,UAAkB;AACxB,UAAM,UAAU,IAAI,iBAAiB,KAAK,QAAQ,KAAK,WAAW;AAClE,WAAO,QAAQ,MAAA;AAAA,EAChB;AACD;AAEA,MAAM,iBAAiB;AAAA,EAItB,YACkBA,SACA,cAAiC,IAAIC,kBAAAA,4BACrD;AAFgB,SAAA,SAAAD;AACA,SAAA,cAAA;AALlB,kBAAA,MAAiB,YAAyC,EAAC;AAC3D,kBAAA,MAAiB,SAAkC,EAAC;AAAA,EAMpD;AAAA,EAEO,QAAgB;AACtB,eAAW,CAAC,YAAY,gBAAgB,KAAK,OAAO,QAAQ,KAAK,OAAO,QAAQ,GAAG;AAClF,iBAAW,CAAC,WAAW,eAAe,KAAK,OAAO,QAAQ,iBAAiB,MAAM,GAAG;AACnF,YAAI,mBAAmB,eAAe,GAAG;AACxC,eAAK,cAAc,YAAY,WAAW,eAAe;AAAA,QAC1D,WAAW,gBAAgB,SAAS,QAAQ;AAC3C,eAAK,YAAY,YAAY,WAAW,eAAe;AAAA,QACxD,OAAO;AACN,eAAK,gBAAgB,YAAY,WAAW,eAAe;AAAA,QAC5D;AAAA,MACD;AAAA,IACD;AACA,WAAO;AAAA,MACN,GAAGE,kBAAAA;AAAAA,MACH,OAAO;AAAA,QACN,OAAO,KAAK;AAAA,QACZ,UAAU,KAAK;AAAA,MAAA;AAAA,IAChB;AAAA,EAEF;AAAA,EAEQ,cAAc,YAAoB,WAAmB,WAA4B;AACxF,UAAM,aAAa,KAAK,YAAY,cAAc,SAAS;AAC3D,SAAK,cAAc,YAAY;AAAA,MAC9B,MAAM;AAAA,MACN;AAAA,MACA,MAAM,kBAAkB,UAAU,IAAI,EAAE;AAAA,MACxC,UAAU,CAAC,UAAU;AAAA,MACrB,YAAY,kBAAkB,UAAU,IAAI,EAAE;AAAA,IAAA,CAC9C;AAAA,EACF;AAAA,EAEQ,YAAY,YAAoB,WAAmB,SAAwB;AAClF,SAAK,MAAM,QAAQ,QAAQ,IAAI,MAAM,KAAK,oBAAI,IAAI,CAAC,GAAG,KAAK,MAAM,QAAQ,QAAQ,KAAK,CAAA,GAAI,GAAG,QAAQ,MAAM,CAAC,CAAC;AAC7G,UAAM,aAAa,KAAK,YAAY,cAAc,SAAS;AAC3D,SAAK,cAAc,YAAY;AAAA,MAC9B,MAAM;AAAA,MACN;AAAA,MACA,MAAMH,OAAAA,MAAM,WAAW;AAAA,MACvB,UAAU,CAAC,QAAQ;AAAA,MACnB,YAAY,QAAQ;AAAA,IAAA,CACpB;AAAA,EACF;AAAA,EAEQ,gBAAgB,YAAoB,WAAmB,QAA2B;AACzF,YAAQ,OAAO,MAAA;AAAA,MACd,KAAK;AACJ,cAAM,iBAAiB,KAAK,YAAY,2BAA2B,YAAY,WAAW,OAAO,cAAc,OAAO,WAAW;AACjI,aAAK,cAAc,YAAY;AAAA,UAC9B,MAAMA,OAAAA,MAAM,aAAa;AAAA,UACzB,MAAM;AAAA,UACN,QAAQ,OAAO;AAAA,UACf,YAAY,OAAO;AAAA,UACnB,cAAc;AAAA,YACb,WAAW,KAAK,YAAY,oBAAoB,YAAY,SAAS;AAAA,YACrE,eAAe;AAAA,cACd,YAAY,eAAe,CAAC;AAAA,cAC5B,UAAUA,OAAAA,MAAM,SAAS;AAAA,YAAA;AAAA,YAE1B,sBAAsB;AAAA,cACrB,YAAY,eAAe,CAAC;AAAA,cAC5B,UAAUA,OAAAA,MAAM,SAAS;AAAA,YAAA;AAAA,YAE1B,UAAU,EAAE,SAAS,KAAA;AAAA,UAAK;AAAA,QAC3B,CACA;AACD,YAAI,CAAC,KAAK,OAAO,SAAS,OAAO,YAAY,EAAE,OAAO,OAAO,WAAW,GAAG;AAC1E,eAAK,gBAAgB,OAAO,cAAc,OAAO,aAAa;AAAA,YAC7D,MAAM;AAAA,YACN,cAAc;AAAA,YACd,aAAa;AAAA,UAAA,CACb;AAAA,QACF;AACA;AAAA,MACD,KAAK;AACJ,aAAK,cAAc,YAAY;AAAA,UAC9B,MAAMA,OAAAA,MAAM,aAAa;AAAA,UACzB,MAAM;AAAA,UACN,QAAQ,OAAO;AAAA,UACf,SAAS,OAAO;AAAA,QAAA,CAChB;AACD;AAAA,MACD,KAAK;AACJ,aAAK,cAAc,YAAY;AAAA,UAC9B,MAAMA,OAAAA,MAAM,aAAa;AAAA,UACzB,MAAM;AAAA,UACN,QAAQ,OAAO;AAAA,UACf,YAAY,OAAO;AAAA,UACnB,eAAe;AAAA,YACd,YAAY,KAAK,YAAY,qBAAqB,SAAS;AAAA,YAC3D,UAAUA,OAAAA,MAAM,SAAS;AAAA,UAAA;AAAA,UAE1B,UAAU,CAAC,OAAO;AAAA,QAAA,CAClB;AACD,YAAI,CAAC,KAAK,OAAO,SAAS,OAAO,YAAY,EAAE,OAAO,OAAO,WAAW,GAAG;AAC1E,eAAK,gBAAgB,OAAO,cAAc,OAAO,aAAa;AAAA,YAC7D,MAAM;AAAA,YACN,cAAc;AAAA,YACd,aAAa;AAAA,UAAA,CACb;AAAA,QACF;AACA;AAAA,MACD,KAAK;AACJ,aAAK,cAAc,YAAY;AAAA,UAC9B,MAAMA,OAAAA,MAAM,aAAa;AAAA,UACzB,MAAM;AAAA,UACN,QAAQ,OAAO;AAAA,UACf,SAAS,OAAO;AAAA,QAAA,CAChB;AACD;AAAA,MACD,KAAK;AACJ,aAAK,cAAc,YAAY;AAAA,UAC9B,MAAMA,OAAAA,MAAM,aAAa;AAAA,UACzB,MAAM;AAAA,UACN,QAAQ,OAAO;AAAA,UACf,YAAY,OAAO;AAAA,UACnB,eAAe;AAAA,YACd,YAAY,KAAK,YAAY,qBAAqB,SAAS;AAAA,YAC3D,UAAUA,OAAAA,MAAM,SAAS;AAAA,UAAA;AAAA,UAE1B,UAAU,CAAC,OAAO;AAAA,QAAA,CAClB;AACD,YAAI,CAAC,KAAK,OAAO,SAAS,OAAO,YAAY,EAAE,OAAO,OAAO,WAAW,GAAG;AAC1E,eAAK,gBAAgB,OAAO,cAAc,OAAO,aAAa;AAAA,YAC7D,MAAM;AAAA,YACN,cAAc;AAAA,YACd,aAAa;AAAA,UAAA,CACb;AAAA,QACF;AACA;AAAA,MACD,KAAK;AACJ,aAAK,cAAc,YAAY;AAAA,UAC9B,MAAMA,OAAAA,MAAM,aAAa;AAAA,UACzB,MAAM;AAAA,UACN,QAAQ,OAAO;AAAA,UACf,SAAS,OAAO;AAAA,UAChB,UAAU,CAAC,OAAO;AAAA,QAAA,CAClB;AACD;AAAA,IAAA;AAAA,EAEH;AAAA,EAEQ,cAAc,YAAoB,OAAuB;AAChE,UAAM,SAAS,KAAK,UAAU,UAAU;AACtC,WAAO,OAA4C,MAAM,IAAI,IAAI;AAAA,EACpE;AAAA,EAEQ,UAAU,YAAkC;AA3LrD,QAAA;AA4LE,YAAO,KAAA,KAAK,UAAL,UAAA,MAAA,GAAA,UAAA,IAA8B;AAAA,MACpC,MAAM;AAAA,MACN,QAAQ,CAAA;AAAA,MACR,SAAS,CAAA;AAAA,MACT,SAAS;AAAA,MACT,eAAe;AAAA,MACf,WAAW,KAAK,YAAY,aAAa,UAAU;AAAA,MACnD,UAAU,EAAE,SAAS,KAAA;AAAA,MACrB,QAAQ;AAAA,QACP,IAAI;AAAA,UACH,MAAM;AAAA,UACN,YAAY;AAAA,UACZ,MAAMA,OAAAA,MAAM,WAAW;AAAA,UACvB,YAAYI,yBAAAA,yBAAyBJ,aAAM,WAAW,IAAI;AAAA,UAC1D,UAAU;AAAA,QAAA;AAAA,MACX;AAAA,IACD;AAAA,EAEF;AACD;;"}
@@ -0,0 +1,202 @@
1
+ import { Model } from "@contember/schema";
2
+ import { resolveDefaultColumnType } from "../model/resolveDefaultColumnType.js";
3
+ import { DefaultNamingConventions } from "../model/NamingConventions.js";
4
+ import { emptySchema } from "../../index.js";
5
+ var __defProp = Object.defineProperty;
6
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
8
+ const simpleColumnTypes = {
9
+ boolean: { type: Model.ColumnType.Bool, columnType: "boolean" },
10
+ int: { type: Model.ColumnType.Int, columnType: "integer" },
11
+ date: { type: Model.ColumnType.Date, columnType: "date" },
12
+ datetime: { type: Model.ColumnType.DateTime, columnType: "timestamptz" },
13
+ float: { type: Model.ColumnType.Double, columnType: "double precision" },
14
+ json: { type: Model.ColumnType.Json, columnType: "jsonb" },
15
+ string: { type: Model.ColumnType.String, columnType: "text" }
16
+ };
17
+ const isColumnDefinition = (field) => field.type in simpleColumnTypes;
18
+ class LaxSchemaConverter {
19
+ constructor(schema, conventions = new DefaultNamingConventions()) {
20
+ this.schema = schema;
21
+ this.conventions = conventions;
22
+ }
23
+ convert() {
24
+ const builder = new LaxSchemaBuilder(this.schema, this.conventions);
25
+ return builder.build();
26
+ }
27
+ }
28
+ class LaxSchemaBuilder {
29
+ constructor(schema, conventions = new DefaultNamingConventions()) {
30
+ this.schema = schema;
31
+ this.conventions = conventions;
32
+ __publicField(this, "entities", {});
33
+ __publicField(this, "enums", {});
34
+ }
35
+ build() {
36
+ for (const [entityName, entityDefinition] of Object.entries(this.schema.entities)) {
37
+ for (const [fieldName, fieldDefinition] of Object.entries(entityDefinition.fields)) {
38
+ if (isColumnDefinition(fieldDefinition)) {
39
+ this.processColumn(entityName, fieldName, fieldDefinition);
40
+ } else if (fieldDefinition.type === "enum") {
41
+ this.processEnum(entityName, fieldName, fieldDefinition);
42
+ } else {
43
+ this.processRelation(entityName, fieldName, fieldDefinition);
44
+ }
45
+ }
46
+ }
47
+ return {
48
+ ...emptySchema,
49
+ model: {
50
+ enums: this.enums,
51
+ entities: this.entities
52
+ }
53
+ };
54
+ }
55
+ processColumn(entityName, fieldName, columnDef) {
56
+ const columnName = this.conventions.getColumnName(fieldName);
57
+ this.registerField(entityName, {
58
+ name: fieldName,
59
+ columnName,
60
+ type: simpleColumnTypes[columnDef.type].type,
61
+ nullable: !columnDef.notNull,
62
+ columnType: simpleColumnTypes[columnDef.type].columnType
63
+ });
64
+ }
65
+ processEnum(entityName, fieldName, enumDef) {
66
+ this.enums[enumDef.enumName] = Array.from(/* @__PURE__ */ new Set([...this.enums[enumDef.enumName] ?? [], ...enumDef.values]));
67
+ const columnName = this.conventions.getColumnName(fieldName);
68
+ this.registerField(entityName, {
69
+ name: fieldName,
70
+ columnName,
71
+ type: Model.ColumnType.Enum,
72
+ nullable: !enumDef.notNull,
73
+ columnType: enumDef.enumName
74
+ });
75
+ }
76
+ processRelation(entityName, fieldName, relDef) {
77
+ switch (relDef.type) {
78
+ case "manyHasMany":
79
+ const joiningColumns = this.conventions.getJoiningTableColumnNames(entityName, fieldName, relDef.targetEntity, relDef.targetField);
80
+ this.registerField(entityName, {
81
+ type: Model.RelationType.ManyHasMany,
82
+ name: fieldName,
83
+ target: relDef.targetEntity,
84
+ inversedBy: relDef.targetField,
85
+ joiningTable: {
86
+ tableName: this.conventions.getJoiningTableName(entityName, fieldName),
87
+ joiningColumn: {
88
+ columnName: joiningColumns[0],
89
+ onDelete: Model.OnDelete.cascade
90
+ },
91
+ inverseJoiningColumn: {
92
+ columnName: joiningColumns[1],
93
+ onDelete: Model.OnDelete.cascade
94
+ },
95
+ eventLog: { enabled: true }
96
+ }
97
+ });
98
+ if (!this.schema.entities[relDef.targetEntity].fields[relDef.targetField]) {
99
+ this.processRelation(relDef.targetEntity, relDef.targetField, {
100
+ type: "manyHasManyInverse",
101
+ targetEntity: entityName,
102
+ targetField: fieldName
103
+ });
104
+ }
105
+ break;
106
+ case "manyHasManyInverse":
107
+ this.registerField(entityName, {
108
+ type: Model.RelationType.ManyHasMany,
109
+ name: fieldName,
110
+ target: relDef.targetEntity,
111
+ ownedBy: relDef.targetField
112
+ });
113
+ break;
114
+ case "manyHasOne":
115
+ this.registerField(entityName, {
116
+ type: Model.RelationType.ManyHasOne,
117
+ name: fieldName,
118
+ target: relDef.targetEntity,
119
+ inversedBy: relDef.targetField,
120
+ joiningColumn: {
121
+ columnName: this.conventions.getJoiningColumnName(fieldName),
122
+ onDelete: Model.OnDelete.restrict
123
+ },
124
+ nullable: !relDef.notNull
125
+ });
126
+ if (!this.schema.entities[relDef.targetEntity].fields[relDef.targetField]) {
127
+ this.processRelation(relDef.targetEntity, relDef.targetField, {
128
+ type: "oneHasMany",
129
+ targetEntity: entityName,
130
+ targetField: fieldName
131
+ });
132
+ }
133
+ break;
134
+ case "oneHasMany":
135
+ this.registerField(entityName, {
136
+ type: Model.RelationType.OneHasMany,
137
+ name: fieldName,
138
+ target: relDef.targetEntity,
139
+ ownedBy: relDef.targetField
140
+ });
141
+ break;
142
+ case "oneHasOne":
143
+ this.registerField(entityName, {
144
+ type: Model.RelationType.OneHasOne,
145
+ name: fieldName,
146
+ target: relDef.targetEntity,
147
+ inversedBy: relDef.targetField,
148
+ joiningColumn: {
149
+ columnName: this.conventions.getJoiningColumnName(fieldName),
150
+ onDelete: Model.OnDelete.restrict
151
+ },
152
+ nullable: !relDef.notNull
153
+ });
154
+ if (!this.schema.entities[relDef.targetEntity].fields[relDef.targetField]) {
155
+ this.processRelation(relDef.targetEntity, relDef.targetField, {
156
+ type: "oneHasOneInverse",
157
+ targetEntity: entityName,
158
+ targetField: fieldName
159
+ });
160
+ }
161
+ break;
162
+ case "oneHasOneInverse":
163
+ this.registerField(entityName, {
164
+ type: Model.RelationType.OneHasOne,
165
+ name: fieldName,
166
+ target: relDef.targetEntity,
167
+ ownedBy: relDef.targetField,
168
+ nullable: !relDef.notNull
169
+ });
170
+ break;
171
+ }
172
+ }
173
+ registerField(entityName, field) {
174
+ const entity = this.getEntity(entityName);
175
+ entity.fields[field.name] = field;
176
+ }
177
+ getEntity(entityName) {
178
+ var _a;
179
+ return (_a = this.entities)[entityName] ?? (_a[entityName] = {
180
+ name: entityName,
181
+ unique: [],
182
+ indexes: [],
183
+ primary: "id",
184
+ primaryColumn: "id",
185
+ tableName: this.conventions.getTableName(entityName),
186
+ eventLog: { enabled: true },
187
+ fields: {
188
+ id: {
189
+ name: "id",
190
+ columnName: "id",
191
+ type: Model.ColumnType.Uuid,
192
+ columnType: resolveDefaultColumnType(Model.ColumnType.Uuid),
193
+ nullable: false
194
+ }
195
+ }
196
+ });
197
+ }
198
+ }
199
+ export {
200
+ LaxSchemaConverter
201
+ };
202
+ //# sourceMappingURL=LaxSchemaConverter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LaxSchemaConverter.js","sources":["../../../../../packages/schema-utils/src/lax/LaxSchemaConverter.ts"],"sourcesContent":["import { Model, Schema, Writable } from '@contember/schema'\nimport { LaxSchema, LaxSchemaColumn, LaxSchemaEnum, LaxSchemaField, LaxSchemaRelation } from './schema'\nimport { DefaultNamingConventions, NamingConventions, resolveDefaultColumnType } from '../model'\nimport { emptySchema } from '../index'\n\nconst simpleColumnTypes: { [K in LaxSchemaColumn['type']]: { type: Model.ColumnType; columnType: string } } = {\n\tboolean: { type: Model.ColumnType.Bool, columnType: 'boolean' },\n\tint: { type: Model.ColumnType.Int, columnType: 'integer' },\n\tdate: { type: Model.ColumnType.Date, columnType: 'date' },\n\tdatetime: { type: Model.ColumnType.DateTime, columnType: 'timestamptz' },\n\tfloat: { type: Model.ColumnType.Double, columnType: 'double precision' },\n\tjson: { type: Model.ColumnType.Json, columnType: 'jsonb' },\n\tstring: { type: Model.ColumnType.String, columnType: 'text' },\n}\n\nconst isColumnDefinition = (field: LaxSchemaField): field is LaxSchemaColumn => field.type in simpleColumnTypes\n\nexport class LaxSchemaConverter {\n\tconstructor(\n\t\tprivate readonly schema: LaxSchema,\n\t\tprivate readonly conventions: NamingConventions = new DefaultNamingConventions(),\n\t) {\n\t}\n\n\tpublic convert(): Schema {\n\t\tconst builder = new LaxSchemaBuilder(this.schema, this.conventions)\n\t\treturn builder.build()\n\t}\n}\n\nclass LaxSchemaBuilder {\n\tprivate readonly entities: Record<string, Model.Entity> = {}\n\tprivate readonly enums: Record<string, string[]> = {}\n\n\tconstructor(\n\t\tprivate readonly schema: LaxSchema,\n\t\tprivate readonly conventions: NamingConventions = new DefaultNamingConventions(),\n\t) {\n\t}\n\n\tpublic build(): Schema {\n\t\tfor (const [entityName, entityDefinition] of Object.entries(this.schema.entities)) {\n\t\t\tfor (const [fieldName, fieldDefinition] of Object.entries(entityDefinition.fields)) {\n\t\t\t\tif (isColumnDefinition(fieldDefinition)) {\n\t\t\t\t\tthis.processColumn(entityName, fieldName, fieldDefinition)\n\t\t\t\t} else if (fieldDefinition.type === 'enum') {\n\t\t\t\t\tthis.processEnum(entityName, fieldName, fieldDefinition)\n\t\t\t\t} else {\n\t\t\t\t\tthis.processRelation(entityName, fieldName, fieldDefinition)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\t...emptySchema,\n\t\t\tmodel: {\n\t\t\t\tenums: this.enums,\n\t\t\t\tentities: this.entities,\n\t\t\t},\n\t\t}\n\t}\n\n\tprivate processColumn(entityName: string, fieldName: string, columnDef: LaxSchemaColumn) {\n\t\tconst columnName = this.conventions.getColumnName(fieldName)\n\t\tthis.registerField(entityName, {\n\t\t\tname: fieldName,\n\t\t\tcolumnName: columnName,\n\t\t\ttype: simpleColumnTypes[columnDef.type].type,\n\t\t\tnullable: !columnDef.notNull,\n\t\t\tcolumnType: simpleColumnTypes[columnDef.type].columnType,\n\t\t})\n\t}\n\n\tprivate processEnum(entityName: string, fieldName: string, enumDef: LaxSchemaEnum) {\n\t\tthis.enums[enumDef.enumName] = Array.from(new Set([...this.enums[enumDef.enumName] ?? [], ...enumDef.values]))\n\t\tconst columnName = this.conventions.getColumnName(fieldName)\n\t\tthis.registerField(entityName, {\n\t\t\tname: fieldName,\n\t\t\tcolumnName: columnName,\n\t\t\ttype: Model.ColumnType.Enum,\n\t\t\tnullable: !enumDef.notNull,\n\t\t\tcolumnType: enumDef.enumName,\n\t\t})\n\t}\n\n\tprivate processRelation(entityName: string, fieldName: string, relDef: LaxSchemaRelation) {\n\t\tswitch (relDef.type) {\n\t\t\tcase 'manyHasMany':\n\t\t\t\tconst joiningColumns = this.conventions.getJoiningTableColumnNames(entityName, fieldName, relDef.targetEntity, relDef.targetField)\n\t\t\t\tthis.registerField(entityName, {\n\t\t\t\t\ttype: Model.RelationType.ManyHasMany,\n\t\t\t\t\tname: fieldName,\n\t\t\t\t\ttarget: relDef.targetEntity,\n\t\t\t\t\tinversedBy: relDef.targetField,\n\t\t\t\t\tjoiningTable: {\n\t\t\t\t\t\ttableName: this.conventions.getJoiningTableName(entityName, fieldName),\n\t\t\t\t\t\tjoiningColumn: {\n\t\t\t\t\t\t\tcolumnName: joiningColumns[0],\n\t\t\t\t\t\t\tonDelete: Model.OnDelete.cascade,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tinverseJoiningColumn: {\n\t\t\t\t\t\t\tcolumnName: joiningColumns[1],\n\t\t\t\t\t\t\tonDelete: Model.OnDelete.cascade,\n\t\t\t\t\t\t},\n\t\t\t\t\t\teventLog: { enabled: true },\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tif (!this.schema.entities[relDef.targetEntity].fields[relDef.targetField]) {\n\t\t\t\t\tthis.processRelation(relDef.targetEntity, relDef.targetField, {\n\t\t\t\t\t\ttype: 'manyHasManyInverse',\n\t\t\t\t\t\ttargetEntity: entityName,\n\t\t\t\t\t\ttargetField: fieldName,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase 'manyHasManyInverse':\n\t\t\t\tthis.registerField(entityName, {\n\t\t\t\t\ttype: Model.RelationType.ManyHasMany,\n\t\t\t\t\tname: fieldName,\n\t\t\t\t\ttarget: relDef.targetEntity,\n\t\t\t\t\townedBy: relDef.targetField,\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tcase 'manyHasOne':\n\t\t\t\tthis.registerField(entityName, {\n\t\t\t\t\ttype: Model.RelationType.ManyHasOne,\n\t\t\t\t\tname: fieldName,\n\t\t\t\t\ttarget: relDef.targetEntity,\n\t\t\t\t\tinversedBy: relDef.targetField,\n\t\t\t\t\tjoiningColumn: {\n\t\t\t\t\t\tcolumnName: this.conventions.getJoiningColumnName(fieldName),\n\t\t\t\t\t\tonDelete: Model.OnDelete.restrict,\n\t\t\t\t\t},\n\t\t\t\t\tnullable: !relDef.notNull,\n\t\t\t\t})\n\t\t\t\tif (!this.schema.entities[relDef.targetEntity].fields[relDef.targetField]) {\n\t\t\t\t\tthis.processRelation(relDef.targetEntity, relDef.targetField, {\n\t\t\t\t\t\ttype: 'oneHasMany',\n\t\t\t\t\t\ttargetEntity: entityName,\n\t\t\t\t\t\ttargetField: fieldName,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase 'oneHasMany':\n\t\t\t\tthis.registerField(entityName, {\n\t\t\t\t\ttype: Model.RelationType.OneHasMany,\n\t\t\t\t\tname: fieldName,\n\t\t\t\t\ttarget: relDef.targetEntity,\n\t\t\t\t\townedBy: relDef.targetField,\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tcase 'oneHasOne':\n\t\t\t\tthis.registerField(entityName, {\n\t\t\t\t\ttype: Model.RelationType.OneHasOne,\n\t\t\t\t\tname: fieldName,\n\t\t\t\t\ttarget: relDef.targetEntity,\n\t\t\t\t\tinversedBy: relDef.targetField,\n\t\t\t\t\tjoiningColumn: {\n\t\t\t\t\t\tcolumnName: this.conventions.getJoiningColumnName(fieldName),\n\t\t\t\t\t\tonDelete: Model.OnDelete.restrict,\n\t\t\t\t\t},\n\t\t\t\t\tnullable: !relDef.notNull,\n\t\t\t\t})\n\t\t\t\tif (!this.schema.entities[relDef.targetEntity].fields[relDef.targetField]) {\n\t\t\t\t\tthis.processRelation(relDef.targetEntity, relDef.targetField, {\n\t\t\t\t\t\ttype: 'oneHasOneInverse',\n\t\t\t\t\t\ttargetEntity: entityName,\n\t\t\t\t\t\ttargetField: fieldName,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase 'oneHasOneInverse':\n\t\t\t\tthis.registerField(entityName, {\n\t\t\t\t\ttype: Model.RelationType.OneHasOne,\n\t\t\t\t\tname: fieldName,\n\t\t\t\t\ttarget: relDef.targetEntity,\n\t\t\t\t\townedBy: relDef.targetField,\n\t\t\t\t\tnullable: !relDef.notNull,\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\tprivate registerField(entityName: string, field: Model.AnyField) {\n\t\tconst entity = this.getEntity(entityName)\n\t\t;(entity.fields as Writable<Model.Entity['fields']>)[field.name] = field\n\t}\n\n\tprivate getEntity(entityName: string): Model.Entity {\n\t\treturn this.entities[entityName] ??= {\n\t\t\tname: entityName,\n\t\t\tunique: [],\n\t\t\tindexes: [],\n\t\t\tprimary: 'id',\n\t\t\tprimaryColumn: 'id',\n\t\t\ttableName: this.conventions.getTableName(entityName),\n\t\t\teventLog: { enabled: true },\n\t\t\tfields: {\n\t\t\t\tid: {\n\t\t\t\t\tname: 'id',\n\t\t\t\t\tcolumnName: 'id',\n\t\t\t\t\ttype: Model.ColumnType.Uuid,\n\t\t\t\t\tcolumnType: resolveDefaultColumnType(Model.ColumnType.Uuid),\n\t\t\t\t\tnullable: false,\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\t}\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const Typesafe = require("@contember/typesafe");
4
+ function _interopNamespaceDefault(e) {
5
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
6
+ if (e) {
7
+ for (const k in e) {
8
+ if (k !== "default") {
9
+ const d = Object.getOwnPropertyDescriptor(e, k);
10
+ Object.defineProperty(n, k, d.get ? d : {
11
+ enumerable: true,
12
+ get: () => e[k]
13
+ });
14
+ }
15
+ }
16
+ }
17
+ n.default = e;
18
+ return Object.freeze(n);
19
+ }
20
+ const Typesafe__namespace = /* @__PURE__ */ _interopNamespaceDefault(Typesafe);
21
+ const LaxSchemaEnumInner = Typesafe__namespace.intersection(
22
+ Typesafe__namespace.object({
23
+ values: Typesafe__namespace.array(Typesafe__namespace.string),
24
+ enumName: Typesafe__namespace.string
25
+ }),
26
+ Typesafe__namespace.partial({
27
+ notNull: Typesafe__namespace.boolean,
28
+ unique: Typesafe__namespace.boolean
29
+ })
30
+ );
31
+ const LaxSchemaColumnInner = Typesafe__namespace.partial({
32
+ notNull: Typesafe__namespace.boolean,
33
+ unique: Typesafe__namespace.boolean
34
+ });
35
+ const LaxSchemaRelationInner = Typesafe__namespace.intersection(
36
+ Typesafe__namespace.object({
37
+ targetEntity: Typesafe__namespace.string,
38
+ targetField: Typesafe__namespace.string
39
+ }),
40
+ Typesafe__namespace.partial({
41
+ notNull: Typesafe__namespace.boolean
42
+ })
43
+ );
44
+ const LaxSchemaField = Typesafe__namespace.discriminatedUnion("type", {
45
+ oneHasOne: LaxSchemaRelationInner,
46
+ oneHasOneInverse: LaxSchemaRelationInner,
47
+ manyHasMany: LaxSchemaRelationInner,
48
+ manyHasManyInverse: LaxSchemaRelationInner,
49
+ oneHasMany: LaxSchemaRelationInner,
50
+ manyHasOne: LaxSchemaRelationInner,
51
+ int: LaxSchemaColumnInner,
52
+ float: LaxSchemaColumnInner,
53
+ boolean: LaxSchemaColumnInner,
54
+ string: LaxSchemaColumnInner,
55
+ json: LaxSchemaColumnInner,
56
+ date: LaxSchemaColumnInner,
57
+ datetime: LaxSchemaColumnInner,
58
+ enum: LaxSchemaEnumInner
59
+ });
60
+ const LaxSchemaEntity = Typesafe__namespace.object({
61
+ fields: Typesafe__namespace.record(Typesafe__namespace.string, LaxSchemaField)
62
+ });
63
+ const LaxSchema = Typesafe__namespace.object({
64
+ entities: Typesafe__namespace.record(
65
+ Typesafe__namespace.string,
66
+ LaxSchemaEntity
67
+ )
68
+ });
69
+ exports.LaxSchema = LaxSchema;
70
+ //# sourceMappingURL=schema.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.cjs","sources":["../../../../../packages/schema-utils/src/lax/schema.ts"],"sourcesContent":["import * as Typesafe from '@contember/typesafe'\n\nconst LaxSchemaEnumInner = Typesafe.intersection(\n\tTypesafe.object({\n\t\tvalues: Typesafe.array(Typesafe.string),\n\t\tenumName: Typesafe.string,\n\t}),\n\tTypesafe.partial({\n\t\tnotNull: Typesafe.boolean,\n\t\tunique: Typesafe.boolean,\n\t}),\n)\n\nconst LaxSchemaColumnInner = Typesafe.partial({\n\tnotNull: Typesafe.boolean,\n\tunique: Typesafe.boolean,\n})\n\nconst LaxSchemaRelationInner = Typesafe.intersection(\n\tTypesafe.object({\n\t\ttargetEntity: Typesafe.string,\n\t\ttargetField: Typesafe.string,\n\t}),\n\tTypesafe.partial({\n\t\tnotNull: Typesafe.boolean,\n\t}),\n)\n\nconst LaxSchemaField = Typesafe.discriminatedUnion('type', {\n\toneHasOne: LaxSchemaRelationInner,\n\toneHasOneInverse: LaxSchemaRelationInner,\n\tmanyHasMany: LaxSchemaRelationInner,\n\tmanyHasManyInverse: LaxSchemaRelationInner,\n\toneHasMany: LaxSchemaRelationInner,\n\tmanyHasOne: LaxSchemaRelationInner,\n\tint: LaxSchemaColumnInner,\n\tfloat: LaxSchemaColumnInner,\n\tboolean: LaxSchemaColumnInner,\n\tstring: LaxSchemaColumnInner,\n\tjson: LaxSchemaColumnInner,\n\tdate: LaxSchemaColumnInner,\n\tdatetime: LaxSchemaColumnInner,\n\tenum: LaxSchemaEnumInner,\n})\n\nexport type LaxSchemaField = ReturnType<typeof LaxSchemaField>\nexport type LaxSchemaEnum = Extract<LaxSchemaField, { type: 'enum' }>\nexport type LaxSchemaColumn = Extract<LaxSchemaField, { type: 'int' | 'float' | 'boolean' | 'string' | 'json' | 'datetime' | 'date' | 'uuid' }>\nexport type LaxSchemaRelation = Extract<\n\tLaxSchemaField,\n\t{ type: 'oneHasOne' | 'oneHasOneInverse' | 'manyHasMany' | 'manyHasManyInverse' | 'oneHasMany' | 'manyHasOne' }\n>\n\nconst LaxSchemaEntity = Typesafe.object({\n\tfields: Typesafe.record(Typesafe.string, LaxSchemaField),\n})\nexport type LaxSchemaEntity = ReturnType<typeof LaxSchemaEntity>\n\nexport const LaxSchema = Typesafe.object({\n\tentities: Typesafe.record(\n\t\tTypesafe.string,\n\t\tLaxSchemaEntity,\n\t),\n})\nexport type LaxSchema = ReturnType<typeof LaxSchema>\n"],"names":["Typesafe"],"mappings":";;;;;;;;;;;;;;;;;;;;AAEA,MAAM,qBAAqBA,oBAAS;AAAA,EACnCA,oBAAS,OAAO;AAAA,IACf,QAAQA,oBAAS,MAAMA,oBAAS,MAAM;AAAA,IACtC,UAAUA,oBAAS;AAAA,EAAA,CACnB;AAAA,EACDA,oBAAS,QAAQ;AAAA,IAChB,SAASA,oBAAS;AAAA,IAClB,QAAQA,oBAAS;AAAA,EAAA,CACjB;AACF;AAEA,MAAM,uBAAuBA,oBAAS,QAAQ;AAAA,EAC7C,SAASA,oBAAS;AAAA,EAClB,QAAQA,oBAAS;AAClB,CAAC;AAED,MAAM,yBAAyBA,oBAAS;AAAA,EACvCA,oBAAS,OAAO;AAAA,IACf,cAAcA,oBAAS;AAAA,IACvB,aAAaA,oBAAS;AAAA,EAAA,CACtB;AAAA,EACDA,oBAAS,QAAQ;AAAA,IAChB,SAASA,oBAAS;AAAA,EAAA,CAClB;AACF;AAEA,MAAM,iBAAiBA,oBAAS,mBAAmB,QAAQ;AAAA,EAC1D,WAAW;AAAA,EACX,kBAAkB;AAAA,EAClB,aAAa;AAAA,EACb,oBAAoB;AAAA,EACpB,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,KAAK;AAAA,EACL,OAAO;AAAA,EACP,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,MAAM;AAAA,EACN,UAAU;AAAA,EACV,MAAM;AACP,CAAC;AAUD,MAAM,kBAAkBA,oBAAS,OAAO;AAAA,EACvC,QAAQA,oBAAS,OAAOA,oBAAS,QAAQ,cAAc;AACxD,CAAC;AAGM,MAAM,YAAYA,oBAAS,OAAO;AAAA,EACxC,UAAUA,oBAAS;AAAA,IAClBA,oBAAS;AAAA,IACT;AAAA,EAAA;AAEF,CAAC;;"}
@@ -0,0 +1,53 @@
1
+ import * as Typesafe from "@contember/typesafe";
2
+ const LaxSchemaEnumInner = Typesafe.intersection(
3
+ Typesafe.object({
4
+ values: Typesafe.array(Typesafe.string),
5
+ enumName: Typesafe.string
6
+ }),
7
+ Typesafe.partial({
8
+ notNull: Typesafe.boolean,
9
+ unique: Typesafe.boolean
10
+ })
11
+ );
12
+ const LaxSchemaColumnInner = Typesafe.partial({
13
+ notNull: Typesafe.boolean,
14
+ unique: Typesafe.boolean
15
+ });
16
+ const LaxSchemaRelationInner = Typesafe.intersection(
17
+ Typesafe.object({
18
+ targetEntity: Typesafe.string,
19
+ targetField: Typesafe.string
20
+ }),
21
+ Typesafe.partial({
22
+ notNull: Typesafe.boolean
23
+ })
24
+ );
25
+ const LaxSchemaField = Typesafe.discriminatedUnion("type", {
26
+ oneHasOne: LaxSchemaRelationInner,
27
+ oneHasOneInverse: LaxSchemaRelationInner,
28
+ manyHasMany: LaxSchemaRelationInner,
29
+ manyHasManyInverse: LaxSchemaRelationInner,
30
+ oneHasMany: LaxSchemaRelationInner,
31
+ manyHasOne: LaxSchemaRelationInner,
32
+ int: LaxSchemaColumnInner,
33
+ float: LaxSchemaColumnInner,
34
+ boolean: LaxSchemaColumnInner,
35
+ string: LaxSchemaColumnInner,
36
+ json: LaxSchemaColumnInner,
37
+ date: LaxSchemaColumnInner,
38
+ datetime: LaxSchemaColumnInner,
39
+ enum: LaxSchemaEnumInner
40
+ });
41
+ const LaxSchemaEntity = Typesafe.object({
42
+ fields: Typesafe.record(Typesafe.string, LaxSchemaField)
43
+ });
44
+ const LaxSchema = Typesafe.object({
45
+ entities: Typesafe.record(
46
+ Typesafe.string,
47
+ LaxSchemaEntity
48
+ )
49
+ });
50
+ export {
51
+ LaxSchema
52
+ };
53
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sources":["../../../../../packages/schema-utils/src/lax/schema.ts"],"sourcesContent":["import * as Typesafe from '@contember/typesafe'\n\nconst LaxSchemaEnumInner = Typesafe.intersection(\n\tTypesafe.object({\n\t\tvalues: Typesafe.array(Typesafe.string),\n\t\tenumName: Typesafe.string,\n\t}),\n\tTypesafe.partial({\n\t\tnotNull: Typesafe.boolean,\n\t\tunique: Typesafe.boolean,\n\t}),\n)\n\nconst LaxSchemaColumnInner = Typesafe.partial({\n\tnotNull: Typesafe.boolean,\n\tunique: Typesafe.boolean,\n})\n\nconst LaxSchemaRelationInner = Typesafe.intersection(\n\tTypesafe.object({\n\t\ttargetEntity: Typesafe.string,\n\t\ttargetField: Typesafe.string,\n\t}),\n\tTypesafe.partial({\n\t\tnotNull: Typesafe.boolean,\n\t}),\n)\n\nconst LaxSchemaField = Typesafe.discriminatedUnion('type', {\n\toneHasOne: LaxSchemaRelationInner,\n\toneHasOneInverse: LaxSchemaRelationInner,\n\tmanyHasMany: LaxSchemaRelationInner,\n\tmanyHasManyInverse: LaxSchemaRelationInner,\n\toneHasMany: LaxSchemaRelationInner,\n\tmanyHasOne: LaxSchemaRelationInner,\n\tint: LaxSchemaColumnInner,\n\tfloat: LaxSchemaColumnInner,\n\tboolean: LaxSchemaColumnInner,\n\tstring: LaxSchemaColumnInner,\n\tjson: LaxSchemaColumnInner,\n\tdate: LaxSchemaColumnInner,\n\tdatetime: LaxSchemaColumnInner,\n\tenum: LaxSchemaEnumInner,\n})\n\nexport type LaxSchemaField = ReturnType<typeof LaxSchemaField>\nexport type LaxSchemaEnum = Extract<LaxSchemaField, { type: 'enum' }>\nexport type LaxSchemaColumn = Extract<LaxSchemaField, { type: 'int' | 'float' | 'boolean' | 'string' | 'json' | 'datetime' | 'date' | 'uuid' }>\nexport type LaxSchemaRelation = Extract<\n\tLaxSchemaField,\n\t{ type: 'oneHasOne' | 'oneHasOneInverse' | 'manyHasMany' | 'manyHasManyInverse' | 'oneHasMany' | 'manyHasOne' }\n>\n\nconst LaxSchemaEntity = Typesafe.object({\n\tfields: Typesafe.record(Typesafe.string, LaxSchemaField),\n})\nexport type LaxSchemaEntity = ReturnType<typeof LaxSchemaEntity>\n\nexport const LaxSchema = Typesafe.object({\n\tentities: Typesafe.record(\n\t\tTypesafe.string,\n\t\tLaxSchemaEntity,\n\t),\n})\nexport type LaxSchema = ReturnType<typeof LaxSchema>\n"],"names":[],"mappings":";AAEA,MAAM,qBAAqB,SAAS;AAAA,EACnC,SAAS,OAAO;AAAA,IACf,QAAQ,SAAS,MAAM,SAAS,MAAM;AAAA,IACtC,UAAU,SAAS;AAAA,EAAA,CACnB;AAAA,EACD,SAAS,QAAQ;AAAA,IAChB,SAAS,SAAS;AAAA,IAClB,QAAQ,SAAS;AAAA,EAAA,CACjB;AACF;AAEA,MAAM,uBAAuB,SAAS,QAAQ;AAAA,EAC7C,SAAS,SAAS;AAAA,EAClB,QAAQ,SAAS;AAClB,CAAC;AAED,MAAM,yBAAyB,SAAS;AAAA,EACvC,SAAS,OAAO;AAAA,IACf,cAAc,SAAS;AAAA,IACvB,aAAa,SAAS;AAAA,EAAA,CACtB;AAAA,EACD,SAAS,QAAQ;AAAA,IAChB,SAAS,SAAS;AAAA,EAAA,CAClB;AACF;AAEA,MAAM,iBAAiB,SAAS,mBAAmB,QAAQ;AAAA,EAC1D,WAAW;AAAA,EACX,kBAAkB;AAAA,EAClB,aAAa;AAAA,EACb,oBAAoB;AAAA,EACpB,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,KAAK;AAAA,EACL,OAAO;AAAA,EACP,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,MAAM;AAAA,EACN,UAAU;AAAA,EACV,MAAM;AACP,CAAC;AAUD,MAAM,kBAAkB,SAAS,OAAO;AAAA,EACvC,QAAQ,SAAS,OAAO,SAAS,QAAQ,cAAc;AACxD,CAAC;AAGM,MAAM,YAAY,SAAS,OAAO;AAAA,EACxC,UAAU,SAAS;AAAA,IAClB,SAAS;AAAA,IACT;AAAA,EAAA;AAEF,CAAC;"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const toUnderscore = (s) => s.replace(/([A-Z]+)/g, (x, y) => "_" + y.toLowerCase()).replace(/^_/, "");
4
+ class DefaultNamingConventions {
5
+ getPrimaryField() {
6
+ return "id";
7
+ }
8
+ getColumnName(fieldName) {
9
+ return toUnderscore(fieldName);
10
+ }
11
+ getTableName(entityName) {
12
+ return toUnderscore(entityName);
13
+ }
14
+ getJoiningColumnName(relationName) {
15
+ return toUnderscore(relationName) + "_id";
16
+ }
17
+ getJoiningTableName(entity, relation) {
18
+ return toUnderscore(entity) + "_" + toUnderscore(relation);
19
+ }
20
+ getJoiningTableColumnNames(owningEntity, owningRelation, inverseEntity, inverseRelation) {
21
+ return [
22
+ toUnderscore(owningEntity) + "_id",
23
+ toUnderscore(inverseEntity === owningEntity ? owningRelation : inverseEntity) + "_id"
24
+ ];
25
+ }
26
+ }
27
+ exports.DefaultNamingConventions = DefaultNamingConventions;
28
+ //# sourceMappingURL=NamingConventions.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NamingConventions.cjs","sources":["../../../../../packages/schema-utils/src/model/NamingConventions.ts"],"sourcesContent":["export interface NamingConventions {\n\tgetPrimaryField(): string\n\n\tgetColumnName(fieldName: string): string\n\n\tgetTableName(entityName: string): string\n\n\tgetJoiningColumnName(relationName: string): string\n\n\tgetJoiningTableName(entity: string, relation: string): string\n\n\tgetJoiningTableColumnNames(\n\t\towningEntity: string,\n\t\towningRelation: string,\n\t\tinverseEntity: string,\n\t\tinverseRelation?: string,\n\t): [string, string]\n}\n\nconst toUnderscore = (s: string) => s.replace(/([A-Z]+)/g, (x, y) => '_' + y.toLowerCase()).replace(/^_/, '')\nexport class DefaultNamingConventions implements NamingConventions {\n\tgetPrimaryField(): string {\n\t\treturn 'id'\n\t}\n\n\tgetColumnName(fieldName: string): string {\n\t\treturn toUnderscore(fieldName)\n\t}\n\n\tgetTableName(entityName: string): string {\n\t\treturn toUnderscore(entityName)\n\t}\n\n\tgetJoiningColumnName(relationName: string): string {\n\t\treturn toUnderscore(relationName) + '_id'\n\t}\n\n\tgetJoiningTableName(entity: string, relation: string): string {\n\t\treturn toUnderscore(entity) + '_' + toUnderscore(relation)\n\t}\n\n\tgetJoiningTableColumnNames(\n\t\towningEntity: string,\n\t\towningRelation: string,\n\t\tinverseEntity: string,\n\t\tinverseRelation?: string,\n\t): [string, string] {\n\t\treturn [\n\t\t\ttoUnderscore(owningEntity) + '_id',\n\t\t\ttoUnderscore(inverseEntity === owningEntity ? owningRelation : inverseEntity) + '_id',\n\t\t]\n\t}\n}\n"],"names":[],"mappings":";;AAmBA,MAAM,eAAe,CAAC,MAAc,EAAE,QAAQ,aAAa,CAAC,GAAG,MAAM,MAAM,EAAE,YAAA,CAAa,EAAE,QAAQ,MAAM,EAAE;AACrG,MAAM,yBAAsD;AAAA,EAClE,kBAA0B;AACzB,WAAO;AAAA,EACR;AAAA,EAEA,cAAc,WAA2B;AACxC,WAAO,aAAa,SAAS;AAAA,EAC9B;AAAA,EAEA,aAAa,YAA4B;AACxC,WAAO,aAAa,UAAU;AAAA,EAC/B;AAAA,EAEA,qBAAqB,cAA8B;AAClD,WAAO,aAAa,YAAY,IAAI;AAAA,EACrC;AAAA,EAEA,oBAAoB,QAAgB,UAA0B;AAC7D,WAAO,aAAa,MAAM,IAAI,MAAM,aAAa,QAAQ;AAAA,EAC1D;AAAA,EAEA,2BACC,cACA,gBACA,eACA,iBACmB;AACnB,WAAO;AAAA,MACN,aAAa,YAAY,IAAI;AAAA,MAC7B,aAAa,kBAAkB,eAAe,iBAAiB,aAAa,IAAI;AAAA,IAAA;AAAA,EAElF;AACD;;"}
@@ -0,0 +1,28 @@
1
+ const toUnderscore = (s) => s.replace(/([A-Z]+)/g, (x, y) => "_" + y.toLowerCase()).replace(/^_/, "");
2
+ class DefaultNamingConventions {
3
+ getPrimaryField() {
4
+ return "id";
5
+ }
6
+ getColumnName(fieldName) {
7
+ return toUnderscore(fieldName);
8
+ }
9
+ getTableName(entityName) {
10
+ return toUnderscore(entityName);
11
+ }
12
+ getJoiningColumnName(relationName) {
13
+ return toUnderscore(relationName) + "_id";
14
+ }
15
+ getJoiningTableName(entity, relation) {
16
+ return toUnderscore(entity) + "_" + toUnderscore(relation);
17
+ }
18
+ getJoiningTableColumnNames(owningEntity, owningRelation, inverseEntity, inverseRelation) {
19
+ return [
20
+ toUnderscore(owningEntity) + "_id",
21
+ toUnderscore(inverseEntity === owningEntity ? owningRelation : inverseEntity) + "_id"
22
+ ];
23
+ }
24
+ }
25
+ export {
26
+ DefaultNamingConventions
27
+ };
28
+ //# sourceMappingURL=NamingConventions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NamingConventions.js","sources":["../../../../../packages/schema-utils/src/model/NamingConventions.ts"],"sourcesContent":["export interface NamingConventions {\n\tgetPrimaryField(): string\n\n\tgetColumnName(fieldName: string): string\n\n\tgetTableName(entityName: string): string\n\n\tgetJoiningColumnName(relationName: string): string\n\n\tgetJoiningTableName(entity: string, relation: string): string\n\n\tgetJoiningTableColumnNames(\n\t\towningEntity: string,\n\t\towningRelation: string,\n\t\tinverseEntity: string,\n\t\tinverseRelation?: string,\n\t): [string, string]\n}\n\nconst toUnderscore = (s: string) => s.replace(/([A-Z]+)/g, (x, y) => '_' + y.toLowerCase()).replace(/^_/, '')\nexport class DefaultNamingConventions implements NamingConventions {\n\tgetPrimaryField(): string {\n\t\treturn 'id'\n\t}\n\n\tgetColumnName(fieldName: string): string {\n\t\treturn toUnderscore(fieldName)\n\t}\n\n\tgetTableName(entityName: string): string {\n\t\treturn toUnderscore(entityName)\n\t}\n\n\tgetJoiningColumnName(relationName: string): string {\n\t\treturn toUnderscore(relationName) + '_id'\n\t}\n\n\tgetJoiningTableName(entity: string, relation: string): string {\n\t\treturn toUnderscore(entity) + '_' + toUnderscore(relation)\n\t}\n\n\tgetJoiningTableColumnNames(\n\t\towningEntity: string,\n\t\towningRelation: string,\n\t\tinverseEntity: string,\n\t\tinverseRelation?: string,\n\t): [string, string] {\n\t\treturn [\n\t\t\ttoUnderscore(owningEntity) + '_id',\n\t\t\ttoUnderscore(inverseEntity === owningEntity ? owningRelation : inverseEntity) + '_id',\n\t\t]\n\t}\n}\n"],"names":[],"mappings":"AAmBA,MAAM,eAAe,CAAC,MAAc,EAAE,QAAQ,aAAa,CAAC,GAAG,MAAM,MAAM,EAAE,YAAA,CAAa,EAAE,QAAQ,MAAM,EAAE;AACrG,MAAM,yBAAsD;AAAA,EAClE,kBAA0B;AACzB,WAAO;AAAA,EACR;AAAA,EAEA,cAAc,WAA2B;AACxC,WAAO,aAAa,SAAS;AAAA,EAC9B;AAAA,EAEA,aAAa,YAA4B;AACxC,WAAO,aAAa,UAAU;AAAA,EAC/B;AAAA,EAEA,qBAAqB,cAA8B;AAClD,WAAO,aAAa,YAAY,IAAI;AAAA,EACrC;AAAA,EAEA,oBAAoB,QAAgB,UAA0B;AAC7D,WAAO,aAAa,MAAM,IAAI,MAAM,aAAa,QAAQ;AAAA,EAC1D;AAAA,EAEA,2BACC,cACA,gBACA,eACA,iBACmB;AACnB,WAAO;AAAA,MACN,aAAa,YAAY,IAAI;AAAA,MAC7B,aAAa,kBAAkB,eAAe,iBAAiB,aAAa,IAAI;AAAA,IAAA;AAAA,EAElF;AACD;"}