@contember/schema-definition 2.1.0-beta.2 → 2.2.0-alpha.2

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 (428) hide show
  1. package/dist/development/index.cjs +1 -0
  2. package/dist/development/index.cjs.map +1 -1
  3. package/dist/development/index.js +2 -1
  4. package/dist/development/index.js.map +1 -1
  5. package/dist/development/src/acl/builder/EntityPermissionsBuilder.cjs.map +1 -1
  6. package/dist/development/src/acl/builder/EntityPermissionsBuilder.js.map +1 -1
  7. package/dist/development/src/acl/builder/FieldPermissionsBuilder.cjs.map +1 -1
  8. package/dist/development/src/acl/builder/FieldPermissionsBuilder.js.map +1 -1
  9. package/dist/development/src/acl/builder/PermissionOverrider.cjs.map +1 -1
  10. package/dist/development/src/acl/builder/PermissionOverrider.js.map +1 -1
  11. package/dist/development/src/acl/builder/PermissionsBuilder.cjs.map +1 -1
  12. package/dist/development/src/acl/builder/PermissionsBuilder.js.map +1 -1
  13. package/dist/development/src/acl/definition/aclExtensions.cjs.map +1 -1
  14. package/dist/development/src/acl/definition/aclExtensions.js.map +1 -1
  15. package/dist/development/src/acl/definition/customPrimary.cjs.map +1 -1
  16. package/dist/development/src/acl/definition/customPrimary.js.map +1 -1
  17. package/dist/development/src/acl/definition/index.cjs.map +1 -1
  18. package/dist/development/src/acl/definition/index.js.map +1 -1
  19. package/dist/development/src/acl/definition/internal/AclFactory.cjs.map +1 -1
  20. package/dist/development/src/acl/definition/internal/AclFactory.js.map +1 -1
  21. package/dist/development/src/acl/definition/internal/EntityPredicateResolver.cjs.map +1 -1
  22. package/dist/development/src/acl/definition/internal/EntityPredicateResolver.js.map +1 -1
  23. package/dist/development/src/acl/definition/internal/createPredicateName.cjs.map +1 -1
  24. package/dist/development/src/acl/definition/internal/createPredicateName.js.map +1 -1
  25. package/dist/development/src/acl/definition/internal/stores.cjs.map +1 -1
  26. package/dist/development/src/acl/definition/internal/stores.js.map +1 -1
  27. package/dist/development/src/acl/definition/permissions.cjs.map +1 -1
  28. package/dist/development/src/acl/definition/permissions.js.map +1 -1
  29. package/dist/development/src/acl/definition/variables.cjs.map +1 -1
  30. package/dist/development/src/acl/definition/variables.js.map +1 -1
  31. package/dist/development/src/actions/definition/index.cjs.map +1 -1
  32. package/dist/development/src/actions/definition/index.js.map +1 -1
  33. package/dist/development/src/actions/definition/internal/ActionsFactory.cjs.map +1 -1
  34. package/dist/development/src/actions/definition/internal/ActionsFactory.js.map +1 -1
  35. package/dist/development/src/actions/definition/internal/store.cjs.map +1 -1
  36. package/dist/development/src/actions/definition/internal/store.js.map +1 -1
  37. package/dist/development/src/actions/definition/triggers.cjs.map +1 -1
  38. package/dist/development/src/actions/definition/triggers.js.map +1 -1
  39. package/dist/development/src/createSchema.cjs +2 -1
  40. package/dist/development/src/createSchema.cjs.map +1 -1
  41. package/dist/development/src/createSchema.js +2 -1
  42. package/dist/development/src/createSchema.js.map +1 -1
  43. package/dist/development/src/model/builder/ColumnBuilder.cjs.map +1 -1
  44. package/dist/development/src/model/builder/ColumnBuilder.js.map +1 -1
  45. package/dist/development/src/model/builder/EntityBuilder.cjs.map +1 -1
  46. package/dist/development/src/model/builder/EntityBuilder.js.map +1 -1
  47. package/dist/development/src/model/builder/FieldBuilder.cjs.map +1 -1
  48. package/dist/development/src/model/builder/FieldBuilder.js.map +1 -1
  49. package/dist/development/src/model/builder/ManyHasManyBuilder.cjs.map +1 -1
  50. package/dist/development/src/model/builder/ManyHasManyBuilder.js.map +1 -1
  51. package/dist/development/src/model/builder/ManyHasOneBuilder.cjs.map +1 -1
  52. package/dist/development/src/model/builder/ManyHasOneBuilder.js.map +1 -1
  53. package/dist/development/src/model/builder/OneHasManyBuilder.cjs.map +1 -1
  54. package/dist/development/src/model/builder/OneHasManyBuilder.js.map +1 -1
  55. package/dist/development/src/model/builder/OneHasOneBuilder.cjs.map +1 -1
  56. package/dist/development/src/model/builder/OneHasOneBuilder.js.map +1 -1
  57. package/dist/development/src/model/builder/SchemaBuilder.cjs.map +1 -1
  58. package/dist/development/src/model/builder/SchemaBuilder.js.map +1 -1
  59. package/dist/development/src/model/builder/SchemaBuilderInternal.cjs.map +1 -1
  60. package/dist/development/src/model/builder/SchemaBuilderInternal.js.map +1 -1
  61. package/dist/development/src/model/builder/internal/ColumnProcessor.cjs.map +1 -1
  62. package/dist/development/src/model/builder/internal/ColumnProcessor.js.map +1 -1
  63. package/dist/development/src/model/builder/internal/ManyHasManyProcessor.cjs.map +1 -1
  64. package/dist/development/src/model/builder/internal/ManyHasManyProcessor.js.map +1 -1
  65. package/dist/development/src/model/builder/internal/ManyHasOneProcessor.cjs.map +1 -1
  66. package/dist/development/src/model/builder/internal/ManyHasOneProcessor.js.map +1 -1
  67. package/dist/development/src/model/builder/internal/OneHasManyProcessor.cjs.map +1 -1
  68. package/dist/development/src/model/builder/internal/OneHasManyProcessor.js.map +1 -1
  69. package/dist/development/src/model/builder/internal/OneHasOneProcessor.cjs.map +1 -1
  70. package/dist/development/src/model/builder/internal/OneHasOneProcessor.js.map +1 -1
  71. package/dist/development/src/model/definition/EventLogDefinition.cjs.map +1 -1
  72. package/dist/development/src/model/definition/EventLogDefinition.js.map +1 -1
  73. package/dist/development/src/model/definition/IndexDefinition.cjs +35 -10
  74. package/dist/development/src/model/definition/IndexDefinition.cjs.map +1 -1
  75. package/dist/development/src/model/definition/IndexDefinition.js +35 -10
  76. package/dist/development/src/model/definition/IndexDefinition.js.map +1 -1
  77. package/dist/development/src/model/definition/OrderByDefinition.cjs.map +1 -1
  78. package/dist/development/src/model/definition/OrderByDefinition.js.map +1 -1
  79. package/dist/development/src/model/definition/UniqueDefinition.cjs.map +1 -1
  80. package/dist/development/src/model/definition/UniqueDefinition.js.map +1 -1
  81. package/dist/development/src/model/definition/ViewDefinition.cjs.map +1 -1
  82. package/dist/development/src/model/definition/ViewDefinition.js.map +1 -1
  83. package/dist/development/src/model/definition/extensions.cjs.map +1 -1
  84. package/dist/development/src/model/definition/extensions.js.map +1 -1
  85. package/dist/development/src/model/definition/fieldDefinitions/ColumnDefinition.cjs +20 -2
  86. package/dist/development/src/model/definition/fieldDefinitions/ColumnDefinition.cjs.map +1 -1
  87. package/dist/development/src/model/definition/fieldDefinitions/ColumnDefinition.js +20 -2
  88. package/dist/development/src/model/definition/fieldDefinitions/ColumnDefinition.js.map +1 -1
  89. package/dist/development/src/model/definition/fieldDefinitions/FieldDefinition.cjs.map +1 -1
  90. package/dist/development/src/model/definition/fieldDefinitions/FieldDefinition.js.map +1 -1
  91. package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyDefinition.cjs.map +1 -1
  92. package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyDefinition.js.map +1 -1
  93. package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.cjs.map +1 -1
  94. package/dist/development/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.js.map +1 -1
  95. package/dist/development/src/model/definition/fieldDefinitions/ManyHasOneDefinition.cjs.map +1 -1
  96. package/dist/development/src/model/definition/fieldDefinitions/ManyHasOneDefinition.js.map +1 -1
  97. package/dist/development/src/model/definition/fieldDefinitions/OneHasManyDefinition.cjs.map +1 -1
  98. package/dist/development/src/model/definition/fieldDefinitions/OneHasManyDefinition.js.map +1 -1
  99. package/dist/development/src/model/definition/fieldDefinitions/OneHasOneDefinition.cjs.map +1 -1
  100. package/dist/development/src/model/definition/fieldDefinitions/OneHasOneDefinition.js.map +1 -1
  101. package/dist/development/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.cjs.map +1 -1
  102. package/dist/development/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.js.map +1 -1
  103. package/dist/development/src/model/definition/index.cjs +1 -0
  104. package/dist/development/src/model/definition/index.cjs.map +1 -1
  105. package/dist/development/src/model/definition/index.js +2 -1
  106. package/dist/development/src/model/definition/index.js.map +1 -1
  107. package/dist/development/src/model/definition/internal/EntityRegistry.cjs.map +1 -1
  108. package/dist/development/src/model/definition/internal/EntityRegistry.js.map +1 -1
  109. package/dist/development/src/model/definition/internal/EnumRegistry.cjs.map +1 -1
  110. package/dist/development/src/model/definition/internal/EnumRegistry.js.map +1 -1
  111. package/dist/development/src/model/definition/internal/SchemaBuilder.cjs.map +1 -1
  112. package/dist/development/src/model/definition/internal/SchemaBuilder.js.map +1 -1
  113. package/dist/development/src/strict.cjs +20 -5
  114. package/dist/development/src/strict.cjs.map +1 -1
  115. package/dist/development/src/strict.js +20 -5
  116. package/dist/development/src/strict.js.map +1 -1
  117. package/dist/development/src/utils/filterEntityDefinition.cjs.map +1 -1
  118. package/dist/development/src/utils/filterEntityDefinition.js.map +1 -1
  119. package/dist/development/src/validation/index.cjs.map +1 -1
  120. package/dist/development/src/validation/index.js.map +1 -1
  121. package/dist/production/index.cjs +1 -0
  122. package/dist/production/index.cjs.map +1 -1
  123. package/dist/production/index.js +2 -1
  124. package/dist/production/index.js.map +1 -1
  125. package/dist/production/src/acl/builder/EntityPermissionsBuilder.cjs.map +1 -1
  126. package/dist/production/src/acl/builder/EntityPermissionsBuilder.js.map +1 -1
  127. package/dist/production/src/acl/builder/FieldPermissionsBuilder.cjs.map +1 -1
  128. package/dist/production/src/acl/builder/FieldPermissionsBuilder.js.map +1 -1
  129. package/dist/production/src/acl/builder/PermissionOverrider.cjs.map +1 -1
  130. package/dist/production/src/acl/builder/PermissionOverrider.js.map +1 -1
  131. package/dist/production/src/acl/builder/PermissionsBuilder.cjs.map +1 -1
  132. package/dist/production/src/acl/builder/PermissionsBuilder.js.map +1 -1
  133. package/dist/production/src/acl/definition/aclExtensions.cjs.map +1 -1
  134. package/dist/production/src/acl/definition/aclExtensions.js.map +1 -1
  135. package/dist/production/src/acl/definition/customPrimary.cjs.map +1 -1
  136. package/dist/production/src/acl/definition/customPrimary.js.map +1 -1
  137. package/dist/production/src/acl/definition/index.cjs.map +1 -1
  138. package/dist/production/src/acl/definition/index.js.map +1 -1
  139. package/dist/production/src/acl/definition/internal/AclFactory.cjs.map +1 -1
  140. package/dist/production/src/acl/definition/internal/AclFactory.js.map +1 -1
  141. package/dist/production/src/acl/definition/internal/EntityPredicateResolver.cjs.map +1 -1
  142. package/dist/production/src/acl/definition/internal/EntityPredicateResolver.js.map +1 -1
  143. package/dist/production/src/acl/definition/internal/createPredicateName.cjs.map +1 -1
  144. package/dist/production/src/acl/definition/internal/createPredicateName.js.map +1 -1
  145. package/dist/production/src/acl/definition/internal/stores.cjs.map +1 -1
  146. package/dist/production/src/acl/definition/internal/stores.js.map +1 -1
  147. package/dist/production/src/acl/definition/permissions.cjs.map +1 -1
  148. package/dist/production/src/acl/definition/permissions.js.map +1 -1
  149. package/dist/production/src/acl/definition/variables.cjs.map +1 -1
  150. package/dist/production/src/acl/definition/variables.js.map +1 -1
  151. package/dist/production/src/actions/definition/index.cjs.map +1 -1
  152. package/dist/production/src/actions/definition/index.js.map +1 -1
  153. package/dist/production/src/actions/definition/internal/ActionsFactory.cjs.map +1 -1
  154. package/dist/production/src/actions/definition/internal/ActionsFactory.js.map +1 -1
  155. package/dist/production/src/actions/definition/internal/store.cjs.map +1 -1
  156. package/dist/production/src/actions/definition/internal/store.js.map +1 -1
  157. package/dist/production/src/actions/definition/triggers.cjs.map +1 -1
  158. package/dist/production/src/actions/definition/triggers.js.map +1 -1
  159. package/dist/production/src/createSchema.cjs +2 -1
  160. package/dist/production/src/createSchema.cjs.map +1 -1
  161. package/dist/production/src/createSchema.js +2 -1
  162. package/dist/production/src/createSchema.js.map +1 -1
  163. package/dist/production/src/model/builder/ColumnBuilder.cjs.map +1 -1
  164. package/dist/production/src/model/builder/ColumnBuilder.js.map +1 -1
  165. package/dist/production/src/model/builder/EntityBuilder.cjs.map +1 -1
  166. package/dist/production/src/model/builder/EntityBuilder.js.map +1 -1
  167. package/dist/production/src/model/builder/FieldBuilder.cjs.map +1 -1
  168. package/dist/production/src/model/builder/FieldBuilder.js.map +1 -1
  169. package/dist/production/src/model/builder/ManyHasManyBuilder.cjs.map +1 -1
  170. package/dist/production/src/model/builder/ManyHasManyBuilder.js.map +1 -1
  171. package/dist/production/src/model/builder/ManyHasOneBuilder.cjs.map +1 -1
  172. package/dist/production/src/model/builder/ManyHasOneBuilder.js.map +1 -1
  173. package/dist/production/src/model/builder/OneHasManyBuilder.cjs.map +1 -1
  174. package/dist/production/src/model/builder/OneHasManyBuilder.js.map +1 -1
  175. package/dist/production/src/model/builder/OneHasOneBuilder.cjs.map +1 -1
  176. package/dist/production/src/model/builder/OneHasOneBuilder.js.map +1 -1
  177. package/dist/production/src/model/builder/SchemaBuilder.cjs.map +1 -1
  178. package/dist/production/src/model/builder/SchemaBuilder.js.map +1 -1
  179. package/dist/production/src/model/builder/SchemaBuilderInternal.cjs.map +1 -1
  180. package/dist/production/src/model/builder/SchemaBuilderInternal.js.map +1 -1
  181. package/dist/production/src/model/builder/internal/ColumnProcessor.cjs.map +1 -1
  182. package/dist/production/src/model/builder/internal/ColumnProcessor.js.map +1 -1
  183. package/dist/production/src/model/builder/internal/ManyHasManyProcessor.cjs.map +1 -1
  184. package/dist/production/src/model/builder/internal/ManyHasManyProcessor.js.map +1 -1
  185. package/dist/production/src/model/builder/internal/ManyHasOneProcessor.cjs.map +1 -1
  186. package/dist/production/src/model/builder/internal/ManyHasOneProcessor.js.map +1 -1
  187. package/dist/production/src/model/builder/internal/OneHasManyProcessor.cjs.map +1 -1
  188. package/dist/production/src/model/builder/internal/OneHasManyProcessor.js.map +1 -1
  189. package/dist/production/src/model/builder/internal/OneHasOneProcessor.cjs.map +1 -1
  190. package/dist/production/src/model/builder/internal/OneHasOneProcessor.js.map +1 -1
  191. package/dist/production/src/model/definition/EventLogDefinition.cjs.map +1 -1
  192. package/dist/production/src/model/definition/EventLogDefinition.js.map +1 -1
  193. package/dist/production/src/model/definition/IndexDefinition.cjs +35 -10
  194. package/dist/production/src/model/definition/IndexDefinition.cjs.map +1 -1
  195. package/dist/production/src/model/definition/IndexDefinition.js +35 -10
  196. package/dist/production/src/model/definition/IndexDefinition.js.map +1 -1
  197. package/dist/production/src/model/definition/OrderByDefinition.cjs.map +1 -1
  198. package/dist/production/src/model/definition/OrderByDefinition.js.map +1 -1
  199. package/dist/production/src/model/definition/UniqueDefinition.cjs.map +1 -1
  200. package/dist/production/src/model/definition/UniqueDefinition.js.map +1 -1
  201. package/dist/production/src/model/definition/ViewDefinition.cjs.map +1 -1
  202. package/dist/production/src/model/definition/ViewDefinition.js.map +1 -1
  203. package/dist/production/src/model/definition/extensions.cjs.map +1 -1
  204. package/dist/production/src/model/definition/extensions.js.map +1 -1
  205. package/dist/production/src/model/definition/fieldDefinitions/ColumnDefinition.cjs +20 -2
  206. package/dist/production/src/model/definition/fieldDefinitions/ColumnDefinition.cjs.map +1 -1
  207. package/dist/production/src/model/definition/fieldDefinitions/ColumnDefinition.js +20 -2
  208. package/dist/production/src/model/definition/fieldDefinitions/ColumnDefinition.js.map +1 -1
  209. package/dist/production/src/model/definition/fieldDefinitions/FieldDefinition.cjs.map +1 -1
  210. package/dist/production/src/model/definition/fieldDefinitions/FieldDefinition.js.map +1 -1
  211. package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyDefinition.cjs.map +1 -1
  212. package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyDefinition.js.map +1 -1
  213. package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.cjs.map +1 -1
  214. package/dist/production/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.js.map +1 -1
  215. package/dist/production/src/model/definition/fieldDefinitions/ManyHasOneDefinition.cjs.map +1 -1
  216. package/dist/production/src/model/definition/fieldDefinitions/ManyHasOneDefinition.js.map +1 -1
  217. package/dist/production/src/model/definition/fieldDefinitions/OneHasManyDefinition.cjs.map +1 -1
  218. package/dist/production/src/model/definition/fieldDefinitions/OneHasManyDefinition.js.map +1 -1
  219. package/dist/production/src/model/definition/fieldDefinitions/OneHasOneDefinition.cjs.map +1 -1
  220. package/dist/production/src/model/definition/fieldDefinitions/OneHasOneDefinition.js.map +1 -1
  221. package/dist/production/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.cjs.map +1 -1
  222. package/dist/production/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.js.map +1 -1
  223. package/dist/production/src/model/definition/index.cjs +1 -0
  224. package/dist/production/src/model/definition/index.cjs.map +1 -1
  225. package/dist/production/src/model/definition/index.js +2 -1
  226. package/dist/production/src/model/definition/index.js.map +1 -1
  227. package/dist/production/src/model/definition/internal/EntityRegistry.cjs.map +1 -1
  228. package/dist/production/src/model/definition/internal/EntityRegistry.js.map +1 -1
  229. package/dist/production/src/model/definition/internal/EnumRegistry.cjs.map +1 -1
  230. package/dist/production/src/model/definition/internal/EnumRegistry.js.map +1 -1
  231. package/dist/production/src/model/definition/internal/SchemaBuilder.cjs.map +1 -1
  232. package/dist/production/src/model/definition/internal/SchemaBuilder.js.map +1 -1
  233. package/dist/production/src/strict.cjs +20 -5
  234. package/dist/production/src/strict.cjs.map +1 -1
  235. package/dist/production/src/strict.js +20 -5
  236. package/dist/production/src/strict.js.map +1 -1
  237. package/dist/production/src/utils/filterEntityDefinition.cjs.map +1 -1
  238. package/dist/production/src/utils/filterEntityDefinition.js.map +1 -1
  239. package/dist/production/src/validation/index.cjs.map +1 -1
  240. package/dist/production/src/validation/index.js.map +1 -1
  241. package/dist/tests/cases/unit/numericColumn.test.d.ts +2 -0
  242. package/dist/tests/cases/unit/numericColumn.test.d.ts.map +1 -0
  243. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  244. package/dist/types/acl/builder/EntityPermissionsBuilder.d.ts +5 -5
  245. package/dist/types/acl/builder/EntityPermissionsBuilder.d.ts.map +1 -1
  246. package/dist/types/acl/builder/FieldPermissionsBuilder.d.ts +4 -4
  247. package/dist/types/acl/builder/FieldPermissionsBuilder.d.ts.map +1 -1
  248. package/dist/types/acl/builder/PermissionsBuilder.d.ts +4 -4
  249. package/dist/types/acl/builder/PermissionsBuilder.d.ts.map +1 -1
  250. package/dist/types/acl/definition/aclExtensions.d.ts +2 -2
  251. package/dist/types/acl/definition/aclExtensions.d.ts.map +1 -1
  252. package/dist/types/acl/definition/customPrimary.d.ts +2 -2
  253. package/dist/types/acl/definition/customPrimary.d.ts.map +1 -1
  254. package/dist/types/acl/definition/index.d.ts +5 -5
  255. package/dist/types/acl/definition/index.d.ts.map +1 -1
  256. package/dist/types/acl/definition/internal/AclFactory.d.ts +2 -2
  257. package/dist/types/acl/definition/internal/AclFactory.d.ts.map +1 -1
  258. package/dist/types/acl/definition/internal/EntityPredicateResolver.d.ts +1 -1
  259. package/dist/types/acl/definition/internal/EntityPredicateResolver.d.ts.map +1 -1
  260. package/dist/types/acl/definition/internal/createPredicateName.d.ts +1 -1
  261. package/dist/types/acl/definition/internal/createPredicateName.d.ts.map +1 -1
  262. package/dist/types/acl/definition/internal/stores.d.ts +3 -3
  263. package/dist/types/acl/definition/internal/stores.d.ts.map +1 -1
  264. package/dist/types/acl/definition/permissions.d.ts +4 -4
  265. package/dist/types/acl/definition/permissions.d.ts.map +1 -1
  266. package/dist/types/acl/definition/variables.d.ts +1 -1
  267. package/dist/types/acl/definition/variables.d.ts.map +1 -1
  268. package/dist/types/actions/definition/index.d.ts +2 -2
  269. package/dist/types/actions/definition/index.d.ts.map +1 -1
  270. package/dist/types/actions/definition/internal/store.d.ts +2 -2
  271. package/dist/types/actions/definition/internal/store.d.ts.map +1 -1
  272. package/dist/types/actions/definition/triggers.d.ts +2 -2
  273. package/dist/types/actions/definition/triggers.d.ts.map +1 -1
  274. package/dist/types/createSchema.d.ts +1 -1
  275. package/dist/types/createSchema.d.ts.map +1 -1
  276. package/dist/types/index.d.ts +19 -18
  277. package/dist/types/index.d.ts.map +1 -1
  278. package/dist/types/model/builder/ColumnBuilder.d.ts +1 -1
  279. package/dist/types/model/builder/ColumnBuilder.d.ts.map +1 -1
  280. package/dist/types/model/builder/EntityBuilder.d.ts +7 -7
  281. package/dist/types/model/builder/EntityBuilder.d.ts.map +1 -1
  282. package/dist/types/model/builder/FieldBuilder.d.ts +5 -5
  283. package/dist/types/model/builder/FieldBuilder.d.ts.map +1 -1
  284. package/dist/types/model/builder/ManyHasManyBuilder.d.ts +2 -2
  285. package/dist/types/model/builder/ManyHasManyBuilder.d.ts.map +1 -1
  286. package/dist/types/model/builder/ManyHasOneBuilder.d.ts +2 -2
  287. package/dist/types/model/builder/ManyHasOneBuilder.d.ts.map +1 -1
  288. package/dist/types/model/builder/OneHasManyBuilder.d.ts +2 -2
  289. package/dist/types/model/builder/OneHasManyBuilder.d.ts.map +1 -1
  290. package/dist/types/model/builder/OneHasOneBuilder.d.ts +2 -2
  291. package/dist/types/model/builder/OneHasOneBuilder.d.ts.map +1 -1
  292. package/dist/types/model/builder/SchemaBuilder.d.ts +2 -2
  293. package/dist/types/model/builder/SchemaBuilder.d.ts.map +1 -1
  294. package/dist/types/model/builder/SchemaBuilderInternal.d.ts +2 -2
  295. package/dist/types/model/builder/SchemaBuilderInternal.d.ts.map +1 -1
  296. package/dist/types/model/builder/internal/ColumnProcessor.d.ts +2 -2
  297. package/dist/types/model/builder/internal/ColumnProcessor.d.ts.map +1 -1
  298. package/dist/types/model/builder/internal/ManyHasManyProcessor.d.ts +2 -2
  299. package/dist/types/model/builder/internal/ManyHasManyProcessor.d.ts.map +1 -1
  300. package/dist/types/model/builder/internal/ManyHasOneProcessor.d.ts +2 -2
  301. package/dist/types/model/builder/internal/ManyHasOneProcessor.d.ts.map +1 -1
  302. package/dist/types/model/builder/internal/OneHasManyProcessor.d.ts +2 -2
  303. package/dist/types/model/builder/internal/OneHasManyProcessor.d.ts.map +1 -1
  304. package/dist/types/model/builder/internal/OneHasOneProcessor.d.ts +2 -2
  305. package/dist/types/model/builder/internal/OneHasOneProcessor.d.ts.map +1 -1
  306. package/dist/types/model/builder/types.d.ts +1 -1
  307. package/dist/types/model/builder/types.d.ts.map +1 -1
  308. package/dist/types/model/definition/EventLogDefinition.d.ts +1 -1
  309. package/dist/types/model/definition/EventLogDefinition.d.ts.map +1 -1
  310. package/dist/types/model/definition/IndexDefinition.d.ts +11 -2
  311. package/dist/types/model/definition/IndexDefinition.d.ts.map +1 -1
  312. package/dist/types/model/definition/OrderByDefinition.d.ts +1 -1
  313. package/dist/types/model/definition/OrderByDefinition.d.ts.map +1 -1
  314. package/dist/types/model/definition/UniqueDefinition.d.ts +1 -1
  315. package/dist/types/model/definition/UniqueDefinition.d.ts.map +1 -1
  316. package/dist/types/model/definition/ViewDefinition.d.ts +2 -2
  317. package/dist/types/model/definition/ViewDefinition.d.ts.map +1 -1
  318. package/dist/types/model/definition/context.d.ts +2 -2
  319. package/dist/types/model/definition/context.d.ts.map +1 -1
  320. package/dist/types/model/definition/extensions.d.ts +4 -4
  321. package/dist/types/model/definition/extensions.d.ts.map +1 -1
  322. package/dist/types/model/definition/fieldDefinitions/ColumnDefinition.d.ts +26 -3
  323. package/dist/types/model/definition/fieldDefinitions/ColumnDefinition.d.ts.map +1 -1
  324. package/dist/types/model/definition/fieldDefinitions/FieldDefinition.d.ts +1 -1
  325. package/dist/types/model/definition/fieldDefinitions/FieldDefinition.d.ts.map +1 -1
  326. package/dist/types/model/definition/fieldDefinitions/ManyHasManyDefinition.d.ts +2 -2
  327. package/dist/types/model/definition/fieldDefinitions/ManyHasManyDefinition.d.ts.map +1 -1
  328. package/dist/types/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.d.ts +2 -2
  329. package/dist/types/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.d.ts.map +1 -1
  330. package/dist/types/model/definition/fieldDefinitions/ManyHasOneDefinition.d.ts +2 -2
  331. package/dist/types/model/definition/fieldDefinitions/ManyHasOneDefinition.d.ts.map +1 -1
  332. package/dist/types/model/definition/fieldDefinitions/OneHasManyDefinition.d.ts +2 -2
  333. package/dist/types/model/definition/fieldDefinitions/OneHasManyDefinition.d.ts.map +1 -1
  334. package/dist/types/model/definition/fieldDefinitions/OneHasOneDefinition.d.ts +2 -2
  335. package/dist/types/model/definition/fieldDefinitions/OneHasOneDefinition.d.ts.map +1 -1
  336. package/dist/types/model/definition/fieldDefinitions/OneHasOneInverseDefinition.d.ts +3 -3
  337. package/dist/types/model/definition/fieldDefinitions/OneHasOneInverseDefinition.d.ts.map +1 -1
  338. package/dist/types/model/definition/fieldDefinitions/index.d.ts +8 -8
  339. package/dist/types/model/definition/fieldDefinitions/index.d.ts.map +1 -1
  340. package/dist/types/model/definition/index.d.ts +11 -11
  341. package/dist/types/model/definition/index.d.ts.map +1 -1
  342. package/dist/types/model/definition/internal/EntityRegistry.d.ts +1 -1
  343. package/dist/types/model/definition/internal/EntityRegistry.d.ts.map +1 -1
  344. package/dist/types/model/definition/internal/EnumRegistry.d.ts +1 -1
  345. package/dist/types/model/definition/internal/EnumRegistry.d.ts.map +1 -1
  346. package/dist/types/model/definition/internal/SchemaBuilder.d.ts +3 -3
  347. package/dist/types/model/definition/internal/SchemaBuilder.d.ts.map +1 -1
  348. package/dist/types/model/definition/internal/index.d.ts +3 -3
  349. package/dist/types/model/definition/internal/index.d.ts.map +1 -1
  350. package/dist/types/model/definition/types.d.ts +2 -2
  351. package/dist/types/model/definition/types.d.ts.map +1 -1
  352. package/dist/types/model/index.d.ts +8 -8
  353. package/dist/types/model/index.d.ts.map +1 -1
  354. package/dist/types/strict.d.ts +2 -0
  355. package/dist/types/strict.d.ts.map +1 -1
  356. package/dist/types/tsconfig.tsbuildinfo +1 -1
  357. package/dist/types/utils/filterEntityDefinition.d.ts +1 -1
  358. package/dist/types/utils/filterEntityDefinition.d.ts.map +1 -1
  359. package/dist/types/utils/index.d.ts +5 -5
  360. package/dist/types/utils/index.d.ts.map +1 -1
  361. package/package.json +3 -3
  362. package/src/acl/builder/EntityPermissionsBuilder.ts +6 -6
  363. package/src/acl/builder/FieldPermissionsBuilder.ts +4 -4
  364. package/src/acl/builder/PermissionOverrider.ts +1 -1
  365. package/src/acl/builder/PermissionsBuilder.ts +5 -5
  366. package/src/acl/definition/aclExtensions.ts +2 -2
  367. package/src/acl/definition/customPrimary.ts +3 -3
  368. package/src/acl/definition/index.ts +6 -6
  369. package/src/acl/definition/internal/AclFactory.ts +7 -7
  370. package/src/acl/definition/internal/EntityPredicateResolver.ts +5 -5
  371. package/src/acl/definition/internal/createPredicateName.ts +1 -1
  372. package/src/acl/definition/internal/stores.ts +3 -3
  373. package/src/acl/definition/permissions.ts +5 -5
  374. package/src/acl/definition/variables.ts +1 -1
  375. package/src/actions/definition/index.ts +3 -3
  376. package/src/actions/definition/internal/ActionsFactory.ts +4 -4
  377. package/src/actions/definition/internal/store.ts +2 -2
  378. package/src/actions/definition/triggers.ts +3 -3
  379. package/src/createSchema.ts +7 -6
  380. package/src/index.ts +12 -11
  381. package/src/model/builder/ColumnBuilder.ts +1 -1
  382. package/src/model/builder/EntityBuilder.ts +7 -7
  383. package/src/model/builder/FieldBuilder.ts +5 -5
  384. package/src/model/builder/ManyHasManyBuilder.ts +2 -2
  385. package/src/model/builder/ManyHasOneBuilder.ts +2 -2
  386. package/src/model/builder/OneHasManyBuilder.ts +2 -2
  387. package/src/model/builder/OneHasOneBuilder.ts +2 -2
  388. package/src/model/builder/SchemaBuilder.ts +4 -4
  389. package/src/model/builder/SchemaBuilderInternal.ts +9 -9
  390. package/src/model/builder/internal/ColumnProcessor.ts +2 -2
  391. package/src/model/builder/internal/ManyHasManyProcessor.ts +2 -2
  392. package/src/model/builder/internal/ManyHasOneProcessor.ts +2 -2
  393. package/src/model/builder/internal/OneHasManyProcessor.ts +2 -2
  394. package/src/model/builder/internal/OneHasOneProcessor.ts +2 -2
  395. package/src/model/builder/types.ts +1 -1
  396. package/src/model/definition/EventLogDefinition.ts +1 -1
  397. package/src/model/definition/IndexDefinition.ts +52 -12
  398. package/src/model/definition/OrderByDefinition.ts +2 -2
  399. package/src/model/definition/UniqueDefinition.ts +2 -2
  400. package/src/model/definition/ViewDefinition.ts +3 -3
  401. package/src/model/definition/context.ts +2 -2
  402. package/src/model/definition/extensions.ts +4 -4
  403. package/src/model/definition/fieldDefinitions/ColumnDefinition.ts +34 -3
  404. package/src/model/definition/fieldDefinitions/FieldDefinition.ts +1 -1
  405. package/src/model/definition/fieldDefinitions/ManyHasManyDefinition.ts +2 -2
  406. package/src/model/definition/fieldDefinitions/ManyHasManyInverseDefinition.ts +2 -2
  407. package/src/model/definition/fieldDefinitions/ManyHasOneDefinition.ts +2 -2
  408. package/src/model/definition/fieldDefinitions/OneHasManyDefinition.ts +2 -2
  409. package/src/model/definition/fieldDefinitions/OneHasOneDefinition.ts +2 -2
  410. package/src/model/definition/fieldDefinitions/OneHasOneInverseDefinition.ts +3 -3
  411. package/src/model/definition/fieldDefinitions/index.ts +8 -8
  412. package/src/model/definition/index.ts +13 -13
  413. package/src/model/definition/internal/EntityRegistry.ts +1 -1
  414. package/src/model/definition/internal/EnumRegistry.ts +1 -1
  415. package/src/model/definition/internal/SchemaBuilder.ts +8 -8
  416. package/src/model/definition/internal/index.ts +3 -3
  417. package/src/model/definition/types.ts +2 -2
  418. package/src/model/index.ts +8 -8
  419. package/src/strict.ts +29 -4
  420. package/src/utils/filterEntityDefinition.ts +1 -1
  421. package/src/utils/index.ts +5 -5
  422. package/src/validation/index.ts +3 -3
  423. package/tests/cases/unit/createSchema.test.ts +93 -2
  424. package/tests/cases/unit/extendEntity.test.ts +3 -3
  425. package/tests/cases/unit/numericColumn.test.ts +31 -0
  426. package/tests/cases/unit/orderBy.test.ts +1 -1
  427. package/tests/cases/unit/readAclDefinitions.test.ts +1 -1
  428. package/tests/cases/unit/readActions.test.ts +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"ActionsFactory.js","sources":["../../../../../../../packages/schema-definition/src/actions/definition/internal/ActionsFactory.ts"],"sourcesContent":["import { assertNever, filterEntityDefinition } from '../../../utils'\nimport { Actions } from '@contember/schema'\nimport { triggersStore } from './store'\nimport { BasicTriggerDefinition, TargetDefinition, WatchTriggerDefinition } from '../triggers'\nimport { ActionsTarget } from '../targets'\nimport { Kind, parse, SelectionNode, ValueNode } from 'graphql'\n\nexport class ActionsFactory {\n\tpublic create(\n\t\texportedDefinitions: Record<string, any>,\n\t): Actions.Schema {\n\t\tconst entityLikeDefinition = filterEntityDefinition(exportedDefinitions)\n\n\t\tconst targetsRegistry = new ActionsTargetRegistry()\n\t\tfor (const [exportedAs, def] of Object.entries(exportedDefinitions)) {\n\t\t\tif (!(def instanceof ActionsTarget)) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tconst name = def.name ?? exportedAs\n\t\t\ttargetsRegistry.register(name, def.definition)\n\t\t}\n\n\t\tconst triggersDef = entityLikeDefinition.flatMap(([, entity]) =>\n\t\t\ttriggersStore.get(entity).map(it => ({\n\t\t\t\t...it,\n\t\t\t\tentity,\n\t\t\t}))\n\t\t)\n\n\t\tconst triggerNames = triggersDef.map(it => it.definition.name).filter((it): it is string => !!it)\n\t\ttriggerNames.forEach((it, index, arr) => {\n\t\t\tif (arr.indexOf(it) !== index) {\n\t\t\t\tthrow `Duplicate trigger name ${it}.`\n\t\t\t}\n\t\t})\n\n\t\tconst triggers: Record<string, Actions.AnyTrigger> = {}\n\t\tfor (const { definition, entity, type } of triggersDef) {\n\t\t\tconst name = definition.name\n\t\t\tconst target = this.resolveTarget(name, definition, targetsRegistry)\n\t\t\tlet trigger: Actions.AnyTrigger\n\t\t\tif (type === 'basic') {\n\t\t\t\ttrigger = {\n\t\t\t\t\ttarget,\n\t\t\t\t\t...this.createBasicTrigger(name, entity.name, definition),\n\t\t\t\t}\n\t\t\t} else if (type === 'watch') {\n\t\t\t\ttrigger = {\n\t\t\t\t\ttarget,\n\t\t\t\t\t...this.createWatchTrigger(name, entity.name, definition),\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tassertNever(type)\n\t\t\t}\n\t\t\ttriggers[name] = trigger\n\t\t}\n\n\t\treturn { triggers, targets: targetsRegistry.getTargets() }\n\t}\n\n\tprivate resolveTarget(triggerName: string, targetDefinition: TargetDefinition, targetRegistry: ActionsTargetRegistry): string {\n\t\tconst generatedName = `${triggerName}_target`\n\t\tif ('target' in targetDefinition) {\n\t\t\tif (targetDefinition.target instanceof ActionsTarget) {\n\t\t\t\tconst registeredName = targetRegistry.getName(targetDefinition.target.definition)\n\t\t\t\tif (!registeredName) {\n\t\t\t\t\tthrow `Target of ${triggerName} trigger is not registered. Have you exported it?`\n\t\t\t\t}\n\t\t\t\treturn registeredName\n\t\t\t} else {\n\t\t\t\tconst { name, ...def } = targetDefinition.target\n\t\t\t\tconst resolvedName = name ?? generatedName\n\t\t\t\ttargetRegistry.register(resolvedName, { name: generatedName, ...def })\n\t\t\t\treturn resolvedName\n\t\t\t}\n\t\t} else if ('webhook' in targetDefinition) {\n\t\t\tif (typeof targetDefinition.webhook === 'string') {\n\t\t\t\ttargetRegistry.register(generatedName, {\n\t\t\t\t\ttype: 'webhook',\n\t\t\t\t\turl: targetDefinition.webhook,\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\ttargetRegistry.register(generatedName, {\n\t\t\t\t\ttype: 'webhook',\n\t\t\t\t\t...targetDefinition.webhook,\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn generatedName\n\t\t}\n\t\treturn assertNever(targetDefinition)\n\t}\n\n\tprivate createWatchTrigger(name: string, entity: string, trigger: WatchTriggerDefinition): Omit<Actions.WatchTrigger, 'target'> {\n\t\treturn {\n\t\t\ttype: 'watch',\n\t\t\tentity,\n\t\t\tname,\n\t\t\twatch: this.parseSelection(trigger.watch),\n\t\t\tselection: trigger.selection ? this.parseSelection(trigger.selection) : undefined,\n\t\t\tpriority: trigger.priority,\n\t\t\t...('withNodes' in trigger ? { withNodes: trigger.withNodes } : {}),\n\t\t}\n\t}\n\n\tprivate createBasicTrigger(name: string, entity: string, trigger: BasicTriggerDefinition): Omit<Actions.BasicTrigger, 'target'> {\n\t\treturn {\n\t\t\ttype: 'basic',\n\t\t\tentity,\n\t\t\tname,\n\t\t\tcreate: trigger.create ?? false,\n\t\t\tdelete: trigger.delete ?? false,\n\t\t\tupdate: trigger.update ?? false,\n\t\t\tselection: trigger.selection ? this.parseSelection(trigger.selection) : undefined,\n\t\t\tpriority: trigger.priority,\n\t\t}\n\t}\n\n\tprivate parseSelection(selection: Actions.SelectionNode | string): Actions.SelectionNode {\n\t\tif (typeof selection !== 'string') {\n\t\t\treturn selection\n\t\t}\n\t\tconst result = parse(`{\n\t\t\t${selection}\n\t\t}`)\n\t\tfor (const def of result.definitions) {\n\t\t\tif (def.kind === 'OperationDefinition') {\n\t\t\t\treturn this.processSelectionSet(def.selectionSet.selections)\n\t\t\t}\n\t\t}\n\t\tthrow new Error()\n\t}\n\n\tprivate processSelectionSet(selectionSet: readonly SelectionNode[]): Actions.SelectionNode {\n\t\treturn selectionSet.map(it => {\n\t\t\tif (it.kind !== 'Field') {\n\t\t\t\tthrow `${it.kind} is not supported.`\n\t\t\t}\n\t\t\tif (it.arguments?.length === 0 && it.selectionSet === undefined) {\n\t\t\t\treturn it.name.value\n\t\t\t}\n\t\t\tconst args = Object.fromEntries(it.arguments?.map(it => [it.name, parseArguments(it.value)]) ?? [])\n\t\t\treturn [it.name.value, args, it.selectionSet ? this.processSelectionSet(it.selectionSet.selections) : []]\n\t\t})\n\t}\n}\n\nclass ActionsTargetRegistry {\n\tprivate targets: Record<string, Actions.AnyTarget> = {}\n\tprivate targetsInverseMap = new Map<Omit<Actions.AnyTarget, 'name'>, string>()\n\n\tpublic register(name: string, target: Omit<Actions.AnyTarget, 'name'> & { name?: string }): void {\n\t\tif (this.targets[name]) {\n\t\t\tthrow `Duplicate trigger target name ${name}`\n\t\t}\n\t\tthis.targets[name] = { name, ...target }\n\t\tthis.targetsInverseMap.set(target, name)\n\t}\n\n\tpublic getName(target: Omit<Actions.AnyTarget, 'name'>): string | undefined {\n\t\treturn this.targetsInverseMap.get(target)\n\t}\n\n\tpublic getTargets() {\n\t\treturn this.targets\n\t}\n}\n\nconst parseArguments = (ast: ValueNode): any => {\n\tswitch (ast.kind) {\n\t\tcase Kind.STRING:\n\t\t\treturn ast.value\n\t\tcase Kind.BOOLEAN:\n\t\t\treturn ast.value\n\t\tcase Kind.FLOAT:\n\t\t\treturn parseFloat(ast.value)\n\t\tcase Kind.INT:\n\t\t\treturn Number(ast.value)\n\t\tcase Kind.LIST:\n\t\t\treturn ast.values.map(it => parseArguments(it))\n\t\tcase Kind.OBJECT:\n\t\t\treturn Object.fromEntries(ast.fields.map(it => [it.name.value, parseArguments(it.value)]))\n\t\tcase Kind.ENUM:\n\t\t\treturn ast.value\n\t\tcase Kind.NULL:\n\t\t\treturn null\n\t\tcase Kind.VARIABLE:\n\t\t\tthrow `Variables are not supported here.`\n\t}\n}\n"],"names":["it"],"mappings":"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"}
1
+ {"version":3,"file":"ActionsFactory.js","sources":["../../../../../../../packages/schema-definition/src/actions/definition/internal/ActionsFactory.ts"],"sourcesContent":["import { assertNever, filterEntityDefinition } from '../../../utils/index.js'\nimport { Actions } from '@contember/schema'\nimport { triggersStore } from './store.js'\nimport { BasicTriggerDefinition, TargetDefinition, WatchTriggerDefinition } from '../triggers.js'\nimport { ActionsTarget } from '../targets.js'\nimport { Kind, parse, SelectionNode, ValueNode } from 'graphql'\n\nexport class ActionsFactory {\n\tpublic create(\n\t\texportedDefinitions: Record<string, any>,\n\t): Actions.Schema {\n\t\tconst entityLikeDefinition = filterEntityDefinition(exportedDefinitions)\n\n\t\tconst targetsRegistry = new ActionsTargetRegistry()\n\t\tfor (const [exportedAs, def] of Object.entries(exportedDefinitions)) {\n\t\t\tif (!(def instanceof ActionsTarget)) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tconst name = def.name ?? exportedAs\n\t\t\ttargetsRegistry.register(name, def.definition)\n\t\t}\n\n\t\tconst triggersDef = entityLikeDefinition.flatMap(([, entity]) =>\n\t\t\ttriggersStore.get(entity).map(it => ({\n\t\t\t\t...it,\n\t\t\t\tentity,\n\t\t\t}))\n\t\t)\n\n\t\tconst triggerNames = triggersDef.map(it => it.definition.name).filter((it): it is string => !!it)\n\t\ttriggerNames.forEach((it, index, arr) => {\n\t\t\tif (arr.indexOf(it) !== index) {\n\t\t\t\tthrow `Duplicate trigger name ${it}.`\n\t\t\t}\n\t\t})\n\n\t\tconst triggers: Record<string, Actions.AnyTrigger> = {}\n\t\tfor (const { definition, entity, type } of triggersDef) {\n\t\t\tconst name = definition.name\n\t\t\tconst target = this.resolveTarget(name, definition, targetsRegistry)\n\t\t\tlet trigger: Actions.AnyTrigger\n\t\t\tif (type === 'basic') {\n\t\t\t\ttrigger = {\n\t\t\t\t\ttarget,\n\t\t\t\t\t...this.createBasicTrigger(name, entity.name, definition),\n\t\t\t\t}\n\t\t\t} else if (type === 'watch') {\n\t\t\t\ttrigger = {\n\t\t\t\t\ttarget,\n\t\t\t\t\t...this.createWatchTrigger(name, entity.name, definition),\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tassertNever(type)\n\t\t\t}\n\t\t\ttriggers[name] = trigger\n\t\t}\n\n\t\treturn { triggers, targets: targetsRegistry.getTargets() }\n\t}\n\n\tprivate resolveTarget(triggerName: string, targetDefinition: TargetDefinition, targetRegistry: ActionsTargetRegistry): string {\n\t\tconst generatedName = `${triggerName}_target`\n\t\tif ('target' in targetDefinition) {\n\t\t\tif (targetDefinition.target instanceof ActionsTarget) {\n\t\t\t\tconst registeredName = targetRegistry.getName(targetDefinition.target.definition)\n\t\t\t\tif (!registeredName) {\n\t\t\t\t\tthrow `Target of ${triggerName} trigger is not registered. Have you exported it?`\n\t\t\t\t}\n\t\t\t\treturn registeredName\n\t\t\t} else {\n\t\t\t\tconst { name, ...def } = targetDefinition.target\n\t\t\t\tconst resolvedName = name ?? generatedName\n\t\t\t\ttargetRegistry.register(resolvedName, { name: generatedName, ...def })\n\t\t\t\treturn resolvedName\n\t\t\t}\n\t\t} else if ('webhook' in targetDefinition) {\n\t\t\tif (typeof targetDefinition.webhook === 'string') {\n\t\t\t\ttargetRegistry.register(generatedName, {\n\t\t\t\t\ttype: 'webhook',\n\t\t\t\t\turl: targetDefinition.webhook,\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\ttargetRegistry.register(generatedName, {\n\t\t\t\t\ttype: 'webhook',\n\t\t\t\t\t...targetDefinition.webhook,\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn generatedName\n\t\t}\n\t\treturn assertNever(targetDefinition)\n\t}\n\n\tprivate createWatchTrigger(name: string, entity: string, trigger: WatchTriggerDefinition): Omit<Actions.WatchTrigger, 'target'> {\n\t\treturn {\n\t\t\ttype: 'watch',\n\t\t\tentity,\n\t\t\tname,\n\t\t\twatch: this.parseSelection(trigger.watch),\n\t\t\tselection: trigger.selection ? this.parseSelection(trigger.selection) : undefined,\n\t\t\tpriority: trigger.priority,\n\t\t\t...('withNodes' in trigger ? { withNodes: trigger.withNodes } : {}),\n\t\t}\n\t}\n\n\tprivate createBasicTrigger(name: string, entity: string, trigger: BasicTriggerDefinition): Omit<Actions.BasicTrigger, 'target'> {\n\t\treturn {\n\t\t\ttype: 'basic',\n\t\t\tentity,\n\t\t\tname,\n\t\t\tcreate: trigger.create ?? false,\n\t\t\tdelete: trigger.delete ?? false,\n\t\t\tupdate: trigger.update ?? false,\n\t\t\tselection: trigger.selection ? this.parseSelection(trigger.selection) : undefined,\n\t\t\tpriority: trigger.priority,\n\t\t}\n\t}\n\n\tprivate parseSelection(selection: Actions.SelectionNode | string): Actions.SelectionNode {\n\t\tif (typeof selection !== 'string') {\n\t\t\treturn selection\n\t\t}\n\t\tconst result = parse(`{\n\t\t\t${selection}\n\t\t}`)\n\t\tfor (const def of result.definitions) {\n\t\t\tif (def.kind === 'OperationDefinition') {\n\t\t\t\treturn this.processSelectionSet(def.selectionSet.selections)\n\t\t\t}\n\t\t}\n\t\tthrow new Error()\n\t}\n\n\tprivate processSelectionSet(selectionSet: readonly SelectionNode[]): Actions.SelectionNode {\n\t\treturn selectionSet.map(it => {\n\t\t\tif (it.kind !== 'Field') {\n\t\t\t\tthrow `${it.kind} is not supported.`\n\t\t\t}\n\t\t\tif (it.arguments?.length === 0 && it.selectionSet === undefined) {\n\t\t\t\treturn it.name.value\n\t\t\t}\n\t\t\tconst args = Object.fromEntries(it.arguments?.map(it => [it.name, parseArguments(it.value)]) ?? [])\n\t\t\treturn [it.name.value, args, it.selectionSet ? this.processSelectionSet(it.selectionSet.selections) : []]\n\t\t})\n\t}\n}\n\nclass ActionsTargetRegistry {\n\tprivate targets: Record<string, Actions.AnyTarget> = {}\n\tprivate targetsInverseMap = new Map<Omit<Actions.AnyTarget, 'name'>, string>()\n\n\tpublic register(name: string, target: Omit<Actions.AnyTarget, 'name'> & { name?: string }): void {\n\t\tif (this.targets[name]) {\n\t\t\tthrow `Duplicate trigger target name ${name}`\n\t\t}\n\t\tthis.targets[name] = { name, ...target }\n\t\tthis.targetsInverseMap.set(target, name)\n\t}\n\n\tpublic getName(target: Omit<Actions.AnyTarget, 'name'>): string | undefined {\n\t\treturn this.targetsInverseMap.get(target)\n\t}\n\n\tpublic getTargets() {\n\t\treturn this.targets\n\t}\n}\n\nconst parseArguments = (ast: ValueNode): any => {\n\tswitch (ast.kind) {\n\t\tcase Kind.STRING:\n\t\t\treturn ast.value\n\t\tcase Kind.BOOLEAN:\n\t\t\treturn ast.value\n\t\tcase Kind.FLOAT:\n\t\t\treturn parseFloat(ast.value)\n\t\tcase Kind.INT:\n\t\t\treturn Number(ast.value)\n\t\tcase Kind.LIST:\n\t\t\treturn ast.values.map(it => parseArguments(it))\n\t\tcase Kind.OBJECT:\n\t\t\treturn Object.fromEntries(ast.fields.map(it => [it.name.value, parseArguments(it.value)]))\n\t\tcase Kind.ENUM:\n\t\t\treturn ast.value\n\t\tcase Kind.NULL:\n\t\t\treturn null\n\t\tcase Kind.VARIABLE:\n\t\t\tthrow `Variables are not supported here.`\n\t}\n}\n"],"names":["it"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"store.cjs","sources":["../../../../../../../packages/schema-definition/src/actions/definition/internal/store.ts"],"sourcesContent":["import { createMetadataStore } from '../../../utils'\nimport { BasicTriggerDefinition, WatchTriggerDefinition } from '../triggers'\n\ntype StoredTrigger =\n\t| { type: 'basic'; definition: BasicTriggerDefinition }\n\t| { type: 'watch'; definition: WatchTriggerDefinition }\n\nexport const triggersStore = createMetadataStore<StoredTrigger[]>([])\n"],"names":["createMetadataStore"],"mappings":";;;AAOO,MAAM,gBAAgBA,cAAAA,oBAAqC,CAAA,CAAE;;"}
1
+ {"version":3,"file":"store.cjs","sources":["../../../../../../../packages/schema-definition/src/actions/definition/internal/store.ts"],"sourcesContent":["import { createMetadataStore } from '../../../utils/index.js'\nimport { BasicTriggerDefinition, WatchTriggerDefinition } from '../triggers.js'\n\ntype StoredTrigger =\n\t| { type: 'basic'; definition: BasicTriggerDefinition }\n\t| { type: 'watch'; definition: WatchTriggerDefinition }\n\nexport const triggersStore = createMetadataStore<StoredTrigger[]>([])\n"],"names":["createMetadataStore"],"mappings":";;;AAOO,MAAM,gBAAgBA,cAAAA,oBAAqC,CAAA,CAAE;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sources":["../../../../../../../packages/schema-definition/src/actions/definition/internal/store.ts"],"sourcesContent":["import { createMetadataStore } from '../../../utils'\nimport { BasicTriggerDefinition, WatchTriggerDefinition } from '../triggers'\n\ntype StoredTrigger =\n\t| { type: 'basic'; definition: BasicTriggerDefinition }\n\t| { type: 'watch'; definition: WatchTriggerDefinition }\n\nexport const triggersStore = createMetadataStore<StoredTrigger[]>([])\n"],"names":[],"mappings":";AAOO,MAAM,gBAAgB,oBAAqC,CAAA,CAAE;"}
1
+ {"version":3,"file":"store.js","sources":["../../../../../../../packages/schema-definition/src/actions/definition/internal/store.ts"],"sourcesContent":["import { createMetadataStore } from '../../../utils/index.js'\nimport { BasicTriggerDefinition, WatchTriggerDefinition } from '../triggers.js'\n\ntype StoredTrigger =\n\t| { type: 'basic'; definition: BasicTriggerDefinition }\n\t| { type: 'watch'; definition: WatchTriggerDefinition }\n\nexport const triggersStore = createMetadataStore<StoredTrigger[]>([])\n"],"names":[],"mappings":";AAOO,MAAM,gBAAgB,oBAAqC,CAAA,CAAE;"}
@@ -1 +1 @@
1
- {"version":3,"file":"triggers.cjs","sources":["../../../../../../packages/schema-definition/src/actions/definition/triggers.ts"],"sourcesContent":["import { DecoratorFunction, EntityConstructor } from '../../utils'\nimport { Actions } from '@contember/schema'\nimport { triggersStore } from './internal/store'\nimport { ActionsTarget } from './targets'\n\nexport type TriggerWebhookDefinition = {\n\twebhook:\n\t\t| string\n\t\t| Omit<Actions.WebhookTarget, 'type' | 'name'> & { name?: string }\n}\n\nexport type TriggerTargetDefinition = {\n\ttarget: (Omit<Actions.AnyTarget, 'name'> & { name?: string }) | ActionsTarget\n}\n\nexport type TargetDefinition =\n\t| TriggerWebhookDefinition\n\t| TriggerTargetDefinition\n\nexport type CommonTriggerDefinition = {\n\treadonly name: string\n\treadonly selection?: Actions.SelectionNode | string\n\treadonly priority?: number\n}\n\nexport type BasicTriggerDefinition =\n\t& {\n\t\treadonly create?: boolean\n\t\treadonly delete?: boolean\n\t\treadonly update?: boolean | readonly string[]\n\t}\n\t& CommonTriggerDefinition\n\t& TargetDefinition\n\nexport type WatchTriggerDefinition =\n\t& {\n\t\treadonly watch: Actions.SelectionNode | string\n\t\treadonly withNodes?: boolean\n\t}\n\t& CommonTriggerDefinition\n\t& TargetDefinition\n\nexport const trigger =\n\t<T>(definition: BasicTriggerDefinition): DecoratorFunction<T> => (entity: EntityConstructor<T>, context?: ClassDecoratorContext) => {\n\t\ttriggersStore.update(entity, it => [...it, { type: 'basic', definition }], context)\n\t}\n\nexport const watch =\n\t<T>(definition: WatchTriggerDefinition): DecoratorFunction<T> => (entity: EntityConstructor<T>, context?: ClassDecoratorContext) => {\n\t\ttriggersStore.update(entity, it => [...it, { type: 'watch', definition }], context)\n\t}\n"],"names":["triggersStore"],"mappings":";;;AA0CO,MAAM,UACZ,CAAI,eAA6D,CAAC,QAA8B,YAAoC;AACnIA,QAAAA,cAAc,OAAO,QAAQ,CAAA,OAAM,CAAC,GAAG,IAAI,EAAE,MAAM,SAAS,WAAA,CAAY,GAAG,OAAO;AACnF;AAEM,MAAM,QACZ,CAAI,eAA6D,CAAC,QAA8B,YAAoC;AACnIA,QAAAA,cAAc,OAAO,QAAQ,CAAA,OAAM,CAAC,GAAG,IAAI,EAAE,MAAM,SAAS,WAAA,CAAY,GAAG,OAAO;AACnF;;;"}
1
+ {"version":3,"file":"triggers.cjs","sources":["../../../../../../packages/schema-definition/src/actions/definition/triggers.ts"],"sourcesContent":["import { DecoratorFunction, EntityConstructor } from '../../utils/index.js'\nimport { Actions } from '@contember/schema'\nimport { triggersStore } from './internal/store.js'\nimport { ActionsTarget } from './targets.js'\n\nexport type TriggerWebhookDefinition = {\n\twebhook:\n\t\t| string\n\t\t| Omit<Actions.WebhookTarget, 'type' | 'name'> & { name?: string }\n}\n\nexport type TriggerTargetDefinition = {\n\ttarget: (Omit<Actions.AnyTarget, 'name'> & { name?: string }) | ActionsTarget\n}\n\nexport type TargetDefinition =\n\t| TriggerWebhookDefinition\n\t| TriggerTargetDefinition\n\nexport type CommonTriggerDefinition = {\n\treadonly name: string\n\treadonly selection?: Actions.SelectionNode | string\n\treadonly priority?: number\n}\n\nexport type BasicTriggerDefinition =\n\t& {\n\t\treadonly create?: boolean\n\t\treadonly delete?: boolean\n\t\treadonly update?: boolean | readonly string[]\n\t}\n\t& CommonTriggerDefinition\n\t& TargetDefinition\n\nexport type WatchTriggerDefinition =\n\t& {\n\t\treadonly watch: Actions.SelectionNode | string\n\t\treadonly withNodes?: boolean\n\t}\n\t& CommonTriggerDefinition\n\t& TargetDefinition\n\nexport const trigger =\n\t<T>(definition: BasicTriggerDefinition): DecoratorFunction<T> => (entity: EntityConstructor<T>, context?: ClassDecoratorContext) => {\n\t\ttriggersStore.update(entity, it => [...it, { type: 'basic', definition }], context)\n\t}\n\nexport const watch =\n\t<T>(definition: WatchTriggerDefinition): DecoratorFunction<T> => (entity: EntityConstructor<T>, context?: ClassDecoratorContext) => {\n\t\ttriggersStore.update(entity, it => [...it, { type: 'watch', definition }], context)\n\t}\n"],"names":["triggersStore"],"mappings":";;;AA0CO,MAAM,UACZ,CAAI,eAA6D,CAAC,QAA8B,YAAoC;AACnIA,QAAAA,cAAc,OAAO,QAAQ,CAAA,OAAM,CAAC,GAAG,IAAI,EAAE,MAAM,SAAS,WAAA,CAAY,GAAG,OAAO;AACnF;AAEM,MAAM,QACZ,CAAI,eAA6D,CAAC,QAA8B,YAAoC;AACnIA,QAAAA,cAAc,OAAO,QAAQ,CAAA,OAAM,CAAC,GAAG,IAAI,EAAE,MAAM,SAAS,WAAA,CAAY,GAAG,OAAO;AACnF;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"triggers.js","sources":["../../../../../../packages/schema-definition/src/actions/definition/triggers.ts"],"sourcesContent":["import { DecoratorFunction, EntityConstructor } from '../../utils'\nimport { Actions } from '@contember/schema'\nimport { triggersStore } from './internal/store'\nimport { ActionsTarget } from './targets'\n\nexport type TriggerWebhookDefinition = {\n\twebhook:\n\t\t| string\n\t\t| Omit<Actions.WebhookTarget, 'type' | 'name'> & { name?: string }\n}\n\nexport type TriggerTargetDefinition = {\n\ttarget: (Omit<Actions.AnyTarget, 'name'> & { name?: string }) | ActionsTarget\n}\n\nexport type TargetDefinition =\n\t| TriggerWebhookDefinition\n\t| TriggerTargetDefinition\n\nexport type CommonTriggerDefinition = {\n\treadonly name: string\n\treadonly selection?: Actions.SelectionNode | string\n\treadonly priority?: number\n}\n\nexport type BasicTriggerDefinition =\n\t& {\n\t\treadonly create?: boolean\n\t\treadonly delete?: boolean\n\t\treadonly update?: boolean | readonly string[]\n\t}\n\t& CommonTriggerDefinition\n\t& TargetDefinition\n\nexport type WatchTriggerDefinition =\n\t& {\n\t\treadonly watch: Actions.SelectionNode | string\n\t\treadonly withNodes?: boolean\n\t}\n\t& CommonTriggerDefinition\n\t& TargetDefinition\n\nexport const trigger =\n\t<T>(definition: BasicTriggerDefinition): DecoratorFunction<T> => (entity: EntityConstructor<T>, context?: ClassDecoratorContext) => {\n\t\ttriggersStore.update(entity, it => [...it, { type: 'basic', definition }], context)\n\t}\n\nexport const watch =\n\t<T>(definition: WatchTriggerDefinition): DecoratorFunction<T> => (entity: EntityConstructor<T>, context?: ClassDecoratorContext) => {\n\t\ttriggersStore.update(entity, it => [...it, { type: 'watch', definition }], context)\n\t}\n"],"names":[],"mappings":";AA0CO,MAAM,UACZ,CAAI,eAA6D,CAAC,QAA8B,YAAoC;AACnI,gBAAc,OAAO,QAAQ,CAAA,OAAM,CAAC,GAAG,IAAI,EAAE,MAAM,SAAS,WAAA,CAAY,GAAG,OAAO;AACnF;AAEM,MAAM,QACZ,CAAI,eAA6D,CAAC,QAA8B,YAAoC;AACnI,gBAAc,OAAO,QAAQ,CAAA,OAAM,CAAC,GAAG,IAAI,EAAE,MAAM,SAAS,WAAA,CAAY,GAAG,OAAO;AACnF;"}
1
+ {"version":3,"file":"triggers.js","sources":["../../../../../../packages/schema-definition/src/actions/definition/triggers.ts"],"sourcesContent":["import { DecoratorFunction, EntityConstructor } from '../../utils/index.js'\nimport { Actions } from '@contember/schema'\nimport { triggersStore } from './internal/store.js'\nimport { ActionsTarget } from './targets.js'\n\nexport type TriggerWebhookDefinition = {\n\twebhook:\n\t\t| string\n\t\t| Omit<Actions.WebhookTarget, 'type' | 'name'> & { name?: string }\n}\n\nexport type TriggerTargetDefinition = {\n\ttarget: (Omit<Actions.AnyTarget, 'name'> & { name?: string }) | ActionsTarget\n}\n\nexport type TargetDefinition =\n\t| TriggerWebhookDefinition\n\t| TriggerTargetDefinition\n\nexport type CommonTriggerDefinition = {\n\treadonly name: string\n\treadonly selection?: Actions.SelectionNode | string\n\treadonly priority?: number\n}\n\nexport type BasicTriggerDefinition =\n\t& {\n\t\treadonly create?: boolean\n\t\treadonly delete?: boolean\n\t\treadonly update?: boolean | readonly string[]\n\t}\n\t& CommonTriggerDefinition\n\t& TargetDefinition\n\nexport type WatchTriggerDefinition =\n\t& {\n\t\treadonly watch: Actions.SelectionNode | string\n\t\treadonly withNodes?: boolean\n\t}\n\t& CommonTriggerDefinition\n\t& TargetDefinition\n\nexport const trigger =\n\t<T>(definition: BasicTriggerDefinition): DecoratorFunction<T> => (entity: EntityConstructor<T>, context?: ClassDecoratorContext) => {\n\t\ttriggersStore.update(entity, it => [...it, { type: 'basic', definition }], context)\n\t}\n\nexport const watch =\n\t<T>(definition: WatchTriggerDefinition): DecoratorFunction<T> => (entity: EntityConstructor<T>, context?: ClassDecoratorContext) => {\n\t\ttriggersStore.update(entity, it => [...it, { type: 'watch', definition }], context)\n\t}\n"],"names":[],"mappings":";AA0CO,MAAM,UACZ,CAAI,eAA6D,CAAC,QAA8B,YAAoC;AACnI,gBAAc,OAAO,QAAQ,CAAA,OAAM,CAAC,GAAG,IAAI,EAAE,MAAM,SAAS,WAAA,CAAY,GAAG,OAAO;AACnF;AAEM,MAAM,QACZ,CAAI,eAA6D,CAAC,QAA8B,YAAoC;AACnI,gBAAc,OAAO,QAAQ,CAAA,OAAM,CAAC,GAAG,IAAI,EAAE,MAAM,SAAS,WAAA,CAAY,GAAG,OAAO;AACnF;"}
@@ -15,12 +15,13 @@ const createSchema = (definitions, modifyCallback, options) => {
15
15
  strictDefinitionValidator,
16
16
  defaultCollation: options?.defaultCollation
17
17
  });
18
+ strictDefinitionValidator.validateModel(model);
18
19
  const validation = index$1.parseDefinition(definitions);
19
20
  const acl = index$2.createAcl(definitions, model);
20
21
  const actions = index$3.createActions(definitions);
21
22
  const schema = { ...schemaUtils.emptySchema, model, validation, acl, actions };
22
23
  if (strictDefinitionValidator.warnings.length > 0) {
23
- throw `Strict schema validation failed:
24
+ throw `Strict schema validation failed:
24
25
  ${strictDefinitionValidator.warnings.map((it) => `- ${it.message}`).join("\n")}`;
25
26
  }
26
27
  return modifyCallback ? modifyCallback(schema) : schema;
@@ -1 +1 @@
1
- {"version":3,"file":"createSchema.cjs","sources":["../../../../packages/schema-definition/src/createSchema.ts"],"sourcesContent":["import { SchemaDefinition } from './model'\nimport * as InputValidation from './validation'\nimport * as AclDefinition from './acl/definition'\nimport * as ActionsDefinition from './actions/definition'\nimport { Model, Schema } from '@contember/schema'\nimport { emptySchema } from '@contember/schema-utils'\nimport { allStrict, StrictDefinitionValidator, StrictOptions } from './strict'\n\nexport const createSchema = (definitions: Record<string, any>, modifyCallback?: (schema: Schema) => Schema, options?: {\n\tstrict?: boolean | StrictOptions\n\tdefaultCollation?: Model.Collation\n}): Schema => {\n\tconst strictOptions = options?.strict === true ? allStrict : (options?.strict || {})\n\tconst strictDefinitionValidator = new StrictDefinitionValidator(strictOptions)\n\n\tconst model = SchemaDefinition.createModel(definitions, {\n\t\tstrictDefinitionValidator: strictDefinitionValidator,\n\t\tdefaultCollation: options?.defaultCollation,\n\t})\n\tconst validation = InputValidation.parseDefinition(definitions)\n\tconst acl = AclDefinition.createAcl(definitions, model)\n\tconst actions = ActionsDefinition.createActions(definitions)\n\tconst schema = { ...emptySchema, model, validation, acl, actions }\n\n\tif (strictDefinitionValidator.warnings.length > 0) {\n\t\tthrow `Strict schema validation failed: \\n${strictDefinitionValidator.warnings.map(it => `- ${it.message}`).join('\\n')}`\n\t}\n\n\treturn modifyCallback ? modifyCallback(schema) : schema\n}\n"],"names":["allStrict","StrictDefinitionValidator","SchemaDefinition.createModel","InputValidation.parseDefinition","AclDefinition.createAcl","ActionsDefinition.createActions","emptySchema"],"mappings":";;;;;;;;;;AAQO,MAAM,eAAe,CAAC,aAAkC,gBAA6C,YAG9F;AACb,QAAM,gBAAgB,SAAS,WAAW,OAAOA,mBAAa,SAAS,UAAU,CAAA;AACjF,QAAM,4BAA4B,IAAIC,OAAAA,0BAA0B,aAAa;AAE7E,QAAM,QAAQC,MAAAA,YAA6B,aAAa;AAAA,IACvD;AAAA,IACA,kBAAkB,SAAS;AAAA,EAAA,CAC3B;AACD,QAAM,aAAaC,QAAAA,gBAAgC,WAAW;AAC9D,QAAM,MAAMC,QAAAA,UAAwB,aAAa,KAAK;AACtD,QAAM,UAAUC,QAAAA,cAAgC,WAAW;AAC3D,QAAM,SAAS,EAAE,GAAGC,YAAAA,aAAa,OAAO,YAAY,KAAK,QAAA;AAEzD,MAAI,0BAA0B,SAAS,SAAS,GAAG;AAClD,UAAM;AAAA,EAAsC,0BAA0B,SAAS,IAAI,CAAA,OAAM,KAAK,GAAG,OAAO,EAAE,EAAE,KAAK,IAAI,CAAC;AAAA,EACvH;AAEA,SAAO,iBAAiB,eAAe,MAAM,IAAI;AAClD;;"}
1
+ {"version":3,"file":"createSchema.cjs","sources":["../../../../packages/schema-definition/src/createSchema.ts"],"sourcesContent":["import { SchemaDefinition } from './model/index.js'\nimport * as InputValidation from './validation/index.js'\nimport * as AclDefinition from './acl/definition/index.js'\nimport * as ActionsDefinition from './actions/definition/index.js'\nimport { Model, Schema } from '@contember/schema'\nimport { emptySchema } from '@contember/schema-utils'\nimport { allStrict, StrictDefinitionValidator, StrictOptions } from './strict.js'\n\nexport const createSchema = (definitions: Record<string, any>, modifyCallback?: (schema: Schema) => Schema, options?: {\n\tstrict?: boolean | StrictOptions\n\tdefaultCollation?: Model.Collation\n}): Schema => {\n\tconst strictOptions = options?.strict === true ? allStrict : (options?.strict || {})\n\tconst strictDefinitionValidator = new StrictDefinitionValidator(strictOptions)\n\n\tconst model = SchemaDefinition.createModel(definitions, {\n\t\tstrictDefinitionValidator: strictDefinitionValidator,\n\t\tdefaultCollation: options?.defaultCollation,\n\t})\n\tstrictDefinitionValidator.validateModel(model)\n\tconst validation = InputValidation.parseDefinition(definitions)\n\tconst acl = AclDefinition.createAcl(definitions, model)\n\tconst actions = ActionsDefinition.createActions(definitions)\n\tconst schema = { ...emptySchema, model, validation, acl, actions }\n\n\tif (strictDefinitionValidator.warnings.length > 0) {\n\t\tthrow `Strict schema validation failed:\\n${strictDefinitionValidator.warnings.map(it => `- ${it.message}`).join('\\n')}`\n\t}\n\n\treturn modifyCallback ? modifyCallback(schema) : schema\n}\n"],"names":["allStrict","StrictDefinitionValidator","SchemaDefinition.createModel","InputValidation.parseDefinition","AclDefinition.createAcl","ActionsDefinition.createActions","emptySchema"],"mappings":";;;;;;;;;;AAQO,MAAM,eAAe,CAAC,aAAkC,gBAA6C,YAG9F;AACb,QAAM,gBAAgB,SAAS,WAAW,OAAOA,mBAAa,SAAS,UAAU,CAAA;AACjF,QAAM,4BAA4B,IAAIC,OAAAA,0BAA0B,aAAa;AAE7E,QAAM,QAAQC,MAAAA,YAA6B,aAAa;AAAA,IACvD;AAAA,IACA,kBAAkB,SAAS;AAAA,EAAA,CAC3B;AACD,4BAA0B,cAAc,KAAK;AAC7C,QAAM,aAAaC,QAAAA,gBAAgC,WAAW;AAC9D,QAAM,MAAMC,QAAAA,UAAwB,aAAa,KAAK;AACtD,QAAM,UAAUC,QAAAA,cAAgC,WAAW;AAC3D,QAAM,SAAS,EAAE,GAAGC,YAAAA,aAAa,OAAO,YAAY,KAAK,QAAA;AAEzD,MAAI,0BAA0B,SAAS,SAAS,GAAG;AAClD,UAAM;AAAA,EAAqC,0BAA0B,SAAS,IAAI,CAAA,OAAM,KAAK,GAAG,OAAO,EAAE,EAAE,KAAK,IAAI,CAAC;AAAA,EACtH;AAEA,SAAO,iBAAiB,eAAe,MAAM,IAAI;AAClD;;"}
@@ -13,12 +13,13 @@ const createSchema = (definitions, modifyCallback, options) => {
13
13
  strictDefinitionValidator,
14
14
  defaultCollation: options?.defaultCollation
15
15
  });
16
+ strictDefinitionValidator.validateModel(model);
16
17
  const validation = parseDefinition(definitions);
17
18
  const acl = createAcl(definitions, model);
18
19
  const actions = createActions(definitions);
19
20
  const schema = { ...emptySchema, model, validation, acl, actions };
20
21
  if (strictDefinitionValidator.warnings.length > 0) {
21
- throw `Strict schema validation failed:
22
+ throw `Strict schema validation failed:
22
23
  ${strictDefinitionValidator.warnings.map((it) => `- ${it.message}`).join("\n")}`;
23
24
  }
24
25
  return modifyCallback ? modifyCallback(schema) : schema;
@@ -1 +1 @@
1
- {"version":3,"file":"createSchema.js","sources":["../../../../packages/schema-definition/src/createSchema.ts"],"sourcesContent":["import { SchemaDefinition } from './model'\nimport * as InputValidation from './validation'\nimport * as AclDefinition from './acl/definition'\nimport * as ActionsDefinition from './actions/definition'\nimport { Model, Schema } from '@contember/schema'\nimport { emptySchema } from '@contember/schema-utils'\nimport { allStrict, StrictDefinitionValidator, StrictOptions } from './strict'\n\nexport const createSchema = (definitions: Record<string, any>, modifyCallback?: (schema: Schema) => Schema, options?: {\n\tstrict?: boolean | StrictOptions\n\tdefaultCollation?: Model.Collation\n}): Schema => {\n\tconst strictOptions = options?.strict === true ? allStrict : (options?.strict || {})\n\tconst strictDefinitionValidator = new StrictDefinitionValidator(strictOptions)\n\n\tconst model = SchemaDefinition.createModel(definitions, {\n\t\tstrictDefinitionValidator: strictDefinitionValidator,\n\t\tdefaultCollation: options?.defaultCollation,\n\t})\n\tconst validation = InputValidation.parseDefinition(definitions)\n\tconst acl = AclDefinition.createAcl(definitions, model)\n\tconst actions = ActionsDefinition.createActions(definitions)\n\tconst schema = { ...emptySchema, model, validation, acl, actions }\n\n\tif (strictDefinitionValidator.warnings.length > 0) {\n\t\tthrow `Strict schema validation failed: \\n${strictDefinitionValidator.warnings.map(it => `- ${it.message}`).join('\\n')}`\n\t}\n\n\treturn modifyCallback ? modifyCallback(schema) : schema\n}\n"],"names":["SchemaDefinition.createModel","InputValidation.parseDefinition","AclDefinition.createAcl","ActionsDefinition.createActions"],"mappings":";;;;;;;;AAQO,MAAM,eAAe,CAAC,aAAkC,gBAA6C,YAG9F;AACb,QAAM,gBAAgB,SAAS,WAAW,OAAO,YAAa,SAAS,UAAU,CAAA;AACjF,QAAM,4BAA4B,IAAI,0BAA0B,aAAa;AAE7E,QAAM,QAAQA,YAA6B,aAAa;AAAA,IACvD;AAAA,IACA,kBAAkB,SAAS;AAAA,EAAA,CAC3B;AACD,QAAM,aAAaC,gBAAgC,WAAW;AAC9D,QAAM,MAAMC,UAAwB,aAAa,KAAK;AACtD,QAAM,UAAUC,cAAgC,WAAW;AAC3D,QAAM,SAAS,EAAE,GAAG,aAAa,OAAO,YAAY,KAAK,QAAA;AAEzD,MAAI,0BAA0B,SAAS,SAAS,GAAG;AAClD,UAAM;AAAA,EAAsC,0BAA0B,SAAS,IAAI,CAAA,OAAM,KAAK,GAAG,OAAO,EAAE,EAAE,KAAK,IAAI,CAAC;AAAA,EACvH;AAEA,SAAO,iBAAiB,eAAe,MAAM,IAAI;AAClD;"}
1
+ {"version":3,"file":"createSchema.js","sources":["../../../../packages/schema-definition/src/createSchema.ts"],"sourcesContent":["import { SchemaDefinition } from './model/index.js'\nimport * as InputValidation from './validation/index.js'\nimport * as AclDefinition from './acl/definition/index.js'\nimport * as ActionsDefinition from './actions/definition/index.js'\nimport { Model, Schema } from '@contember/schema'\nimport { emptySchema } from '@contember/schema-utils'\nimport { allStrict, StrictDefinitionValidator, StrictOptions } from './strict.js'\n\nexport const createSchema = (definitions: Record<string, any>, modifyCallback?: (schema: Schema) => Schema, options?: {\n\tstrict?: boolean | StrictOptions\n\tdefaultCollation?: Model.Collation\n}): Schema => {\n\tconst strictOptions = options?.strict === true ? allStrict : (options?.strict || {})\n\tconst strictDefinitionValidator = new StrictDefinitionValidator(strictOptions)\n\n\tconst model = SchemaDefinition.createModel(definitions, {\n\t\tstrictDefinitionValidator: strictDefinitionValidator,\n\t\tdefaultCollation: options?.defaultCollation,\n\t})\n\tstrictDefinitionValidator.validateModel(model)\n\tconst validation = InputValidation.parseDefinition(definitions)\n\tconst acl = AclDefinition.createAcl(definitions, model)\n\tconst actions = ActionsDefinition.createActions(definitions)\n\tconst schema = { ...emptySchema, model, validation, acl, actions }\n\n\tif (strictDefinitionValidator.warnings.length > 0) {\n\t\tthrow `Strict schema validation failed:\\n${strictDefinitionValidator.warnings.map(it => `- ${it.message}`).join('\\n')}`\n\t}\n\n\treturn modifyCallback ? modifyCallback(schema) : schema\n}\n"],"names":["SchemaDefinition.createModel","InputValidation.parseDefinition","AclDefinition.createAcl","ActionsDefinition.createActions"],"mappings":";;;;;;;;AAQO,MAAM,eAAe,CAAC,aAAkC,gBAA6C,YAG9F;AACb,QAAM,gBAAgB,SAAS,WAAW,OAAO,YAAa,SAAS,UAAU,CAAA;AACjF,QAAM,4BAA4B,IAAI,0BAA0B,aAAa;AAE7E,QAAM,QAAQA,YAA6B,aAAa;AAAA,IACvD;AAAA,IACA,kBAAkB,SAAS;AAAA,EAAA,CAC3B;AACD,4BAA0B,cAAc,KAAK;AAC7C,QAAM,aAAaC,gBAAgC,WAAW;AAC9D,QAAM,MAAMC,UAAwB,aAAa,KAAK;AACtD,QAAM,UAAUC,cAAgC,WAAW;AAC3D,QAAM,SAAS,EAAE,GAAG,aAAa,OAAO,YAAY,KAAK,QAAA;AAEzD,MAAI,0BAA0B,SAAS,SAAS,GAAG;AAClD,UAAM;AAAA,EAAqC,0BAA0B,SAAS,IAAI,CAAA,OAAM,KAAK,GAAG,OAAO,EAAE,EAAE,KAAK,IAAI,CAAC;AAAA,EACtH;AAEA,SAAO,iBAAiB,eAAe,MAAM,IAAI;AAClD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnBuilder.cjs","sources":["../../../../../../packages/schema-definition/src/model/builder/ColumnBuilder.ts"],"sourcesContent":["import FieldBuilder from './FieldBuilder'\nimport { Model } from '@contember/schema'\n\ntype PartialColumnOptions<K extends keyof ColumnBuilder.Options> =\n\t& Partial<ColumnBuilder.Options>\n\t& Pick<ColumnBuilder.Options, K>\n\nclass ColumnBuilder<O extends PartialColumnOptions<never> = PartialColumnOptions<never>> implements FieldBuilder<O> {\n\tconstructor(private readonly options: O) {}\n\n\tpublic columnName(columnName: string): ColumnBuilder<O> {\n\t\treturn new ColumnBuilder<O>({ ...(this.options as object), columnName } as O)\n\t}\n\n\tpublic type(\n\t\ttype: Model.ColumnType,\n\t\ttypeOptions: ColumnBuilder.TypeOptions = {},\n\t): ColumnBuilder<O & PartialColumnOptions<'type'>> {\n\t\treturn new ColumnBuilder<O & PartialColumnOptions<'type'>>(\n\t\t\t{\n\t\t\t\t...(this.options as object),\n\t\t\t\ttype: type,\n\t\t\t\t...typeOptions,\n\t\t\t} as O & PartialColumnOptions<'type'>,\n\t\t)\n\t}\n\n\tpublic nullable(): ColumnBuilder<O> {\n\t\treturn new ColumnBuilder<O>({ ...(this.options as object), nullable: true } as O)\n\t}\n\n\tpublic notNull(): ColumnBuilder<O> {\n\t\treturn new ColumnBuilder<O>({ ...(this.options as object), nullable: false } as O)\n\t}\n\n\tpublic unique(): ColumnBuilder<O> {\n\t\treturn new ColumnBuilder<O>({ ...(this.options as object), unique: true } as O)\n\t}\n\n\tpublic primary(): ColumnBuilder<O> {\n\t\treturn new ColumnBuilder<O>({ ...(this.options as object), primary: true } as O)\n\t}\n\n\tpublic typeAlias(typeAlias: string): ColumnBuilder<O> {\n\t\treturn new ColumnBuilder<O>({ ...(this.options as object), typeAlias } as O)\n\t}\n\n\tgetOption(): O {\n\t\treturn this.options\n\t}\n}\n\nnamespace ColumnBuilder {\n\texport type TypeOptions = {\n\t\tenumName?: string\n\t}\n\n\texport type Options = {\n\t\ttype: Model.ColumnType\n\t\tenumName?: string\n\t\tcolumnName?: string\n\t\tunique?: boolean\n\t\tnullable?: boolean\n\t\tprimary?: boolean\n\t\ttypeAlias?: string\n\t}\n}\n\nexport default ColumnBuilder\n"],"names":[],"mappings":";AAOA,MAAM,cAA8G;AAAA,EACnH,YAA6B,SAAY;AAAZ,SAAA,UAAA;AAAA,EAAa;AAAA,EAEnC,WAAW,YAAsC;AACvD,WAAO,IAAI,cAAiB,EAAE,GAAI,KAAK,SAAoB,YAAiB;AAAA,EAC7E;AAAA,EAEO,KACN,MACA,cAAyC,IACS;AAClD,WAAO,IAAI;AAAA,MACV;AAAA,QACC,GAAI,KAAK;AAAA,QACT;AAAA,QACA,GAAG;AAAA,MAAA;AAAA,IACJ;AAAA,EAEF;AAAA,EAEO,WAA6B;AACnC,WAAO,IAAI,cAAiB,EAAE,GAAI,KAAK,SAAoB,UAAU,MAAW;AAAA,EACjF;AAAA,EAEO,UAA4B;AAClC,WAAO,IAAI,cAAiB,EAAE,GAAI,KAAK,SAAoB,UAAU,OAAY;AAAA,EAClF;AAAA,EAEO,SAA2B;AACjC,WAAO,IAAI,cAAiB,EAAE,GAAI,KAAK,SAAoB,QAAQ,MAAW;AAAA,EAC/E;AAAA,EAEO,UAA4B;AAClC,WAAO,IAAI,cAAiB,EAAE,GAAI,KAAK,SAAoB,SAAS,MAAW;AAAA,EAChF;AAAA,EAEO,UAAU,WAAqC;AACrD,WAAO,IAAI,cAAiB,EAAE,GAAI,KAAK,SAAoB,WAAgB;AAAA,EAC5E;AAAA,EAEA,YAAe;AACd,WAAO,KAAK;AAAA,EACb;AACD;;"}
1
+ {"version":3,"file":"ColumnBuilder.cjs","sources":["../../../../../../packages/schema-definition/src/model/builder/ColumnBuilder.ts"],"sourcesContent":["import FieldBuilder from './FieldBuilder.js'\nimport { Model } from '@contember/schema'\n\ntype PartialColumnOptions<K extends keyof ColumnBuilder.Options> =\n\t& Partial<ColumnBuilder.Options>\n\t& Pick<ColumnBuilder.Options, K>\n\nclass ColumnBuilder<O extends PartialColumnOptions<never> = PartialColumnOptions<never>> implements FieldBuilder<O> {\n\tconstructor(private readonly options: O) {}\n\n\tpublic columnName(columnName: string): ColumnBuilder<O> {\n\t\treturn new ColumnBuilder<O>({ ...(this.options as object), columnName } as O)\n\t}\n\n\tpublic type(\n\t\ttype: Model.ColumnType,\n\t\ttypeOptions: ColumnBuilder.TypeOptions = {},\n\t): ColumnBuilder<O & PartialColumnOptions<'type'>> {\n\t\treturn new ColumnBuilder<O & PartialColumnOptions<'type'>>(\n\t\t\t{\n\t\t\t\t...(this.options as object),\n\t\t\t\ttype: type,\n\t\t\t\t...typeOptions,\n\t\t\t} as O & PartialColumnOptions<'type'>,\n\t\t)\n\t}\n\n\tpublic nullable(): ColumnBuilder<O> {\n\t\treturn new ColumnBuilder<O>({ ...(this.options as object), nullable: true } as O)\n\t}\n\n\tpublic notNull(): ColumnBuilder<O> {\n\t\treturn new ColumnBuilder<O>({ ...(this.options as object), nullable: false } as O)\n\t}\n\n\tpublic unique(): ColumnBuilder<O> {\n\t\treturn new ColumnBuilder<O>({ ...(this.options as object), unique: true } as O)\n\t}\n\n\tpublic primary(): ColumnBuilder<O> {\n\t\treturn new ColumnBuilder<O>({ ...(this.options as object), primary: true } as O)\n\t}\n\n\tpublic typeAlias(typeAlias: string): ColumnBuilder<O> {\n\t\treturn new ColumnBuilder<O>({ ...(this.options as object), typeAlias } as O)\n\t}\n\n\tgetOption(): O {\n\t\treturn this.options\n\t}\n}\n\nnamespace ColumnBuilder {\n\texport type TypeOptions = {\n\t\tenumName?: string\n\t}\n\n\texport type Options = {\n\t\ttype: Model.ColumnType\n\t\tenumName?: string\n\t\tcolumnName?: string\n\t\tunique?: boolean\n\t\tnullable?: boolean\n\t\tprimary?: boolean\n\t\ttypeAlias?: string\n\t}\n}\n\nexport default ColumnBuilder\n"],"names":[],"mappings":";AAOA,MAAM,cAA8G;AAAA,EACnH,YAA6B,SAAY;AAAZ,SAAA,UAAA;AAAA,EAAa;AAAA,EAEnC,WAAW,YAAsC;AACvD,WAAO,IAAI,cAAiB,EAAE,GAAI,KAAK,SAAoB,YAAiB;AAAA,EAC7E;AAAA,EAEO,KACN,MACA,cAAyC,IACS;AAClD,WAAO,IAAI;AAAA,MACV;AAAA,QACC,GAAI,KAAK;AAAA,QACT;AAAA,QACA,GAAG;AAAA,MAAA;AAAA,IACJ;AAAA,EAEF;AAAA,EAEO,WAA6B;AACnC,WAAO,IAAI,cAAiB,EAAE,GAAI,KAAK,SAAoB,UAAU,MAAW;AAAA,EACjF;AAAA,EAEO,UAA4B;AAClC,WAAO,IAAI,cAAiB,EAAE,GAAI,KAAK,SAAoB,UAAU,OAAY;AAAA,EAClF;AAAA,EAEO,SAA2B;AACjC,WAAO,IAAI,cAAiB,EAAE,GAAI,KAAK,SAAoB,QAAQ,MAAW;AAAA,EAC/E;AAAA,EAEO,UAA4B;AAClC,WAAO,IAAI,cAAiB,EAAE,GAAI,KAAK,SAAoB,SAAS,MAAW;AAAA,EAChF;AAAA,EAEO,UAAU,WAAqC;AACrD,WAAO,IAAI,cAAiB,EAAE,GAAI,KAAK,SAAoB,WAAgB;AAAA,EAC5E;AAAA,EAEA,YAAe;AACd,WAAO,KAAK;AAAA,EACb;AACD;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnBuilder.js","sources":["../../../../../../packages/schema-definition/src/model/builder/ColumnBuilder.ts"],"sourcesContent":["import FieldBuilder from './FieldBuilder'\nimport { Model } from '@contember/schema'\n\ntype PartialColumnOptions<K extends keyof ColumnBuilder.Options> =\n\t& Partial<ColumnBuilder.Options>\n\t& Pick<ColumnBuilder.Options, K>\n\nclass ColumnBuilder<O extends PartialColumnOptions<never> = PartialColumnOptions<never>> implements FieldBuilder<O> {\n\tconstructor(private readonly options: O) {}\n\n\tpublic columnName(columnName: string): ColumnBuilder<O> {\n\t\treturn new ColumnBuilder<O>({ ...(this.options as object), columnName } as O)\n\t}\n\n\tpublic type(\n\t\ttype: Model.ColumnType,\n\t\ttypeOptions: ColumnBuilder.TypeOptions = {},\n\t): ColumnBuilder<O & PartialColumnOptions<'type'>> {\n\t\treturn new ColumnBuilder<O & PartialColumnOptions<'type'>>(\n\t\t\t{\n\t\t\t\t...(this.options as object),\n\t\t\t\ttype: type,\n\t\t\t\t...typeOptions,\n\t\t\t} as O & PartialColumnOptions<'type'>,\n\t\t)\n\t}\n\n\tpublic nullable(): ColumnBuilder<O> {\n\t\treturn new ColumnBuilder<O>({ ...(this.options as object), nullable: true } as O)\n\t}\n\n\tpublic notNull(): ColumnBuilder<O> {\n\t\treturn new ColumnBuilder<O>({ ...(this.options as object), nullable: false } as O)\n\t}\n\n\tpublic unique(): ColumnBuilder<O> {\n\t\treturn new ColumnBuilder<O>({ ...(this.options as object), unique: true } as O)\n\t}\n\n\tpublic primary(): ColumnBuilder<O> {\n\t\treturn new ColumnBuilder<O>({ ...(this.options as object), primary: true } as O)\n\t}\n\n\tpublic typeAlias(typeAlias: string): ColumnBuilder<O> {\n\t\treturn new ColumnBuilder<O>({ ...(this.options as object), typeAlias } as O)\n\t}\n\n\tgetOption(): O {\n\t\treturn this.options\n\t}\n}\n\nnamespace ColumnBuilder {\n\texport type TypeOptions = {\n\t\tenumName?: string\n\t}\n\n\texport type Options = {\n\t\ttype: Model.ColumnType\n\t\tenumName?: string\n\t\tcolumnName?: string\n\t\tunique?: boolean\n\t\tnullable?: boolean\n\t\tprimary?: boolean\n\t\ttypeAlias?: string\n\t}\n}\n\nexport default ColumnBuilder\n"],"names":[],"mappings":"AAOA,MAAM,cAA8G;AAAA,EACnH,YAA6B,SAAY;AAAZ,SAAA,UAAA;AAAA,EAAa;AAAA,EAEnC,WAAW,YAAsC;AACvD,WAAO,IAAI,cAAiB,EAAE,GAAI,KAAK,SAAoB,YAAiB;AAAA,EAC7E;AAAA,EAEO,KACN,MACA,cAAyC,IACS;AAClD,WAAO,IAAI;AAAA,MACV;AAAA,QACC,GAAI,KAAK;AAAA,QACT;AAAA,QACA,GAAG;AAAA,MAAA;AAAA,IACJ;AAAA,EAEF;AAAA,EAEO,WAA6B;AACnC,WAAO,IAAI,cAAiB,EAAE,GAAI,KAAK,SAAoB,UAAU,MAAW;AAAA,EACjF;AAAA,EAEO,UAA4B;AAClC,WAAO,IAAI,cAAiB,EAAE,GAAI,KAAK,SAAoB,UAAU,OAAY;AAAA,EAClF;AAAA,EAEO,SAA2B;AACjC,WAAO,IAAI,cAAiB,EAAE,GAAI,KAAK,SAAoB,QAAQ,MAAW;AAAA,EAC/E;AAAA,EAEO,UAA4B;AAClC,WAAO,IAAI,cAAiB,EAAE,GAAI,KAAK,SAAoB,SAAS,MAAW;AAAA,EAChF;AAAA,EAEO,UAAU,WAAqC;AACrD,WAAO,IAAI,cAAiB,EAAE,GAAI,KAAK,SAAoB,WAAgB;AAAA,EAC5E;AAAA,EAEA,YAAe;AACd,WAAO,KAAK;AAAA,EACb;AACD;"}
1
+ {"version":3,"file":"ColumnBuilder.js","sources":["../../../../../../packages/schema-definition/src/model/builder/ColumnBuilder.ts"],"sourcesContent":["import FieldBuilder from './FieldBuilder.js'\nimport { Model } from '@contember/schema'\n\ntype PartialColumnOptions<K extends keyof ColumnBuilder.Options> =\n\t& Partial<ColumnBuilder.Options>\n\t& Pick<ColumnBuilder.Options, K>\n\nclass ColumnBuilder<O extends PartialColumnOptions<never> = PartialColumnOptions<never>> implements FieldBuilder<O> {\n\tconstructor(private readonly options: O) {}\n\n\tpublic columnName(columnName: string): ColumnBuilder<O> {\n\t\treturn new ColumnBuilder<O>({ ...(this.options as object), columnName } as O)\n\t}\n\n\tpublic type(\n\t\ttype: Model.ColumnType,\n\t\ttypeOptions: ColumnBuilder.TypeOptions = {},\n\t): ColumnBuilder<O & PartialColumnOptions<'type'>> {\n\t\treturn new ColumnBuilder<O & PartialColumnOptions<'type'>>(\n\t\t\t{\n\t\t\t\t...(this.options as object),\n\t\t\t\ttype: type,\n\t\t\t\t...typeOptions,\n\t\t\t} as O & PartialColumnOptions<'type'>,\n\t\t)\n\t}\n\n\tpublic nullable(): ColumnBuilder<O> {\n\t\treturn new ColumnBuilder<O>({ ...(this.options as object), nullable: true } as O)\n\t}\n\n\tpublic notNull(): ColumnBuilder<O> {\n\t\treturn new ColumnBuilder<O>({ ...(this.options as object), nullable: false } as O)\n\t}\n\n\tpublic unique(): ColumnBuilder<O> {\n\t\treturn new ColumnBuilder<O>({ ...(this.options as object), unique: true } as O)\n\t}\n\n\tpublic primary(): ColumnBuilder<O> {\n\t\treturn new ColumnBuilder<O>({ ...(this.options as object), primary: true } as O)\n\t}\n\n\tpublic typeAlias(typeAlias: string): ColumnBuilder<O> {\n\t\treturn new ColumnBuilder<O>({ ...(this.options as object), typeAlias } as O)\n\t}\n\n\tgetOption(): O {\n\t\treturn this.options\n\t}\n}\n\nnamespace ColumnBuilder {\n\texport type TypeOptions = {\n\t\tenumName?: string\n\t}\n\n\texport type Options = {\n\t\ttype: Model.ColumnType\n\t\tenumName?: string\n\t\tcolumnName?: string\n\t\tunique?: boolean\n\t\tnullable?: boolean\n\t\tprimary?: boolean\n\t\ttypeAlias?: string\n\t}\n}\n\nexport default ColumnBuilder\n"],"names":[],"mappings":"AAOA,MAAM,cAA8G;AAAA,EACnH,YAA6B,SAAY;AAAZ,SAAA,UAAA;AAAA,EAAa;AAAA,EAEnC,WAAW,YAAsC;AACvD,WAAO,IAAI,cAAiB,EAAE,GAAI,KAAK,SAAoB,YAAiB;AAAA,EAC7E;AAAA,EAEO,KACN,MACA,cAAyC,IACS;AAClD,WAAO,IAAI;AAAA,MACV;AAAA,QACC,GAAI,KAAK;AAAA,QACT;AAAA,QACA,GAAG;AAAA,MAAA;AAAA,IACJ;AAAA,EAEF;AAAA,EAEO,WAA6B;AACnC,WAAO,IAAI,cAAiB,EAAE,GAAI,KAAK,SAAoB,UAAU,MAAW;AAAA,EACjF;AAAA,EAEO,UAA4B;AAClC,WAAO,IAAI,cAAiB,EAAE,GAAI,KAAK,SAAoB,UAAU,OAAY;AAAA,EAClF;AAAA,EAEO,SAA2B;AACjC,WAAO,IAAI,cAAiB,EAAE,GAAI,KAAK,SAAoB,QAAQ,MAAW;AAAA,EAC/E;AAAA,EAEO,UAA4B;AAClC,WAAO,IAAI,cAAiB,EAAE,GAAI,KAAK,SAAoB,SAAS,MAAW;AAAA,EAChF;AAAA,EAEO,UAAU,WAAqC;AACrD,WAAO,IAAI,cAAiB,EAAE,GAAI,KAAK,SAAoB,WAAgB;AAAA,EAC5E;AAAA,EAEA,YAAe;AACd,WAAO,KAAK;AAAA,EACb;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityBuilder.cjs","sources":["../../../../../../packages/schema-definition/src/model/builder/EntityBuilder.ts"],"sourcesContent":["import FieldBuilder from './FieldBuilder'\nimport ColumnBuilder from './ColumnBuilder'\nimport OneHasOneBuilder from './OneHasOneBuilder'\nimport ManyHasManyBuilder from './ManyHasManyBuilder'\nimport OneHasManyBuilder from './OneHasManyBuilder'\nimport ManyHasOneBuilder from './ManyHasOneBuilder'\nimport { Model } from '@contember/schema'\nimport { AddEntityCallback } from './types'\n\nclass EntityBuilder {\n\tconstructor(\n\t\tprivate readonly options: Partial<EntityBuilder.EntityOptions>,\n\t\tprivate readonly fields: FieldBuilder.Map = {},\n\t\tprivate readonly addEntity: AddEntityCallback,\n\t) {}\n\n\ttableName(tableName: string): EntityBuilder {\n\t\treturn new EntityBuilder({ ...this.options, tableName }, this.fields, this.addEntity)\n\t}\n\n\tunique(fields: string[]): EntityBuilder {\n\t\treturn new EntityBuilder(\n\t\t\t{ ...this.options, unique: [...(this.options.unique || []), { fields: fields }] },\n\t\t\tthis.fields,\n\t\t\tthis.addEntity,\n\t\t)\n\t}\n\n\tcolumn(\n\t\tname: string,\n\t\tconfigurator?: EntityBuilder.FieldConfigurator<ColumnBuilder, ColumnBuilder.Options>,\n\t): EntityBuilder {\n\t\tconst options: ColumnBuilder.Options = configurator\n\t\t\t? configurator(new ColumnBuilder({})).getOption()\n\t\t\t: { type: Model.ColumnType.String }\n\n\t\tconst fields: FieldBuilder.Map = { ...this.fields, [name]: { type: FieldBuilder.Type.Column, options: options } }\n\n\t\treturn new EntityBuilder(this.options, fields, this.addEntity)\n\t}\n\n\toneHasOne(\n\t\tname: string,\n\t\tconfigurator: EntityBuilder.FieldConfigurator<OneHasOneBuilder, OneHasOneBuilder.Options>,\n\t): EntityBuilder {\n\t\tconst options = configurator(new OneHasOneBuilder({}, this.addEntity)).getOption()\n\n\t\treturn new EntityBuilder(\n\t\t\tthis.options,\n\t\t\t{ ...this.fields, [name]: { type: FieldBuilder.Type.OneHasOne, options } },\n\t\t\tthis.addEntity,\n\t\t)\n\t}\n\n\tmanyHasMany(\n\t\tname: string,\n\t\tconfigurator: EntityBuilder.FieldConfigurator<ManyHasManyBuilder, ManyHasManyBuilder.Options>,\n\t): EntityBuilder {\n\t\tconst options = configurator(new ManyHasManyBuilder({}, this.addEntity)).getOption()\n\t\tconst fields: FieldBuilder.Map = { ...this.fields, [name]: { type: FieldBuilder.Type.ManyHasMany, options } }\n\n\t\treturn new EntityBuilder(this.options, fields, this.addEntity)\n\t}\n\n\toneHasMany(\n\t\tname: string,\n\t\tconfigurator: EntityBuilder.FieldConfigurator<OneHasManyBuilder, OneHasManyBuilder.Options>,\n\t): EntityBuilder {\n\t\tconst options = configurator(new OneHasManyBuilder({}, this.addEntity)).getOption()\n\t\tconst fields: FieldBuilder.Map = { ...this.fields, [name]: { type: FieldBuilder.Type.OneHasMany, options } }\n\n\t\treturn new EntityBuilder(this.options, fields, this.addEntity)\n\t}\n\n\tmanyHasOne(\n\t\tname: string,\n\t\tconfigurator: EntityBuilder.FieldConfigurator<ManyHasOneBuilder, ManyHasOneBuilder.Options>,\n\t): EntityBuilder {\n\t\tconst options = configurator(new ManyHasOneBuilder({}, this.addEntity)).getOption()\n\t\tconst fields: FieldBuilder.Map = { ...this.fields, [name]: { type: FieldBuilder.Type.ManyHasOne, options } }\n\n\t\treturn new EntityBuilder(this.options, fields, this.addEntity)\n\t}\n\n\tgetOptions(): EntityBuilder.EntityOptions {\n\t\treturn this.options\n\t}\n\n\tgetFields(): FieldBuilder.Map {\n\t\treturn this.fields\n\t}\n\n\torderBy(field: string | string[], direction: Model.OrderDirection = Model.OrderDirection.asc): EntityBuilder {\n\t\tconst path = typeof field === 'string' ? [field] : field\n\n\t\treturn new EntityBuilder(\n\t\t\t{ ...this.options, orderBy: [...(this.options.orderBy ?? []), { path, direction }] },\n\t\t\tthis.fields,\n\t\t\tthis.addEntity,\n\t\t)\n\t}\n}\n\nnamespace EntityBuilder {\n\texport type FieldConfigurator<B, O> = (builder: B) => FieldBuilder<O>\n\n\texport type UniqueOptions = {\n\t\tfields: string[]\n\t\tname?: string\n\t}\n\n\texport type EntityOptions = {\n\t\tprimary?: string\n\t\ttableName?: string\n\t\torderBy?: Model.OrderBy[]\n\t\tunique?: UniqueOptions[]\n\t}\n}\n\nexport default EntityBuilder\n"],"names":["Model"],"mappings":";;;;;;;;AASA,MAAM,cAAc;AAAA,EACnB,YACkB,SACA,SAA2B,CAAA,GAC3B,WAChB;AAHgB,SAAA,UAAA;AACA,SAAA,SAAA;AACA,SAAA,YAAA;AAAA,EACf;AAAA,EAEH,UAAU,WAAkC;AAC3C,WAAO,IAAI,cAAc,EAAE,GAAG,KAAK,SAAS,UAAA,GAAa,KAAK,QAAQ,KAAK,SAAS;AAAA,EACrF;AAAA,EAEA,OAAO,QAAiC;AACvC,WAAO,IAAI;AAAA,MACV,EAAE,GAAG,KAAK,SAAS,QAAQ,CAAC,GAAI,KAAK,QAAQ,UAAU,CAAA,GAAK,EAAE,OAAA,CAAgB,EAAA;AAAA,MAC9E,KAAK;AAAA,MACL,KAAK;AAAA,IAAA;AAAA,EAEP;AAAA,EAEA,OACC,MACA,cACgB;AAChB,UAAM,UAAiC,eACpC,aAAa,IAAI,cAAc,CAAA,CAAE,CAAC,EAAE,cACpC,EAAE,MAAMA,OAAAA,MAAM,WAAW,OAAA;AAE5B,UAAM,SAA2B,EAAE,GAAG,KAAK,QAAQ,CAAC,IAAI,GAAG,EAAE,MAAM,aAAa,KAAK,QAAQ,UAAiB;AAE9G,WAAO,IAAI,cAAc,KAAK,SAAS,QAAQ,KAAK,SAAS;AAAA,EAC9D;AAAA,EAEA,UACC,MACA,cACgB;AAChB,UAAM,UAAU,aAAa,IAAI,iBAAiB,CAAA,GAAI,KAAK,SAAS,CAAC,EAAE,UAAA;AAEvE,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,EAAE,GAAG,KAAK,QAAQ,CAAC,IAAI,GAAG,EAAE,MAAM,aAAa,KAAK,WAAW,UAAQ;AAAA,MACvE,KAAK;AAAA,IAAA;AAAA,EAEP;AAAA,EAEA,YACC,MACA,cACgB;AAChB,UAAM,UAAU,aAAa,IAAI,mBAAmB,CAAA,GAAI,KAAK,SAAS,CAAC,EAAE,UAAA;AACzE,UAAM,SAA2B,EAAE,GAAG,KAAK,QAAQ,CAAC,IAAI,GAAG,EAAE,MAAM,aAAa,KAAK,aAAa,UAAQ;AAE1G,WAAO,IAAI,cAAc,KAAK,SAAS,QAAQ,KAAK,SAAS;AAAA,EAC9D;AAAA,EAEA,WACC,MACA,cACgB;AAChB,UAAM,UAAU,aAAa,IAAI,kBAAkB,CAAA,GAAI,KAAK,SAAS,CAAC,EAAE,UAAA;AACxE,UAAM,SAA2B,EAAE,GAAG,KAAK,QAAQ,CAAC,IAAI,GAAG,EAAE,MAAM,aAAa,KAAK,YAAY,UAAQ;AAEzG,WAAO,IAAI,cAAc,KAAK,SAAS,QAAQ,KAAK,SAAS;AAAA,EAC9D;AAAA,EAEA,WACC,MACA,cACgB;AAChB,UAAM,UAAU,aAAa,IAAI,kBAAkB,CAAA,GAAI,KAAK,SAAS,CAAC,EAAE,UAAA;AACxE,UAAM,SAA2B,EAAE,GAAG,KAAK,QAAQ,CAAC,IAAI,GAAG,EAAE,MAAM,aAAa,KAAK,YAAY,UAAQ;AAEzG,WAAO,IAAI,cAAc,KAAK,SAAS,QAAQ,KAAK,SAAS;AAAA,EAC9D;AAAA,EAEA,aAA0C;AACzC,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,YAA8B;AAC7B,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,QAAQ,OAA0B,YAAkCA,OAAAA,MAAM,eAAe,KAAoB;AAC5G,UAAM,OAAO,OAAO,UAAU,WAAW,CAAC,KAAK,IAAI;AAEnD,WAAO,IAAI;AAAA,MACV,EAAE,GAAG,KAAK,SAAS,SAAS,CAAC,GAAI,KAAK,QAAQ,WAAW,CAAA,GAAK,EAAE,MAAM,UAAA,CAAW,EAAA;AAAA,MACjF,KAAK;AAAA,MACL,KAAK;AAAA,IAAA;AAAA,EAEP;AACD;;"}
1
+ {"version":3,"file":"EntityBuilder.cjs","sources":["../../../../../../packages/schema-definition/src/model/builder/EntityBuilder.ts"],"sourcesContent":["import FieldBuilder from './FieldBuilder.js'\nimport ColumnBuilder from './ColumnBuilder.js'\nimport OneHasOneBuilder from './OneHasOneBuilder.js'\nimport ManyHasManyBuilder from './ManyHasManyBuilder.js'\nimport OneHasManyBuilder from './OneHasManyBuilder.js'\nimport ManyHasOneBuilder from './ManyHasOneBuilder.js'\nimport { Model } from '@contember/schema'\nimport { AddEntityCallback } from './types.js'\n\nclass EntityBuilder {\n\tconstructor(\n\t\tprivate readonly options: Partial<EntityBuilder.EntityOptions>,\n\t\tprivate readonly fields: FieldBuilder.Map = {},\n\t\tprivate readonly addEntity: AddEntityCallback,\n\t) {}\n\n\ttableName(tableName: string): EntityBuilder {\n\t\treturn new EntityBuilder({ ...this.options, tableName }, this.fields, this.addEntity)\n\t}\n\n\tunique(fields: string[]): EntityBuilder {\n\t\treturn new EntityBuilder(\n\t\t\t{ ...this.options, unique: [...(this.options.unique || []), { fields: fields }] },\n\t\t\tthis.fields,\n\t\t\tthis.addEntity,\n\t\t)\n\t}\n\n\tcolumn(\n\t\tname: string,\n\t\tconfigurator?: EntityBuilder.FieldConfigurator<ColumnBuilder, ColumnBuilder.Options>,\n\t): EntityBuilder {\n\t\tconst options: ColumnBuilder.Options = configurator\n\t\t\t? configurator(new ColumnBuilder({})).getOption()\n\t\t\t: { type: Model.ColumnType.String }\n\n\t\tconst fields: FieldBuilder.Map = { ...this.fields, [name]: { type: FieldBuilder.Type.Column, options: options } }\n\n\t\treturn new EntityBuilder(this.options, fields, this.addEntity)\n\t}\n\n\toneHasOne(\n\t\tname: string,\n\t\tconfigurator: EntityBuilder.FieldConfigurator<OneHasOneBuilder, OneHasOneBuilder.Options>,\n\t): EntityBuilder {\n\t\tconst options = configurator(new OneHasOneBuilder({}, this.addEntity)).getOption()\n\n\t\treturn new EntityBuilder(\n\t\t\tthis.options,\n\t\t\t{ ...this.fields, [name]: { type: FieldBuilder.Type.OneHasOne, options } },\n\t\t\tthis.addEntity,\n\t\t)\n\t}\n\n\tmanyHasMany(\n\t\tname: string,\n\t\tconfigurator: EntityBuilder.FieldConfigurator<ManyHasManyBuilder, ManyHasManyBuilder.Options>,\n\t): EntityBuilder {\n\t\tconst options = configurator(new ManyHasManyBuilder({}, this.addEntity)).getOption()\n\t\tconst fields: FieldBuilder.Map = { ...this.fields, [name]: { type: FieldBuilder.Type.ManyHasMany, options } }\n\n\t\treturn new EntityBuilder(this.options, fields, this.addEntity)\n\t}\n\n\toneHasMany(\n\t\tname: string,\n\t\tconfigurator: EntityBuilder.FieldConfigurator<OneHasManyBuilder, OneHasManyBuilder.Options>,\n\t): EntityBuilder {\n\t\tconst options = configurator(new OneHasManyBuilder({}, this.addEntity)).getOption()\n\t\tconst fields: FieldBuilder.Map = { ...this.fields, [name]: { type: FieldBuilder.Type.OneHasMany, options } }\n\n\t\treturn new EntityBuilder(this.options, fields, this.addEntity)\n\t}\n\n\tmanyHasOne(\n\t\tname: string,\n\t\tconfigurator: EntityBuilder.FieldConfigurator<ManyHasOneBuilder, ManyHasOneBuilder.Options>,\n\t): EntityBuilder {\n\t\tconst options = configurator(new ManyHasOneBuilder({}, this.addEntity)).getOption()\n\t\tconst fields: FieldBuilder.Map = { ...this.fields, [name]: { type: FieldBuilder.Type.ManyHasOne, options } }\n\n\t\treturn new EntityBuilder(this.options, fields, this.addEntity)\n\t}\n\n\tgetOptions(): EntityBuilder.EntityOptions {\n\t\treturn this.options\n\t}\n\n\tgetFields(): FieldBuilder.Map {\n\t\treturn this.fields\n\t}\n\n\torderBy(field: string | string[], direction: Model.OrderDirection = Model.OrderDirection.asc): EntityBuilder {\n\t\tconst path = typeof field === 'string' ? [field] : field\n\n\t\treturn new EntityBuilder(\n\t\t\t{ ...this.options, orderBy: [...(this.options.orderBy ?? []), { path, direction }] },\n\t\t\tthis.fields,\n\t\t\tthis.addEntity,\n\t\t)\n\t}\n}\n\nnamespace EntityBuilder {\n\texport type FieldConfigurator<B, O> = (builder: B) => FieldBuilder<O>\n\n\texport type UniqueOptions = {\n\t\tfields: string[]\n\t\tname?: string\n\t}\n\n\texport type EntityOptions = {\n\t\tprimary?: string\n\t\ttableName?: string\n\t\torderBy?: Model.OrderBy[]\n\t\tunique?: UniqueOptions[]\n\t}\n}\n\nexport default EntityBuilder\n"],"names":["Model"],"mappings":";;;;;;;;AASA,MAAM,cAAc;AAAA,EACnB,YACkB,SACA,SAA2B,CAAA,GAC3B,WAChB;AAHgB,SAAA,UAAA;AACA,SAAA,SAAA;AACA,SAAA,YAAA;AAAA,EACf;AAAA,EAEH,UAAU,WAAkC;AAC3C,WAAO,IAAI,cAAc,EAAE,GAAG,KAAK,SAAS,UAAA,GAAa,KAAK,QAAQ,KAAK,SAAS;AAAA,EACrF;AAAA,EAEA,OAAO,QAAiC;AACvC,WAAO,IAAI;AAAA,MACV,EAAE,GAAG,KAAK,SAAS,QAAQ,CAAC,GAAI,KAAK,QAAQ,UAAU,CAAA,GAAK,EAAE,OAAA,CAAgB,EAAA;AAAA,MAC9E,KAAK;AAAA,MACL,KAAK;AAAA,IAAA;AAAA,EAEP;AAAA,EAEA,OACC,MACA,cACgB;AAChB,UAAM,UAAiC,eACpC,aAAa,IAAI,cAAc,CAAA,CAAE,CAAC,EAAE,cACpC,EAAE,MAAMA,OAAAA,MAAM,WAAW,OAAA;AAE5B,UAAM,SAA2B,EAAE,GAAG,KAAK,QAAQ,CAAC,IAAI,GAAG,EAAE,MAAM,aAAa,KAAK,QAAQ,UAAiB;AAE9G,WAAO,IAAI,cAAc,KAAK,SAAS,QAAQ,KAAK,SAAS;AAAA,EAC9D;AAAA,EAEA,UACC,MACA,cACgB;AAChB,UAAM,UAAU,aAAa,IAAI,iBAAiB,CAAA,GAAI,KAAK,SAAS,CAAC,EAAE,UAAA;AAEvE,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,EAAE,GAAG,KAAK,QAAQ,CAAC,IAAI,GAAG,EAAE,MAAM,aAAa,KAAK,WAAW,UAAQ;AAAA,MACvE,KAAK;AAAA,IAAA;AAAA,EAEP;AAAA,EAEA,YACC,MACA,cACgB;AAChB,UAAM,UAAU,aAAa,IAAI,mBAAmB,CAAA,GAAI,KAAK,SAAS,CAAC,EAAE,UAAA;AACzE,UAAM,SAA2B,EAAE,GAAG,KAAK,QAAQ,CAAC,IAAI,GAAG,EAAE,MAAM,aAAa,KAAK,aAAa,UAAQ;AAE1G,WAAO,IAAI,cAAc,KAAK,SAAS,QAAQ,KAAK,SAAS;AAAA,EAC9D;AAAA,EAEA,WACC,MACA,cACgB;AAChB,UAAM,UAAU,aAAa,IAAI,kBAAkB,CAAA,GAAI,KAAK,SAAS,CAAC,EAAE,UAAA;AACxE,UAAM,SAA2B,EAAE,GAAG,KAAK,QAAQ,CAAC,IAAI,GAAG,EAAE,MAAM,aAAa,KAAK,YAAY,UAAQ;AAEzG,WAAO,IAAI,cAAc,KAAK,SAAS,QAAQ,KAAK,SAAS;AAAA,EAC9D;AAAA,EAEA,WACC,MACA,cACgB;AAChB,UAAM,UAAU,aAAa,IAAI,kBAAkB,CAAA,GAAI,KAAK,SAAS,CAAC,EAAE,UAAA;AACxE,UAAM,SAA2B,EAAE,GAAG,KAAK,QAAQ,CAAC,IAAI,GAAG,EAAE,MAAM,aAAa,KAAK,YAAY,UAAQ;AAEzG,WAAO,IAAI,cAAc,KAAK,SAAS,QAAQ,KAAK,SAAS;AAAA,EAC9D;AAAA,EAEA,aAA0C;AACzC,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,YAA8B;AAC7B,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,QAAQ,OAA0B,YAAkCA,OAAAA,MAAM,eAAe,KAAoB;AAC5G,UAAM,OAAO,OAAO,UAAU,WAAW,CAAC,KAAK,IAAI;AAEnD,WAAO,IAAI;AAAA,MACV,EAAE,GAAG,KAAK,SAAS,SAAS,CAAC,GAAI,KAAK,QAAQ,WAAW,CAAA,GAAK,EAAE,MAAM,UAAA,CAAW,EAAA;AAAA,MACjF,KAAK;AAAA,MACL,KAAK;AAAA,IAAA;AAAA,EAEP;AACD;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityBuilder.js","sources":["../../../../../../packages/schema-definition/src/model/builder/EntityBuilder.ts"],"sourcesContent":["import FieldBuilder from './FieldBuilder'\nimport ColumnBuilder from './ColumnBuilder'\nimport OneHasOneBuilder from './OneHasOneBuilder'\nimport ManyHasManyBuilder from './ManyHasManyBuilder'\nimport OneHasManyBuilder from './OneHasManyBuilder'\nimport ManyHasOneBuilder from './ManyHasOneBuilder'\nimport { Model } from '@contember/schema'\nimport { AddEntityCallback } from './types'\n\nclass EntityBuilder {\n\tconstructor(\n\t\tprivate readonly options: Partial<EntityBuilder.EntityOptions>,\n\t\tprivate readonly fields: FieldBuilder.Map = {},\n\t\tprivate readonly addEntity: AddEntityCallback,\n\t) {}\n\n\ttableName(tableName: string): EntityBuilder {\n\t\treturn new EntityBuilder({ ...this.options, tableName }, this.fields, this.addEntity)\n\t}\n\n\tunique(fields: string[]): EntityBuilder {\n\t\treturn new EntityBuilder(\n\t\t\t{ ...this.options, unique: [...(this.options.unique || []), { fields: fields }] },\n\t\t\tthis.fields,\n\t\t\tthis.addEntity,\n\t\t)\n\t}\n\n\tcolumn(\n\t\tname: string,\n\t\tconfigurator?: EntityBuilder.FieldConfigurator<ColumnBuilder, ColumnBuilder.Options>,\n\t): EntityBuilder {\n\t\tconst options: ColumnBuilder.Options = configurator\n\t\t\t? configurator(new ColumnBuilder({})).getOption()\n\t\t\t: { type: Model.ColumnType.String }\n\n\t\tconst fields: FieldBuilder.Map = { ...this.fields, [name]: { type: FieldBuilder.Type.Column, options: options } }\n\n\t\treturn new EntityBuilder(this.options, fields, this.addEntity)\n\t}\n\n\toneHasOne(\n\t\tname: string,\n\t\tconfigurator: EntityBuilder.FieldConfigurator<OneHasOneBuilder, OneHasOneBuilder.Options>,\n\t): EntityBuilder {\n\t\tconst options = configurator(new OneHasOneBuilder({}, this.addEntity)).getOption()\n\n\t\treturn new EntityBuilder(\n\t\t\tthis.options,\n\t\t\t{ ...this.fields, [name]: { type: FieldBuilder.Type.OneHasOne, options } },\n\t\t\tthis.addEntity,\n\t\t)\n\t}\n\n\tmanyHasMany(\n\t\tname: string,\n\t\tconfigurator: EntityBuilder.FieldConfigurator<ManyHasManyBuilder, ManyHasManyBuilder.Options>,\n\t): EntityBuilder {\n\t\tconst options = configurator(new ManyHasManyBuilder({}, this.addEntity)).getOption()\n\t\tconst fields: FieldBuilder.Map = { ...this.fields, [name]: { type: FieldBuilder.Type.ManyHasMany, options } }\n\n\t\treturn new EntityBuilder(this.options, fields, this.addEntity)\n\t}\n\n\toneHasMany(\n\t\tname: string,\n\t\tconfigurator: EntityBuilder.FieldConfigurator<OneHasManyBuilder, OneHasManyBuilder.Options>,\n\t): EntityBuilder {\n\t\tconst options = configurator(new OneHasManyBuilder({}, this.addEntity)).getOption()\n\t\tconst fields: FieldBuilder.Map = { ...this.fields, [name]: { type: FieldBuilder.Type.OneHasMany, options } }\n\n\t\treturn new EntityBuilder(this.options, fields, this.addEntity)\n\t}\n\n\tmanyHasOne(\n\t\tname: string,\n\t\tconfigurator: EntityBuilder.FieldConfigurator<ManyHasOneBuilder, ManyHasOneBuilder.Options>,\n\t): EntityBuilder {\n\t\tconst options = configurator(new ManyHasOneBuilder({}, this.addEntity)).getOption()\n\t\tconst fields: FieldBuilder.Map = { ...this.fields, [name]: { type: FieldBuilder.Type.ManyHasOne, options } }\n\n\t\treturn new EntityBuilder(this.options, fields, this.addEntity)\n\t}\n\n\tgetOptions(): EntityBuilder.EntityOptions {\n\t\treturn this.options\n\t}\n\n\tgetFields(): FieldBuilder.Map {\n\t\treturn this.fields\n\t}\n\n\torderBy(field: string | string[], direction: Model.OrderDirection = Model.OrderDirection.asc): EntityBuilder {\n\t\tconst path = typeof field === 'string' ? [field] : field\n\n\t\treturn new EntityBuilder(\n\t\t\t{ ...this.options, orderBy: [...(this.options.orderBy ?? []), { path, direction }] },\n\t\t\tthis.fields,\n\t\t\tthis.addEntity,\n\t\t)\n\t}\n}\n\nnamespace EntityBuilder {\n\texport type FieldConfigurator<B, O> = (builder: B) => FieldBuilder<O>\n\n\texport type UniqueOptions = {\n\t\tfields: string[]\n\t\tname?: string\n\t}\n\n\texport type EntityOptions = {\n\t\tprimary?: string\n\t\ttableName?: string\n\t\torderBy?: Model.OrderBy[]\n\t\tunique?: UniqueOptions[]\n\t}\n}\n\nexport default EntityBuilder\n"],"names":[],"mappings":";;;;;;;AASA,MAAM,cAAc;AAAA,EACnB,YACkB,SACA,SAA2B,CAAA,GAC3B,WAChB;AAHgB,SAAA,UAAA;AACA,SAAA,SAAA;AACA,SAAA,YAAA;AAAA,EACf;AAAA,EAEH,UAAU,WAAkC;AAC3C,WAAO,IAAI,cAAc,EAAE,GAAG,KAAK,SAAS,UAAA,GAAa,KAAK,QAAQ,KAAK,SAAS;AAAA,EACrF;AAAA,EAEA,OAAO,QAAiC;AACvC,WAAO,IAAI;AAAA,MACV,EAAE,GAAG,KAAK,SAAS,QAAQ,CAAC,GAAI,KAAK,QAAQ,UAAU,CAAA,GAAK,EAAE,OAAA,CAAgB,EAAA;AAAA,MAC9E,KAAK;AAAA,MACL,KAAK;AAAA,IAAA;AAAA,EAEP;AAAA,EAEA,OACC,MACA,cACgB;AAChB,UAAM,UAAiC,eACpC,aAAa,IAAI,cAAc,CAAA,CAAE,CAAC,EAAE,cACpC,EAAE,MAAM,MAAM,WAAW,OAAA;AAE5B,UAAM,SAA2B,EAAE,GAAG,KAAK,QAAQ,CAAC,IAAI,GAAG,EAAE,MAAM,aAAa,KAAK,QAAQ,UAAiB;AAE9G,WAAO,IAAI,cAAc,KAAK,SAAS,QAAQ,KAAK,SAAS;AAAA,EAC9D;AAAA,EAEA,UACC,MACA,cACgB;AAChB,UAAM,UAAU,aAAa,IAAI,iBAAiB,CAAA,GAAI,KAAK,SAAS,CAAC,EAAE,UAAA;AAEvE,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,EAAE,GAAG,KAAK,QAAQ,CAAC,IAAI,GAAG,EAAE,MAAM,aAAa,KAAK,WAAW,UAAQ;AAAA,MACvE,KAAK;AAAA,IAAA;AAAA,EAEP;AAAA,EAEA,YACC,MACA,cACgB;AAChB,UAAM,UAAU,aAAa,IAAI,mBAAmB,CAAA,GAAI,KAAK,SAAS,CAAC,EAAE,UAAA;AACzE,UAAM,SAA2B,EAAE,GAAG,KAAK,QAAQ,CAAC,IAAI,GAAG,EAAE,MAAM,aAAa,KAAK,aAAa,UAAQ;AAE1G,WAAO,IAAI,cAAc,KAAK,SAAS,QAAQ,KAAK,SAAS;AAAA,EAC9D;AAAA,EAEA,WACC,MACA,cACgB;AAChB,UAAM,UAAU,aAAa,IAAI,kBAAkB,CAAA,GAAI,KAAK,SAAS,CAAC,EAAE,UAAA;AACxE,UAAM,SAA2B,EAAE,GAAG,KAAK,QAAQ,CAAC,IAAI,GAAG,EAAE,MAAM,aAAa,KAAK,YAAY,UAAQ;AAEzG,WAAO,IAAI,cAAc,KAAK,SAAS,QAAQ,KAAK,SAAS;AAAA,EAC9D;AAAA,EAEA,WACC,MACA,cACgB;AAChB,UAAM,UAAU,aAAa,IAAI,kBAAkB,CAAA,GAAI,KAAK,SAAS,CAAC,EAAE,UAAA;AACxE,UAAM,SAA2B,EAAE,GAAG,KAAK,QAAQ,CAAC,IAAI,GAAG,EAAE,MAAM,aAAa,KAAK,YAAY,UAAQ;AAEzG,WAAO,IAAI,cAAc,KAAK,SAAS,QAAQ,KAAK,SAAS;AAAA,EAC9D;AAAA,EAEA,aAA0C;AACzC,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,YAA8B;AAC7B,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,QAAQ,OAA0B,YAAkC,MAAM,eAAe,KAAoB;AAC5G,UAAM,OAAO,OAAO,UAAU,WAAW,CAAC,KAAK,IAAI;AAEnD,WAAO,IAAI;AAAA,MACV,EAAE,GAAG,KAAK,SAAS,SAAS,CAAC,GAAI,KAAK,QAAQ,WAAW,CAAA,GAAK,EAAE,MAAM,UAAA,CAAW,EAAA;AAAA,MACjF,KAAK;AAAA,MACL,KAAK;AAAA,IAAA;AAAA,EAEP;AACD;"}
1
+ {"version":3,"file":"EntityBuilder.js","sources":["../../../../../../packages/schema-definition/src/model/builder/EntityBuilder.ts"],"sourcesContent":["import FieldBuilder from './FieldBuilder.js'\nimport ColumnBuilder from './ColumnBuilder.js'\nimport OneHasOneBuilder from './OneHasOneBuilder.js'\nimport ManyHasManyBuilder from './ManyHasManyBuilder.js'\nimport OneHasManyBuilder from './OneHasManyBuilder.js'\nimport ManyHasOneBuilder from './ManyHasOneBuilder.js'\nimport { Model } from '@contember/schema'\nimport { AddEntityCallback } from './types.js'\n\nclass EntityBuilder {\n\tconstructor(\n\t\tprivate readonly options: Partial<EntityBuilder.EntityOptions>,\n\t\tprivate readonly fields: FieldBuilder.Map = {},\n\t\tprivate readonly addEntity: AddEntityCallback,\n\t) {}\n\n\ttableName(tableName: string): EntityBuilder {\n\t\treturn new EntityBuilder({ ...this.options, tableName }, this.fields, this.addEntity)\n\t}\n\n\tunique(fields: string[]): EntityBuilder {\n\t\treturn new EntityBuilder(\n\t\t\t{ ...this.options, unique: [...(this.options.unique || []), { fields: fields }] },\n\t\t\tthis.fields,\n\t\t\tthis.addEntity,\n\t\t)\n\t}\n\n\tcolumn(\n\t\tname: string,\n\t\tconfigurator?: EntityBuilder.FieldConfigurator<ColumnBuilder, ColumnBuilder.Options>,\n\t): EntityBuilder {\n\t\tconst options: ColumnBuilder.Options = configurator\n\t\t\t? configurator(new ColumnBuilder({})).getOption()\n\t\t\t: { type: Model.ColumnType.String }\n\n\t\tconst fields: FieldBuilder.Map = { ...this.fields, [name]: { type: FieldBuilder.Type.Column, options: options } }\n\n\t\treturn new EntityBuilder(this.options, fields, this.addEntity)\n\t}\n\n\toneHasOne(\n\t\tname: string,\n\t\tconfigurator: EntityBuilder.FieldConfigurator<OneHasOneBuilder, OneHasOneBuilder.Options>,\n\t): EntityBuilder {\n\t\tconst options = configurator(new OneHasOneBuilder({}, this.addEntity)).getOption()\n\n\t\treturn new EntityBuilder(\n\t\t\tthis.options,\n\t\t\t{ ...this.fields, [name]: { type: FieldBuilder.Type.OneHasOne, options } },\n\t\t\tthis.addEntity,\n\t\t)\n\t}\n\n\tmanyHasMany(\n\t\tname: string,\n\t\tconfigurator: EntityBuilder.FieldConfigurator<ManyHasManyBuilder, ManyHasManyBuilder.Options>,\n\t): EntityBuilder {\n\t\tconst options = configurator(new ManyHasManyBuilder({}, this.addEntity)).getOption()\n\t\tconst fields: FieldBuilder.Map = { ...this.fields, [name]: { type: FieldBuilder.Type.ManyHasMany, options } }\n\n\t\treturn new EntityBuilder(this.options, fields, this.addEntity)\n\t}\n\n\toneHasMany(\n\t\tname: string,\n\t\tconfigurator: EntityBuilder.FieldConfigurator<OneHasManyBuilder, OneHasManyBuilder.Options>,\n\t): EntityBuilder {\n\t\tconst options = configurator(new OneHasManyBuilder({}, this.addEntity)).getOption()\n\t\tconst fields: FieldBuilder.Map = { ...this.fields, [name]: { type: FieldBuilder.Type.OneHasMany, options } }\n\n\t\treturn new EntityBuilder(this.options, fields, this.addEntity)\n\t}\n\n\tmanyHasOne(\n\t\tname: string,\n\t\tconfigurator: EntityBuilder.FieldConfigurator<ManyHasOneBuilder, ManyHasOneBuilder.Options>,\n\t): EntityBuilder {\n\t\tconst options = configurator(new ManyHasOneBuilder({}, this.addEntity)).getOption()\n\t\tconst fields: FieldBuilder.Map = { ...this.fields, [name]: { type: FieldBuilder.Type.ManyHasOne, options } }\n\n\t\treturn new EntityBuilder(this.options, fields, this.addEntity)\n\t}\n\n\tgetOptions(): EntityBuilder.EntityOptions {\n\t\treturn this.options\n\t}\n\n\tgetFields(): FieldBuilder.Map {\n\t\treturn this.fields\n\t}\n\n\torderBy(field: string | string[], direction: Model.OrderDirection = Model.OrderDirection.asc): EntityBuilder {\n\t\tconst path = typeof field === 'string' ? [field] : field\n\n\t\treturn new EntityBuilder(\n\t\t\t{ ...this.options, orderBy: [...(this.options.orderBy ?? []), { path, direction }] },\n\t\t\tthis.fields,\n\t\t\tthis.addEntity,\n\t\t)\n\t}\n}\n\nnamespace EntityBuilder {\n\texport type FieldConfigurator<B, O> = (builder: B) => FieldBuilder<O>\n\n\texport type UniqueOptions = {\n\t\tfields: string[]\n\t\tname?: string\n\t}\n\n\texport type EntityOptions = {\n\t\tprimary?: string\n\t\ttableName?: string\n\t\torderBy?: Model.OrderBy[]\n\t\tunique?: UniqueOptions[]\n\t}\n}\n\nexport default EntityBuilder\n"],"names":[],"mappings":";;;;;;;AASA,MAAM,cAAc;AAAA,EACnB,YACkB,SACA,SAA2B,CAAA,GAC3B,WAChB;AAHgB,SAAA,UAAA;AACA,SAAA,SAAA;AACA,SAAA,YAAA;AAAA,EACf;AAAA,EAEH,UAAU,WAAkC;AAC3C,WAAO,IAAI,cAAc,EAAE,GAAG,KAAK,SAAS,UAAA,GAAa,KAAK,QAAQ,KAAK,SAAS;AAAA,EACrF;AAAA,EAEA,OAAO,QAAiC;AACvC,WAAO,IAAI;AAAA,MACV,EAAE,GAAG,KAAK,SAAS,QAAQ,CAAC,GAAI,KAAK,QAAQ,UAAU,CAAA,GAAK,EAAE,OAAA,CAAgB,EAAA;AAAA,MAC9E,KAAK;AAAA,MACL,KAAK;AAAA,IAAA;AAAA,EAEP;AAAA,EAEA,OACC,MACA,cACgB;AAChB,UAAM,UAAiC,eACpC,aAAa,IAAI,cAAc,CAAA,CAAE,CAAC,EAAE,cACpC,EAAE,MAAM,MAAM,WAAW,OAAA;AAE5B,UAAM,SAA2B,EAAE,GAAG,KAAK,QAAQ,CAAC,IAAI,GAAG,EAAE,MAAM,aAAa,KAAK,QAAQ,UAAiB;AAE9G,WAAO,IAAI,cAAc,KAAK,SAAS,QAAQ,KAAK,SAAS;AAAA,EAC9D;AAAA,EAEA,UACC,MACA,cACgB;AAChB,UAAM,UAAU,aAAa,IAAI,iBAAiB,CAAA,GAAI,KAAK,SAAS,CAAC,EAAE,UAAA;AAEvE,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,EAAE,GAAG,KAAK,QAAQ,CAAC,IAAI,GAAG,EAAE,MAAM,aAAa,KAAK,WAAW,UAAQ;AAAA,MACvE,KAAK;AAAA,IAAA;AAAA,EAEP;AAAA,EAEA,YACC,MACA,cACgB;AAChB,UAAM,UAAU,aAAa,IAAI,mBAAmB,CAAA,GAAI,KAAK,SAAS,CAAC,EAAE,UAAA;AACzE,UAAM,SAA2B,EAAE,GAAG,KAAK,QAAQ,CAAC,IAAI,GAAG,EAAE,MAAM,aAAa,KAAK,aAAa,UAAQ;AAE1G,WAAO,IAAI,cAAc,KAAK,SAAS,QAAQ,KAAK,SAAS;AAAA,EAC9D;AAAA,EAEA,WACC,MACA,cACgB;AAChB,UAAM,UAAU,aAAa,IAAI,kBAAkB,CAAA,GAAI,KAAK,SAAS,CAAC,EAAE,UAAA;AACxE,UAAM,SAA2B,EAAE,GAAG,KAAK,QAAQ,CAAC,IAAI,GAAG,EAAE,MAAM,aAAa,KAAK,YAAY,UAAQ;AAEzG,WAAO,IAAI,cAAc,KAAK,SAAS,QAAQ,KAAK,SAAS;AAAA,EAC9D;AAAA,EAEA,WACC,MACA,cACgB;AAChB,UAAM,UAAU,aAAa,IAAI,kBAAkB,CAAA,GAAI,KAAK,SAAS,CAAC,EAAE,UAAA;AACxE,UAAM,SAA2B,EAAE,GAAG,KAAK,QAAQ,CAAC,IAAI,GAAG,EAAE,MAAM,aAAa,KAAK,YAAY,UAAQ;AAEzG,WAAO,IAAI,cAAc,KAAK,SAAS,QAAQ,KAAK,SAAS;AAAA,EAC9D;AAAA,EAEA,aAA0C;AACzC,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,YAA8B;AAC7B,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,QAAQ,OAA0B,YAAkC,MAAM,eAAe,KAAoB;AAC5G,UAAM,OAAO,OAAO,UAAU,WAAW,CAAC,KAAK,IAAI;AAEnD,WAAO,IAAI;AAAA,MACV,EAAE,GAAG,KAAK,SAAS,SAAS,CAAC,GAAI,KAAK,QAAQ,WAAW,CAAA,GAAK,EAAE,MAAM,UAAA,CAAW,EAAA;AAAA,MACjF,KAAK;AAAA,MACL,KAAK;AAAA,IAAA;AAAA,EAEP;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"FieldBuilder.cjs","sources":["../../../../../../packages/schema-definition/src/model/builder/FieldBuilder.ts"],"sourcesContent":["import OneHasOneBuilder from './OneHasOneBuilder'\nimport ManyHasOneBuilder from './ManyHasOneBuilder'\nimport ManyHasManyBuilder from './ManyHasManyBuilder'\nimport OneHasManyBuilder from './OneHasManyBuilder'\nimport ColumnBuilder from './ColumnBuilder'\n\ninterface FieldBuilder<O> {\n\tgetOption(): O\n}\n\nnamespace FieldBuilder {\n\texport enum Type {\n\t\tColumn = 'column',\n\t\tManyHasMany = 'manyHasMany',\n\t\tOneHasOne = 'oneHasOne',\n\t\tOneHasMany = 'oneHasMany',\n\t\tManyHasOne = 'manyHasOne',\n\t}\n\n\texport type Options =\n\t\t| { type: Type.Column; options: ColumnBuilder.Options }\n\t\t| { type: Type.OneHasOne; options: OneHasOneBuilder.Options }\n\t\t| { type: Type.ManyHasMany; options: ManyHasManyBuilder.Options }\n\t\t| { type: Type.OneHasMany; options: OneHasManyBuilder.Options }\n\t\t| { type: Type.ManyHasOne; options: ManyHasOneBuilder.Options }\n\n\texport type Map = { [name: string]: Options }\n}\n\nexport default FieldBuilder\n"],"names":["FieldBuilder","Type"],"mappings":";AAUA,IAAUA;AAAAA,CAAV,CAAUA,kBAAV;AACQ,GAAA,CAAKC,UAAL;AACNA,UAAA,QAAA,IAAS;AACTA,UAAA,aAAA,IAAc;AACdA,UAAA,WAAA,IAAY;AACZA,UAAA,YAAA,IAAa;AACbA,UAAA,YAAA,IAAa;AAAA,EAAA,GALFD,cAAA,SAAAA,cAAA,OAAA,CAAA,EAAA;AAAA,GADHA,mBAAAA,iBAAA,CAAA,EAAA;AAmBV,MAAA,eAAeA;;"}
1
+ {"version":3,"file":"FieldBuilder.cjs","sources":["../../../../../../packages/schema-definition/src/model/builder/FieldBuilder.ts"],"sourcesContent":["import OneHasOneBuilder from './OneHasOneBuilder.js'\nimport ManyHasOneBuilder from './ManyHasOneBuilder.js'\nimport ManyHasManyBuilder from './ManyHasManyBuilder.js'\nimport OneHasManyBuilder from './OneHasManyBuilder.js'\nimport ColumnBuilder from './ColumnBuilder.js'\n\ninterface FieldBuilder<O> {\n\tgetOption(): O\n}\n\nnamespace FieldBuilder {\n\texport enum Type {\n\t\tColumn = 'column',\n\t\tManyHasMany = 'manyHasMany',\n\t\tOneHasOne = 'oneHasOne',\n\t\tOneHasMany = 'oneHasMany',\n\t\tManyHasOne = 'manyHasOne',\n\t}\n\n\texport type Options =\n\t\t| { type: Type.Column; options: ColumnBuilder.Options }\n\t\t| { type: Type.OneHasOne; options: OneHasOneBuilder.Options }\n\t\t| { type: Type.ManyHasMany; options: ManyHasManyBuilder.Options }\n\t\t| { type: Type.OneHasMany; options: OneHasManyBuilder.Options }\n\t\t| { type: Type.ManyHasOne; options: ManyHasOneBuilder.Options }\n\n\texport type Map = { [name: string]: Options }\n}\n\nexport default FieldBuilder\n"],"names":["FieldBuilder","Type"],"mappings":";AAUA,IAAUA;AAAAA,CAAV,CAAUA,kBAAV;AACQ,GAAA,CAAKC,UAAL;AACNA,UAAA,QAAA,IAAS;AACTA,UAAA,aAAA,IAAc;AACdA,UAAA,WAAA,IAAY;AACZA,UAAA,YAAA,IAAa;AACbA,UAAA,YAAA,IAAa;AAAA,EAAA,GALFD,cAAA,SAAAA,cAAA,OAAA,CAAA,EAAA;AAAA,GADHA,mBAAAA,iBAAA,CAAA,EAAA;AAmBV,MAAA,eAAeA;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"FieldBuilder.js","sources":["../../../../../../packages/schema-definition/src/model/builder/FieldBuilder.ts"],"sourcesContent":["import OneHasOneBuilder from './OneHasOneBuilder'\nimport ManyHasOneBuilder from './ManyHasOneBuilder'\nimport ManyHasManyBuilder from './ManyHasManyBuilder'\nimport OneHasManyBuilder from './OneHasManyBuilder'\nimport ColumnBuilder from './ColumnBuilder'\n\ninterface FieldBuilder<O> {\n\tgetOption(): O\n}\n\nnamespace FieldBuilder {\n\texport enum Type {\n\t\tColumn = 'column',\n\t\tManyHasMany = 'manyHasMany',\n\t\tOneHasOne = 'oneHasOne',\n\t\tOneHasMany = 'oneHasMany',\n\t\tManyHasOne = 'manyHasOne',\n\t}\n\n\texport type Options =\n\t\t| { type: Type.Column; options: ColumnBuilder.Options }\n\t\t| { type: Type.OneHasOne; options: OneHasOneBuilder.Options }\n\t\t| { type: Type.ManyHasMany; options: ManyHasManyBuilder.Options }\n\t\t| { type: Type.OneHasMany; options: OneHasManyBuilder.Options }\n\t\t| { type: Type.ManyHasOne; options: ManyHasOneBuilder.Options }\n\n\texport type Map = { [name: string]: Options }\n}\n\nexport default FieldBuilder\n"],"names":["FieldBuilder","Type"],"mappings":"AAUA,IAAU;AAAA,CAAV,CAAUA,kBAAV;AACQ,GAAA,CAAKC,UAAL;AACNA,UAAA,QAAA,IAAS;AACTA,UAAA,aAAA,IAAc;AACdA,UAAA,WAAA,IAAY;AACZA,UAAA,YAAA,IAAa;AACbA,UAAA,YAAA,IAAa;AAAA,EAAA,GALFD,cAAA,SAAAA,cAAA,OAAA,CAAA,EAAA;AAAA,GADH,iBAAA,eAAA,CAAA,EAAA;AAmBV,MAAA,iBAAe;"}
1
+ {"version":3,"file":"FieldBuilder.js","sources":["../../../../../../packages/schema-definition/src/model/builder/FieldBuilder.ts"],"sourcesContent":["import OneHasOneBuilder from './OneHasOneBuilder.js'\nimport ManyHasOneBuilder from './ManyHasOneBuilder.js'\nimport ManyHasManyBuilder from './ManyHasManyBuilder.js'\nimport OneHasManyBuilder from './OneHasManyBuilder.js'\nimport ColumnBuilder from './ColumnBuilder.js'\n\ninterface FieldBuilder<O> {\n\tgetOption(): O\n}\n\nnamespace FieldBuilder {\n\texport enum Type {\n\t\tColumn = 'column',\n\t\tManyHasMany = 'manyHasMany',\n\t\tOneHasOne = 'oneHasOne',\n\t\tOneHasMany = 'oneHasMany',\n\t\tManyHasOne = 'manyHasOne',\n\t}\n\n\texport type Options =\n\t\t| { type: Type.Column; options: ColumnBuilder.Options }\n\t\t| { type: Type.OneHasOne; options: OneHasOneBuilder.Options }\n\t\t| { type: Type.ManyHasMany; options: ManyHasManyBuilder.Options }\n\t\t| { type: Type.OneHasMany; options: OneHasManyBuilder.Options }\n\t\t| { type: Type.ManyHasOne; options: ManyHasOneBuilder.Options }\n\n\texport type Map = { [name: string]: Options }\n}\n\nexport default FieldBuilder\n"],"names":["FieldBuilder","Type"],"mappings":"AAUA,IAAU;AAAA,CAAV,CAAUA,kBAAV;AACQ,GAAA,CAAKC,UAAL;AACNA,UAAA,QAAA,IAAS;AACTA,UAAA,aAAA,IAAc;AACdA,UAAA,WAAA,IAAY;AACZA,UAAA,YAAA,IAAa;AACbA,UAAA,YAAA,IAAa;AAAA,EAAA,GALFD,cAAA,SAAAA,cAAA,OAAA,CAAA,EAAA;AAAA,GADH,iBAAA,eAAA,CAAA,EAAA;AAmBV,MAAA,iBAAe;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ManyHasManyBuilder.cjs","sources":["../../../../../../packages/schema-definition/src/model/builder/ManyHasManyBuilder.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport FieldBuilder from './FieldBuilder'\nimport { AddEntityCallback, EntityConfigurator } from './types'\n\ntype PartialOptions<K extends keyof ManyHasManyBuilder.Options> =\n\t& Partial<ManyHasManyBuilder.Options>\n\t& Pick<ManyHasManyBuilder.Options, K>\n\nclass ManyHasManyBuilder<O extends PartialOptions<never> = PartialOptions<never>> implements FieldBuilder<O> {\n\tconstructor(private readonly options: O, private readonly addEntity: AddEntityCallback) {}\n\n\ttarget(target: string, configurator?: EntityConfigurator): ManyHasManyBuilder<O & PartialOptions<'target'>> {\n\t\tif (configurator) {\n\t\t\tthis.addEntity(target, configurator)\n\t\t}\n\t\treturn this.withOption('target', target)\n\t}\n\n\tinversedBy(inversedBy: string): ManyHasManyBuilder<O> {\n\t\treturn this.withOption('inversedBy', inversedBy)\n\t}\n\n\tjoiningTable(joiningTable: Model.JoiningTable): ManyHasManyBuilder<O> {\n\t\treturn this.withOption('joiningTable', joiningTable)\n\t}\n\n\torderBy(field: string | string[], direction: Model.OrderDirection = Model.OrderDirection.asc): ManyHasManyBuilder<O> {\n\t\tconst path = typeof field === 'string' ? [field] : field\n\t\treturn this.withOption('orderBy', [...(this.options.orderBy || []), { path, direction }])\n\t}\n\n\tgetOption(): O {\n\t\treturn this.options\n\t}\n\n\tprivate withOption<K extends keyof ManyHasManyBuilder.Options>(key: K, value: ManyHasManyBuilder.Options[K]) {\n\t\treturn new ManyHasManyBuilder<O & PartialOptions<K>>(\n\t\t\t{ ...(this.options as object), [key]: value } as O & PartialOptions<K>,\n\t\t\tthis.addEntity,\n\t\t)\n\t}\n}\n\nnamespace ManyHasManyBuilder {\n\texport type Options = {\n\t\ttarget: string\n\t\tinversedBy?: string\n\t\tjoiningTable?: Model.JoiningTable\n\t\torderBy?: Model.OrderBy[]\n\t}\n}\n\nexport default ManyHasManyBuilder\n"],"names":["Model"],"mappings":";;AAQA,MAAM,mBAAuG;AAAA,EAC5G,YAA6B,SAA6B,WAA8B;AAA3D,SAAA,UAAA;AAA6B,SAAA,YAAA;AAAA,EAA+B;AAAA,EAEzF,OAAO,QAAgB,cAAqF;AAC3G,QAAI,cAAc;AACjB,WAAK,UAAU,QAAQ,YAAY;AAAA,IACpC;AACA,WAAO,KAAK,WAAW,UAAU,MAAM;AAAA,EACxC;AAAA,EAEA,WAAW,YAA2C;AACrD,WAAO,KAAK,WAAW,cAAc,UAAU;AAAA,EAChD;AAAA,EAEA,aAAa,cAAyD;AACrE,WAAO,KAAK,WAAW,gBAAgB,YAAY;AAAA,EACpD;AAAA,EAEA,QAAQ,OAA0B,YAAkCA,OAAAA,MAAM,eAAe,KAA4B;AACpH,UAAM,OAAO,OAAO,UAAU,WAAW,CAAC,KAAK,IAAI;AACnD,WAAO,KAAK,WAAW,WAAW,CAAC,GAAI,KAAK,QAAQ,WAAW,CAAA,GAAK,EAAE,MAAM,UAAA,CAAW,CAAC;AAAA,EACzF;AAAA,EAEA,YAAe;AACd,WAAO,KAAK;AAAA,EACb;AAAA,EAEQ,WAAuD,KAAQ,OAAsC;AAC5G,WAAO,IAAI;AAAA,MACV,EAAE,GAAI,KAAK,SAAoB,CAAC,GAAG,GAAG,MAAA;AAAA,MACtC,KAAK;AAAA,IAAA;AAAA,EAEP;AACD;;"}
1
+ {"version":3,"file":"ManyHasManyBuilder.cjs","sources":["../../../../../../packages/schema-definition/src/model/builder/ManyHasManyBuilder.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport FieldBuilder from './FieldBuilder.js'\nimport { AddEntityCallback, EntityConfigurator } from './types.js'\n\ntype PartialOptions<K extends keyof ManyHasManyBuilder.Options> =\n\t& Partial<ManyHasManyBuilder.Options>\n\t& Pick<ManyHasManyBuilder.Options, K>\n\nclass ManyHasManyBuilder<O extends PartialOptions<never> = PartialOptions<never>> implements FieldBuilder<O> {\n\tconstructor(private readonly options: O, private readonly addEntity: AddEntityCallback) {}\n\n\ttarget(target: string, configurator?: EntityConfigurator): ManyHasManyBuilder<O & PartialOptions<'target'>> {\n\t\tif (configurator) {\n\t\t\tthis.addEntity(target, configurator)\n\t\t}\n\t\treturn this.withOption('target', target)\n\t}\n\n\tinversedBy(inversedBy: string): ManyHasManyBuilder<O> {\n\t\treturn this.withOption('inversedBy', inversedBy)\n\t}\n\n\tjoiningTable(joiningTable: Model.JoiningTable): ManyHasManyBuilder<O> {\n\t\treturn this.withOption('joiningTable', joiningTable)\n\t}\n\n\torderBy(field: string | string[], direction: Model.OrderDirection = Model.OrderDirection.asc): ManyHasManyBuilder<O> {\n\t\tconst path = typeof field === 'string' ? [field] : field\n\t\treturn this.withOption('orderBy', [...(this.options.orderBy || []), { path, direction }])\n\t}\n\n\tgetOption(): O {\n\t\treturn this.options\n\t}\n\n\tprivate withOption<K extends keyof ManyHasManyBuilder.Options>(key: K, value: ManyHasManyBuilder.Options[K]) {\n\t\treturn new ManyHasManyBuilder<O & PartialOptions<K>>(\n\t\t\t{ ...(this.options as object), [key]: value } as O & PartialOptions<K>,\n\t\t\tthis.addEntity,\n\t\t)\n\t}\n}\n\nnamespace ManyHasManyBuilder {\n\texport type Options = {\n\t\ttarget: string\n\t\tinversedBy?: string\n\t\tjoiningTable?: Model.JoiningTable\n\t\torderBy?: Model.OrderBy[]\n\t}\n}\n\nexport default ManyHasManyBuilder\n"],"names":["Model"],"mappings":";;AAQA,MAAM,mBAAuG;AAAA,EAC5G,YAA6B,SAA6B,WAA8B;AAA3D,SAAA,UAAA;AAA6B,SAAA,YAAA;AAAA,EAA+B;AAAA,EAEzF,OAAO,QAAgB,cAAqF;AAC3G,QAAI,cAAc;AACjB,WAAK,UAAU,QAAQ,YAAY;AAAA,IACpC;AACA,WAAO,KAAK,WAAW,UAAU,MAAM;AAAA,EACxC;AAAA,EAEA,WAAW,YAA2C;AACrD,WAAO,KAAK,WAAW,cAAc,UAAU;AAAA,EAChD;AAAA,EAEA,aAAa,cAAyD;AACrE,WAAO,KAAK,WAAW,gBAAgB,YAAY;AAAA,EACpD;AAAA,EAEA,QAAQ,OAA0B,YAAkCA,OAAAA,MAAM,eAAe,KAA4B;AACpH,UAAM,OAAO,OAAO,UAAU,WAAW,CAAC,KAAK,IAAI;AACnD,WAAO,KAAK,WAAW,WAAW,CAAC,GAAI,KAAK,QAAQ,WAAW,CAAA,GAAK,EAAE,MAAM,UAAA,CAAW,CAAC;AAAA,EACzF;AAAA,EAEA,YAAe;AACd,WAAO,KAAK;AAAA,EACb;AAAA,EAEQ,WAAuD,KAAQ,OAAsC;AAC5G,WAAO,IAAI;AAAA,MACV,EAAE,GAAI,KAAK,SAAoB,CAAC,GAAG,GAAG,MAAA;AAAA,MACtC,KAAK;AAAA,IAAA;AAAA,EAEP;AACD;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ManyHasManyBuilder.js","sources":["../../../../../../packages/schema-definition/src/model/builder/ManyHasManyBuilder.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport FieldBuilder from './FieldBuilder'\nimport { AddEntityCallback, EntityConfigurator } from './types'\n\ntype PartialOptions<K extends keyof ManyHasManyBuilder.Options> =\n\t& Partial<ManyHasManyBuilder.Options>\n\t& Pick<ManyHasManyBuilder.Options, K>\n\nclass ManyHasManyBuilder<O extends PartialOptions<never> = PartialOptions<never>> implements FieldBuilder<O> {\n\tconstructor(private readonly options: O, private readonly addEntity: AddEntityCallback) {}\n\n\ttarget(target: string, configurator?: EntityConfigurator): ManyHasManyBuilder<O & PartialOptions<'target'>> {\n\t\tif (configurator) {\n\t\t\tthis.addEntity(target, configurator)\n\t\t}\n\t\treturn this.withOption('target', target)\n\t}\n\n\tinversedBy(inversedBy: string): ManyHasManyBuilder<O> {\n\t\treturn this.withOption('inversedBy', inversedBy)\n\t}\n\n\tjoiningTable(joiningTable: Model.JoiningTable): ManyHasManyBuilder<O> {\n\t\treturn this.withOption('joiningTable', joiningTable)\n\t}\n\n\torderBy(field: string | string[], direction: Model.OrderDirection = Model.OrderDirection.asc): ManyHasManyBuilder<O> {\n\t\tconst path = typeof field === 'string' ? [field] : field\n\t\treturn this.withOption('orderBy', [...(this.options.orderBy || []), { path, direction }])\n\t}\n\n\tgetOption(): O {\n\t\treturn this.options\n\t}\n\n\tprivate withOption<K extends keyof ManyHasManyBuilder.Options>(key: K, value: ManyHasManyBuilder.Options[K]) {\n\t\treturn new ManyHasManyBuilder<O & PartialOptions<K>>(\n\t\t\t{ ...(this.options as object), [key]: value } as O & PartialOptions<K>,\n\t\t\tthis.addEntity,\n\t\t)\n\t}\n}\n\nnamespace ManyHasManyBuilder {\n\texport type Options = {\n\t\ttarget: string\n\t\tinversedBy?: string\n\t\tjoiningTable?: Model.JoiningTable\n\t\torderBy?: Model.OrderBy[]\n\t}\n}\n\nexport default ManyHasManyBuilder\n"],"names":[],"mappings":";AAQA,MAAM,mBAAuG;AAAA,EAC5G,YAA6B,SAA6B,WAA8B;AAA3D,SAAA,UAAA;AAA6B,SAAA,YAAA;AAAA,EAA+B;AAAA,EAEzF,OAAO,QAAgB,cAAqF;AAC3G,QAAI,cAAc;AACjB,WAAK,UAAU,QAAQ,YAAY;AAAA,IACpC;AACA,WAAO,KAAK,WAAW,UAAU,MAAM;AAAA,EACxC;AAAA,EAEA,WAAW,YAA2C;AACrD,WAAO,KAAK,WAAW,cAAc,UAAU;AAAA,EAChD;AAAA,EAEA,aAAa,cAAyD;AACrE,WAAO,KAAK,WAAW,gBAAgB,YAAY;AAAA,EACpD;AAAA,EAEA,QAAQ,OAA0B,YAAkC,MAAM,eAAe,KAA4B;AACpH,UAAM,OAAO,OAAO,UAAU,WAAW,CAAC,KAAK,IAAI;AACnD,WAAO,KAAK,WAAW,WAAW,CAAC,GAAI,KAAK,QAAQ,WAAW,CAAA,GAAK,EAAE,MAAM,UAAA,CAAW,CAAC;AAAA,EACzF;AAAA,EAEA,YAAe;AACd,WAAO,KAAK;AAAA,EACb;AAAA,EAEQ,WAAuD,KAAQ,OAAsC;AAC5G,WAAO,IAAI;AAAA,MACV,EAAE,GAAI,KAAK,SAAoB,CAAC,GAAG,GAAG,MAAA;AAAA,MACtC,KAAK;AAAA,IAAA;AAAA,EAEP;AACD;"}
1
+ {"version":3,"file":"ManyHasManyBuilder.js","sources":["../../../../../../packages/schema-definition/src/model/builder/ManyHasManyBuilder.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport FieldBuilder from './FieldBuilder.js'\nimport { AddEntityCallback, EntityConfigurator } from './types.js'\n\ntype PartialOptions<K extends keyof ManyHasManyBuilder.Options> =\n\t& Partial<ManyHasManyBuilder.Options>\n\t& Pick<ManyHasManyBuilder.Options, K>\n\nclass ManyHasManyBuilder<O extends PartialOptions<never> = PartialOptions<never>> implements FieldBuilder<O> {\n\tconstructor(private readonly options: O, private readonly addEntity: AddEntityCallback) {}\n\n\ttarget(target: string, configurator?: EntityConfigurator): ManyHasManyBuilder<O & PartialOptions<'target'>> {\n\t\tif (configurator) {\n\t\t\tthis.addEntity(target, configurator)\n\t\t}\n\t\treturn this.withOption('target', target)\n\t}\n\n\tinversedBy(inversedBy: string): ManyHasManyBuilder<O> {\n\t\treturn this.withOption('inversedBy', inversedBy)\n\t}\n\n\tjoiningTable(joiningTable: Model.JoiningTable): ManyHasManyBuilder<O> {\n\t\treturn this.withOption('joiningTable', joiningTable)\n\t}\n\n\torderBy(field: string | string[], direction: Model.OrderDirection = Model.OrderDirection.asc): ManyHasManyBuilder<O> {\n\t\tconst path = typeof field === 'string' ? [field] : field\n\t\treturn this.withOption('orderBy', [...(this.options.orderBy || []), { path, direction }])\n\t}\n\n\tgetOption(): O {\n\t\treturn this.options\n\t}\n\n\tprivate withOption<K extends keyof ManyHasManyBuilder.Options>(key: K, value: ManyHasManyBuilder.Options[K]) {\n\t\treturn new ManyHasManyBuilder<O & PartialOptions<K>>(\n\t\t\t{ ...(this.options as object), [key]: value } as O & PartialOptions<K>,\n\t\t\tthis.addEntity,\n\t\t)\n\t}\n}\n\nnamespace ManyHasManyBuilder {\n\texport type Options = {\n\t\ttarget: string\n\t\tinversedBy?: string\n\t\tjoiningTable?: Model.JoiningTable\n\t\torderBy?: Model.OrderBy[]\n\t}\n}\n\nexport default ManyHasManyBuilder\n"],"names":[],"mappings":";AAQA,MAAM,mBAAuG;AAAA,EAC5G,YAA6B,SAA6B,WAA8B;AAA3D,SAAA,UAAA;AAA6B,SAAA,YAAA;AAAA,EAA+B;AAAA,EAEzF,OAAO,QAAgB,cAAqF;AAC3G,QAAI,cAAc;AACjB,WAAK,UAAU,QAAQ,YAAY;AAAA,IACpC;AACA,WAAO,KAAK,WAAW,UAAU,MAAM;AAAA,EACxC;AAAA,EAEA,WAAW,YAA2C;AACrD,WAAO,KAAK,WAAW,cAAc,UAAU;AAAA,EAChD;AAAA,EAEA,aAAa,cAAyD;AACrE,WAAO,KAAK,WAAW,gBAAgB,YAAY;AAAA,EACpD;AAAA,EAEA,QAAQ,OAA0B,YAAkC,MAAM,eAAe,KAA4B;AACpH,UAAM,OAAO,OAAO,UAAU,WAAW,CAAC,KAAK,IAAI;AACnD,WAAO,KAAK,WAAW,WAAW,CAAC,GAAI,KAAK,QAAQ,WAAW,CAAA,GAAK,EAAE,MAAM,UAAA,CAAW,CAAC;AAAA,EACzF;AAAA,EAEA,YAAe;AACd,WAAO,KAAK;AAAA,EACb;AAAA,EAEQ,WAAuD,KAAQ,OAAsC;AAC5G,WAAO,IAAI;AAAA,MACV,EAAE,GAAI,KAAK,SAAoB,CAAC,GAAG,GAAG,MAAA;AAAA,MACtC,KAAK;AAAA,IAAA;AAAA,EAEP;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ManyHasOneBuilder.cjs","sources":["../../../../../../packages/schema-definition/src/model/builder/ManyHasOneBuilder.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport FieldBuilder from './FieldBuilder'\nimport { AddEntityCallback, EntityConfigurator } from './types'\n\ntype PartialOptions<K extends keyof ManyHasOneBuilder.Options> =\n\t& Partial<ManyHasOneBuilder.Options>\n\t& Pick<ManyHasOneBuilder.Options, K>\n\nclass ManyHasOneBuilder<O extends PartialOptions<never> = PartialOptions<never>> implements FieldBuilder<O> {\n\tconstructor(private readonly options: O, private readonly addEntity: AddEntityCallback) {}\n\n\ttarget(target: string, configurator?: EntityConfigurator): ManyHasOneBuilder<O & PartialOptions<'target'>> {\n\t\tif (configurator) {\n\t\t\tthis.addEntity(target, configurator)\n\t\t}\n\t\treturn this.withOption('target', target)\n\t}\n\n\tinversedBy(inversedBy: string): ManyHasOneBuilder<O> {\n\t\treturn this.withOption('inversedBy', inversedBy)\n\t}\n\n\tjoiningColumn(columnName: string): ManyHasOneBuilder<O> {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, columnName })\n\t}\n\n\tonDelete(onDelete: Model.OnDelete): ManyHasOneBuilder<O> {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete })\n\t}\n\n\tnotNull(): ManyHasOneBuilder<O> {\n\t\treturn this.withOption('nullable', false)\n\t}\n\n\tgetOption(): O {\n\t\treturn this.options\n\t}\n\n\tprivate withOption<K extends keyof ManyHasOneBuilder.Options>(key: K, value: ManyHasOneBuilder.Options[K]) {\n\t\treturn new ManyHasOneBuilder<O & PartialOptions<K>>(\n\t\t\t{ ...(this.options as object), [key]: value } as O & PartialOptions<K>,\n\t\t\tthis.addEntity,\n\t\t)\n\t}\n}\n\nnamespace ManyHasOneBuilder {\n\texport type Options = {\n\t\ttarget: string\n\t\tinversedBy?: string\n\t\tjoiningColumn?: Partial<Model.JoiningColumn>\n\t\tnullable?: boolean\n\t}\n}\n\nexport default ManyHasOneBuilder\n"],"names":[],"mappings":";AAQA,MAAM,kBAAsG;AAAA,EAC3G,YAA6B,SAA6B,WAA8B;AAA3D,SAAA,UAAA;AAA6B,SAAA,YAAA;AAAA,EAA+B;AAAA,EAEzF,OAAO,QAAgB,cAAoF;AAC1G,QAAI,cAAc;AACjB,WAAK,UAAU,QAAQ,YAAY;AAAA,IACpC;AACA,WAAO,KAAK,WAAW,UAAU,MAAM;AAAA,EACxC;AAAA,EAEA,WAAW,YAA0C;AACpD,WAAO,KAAK,WAAW,cAAc,UAAU;AAAA,EAChD;AAAA,EAEA,cAAc,YAA0C;AACvD,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,YAAY;AAAA,EACtF;AAAA,EAEA,SAAS,UAAgD;AACxD,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAU;AAAA,EACpF;AAAA,EAEA,UAAgC;AAC/B,WAAO,KAAK,WAAW,YAAY,KAAK;AAAA,EACzC;AAAA,EAEA,YAAe;AACd,WAAO,KAAK;AAAA,EACb;AAAA,EAEQ,WAAsD,KAAQ,OAAqC;AAC1G,WAAO,IAAI;AAAA,MACV,EAAE,GAAI,KAAK,SAAoB,CAAC,GAAG,GAAG,MAAA;AAAA,MACtC,KAAK;AAAA,IAAA;AAAA,EAEP;AACD;;"}
1
+ {"version":3,"file":"ManyHasOneBuilder.cjs","sources":["../../../../../../packages/schema-definition/src/model/builder/ManyHasOneBuilder.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport FieldBuilder from './FieldBuilder.js'\nimport { AddEntityCallback, EntityConfigurator } from './types.js'\n\ntype PartialOptions<K extends keyof ManyHasOneBuilder.Options> =\n\t& Partial<ManyHasOneBuilder.Options>\n\t& Pick<ManyHasOneBuilder.Options, K>\n\nclass ManyHasOneBuilder<O extends PartialOptions<never> = PartialOptions<never>> implements FieldBuilder<O> {\n\tconstructor(private readonly options: O, private readonly addEntity: AddEntityCallback) {}\n\n\ttarget(target: string, configurator?: EntityConfigurator): ManyHasOneBuilder<O & PartialOptions<'target'>> {\n\t\tif (configurator) {\n\t\t\tthis.addEntity(target, configurator)\n\t\t}\n\t\treturn this.withOption('target', target)\n\t}\n\n\tinversedBy(inversedBy: string): ManyHasOneBuilder<O> {\n\t\treturn this.withOption('inversedBy', inversedBy)\n\t}\n\n\tjoiningColumn(columnName: string): ManyHasOneBuilder<O> {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, columnName })\n\t}\n\n\tonDelete(onDelete: Model.OnDelete): ManyHasOneBuilder<O> {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete })\n\t}\n\n\tnotNull(): ManyHasOneBuilder<O> {\n\t\treturn this.withOption('nullable', false)\n\t}\n\n\tgetOption(): O {\n\t\treturn this.options\n\t}\n\n\tprivate withOption<K extends keyof ManyHasOneBuilder.Options>(key: K, value: ManyHasOneBuilder.Options[K]) {\n\t\treturn new ManyHasOneBuilder<O & PartialOptions<K>>(\n\t\t\t{ ...(this.options as object), [key]: value } as O & PartialOptions<K>,\n\t\t\tthis.addEntity,\n\t\t)\n\t}\n}\n\nnamespace ManyHasOneBuilder {\n\texport type Options = {\n\t\ttarget: string\n\t\tinversedBy?: string\n\t\tjoiningColumn?: Partial<Model.JoiningColumn>\n\t\tnullable?: boolean\n\t}\n}\n\nexport default ManyHasOneBuilder\n"],"names":[],"mappings":";AAQA,MAAM,kBAAsG;AAAA,EAC3G,YAA6B,SAA6B,WAA8B;AAA3D,SAAA,UAAA;AAA6B,SAAA,YAAA;AAAA,EAA+B;AAAA,EAEzF,OAAO,QAAgB,cAAoF;AAC1G,QAAI,cAAc;AACjB,WAAK,UAAU,QAAQ,YAAY;AAAA,IACpC;AACA,WAAO,KAAK,WAAW,UAAU,MAAM;AAAA,EACxC;AAAA,EAEA,WAAW,YAA0C;AACpD,WAAO,KAAK,WAAW,cAAc,UAAU;AAAA,EAChD;AAAA,EAEA,cAAc,YAA0C;AACvD,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,YAAY;AAAA,EACtF;AAAA,EAEA,SAAS,UAAgD;AACxD,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAU;AAAA,EACpF;AAAA,EAEA,UAAgC;AAC/B,WAAO,KAAK,WAAW,YAAY,KAAK;AAAA,EACzC;AAAA,EAEA,YAAe;AACd,WAAO,KAAK;AAAA,EACb;AAAA,EAEQ,WAAsD,KAAQ,OAAqC;AAC1G,WAAO,IAAI;AAAA,MACV,EAAE,GAAI,KAAK,SAAoB,CAAC,GAAG,GAAG,MAAA;AAAA,MACtC,KAAK;AAAA,IAAA;AAAA,EAEP;AACD;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ManyHasOneBuilder.js","sources":["../../../../../../packages/schema-definition/src/model/builder/ManyHasOneBuilder.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport FieldBuilder from './FieldBuilder'\nimport { AddEntityCallback, EntityConfigurator } from './types'\n\ntype PartialOptions<K extends keyof ManyHasOneBuilder.Options> =\n\t& Partial<ManyHasOneBuilder.Options>\n\t& Pick<ManyHasOneBuilder.Options, K>\n\nclass ManyHasOneBuilder<O extends PartialOptions<never> = PartialOptions<never>> implements FieldBuilder<O> {\n\tconstructor(private readonly options: O, private readonly addEntity: AddEntityCallback) {}\n\n\ttarget(target: string, configurator?: EntityConfigurator): ManyHasOneBuilder<O & PartialOptions<'target'>> {\n\t\tif (configurator) {\n\t\t\tthis.addEntity(target, configurator)\n\t\t}\n\t\treturn this.withOption('target', target)\n\t}\n\n\tinversedBy(inversedBy: string): ManyHasOneBuilder<O> {\n\t\treturn this.withOption('inversedBy', inversedBy)\n\t}\n\n\tjoiningColumn(columnName: string): ManyHasOneBuilder<O> {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, columnName })\n\t}\n\n\tonDelete(onDelete: Model.OnDelete): ManyHasOneBuilder<O> {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete })\n\t}\n\n\tnotNull(): ManyHasOneBuilder<O> {\n\t\treturn this.withOption('nullable', false)\n\t}\n\n\tgetOption(): O {\n\t\treturn this.options\n\t}\n\n\tprivate withOption<K extends keyof ManyHasOneBuilder.Options>(key: K, value: ManyHasOneBuilder.Options[K]) {\n\t\treturn new ManyHasOneBuilder<O & PartialOptions<K>>(\n\t\t\t{ ...(this.options as object), [key]: value } as O & PartialOptions<K>,\n\t\t\tthis.addEntity,\n\t\t)\n\t}\n}\n\nnamespace ManyHasOneBuilder {\n\texport type Options = {\n\t\ttarget: string\n\t\tinversedBy?: string\n\t\tjoiningColumn?: Partial<Model.JoiningColumn>\n\t\tnullable?: boolean\n\t}\n}\n\nexport default ManyHasOneBuilder\n"],"names":[],"mappings":"AAQA,MAAM,kBAAsG;AAAA,EAC3G,YAA6B,SAA6B,WAA8B;AAA3D,SAAA,UAAA;AAA6B,SAAA,YAAA;AAAA,EAA+B;AAAA,EAEzF,OAAO,QAAgB,cAAoF;AAC1G,QAAI,cAAc;AACjB,WAAK,UAAU,QAAQ,YAAY;AAAA,IACpC;AACA,WAAO,KAAK,WAAW,UAAU,MAAM;AAAA,EACxC;AAAA,EAEA,WAAW,YAA0C;AACpD,WAAO,KAAK,WAAW,cAAc,UAAU;AAAA,EAChD;AAAA,EAEA,cAAc,YAA0C;AACvD,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,YAAY;AAAA,EACtF;AAAA,EAEA,SAAS,UAAgD;AACxD,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAU;AAAA,EACpF;AAAA,EAEA,UAAgC;AAC/B,WAAO,KAAK,WAAW,YAAY,KAAK;AAAA,EACzC;AAAA,EAEA,YAAe;AACd,WAAO,KAAK;AAAA,EACb;AAAA,EAEQ,WAAsD,KAAQ,OAAqC;AAC1G,WAAO,IAAI;AAAA,MACV,EAAE,GAAI,KAAK,SAAoB,CAAC,GAAG,GAAG,MAAA;AAAA,MACtC,KAAK;AAAA,IAAA;AAAA,EAEP;AACD;"}
1
+ {"version":3,"file":"ManyHasOneBuilder.js","sources":["../../../../../../packages/schema-definition/src/model/builder/ManyHasOneBuilder.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport FieldBuilder from './FieldBuilder.js'\nimport { AddEntityCallback, EntityConfigurator } from './types.js'\n\ntype PartialOptions<K extends keyof ManyHasOneBuilder.Options> =\n\t& Partial<ManyHasOneBuilder.Options>\n\t& Pick<ManyHasOneBuilder.Options, K>\n\nclass ManyHasOneBuilder<O extends PartialOptions<never> = PartialOptions<never>> implements FieldBuilder<O> {\n\tconstructor(private readonly options: O, private readonly addEntity: AddEntityCallback) {}\n\n\ttarget(target: string, configurator?: EntityConfigurator): ManyHasOneBuilder<O & PartialOptions<'target'>> {\n\t\tif (configurator) {\n\t\t\tthis.addEntity(target, configurator)\n\t\t}\n\t\treturn this.withOption('target', target)\n\t}\n\n\tinversedBy(inversedBy: string): ManyHasOneBuilder<O> {\n\t\treturn this.withOption('inversedBy', inversedBy)\n\t}\n\n\tjoiningColumn(columnName: string): ManyHasOneBuilder<O> {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, columnName })\n\t}\n\n\tonDelete(onDelete: Model.OnDelete): ManyHasOneBuilder<O> {\n\t\treturn this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete })\n\t}\n\n\tnotNull(): ManyHasOneBuilder<O> {\n\t\treturn this.withOption('nullable', false)\n\t}\n\n\tgetOption(): O {\n\t\treturn this.options\n\t}\n\n\tprivate withOption<K extends keyof ManyHasOneBuilder.Options>(key: K, value: ManyHasOneBuilder.Options[K]) {\n\t\treturn new ManyHasOneBuilder<O & PartialOptions<K>>(\n\t\t\t{ ...(this.options as object), [key]: value } as O & PartialOptions<K>,\n\t\t\tthis.addEntity,\n\t\t)\n\t}\n}\n\nnamespace ManyHasOneBuilder {\n\texport type Options = {\n\t\ttarget: string\n\t\tinversedBy?: string\n\t\tjoiningColumn?: Partial<Model.JoiningColumn>\n\t\tnullable?: boolean\n\t}\n}\n\nexport default ManyHasOneBuilder\n"],"names":[],"mappings":"AAQA,MAAM,kBAAsG;AAAA,EAC3G,YAA6B,SAA6B,WAA8B;AAA3D,SAAA,UAAA;AAA6B,SAAA,YAAA;AAAA,EAA+B;AAAA,EAEzF,OAAO,QAAgB,cAAoF;AAC1G,QAAI,cAAc;AACjB,WAAK,UAAU,QAAQ,YAAY;AAAA,IACpC;AACA,WAAO,KAAK,WAAW,UAAU,MAAM;AAAA,EACxC;AAAA,EAEA,WAAW,YAA0C;AACpD,WAAO,KAAK,WAAW,cAAc,UAAU;AAAA,EAChD;AAAA,EAEA,cAAc,YAA0C;AACvD,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,YAAY;AAAA,EACtF;AAAA,EAEA,SAAS,UAAgD;AACxD,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,QAAQ,eAAe,UAAU;AAAA,EACpF;AAAA,EAEA,UAAgC;AAC/B,WAAO,KAAK,WAAW,YAAY,KAAK;AAAA,EACzC;AAAA,EAEA,YAAe;AACd,WAAO,KAAK;AAAA,EACb;AAAA,EAEQ,WAAsD,KAAQ,OAAqC;AAC1G,WAAO,IAAI;AAAA,MACV,EAAE,GAAI,KAAK,SAAoB,CAAC,GAAG,GAAG,MAAA;AAAA,MACtC,KAAK;AAAA,IAAA;AAAA,EAEP;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"OneHasManyBuilder.cjs","sources":["../../../../../../packages/schema-definition/src/model/builder/OneHasManyBuilder.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport FieldBuilder from './FieldBuilder'\nimport { AddEntityCallback, EntityConfigurator } from './types'\n\ntype PartialOptions<K extends keyof OneHasManyBuilder.Options> =\n\t& Partial<OneHasManyBuilder.Options>\n\t& Pick<OneHasManyBuilder.Options, K>\n\nclass OneHasManyBuilder<O extends PartialOptions<never> = PartialOptions<never>> implements FieldBuilder<O> {\n\tconstructor(private readonly options: O, private readonly addEntity: AddEntityCallback) {}\n\n\ttarget(target: string, configurator?: EntityConfigurator): OneHasManyBuilder<O & PartialOptions<'target'>> {\n\t\tif (configurator) {\n\t\t\tthis.addEntity(target, configurator)\n\t\t}\n\t\treturn this.withOption('target', target)\n\t}\n\n\townedBy(ownedBy: string): OneHasManyBuilder<O> {\n\t\treturn this.withOption('ownedBy', ownedBy)\n\t}\n\n\townerJoiningColumn(columnName: string): OneHasManyBuilder<O> {\n\t\treturn this.withOption('ownerJoiningColumn', { ...this.options.ownerJoiningColumn, columnName })\n\t}\n\n\tonDelete(onDelete: Model.OnDelete): OneHasManyBuilder<O> {\n\t\treturn this.withOption('ownerJoiningColumn', { ...this.options.ownerJoiningColumn, onDelete })\n\t}\n\n\townerNotNull(): OneHasManyBuilder<O> {\n\t\treturn this.withOption('ownerNullable', false)\n\t}\n\n\townerNullable(): OneHasManyBuilder<O> {\n\t\treturn this.withOption('ownerNullable', true)\n\t}\n\n\torderBy(field: string | string[], direction: Model.OrderDirection = Model.OrderDirection.asc): OneHasManyBuilder<O> {\n\t\tconst path = typeof field === 'string' ? [field] : field\n\t\treturn this.withOption('orderBy', [...(this.options.orderBy || []), { path, direction }])\n\t}\n\n\tgetOption(): O {\n\t\treturn this.options\n\t}\n\n\tprivate withOption<K extends keyof OneHasManyBuilder.Options>(key: K, value: OneHasManyBuilder.Options[K]) {\n\t\treturn new OneHasManyBuilder<O & PartialOptions<K>>(\n\t\t\t{ ...(this.options as object), [key]: value } as O & PartialOptions<K>,\n\t\t\tthis.addEntity,\n\t\t)\n\t}\n}\n\nnamespace OneHasManyBuilder {\n\texport type Options = {\n\t\ttarget: string\n\t\townedBy?: string\n\t\townerJoiningColumn?: Partial<Model.JoiningColumn>\n\t\townerNullable?: boolean\n\t\torderBy?: Model.OrderBy[]\n\t}\n}\n\nexport default OneHasManyBuilder\n"],"names":["Model"],"mappings":";;AAQA,MAAM,kBAAsG;AAAA,EAC3G,YAA6B,SAA6B,WAA8B;AAA3D,SAAA,UAAA;AAA6B,SAAA,YAAA;AAAA,EAA+B;AAAA,EAEzF,OAAO,QAAgB,cAAoF;AAC1G,QAAI,cAAc;AACjB,WAAK,UAAU,QAAQ,YAAY;AAAA,IACpC;AACA,WAAO,KAAK,WAAW,UAAU,MAAM;AAAA,EACxC;AAAA,EAEA,QAAQ,SAAuC;AAC9C,WAAO,KAAK,WAAW,WAAW,OAAO;AAAA,EAC1C;AAAA,EAEA,mBAAmB,YAA0C;AAC5D,WAAO,KAAK,WAAW,sBAAsB,EAAE,GAAG,KAAK,QAAQ,oBAAoB,YAAY;AAAA,EAChG;AAAA,EAEA,SAAS,UAAgD;AACxD,WAAO,KAAK,WAAW,sBAAsB,EAAE,GAAG,KAAK,QAAQ,oBAAoB,UAAU;AAAA,EAC9F;AAAA,EAEA,eAAqC;AACpC,WAAO,KAAK,WAAW,iBAAiB,KAAK;AAAA,EAC9C;AAAA,EAEA,gBAAsC;AACrC,WAAO,KAAK,WAAW,iBAAiB,IAAI;AAAA,EAC7C;AAAA,EAEA,QAAQ,OAA0B,YAAkCA,OAAAA,MAAM,eAAe,KAA2B;AACnH,UAAM,OAAO,OAAO,UAAU,WAAW,CAAC,KAAK,IAAI;AACnD,WAAO,KAAK,WAAW,WAAW,CAAC,GAAI,KAAK,QAAQ,WAAW,CAAA,GAAK,EAAE,MAAM,UAAA,CAAW,CAAC;AAAA,EACzF;AAAA,EAEA,YAAe;AACd,WAAO,KAAK;AAAA,EACb;AAAA,EAEQ,WAAsD,KAAQ,OAAqC;AAC1G,WAAO,IAAI;AAAA,MACV,EAAE,GAAI,KAAK,SAAoB,CAAC,GAAG,GAAG,MAAA;AAAA,MACtC,KAAK;AAAA,IAAA;AAAA,EAEP;AACD;;"}
1
+ {"version":3,"file":"OneHasManyBuilder.cjs","sources":["../../../../../../packages/schema-definition/src/model/builder/OneHasManyBuilder.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport FieldBuilder from './FieldBuilder.js'\nimport { AddEntityCallback, EntityConfigurator } from './types.js'\n\ntype PartialOptions<K extends keyof OneHasManyBuilder.Options> =\n\t& Partial<OneHasManyBuilder.Options>\n\t& Pick<OneHasManyBuilder.Options, K>\n\nclass OneHasManyBuilder<O extends PartialOptions<never> = PartialOptions<never>> implements FieldBuilder<O> {\n\tconstructor(private readonly options: O, private readonly addEntity: AddEntityCallback) {}\n\n\ttarget(target: string, configurator?: EntityConfigurator): OneHasManyBuilder<O & PartialOptions<'target'>> {\n\t\tif (configurator) {\n\t\t\tthis.addEntity(target, configurator)\n\t\t}\n\t\treturn this.withOption('target', target)\n\t}\n\n\townedBy(ownedBy: string): OneHasManyBuilder<O> {\n\t\treturn this.withOption('ownedBy', ownedBy)\n\t}\n\n\townerJoiningColumn(columnName: string): OneHasManyBuilder<O> {\n\t\treturn this.withOption('ownerJoiningColumn', { ...this.options.ownerJoiningColumn, columnName })\n\t}\n\n\tonDelete(onDelete: Model.OnDelete): OneHasManyBuilder<O> {\n\t\treturn this.withOption('ownerJoiningColumn', { ...this.options.ownerJoiningColumn, onDelete })\n\t}\n\n\townerNotNull(): OneHasManyBuilder<O> {\n\t\treturn this.withOption('ownerNullable', false)\n\t}\n\n\townerNullable(): OneHasManyBuilder<O> {\n\t\treturn this.withOption('ownerNullable', true)\n\t}\n\n\torderBy(field: string | string[], direction: Model.OrderDirection = Model.OrderDirection.asc): OneHasManyBuilder<O> {\n\t\tconst path = typeof field === 'string' ? [field] : field\n\t\treturn this.withOption('orderBy', [...(this.options.orderBy || []), { path, direction }])\n\t}\n\n\tgetOption(): O {\n\t\treturn this.options\n\t}\n\n\tprivate withOption<K extends keyof OneHasManyBuilder.Options>(key: K, value: OneHasManyBuilder.Options[K]) {\n\t\treturn new OneHasManyBuilder<O & PartialOptions<K>>(\n\t\t\t{ ...(this.options as object), [key]: value } as O & PartialOptions<K>,\n\t\t\tthis.addEntity,\n\t\t)\n\t}\n}\n\nnamespace OneHasManyBuilder {\n\texport type Options = {\n\t\ttarget: string\n\t\townedBy?: string\n\t\townerJoiningColumn?: Partial<Model.JoiningColumn>\n\t\townerNullable?: boolean\n\t\torderBy?: Model.OrderBy[]\n\t}\n}\n\nexport default OneHasManyBuilder\n"],"names":["Model"],"mappings":";;AAQA,MAAM,kBAAsG;AAAA,EAC3G,YAA6B,SAA6B,WAA8B;AAA3D,SAAA,UAAA;AAA6B,SAAA,YAAA;AAAA,EAA+B;AAAA,EAEzF,OAAO,QAAgB,cAAoF;AAC1G,QAAI,cAAc;AACjB,WAAK,UAAU,QAAQ,YAAY;AAAA,IACpC;AACA,WAAO,KAAK,WAAW,UAAU,MAAM;AAAA,EACxC;AAAA,EAEA,QAAQ,SAAuC;AAC9C,WAAO,KAAK,WAAW,WAAW,OAAO;AAAA,EAC1C;AAAA,EAEA,mBAAmB,YAA0C;AAC5D,WAAO,KAAK,WAAW,sBAAsB,EAAE,GAAG,KAAK,QAAQ,oBAAoB,YAAY;AAAA,EAChG;AAAA,EAEA,SAAS,UAAgD;AACxD,WAAO,KAAK,WAAW,sBAAsB,EAAE,GAAG,KAAK,QAAQ,oBAAoB,UAAU;AAAA,EAC9F;AAAA,EAEA,eAAqC;AACpC,WAAO,KAAK,WAAW,iBAAiB,KAAK;AAAA,EAC9C;AAAA,EAEA,gBAAsC;AACrC,WAAO,KAAK,WAAW,iBAAiB,IAAI;AAAA,EAC7C;AAAA,EAEA,QAAQ,OAA0B,YAAkCA,OAAAA,MAAM,eAAe,KAA2B;AACnH,UAAM,OAAO,OAAO,UAAU,WAAW,CAAC,KAAK,IAAI;AACnD,WAAO,KAAK,WAAW,WAAW,CAAC,GAAI,KAAK,QAAQ,WAAW,CAAA,GAAK,EAAE,MAAM,UAAA,CAAW,CAAC;AAAA,EACzF;AAAA,EAEA,YAAe;AACd,WAAO,KAAK;AAAA,EACb;AAAA,EAEQ,WAAsD,KAAQ,OAAqC;AAC1G,WAAO,IAAI;AAAA,MACV,EAAE,GAAI,KAAK,SAAoB,CAAC,GAAG,GAAG,MAAA;AAAA,MACtC,KAAK;AAAA,IAAA;AAAA,EAEP;AACD;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"OneHasManyBuilder.js","sources":["../../../../../../packages/schema-definition/src/model/builder/OneHasManyBuilder.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport FieldBuilder from './FieldBuilder'\nimport { AddEntityCallback, EntityConfigurator } from './types'\n\ntype PartialOptions<K extends keyof OneHasManyBuilder.Options> =\n\t& Partial<OneHasManyBuilder.Options>\n\t& Pick<OneHasManyBuilder.Options, K>\n\nclass OneHasManyBuilder<O extends PartialOptions<never> = PartialOptions<never>> implements FieldBuilder<O> {\n\tconstructor(private readonly options: O, private readonly addEntity: AddEntityCallback) {}\n\n\ttarget(target: string, configurator?: EntityConfigurator): OneHasManyBuilder<O & PartialOptions<'target'>> {\n\t\tif (configurator) {\n\t\t\tthis.addEntity(target, configurator)\n\t\t}\n\t\treturn this.withOption('target', target)\n\t}\n\n\townedBy(ownedBy: string): OneHasManyBuilder<O> {\n\t\treturn this.withOption('ownedBy', ownedBy)\n\t}\n\n\townerJoiningColumn(columnName: string): OneHasManyBuilder<O> {\n\t\treturn this.withOption('ownerJoiningColumn', { ...this.options.ownerJoiningColumn, columnName })\n\t}\n\n\tonDelete(onDelete: Model.OnDelete): OneHasManyBuilder<O> {\n\t\treturn this.withOption('ownerJoiningColumn', { ...this.options.ownerJoiningColumn, onDelete })\n\t}\n\n\townerNotNull(): OneHasManyBuilder<O> {\n\t\treturn this.withOption('ownerNullable', false)\n\t}\n\n\townerNullable(): OneHasManyBuilder<O> {\n\t\treturn this.withOption('ownerNullable', true)\n\t}\n\n\torderBy(field: string | string[], direction: Model.OrderDirection = Model.OrderDirection.asc): OneHasManyBuilder<O> {\n\t\tconst path = typeof field === 'string' ? [field] : field\n\t\treturn this.withOption('orderBy', [...(this.options.orderBy || []), { path, direction }])\n\t}\n\n\tgetOption(): O {\n\t\treturn this.options\n\t}\n\n\tprivate withOption<K extends keyof OneHasManyBuilder.Options>(key: K, value: OneHasManyBuilder.Options[K]) {\n\t\treturn new OneHasManyBuilder<O & PartialOptions<K>>(\n\t\t\t{ ...(this.options as object), [key]: value } as O & PartialOptions<K>,\n\t\t\tthis.addEntity,\n\t\t)\n\t}\n}\n\nnamespace OneHasManyBuilder {\n\texport type Options = {\n\t\ttarget: string\n\t\townedBy?: string\n\t\townerJoiningColumn?: Partial<Model.JoiningColumn>\n\t\townerNullable?: boolean\n\t\torderBy?: Model.OrderBy[]\n\t}\n}\n\nexport default OneHasManyBuilder\n"],"names":[],"mappings":";AAQA,MAAM,kBAAsG;AAAA,EAC3G,YAA6B,SAA6B,WAA8B;AAA3D,SAAA,UAAA;AAA6B,SAAA,YAAA;AAAA,EAA+B;AAAA,EAEzF,OAAO,QAAgB,cAAoF;AAC1G,QAAI,cAAc;AACjB,WAAK,UAAU,QAAQ,YAAY;AAAA,IACpC;AACA,WAAO,KAAK,WAAW,UAAU,MAAM;AAAA,EACxC;AAAA,EAEA,QAAQ,SAAuC;AAC9C,WAAO,KAAK,WAAW,WAAW,OAAO;AAAA,EAC1C;AAAA,EAEA,mBAAmB,YAA0C;AAC5D,WAAO,KAAK,WAAW,sBAAsB,EAAE,GAAG,KAAK,QAAQ,oBAAoB,YAAY;AAAA,EAChG;AAAA,EAEA,SAAS,UAAgD;AACxD,WAAO,KAAK,WAAW,sBAAsB,EAAE,GAAG,KAAK,QAAQ,oBAAoB,UAAU;AAAA,EAC9F;AAAA,EAEA,eAAqC;AACpC,WAAO,KAAK,WAAW,iBAAiB,KAAK;AAAA,EAC9C;AAAA,EAEA,gBAAsC;AACrC,WAAO,KAAK,WAAW,iBAAiB,IAAI;AAAA,EAC7C;AAAA,EAEA,QAAQ,OAA0B,YAAkC,MAAM,eAAe,KAA2B;AACnH,UAAM,OAAO,OAAO,UAAU,WAAW,CAAC,KAAK,IAAI;AACnD,WAAO,KAAK,WAAW,WAAW,CAAC,GAAI,KAAK,QAAQ,WAAW,CAAA,GAAK,EAAE,MAAM,UAAA,CAAW,CAAC;AAAA,EACzF;AAAA,EAEA,YAAe;AACd,WAAO,KAAK;AAAA,EACb;AAAA,EAEQ,WAAsD,KAAQ,OAAqC;AAC1G,WAAO,IAAI;AAAA,MACV,EAAE,GAAI,KAAK,SAAoB,CAAC,GAAG,GAAG,MAAA;AAAA,MACtC,KAAK;AAAA,IAAA;AAAA,EAEP;AACD;"}
1
+ {"version":3,"file":"OneHasManyBuilder.js","sources":["../../../../../../packages/schema-definition/src/model/builder/OneHasManyBuilder.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport FieldBuilder from './FieldBuilder.js'\nimport { AddEntityCallback, EntityConfigurator } from './types.js'\n\ntype PartialOptions<K extends keyof OneHasManyBuilder.Options> =\n\t& Partial<OneHasManyBuilder.Options>\n\t& Pick<OneHasManyBuilder.Options, K>\n\nclass OneHasManyBuilder<O extends PartialOptions<never> = PartialOptions<never>> implements FieldBuilder<O> {\n\tconstructor(private readonly options: O, private readonly addEntity: AddEntityCallback) {}\n\n\ttarget(target: string, configurator?: EntityConfigurator): OneHasManyBuilder<O & PartialOptions<'target'>> {\n\t\tif (configurator) {\n\t\t\tthis.addEntity(target, configurator)\n\t\t}\n\t\treturn this.withOption('target', target)\n\t}\n\n\townedBy(ownedBy: string): OneHasManyBuilder<O> {\n\t\treturn this.withOption('ownedBy', ownedBy)\n\t}\n\n\townerJoiningColumn(columnName: string): OneHasManyBuilder<O> {\n\t\treturn this.withOption('ownerJoiningColumn', { ...this.options.ownerJoiningColumn, columnName })\n\t}\n\n\tonDelete(onDelete: Model.OnDelete): OneHasManyBuilder<O> {\n\t\treturn this.withOption('ownerJoiningColumn', { ...this.options.ownerJoiningColumn, onDelete })\n\t}\n\n\townerNotNull(): OneHasManyBuilder<O> {\n\t\treturn this.withOption('ownerNullable', false)\n\t}\n\n\townerNullable(): OneHasManyBuilder<O> {\n\t\treturn this.withOption('ownerNullable', true)\n\t}\n\n\torderBy(field: string | string[], direction: Model.OrderDirection = Model.OrderDirection.asc): OneHasManyBuilder<O> {\n\t\tconst path = typeof field === 'string' ? [field] : field\n\t\treturn this.withOption('orderBy', [...(this.options.orderBy || []), { path, direction }])\n\t}\n\n\tgetOption(): O {\n\t\treturn this.options\n\t}\n\n\tprivate withOption<K extends keyof OneHasManyBuilder.Options>(key: K, value: OneHasManyBuilder.Options[K]) {\n\t\treturn new OneHasManyBuilder<O & PartialOptions<K>>(\n\t\t\t{ ...(this.options as object), [key]: value } as O & PartialOptions<K>,\n\t\t\tthis.addEntity,\n\t\t)\n\t}\n}\n\nnamespace OneHasManyBuilder {\n\texport type Options = {\n\t\ttarget: string\n\t\townedBy?: string\n\t\townerJoiningColumn?: Partial<Model.JoiningColumn>\n\t\townerNullable?: boolean\n\t\torderBy?: Model.OrderBy[]\n\t}\n}\n\nexport default OneHasManyBuilder\n"],"names":[],"mappings":";AAQA,MAAM,kBAAsG;AAAA,EAC3G,YAA6B,SAA6B,WAA8B;AAA3D,SAAA,UAAA;AAA6B,SAAA,YAAA;AAAA,EAA+B;AAAA,EAEzF,OAAO,QAAgB,cAAoF;AAC1G,QAAI,cAAc;AACjB,WAAK,UAAU,QAAQ,YAAY;AAAA,IACpC;AACA,WAAO,KAAK,WAAW,UAAU,MAAM;AAAA,EACxC;AAAA,EAEA,QAAQ,SAAuC;AAC9C,WAAO,KAAK,WAAW,WAAW,OAAO;AAAA,EAC1C;AAAA,EAEA,mBAAmB,YAA0C;AAC5D,WAAO,KAAK,WAAW,sBAAsB,EAAE,GAAG,KAAK,QAAQ,oBAAoB,YAAY;AAAA,EAChG;AAAA,EAEA,SAAS,UAAgD;AACxD,WAAO,KAAK,WAAW,sBAAsB,EAAE,GAAG,KAAK,QAAQ,oBAAoB,UAAU;AAAA,EAC9F;AAAA,EAEA,eAAqC;AACpC,WAAO,KAAK,WAAW,iBAAiB,KAAK;AAAA,EAC9C;AAAA,EAEA,gBAAsC;AACrC,WAAO,KAAK,WAAW,iBAAiB,IAAI;AAAA,EAC7C;AAAA,EAEA,QAAQ,OAA0B,YAAkC,MAAM,eAAe,KAA2B;AACnH,UAAM,OAAO,OAAO,UAAU,WAAW,CAAC,KAAK,IAAI;AACnD,WAAO,KAAK,WAAW,WAAW,CAAC,GAAI,KAAK,QAAQ,WAAW,CAAA,GAAK,EAAE,MAAM,UAAA,CAAW,CAAC;AAAA,EACzF;AAAA,EAEA,YAAe;AACd,WAAO,KAAK;AAAA,EACb;AAAA,EAEQ,WAAsD,KAAQ,OAAqC;AAC1G,WAAO,IAAI;AAAA,MACV,EAAE,GAAI,KAAK,SAAoB,CAAC,GAAG,GAAG,MAAA;AAAA,MACtC,KAAK;AAAA,IAAA;AAAA,EAEP;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"OneHasOneBuilder.cjs","sources":["../../../../../../packages/schema-definition/src/model/builder/OneHasOneBuilder.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport FieldBuilder from './FieldBuilder'\nimport { AddEntityCallback, EntityConfigurator } from './types'\n\ntype PartialOptions<K extends keyof OneHasOneBuilder.Options> =\n\t& Partial<OneHasOneBuilder.Options>\n\t& Pick<OneHasOneBuilder.Options, K>\n\nclass OneHasOneBuilder<O extends PartialOptions<never> = PartialOptions<never>> implements FieldBuilder<O> {\n\tconstructor(private readonly options: O, private readonly addEntity: AddEntityCallback) {}\n\n\ttarget(target: string, configurator?: EntityConfigurator): OneHasOneBuilder<O & PartialOptions<'target'>> {\n\t\tif (configurator) {\n\t\t\tthis.addEntity(target, configurator)\n\t\t}\n\t\treturn this.withOption('target', target)\n\t}\n\n\tinversedBy(inversedBy: string): OneHasOneBuilder<O> {\n\t\treturn this.withOption('inversedBy', inversedBy)\n\t}\n\n\tjoiningColumn(columnName: string): OneHasOneBuilder<O> {\n\t\treturn this.withOption('joiningColumn', { ...this.joiningColumn, columnName })\n\t}\n\n\tonDelete(onDelete: Model.OnDelete): OneHasOneBuilder<O> {\n\t\treturn this.withOption('joiningColumn', { ...this.joiningColumn, onDelete })\n\t}\n\n\tnotNull(): OneHasOneBuilder<O> {\n\t\treturn this.withOption('nullable', false)\n\t}\n\n\tinverseNotNull(): OneHasOneBuilder<O> {\n\t\treturn this.withOption('inverseNullable', false)\n\t}\n\n\t/** @deprecated use inverseNotNull*/\n\tinversedNotNull(): OneHasOneBuilder<O> {\n\t\treturn this.withOption('inverseNullable', false)\n\t}\n\n\tremoveOrphan(): OneHasOneBuilder<O> {\n\t\treturn this.withOption('orphanRemoval', true)\n\t}\n\n\tgetOption(): O {\n\t\treturn this.options\n\t}\n\n\tprivate withOption<K extends keyof OneHasOneBuilder.Options>(key: K, value: OneHasOneBuilder.Options[K]) {\n\t\treturn new OneHasOneBuilder<O & PartialOptions<K>>(\n\t\t\t{ ...(this.options as object), [key]: value } as O & PartialOptions<K>,\n\t\t\tthis.addEntity,\n\t\t)\n\t}\n}\n\nnamespace OneHasOneBuilder {\n\texport type Options = {\n\t\ttarget: string\n\t\tinversedBy?: string\n\t\tjoiningColumn?: Partial<Model.JoiningColumn>\n\t\tnullable?: boolean\n\t\tinverseNullable?: boolean\n\t\torphanRemoval?: true\n\t}\n}\n\nexport default OneHasOneBuilder\n"],"names":[],"mappings":";AAQA,MAAM,iBAAqG;AAAA,EAC1G,YAA6B,SAA6B,WAA8B;AAA3D,SAAA,UAAA;AAA6B,SAAA,YAAA;AAAA,EAA+B;AAAA,EAEzF,OAAO,QAAgB,cAAmF;AACzG,QAAI,cAAc;AACjB,WAAK,UAAU,QAAQ,YAAY;AAAA,IACpC;AACA,WAAO,KAAK,WAAW,UAAU,MAAM;AAAA,EACxC;AAAA,EAEA,WAAW,YAAyC;AACnD,WAAO,KAAK,WAAW,cAAc,UAAU;AAAA,EAChD;AAAA,EAEA,cAAc,YAAyC;AACtD,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,eAAe,YAAY;AAAA,EAC9E;AAAA,EAEA,SAAS,UAA+C;AACvD,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,eAAe,UAAU;AAAA,EAC5E;AAAA,EAEA,UAA+B;AAC9B,WAAO,KAAK,WAAW,YAAY,KAAK;AAAA,EACzC;AAAA,EAEA,iBAAsC;AACrC,WAAO,KAAK,WAAW,mBAAmB,KAAK;AAAA,EAChD;AAAA;AAAA,EAGA,kBAAuC;AACtC,WAAO,KAAK,WAAW,mBAAmB,KAAK;AAAA,EAChD;AAAA,EAEA,eAAoC;AACnC,WAAO,KAAK,WAAW,iBAAiB,IAAI;AAAA,EAC7C;AAAA,EAEA,YAAe;AACd,WAAO,KAAK;AAAA,EACb;AAAA,EAEQ,WAAqD,KAAQ,OAAoC;AACxG,WAAO,IAAI;AAAA,MACV,EAAE,GAAI,KAAK,SAAoB,CAAC,GAAG,GAAG,MAAA;AAAA,MACtC,KAAK;AAAA,IAAA;AAAA,EAEP;AACD;;"}
1
+ {"version":3,"file":"OneHasOneBuilder.cjs","sources":["../../../../../../packages/schema-definition/src/model/builder/OneHasOneBuilder.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport FieldBuilder from './FieldBuilder.js'\nimport { AddEntityCallback, EntityConfigurator } from './types.js'\n\ntype PartialOptions<K extends keyof OneHasOneBuilder.Options> =\n\t& Partial<OneHasOneBuilder.Options>\n\t& Pick<OneHasOneBuilder.Options, K>\n\nclass OneHasOneBuilder<O extends PartialOptions<never> = PartialOptions<never>> implements FieldBuilder<O> {\n\tconstructor(private readonly options: O, private readonly addEntity: AddEntityCallback) {}\n\n\ttarget(target: string, configurator?: EntityConfigurator): OneHasOneBuilder<O & PartialOptions<'target'>> {\n\t\tif (configurator) {\n\t\t\tthis.addEntity(target, configurator)\n\t\t}\n\t\treturn this.withOption('target', target)\n\t}\n\n\tinversedBy(inversedBy: string): OneHasOneBuilder<O> {\n\t\treturn this.withOption('inversedBy', inversedBy)\n\t}\n\n\tjoiningColumn(columnName: string): OneHasOneBuilder<O> {\n\t\treturn this.withOption('joiningColumn', { ...this.joiningColumn, columnName })\n\t}\n\n\tonDelete(onDelete: Model.OnDelete): OneHasOneBuilder<O> {\n\t\treturn this.withOption('joiningColumn', { ...this.joiningColumn, onDelete })\n\t}\n\n\tnotNull(): OneHasOneBuilder<O> {\n\t\treturn this.withOption('nullable', false)\n\t}\n\n\tinverseNotNull(): OneHasOneBuilder<O> {\n\t\treturn this.withOption('inverseNullable', false)\n\t}\n\n\t/** @deprecated use inverseNotNull*/\n\tinversedNotNull(): OneHasOneBuilder<O> {\n\t\treturn this.withOption('inverseNullable', false)\n\t}\n\n\tremoveOrphan(): OneHasOneBuilder<O> {\n\t\treturn this.withOption('orphanRemoval', true)\n\t}\n\n\tgetOption(): O {\n\t\treturn this.options\n\t}\n\n\tprivate withOption<K extends keyof OneHasOneBuilder.Options>(key: K, value: OneHasOneBuilder.Options[K]) {\n\t\treturn new OneHasOneBuilder<O & PartialOptions<K>>(\n\t\t\t{ ...(this.options as object), [key]: value } as O & PartialOptions<K>,\n\t\t\tthis.addEntity,\n\t\t)\n\t}\n}\n\nnamespace OneHasOneBuilder {\n\texport type Options = {\n\t\ttarget: string\n\t\tinversedBy?: string\n\t\tjoiningColumn?: Partial<Model.JoiningColumn>\n\t\tnullable?: boolean\n\t\tinverseNullable?: boolean\n\t\torphanRemoval?: true\n\t}\n}\n\nexport default OneHasOneBuilder\n"],"names":[],"mappings":";AAQA,MAAM,iBAAqG;AAAA,EAC1G,YAA6B,SAA6B,WAA8B;AAA3D,SAAA,UAAA;AAA6B,SAAA,YAAA;AAAA,EAA+B;AAAA,EAEzF,OAAO,QAAgB,cAAmF;AACzG,QAAI,cAAc;AACjB,WAAK,UAAU,QAAQ,YAAY;AAAA,IACpC;AACA,WAAO,KAAK,WAAW,UAAU,MAAM;AAAA,EACxC;AAAA,EAEA,WAAW,YAAyC;AACnD,WAAO,KAAK,WAAW,cAAc,UAAU;AAAA,EAChD;AAAA,EAEA,cAAc,YAAyC;AACtD,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,eAAe,YAAY;AAAA,EAC9E;AAAA,EAEA,SAAS,UAA+C;AACvD,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,eAAe,UAAU;AAAA,EAC5E;AAAA,EAEA,UAA+B;AAC9B,WAAO,KAAK,WAAW,YAAY,KAAK;AAAA,EACzC;AAAA,EAEA,iBAAsC;AACrC,WAAO,KAAK,WAAW,mBAAmB,KAAK;AAAA,EAChD;AAAA;AAAA,EAGA,kBAAuC;AACtC,WAAO,KAAK,WAAW,mBAAmB,KAAK;AAAA,EAChD;AAAA,EAEA,eAAoC;AACnC,WAAO,KAAK,WAAW,iBAAiB,IAAI;AAAA,EAC7C;AAAA,EAEA,YAAe;AACd,WAAO,KAAK;AAAA,EACb;AAAA,EAEQ,WAAqD,KAAQ,OAAoC;AACxG,WAAO,IAAI;AAAA,MACV,EAAE,GAAI,KAAK,SAAoB,CAAC,GAAG,GAAG,MAAA;AAAA,MACtC,KAAK;AAAA,IAAA;AAAA,EAEP;AACD;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"OneHasOneBuilder.js","sources":["../../../../../../packages/schema-definition/src/model/builder/OneHasOneBuilder.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport FieldBuilder from './FieldBuilder'\nimport { AddEntityCallback, EntityConfigurator } from './types'\n\ntype PartialOptions<K extends keyof OneHasOneBuilder.Options> =\n\t& Partial<OneHasOneBuilder.Options>\n\t& Pick<OneHasOneBuilder.Options, K>\n\nclass OneHasOneBuilder<O extends PartialOptions<never> = PartialOptions<never>> implements FieldBuilder<O> {\n\tconstructor(private readonly options: O, private readonly addEntity: AddEntityCallback) {}\n\n\ttarget(target: string, configurator?: EntityConfigurator): OneHasOneBuilder<O & PartialOptions<'target'>> {\n\t\tif (configurator) {\n\t\t\tthis.addEntity(target, configurator)\n\t\t}\n\t\treturn this.withOption('target', target)\n\t}\n\n\tinversedBy(inversedBy: string): OneHasOneBuilder<O> {\n\t\treturn this.withOption('inversedBy', inversedBy)\n\t}\n\n\tjoiningColumn(columnName: string): OneHasOneBuilder<O> {\n\t\treturn this.withOption('joiningColumn', { ...this.joiningColumn, columnName })\n\t}\n\n\tonDelete(onDelete: Model.OnDelete): OneHasOneBuilder<O> {\n\t\treturn this.withOption('joiningColumn', { ...this.joiningColumn, onDelete })\n\t}\n\n\tnotNull(): OneHasOneBuilder<O> {\n\t\treturn this.withOption('nullable', false)\n\t}\n\n\tinverseNotNull(): OneHasOneBuilder<O> {\n\t\treturn this.withOption('inverseNullable', false)\n\t}\n\n\t/** @deprecated use inverseNotNull*/\n\tinversedNotNull(): OneHasOneBuilder<O> {\n\t\treturn this.withOption('inverseNullable', false)\n\t}\n\n\tremoveOrphan(): OneHasOneBuilder<O> {\n\t\treturn this.withOption('orphanRemoval', true)\n\t}\n\n\tgetOption(): O {\n\t\treturn this.options\n\t}\n\n\tprivate withOption<K extends keyof OneHasOneBuilder.Options>(key: K, value: OneHasOneBuilder.Options[K]) {\n\t\treturn new OneHasOneBuilder<O & PartialOptions<K>>(\n\t\t\t{ ...(this.options as object), [key]: value } as O & PartialOptions<K>,\n\t\t\tthis.addEntity,\n\t\t)\n\t}\n}\n\nnamespace OneHasOneBuilder {\n\texport type Options = {\n\t\ttarget: string\n\t\tinversedBy?: string\n\t\tjoiningColumn?: Partial<Model.JoiningColumn>\n\t\tnullable?: boolean\n\t\tinverseNullable?: boolean\n\t\torphanRemoval?: true\n\t}\n}\n\nexport default OneHasOneBuilder\n"],"names":[],"mappings":"AAQA,MAAM,iBAAqG;AAAA,EAC1G,YAA6B,SAA6B,WAA8B;AAA3D,SAAA,UAAA;AAA6B,SAAA,YAAA;AAAA,EAA+B;AAAA,EAEzF,OAAO,QAAgB,cAAmF;AACzG,QAAI,cAAc;AACjB,WAAK,UAAU,QAAQ,YAAY;AAAA,IACpC;AACA,WAAO,KAAK,WAAW,UAAU,MAAM;AAAA,EACxC;AAAA,EAEA,WAAW,YAAyC;AACnD,WAAO,KAAK,WAAW,cAAc,UAAU;AAAA,EAChD;AAAA,EAEA,cAAc,YAAyC;AACtD,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,eAAe,YAAY;AAAA,EAC9E;AAAA,EAEA,SAAS,UAA+C;AACvD,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,eAAe,UAAU;AAAA,EAC5E;AAAA,EAEA,UAA+B;AAC9B,WAAO,KAAK,WAAW,YAAY,KAAK;AAAA,EACzC;AAAA,EAEA,iBAAsC;AACrC,WAAO,KAAK,WAAW,mBAAmB,KAAK;AAAA,EAChD;AAAA;AAAA,EAGA,kBAAuC;AACtC,WAAO,KAAK,WAAW,mBAAmB,KAAK;AAAA,EAChD;AAAA,EAEA,eAAoC;AACnC,WAAO,KAAK,WAAW,iBAAiB,IAAI;AAAA,EAC7C;AAAA,EAEA,YAAe;AACd,WAAO,KAAK;AAAA,EACb;AAAA,EAEQ,WAAqD,KAAQ,OAAoC;AACxG,WAAO,IAAI;AAAA,MACV,EAAE,GAAI,KAAK,SAAoB,CAAC,GAAG,GAAG,MAAA;AAAA,MACtC,KAAK;AAAA,IAAA;AAAA,EAEP;AACD;"}
1
+ {"version":3,"file":"OneHasOneBuilder.js","sources":["../../../../../../packages/schema-definition/src/model/builder/OneHasOneBuilder.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport FieldBuilder from './FieldBuilder.js'\nimport { AddEntityCallback, EntityConfigurator } from './types.js'\n\ntype PartialOptions<K extends keyof OneHasOneBuilder.Options> =\n\t& Partial<OneHasOneBuilder.Options>\n\t& Pick<OneHasOneBuilder.Options, K>\n\nclass OneHasOneBuilder<O extends PartialOptions<never> = PartialOptions<never>> implements FieldBuilder<O> {\n\tconstructor(private readonly options: O, private readonly addEntity: AddEntityCallback) {}\n\n\ttarget(target: string, configurator?: EntityConfigurator): OneHasOneBuilder<O & PartialOptions<'target'>> {\n\t\tif (configurator) {\n\t\t\tthis.addEntity(target, configurator)\n\t\t}\n\t\treturn this.withOption('target', target)\n\t}\n\n\tinversedBy(inversedBy: string): OneHasOneBuilder<O> {\n\t\treturn this.withOption('inversedBy', inversedBy)\n\t}\n\n\tjoiningColumn(columnName: string): OneHasOneBuilder<O> {\n\t\treturn this.withOption('joiningColumn', { ...this.joiningColumn, columnName })\n\t}\n\n\tonDelete(onDelete: Model.OnDelete): OneHasOneBuilder<O> {\n\t\treturn this.withOption('joiningColumn', { ...this.joiningColumn, onDelete })\n\t}\n\n\tnotNull(): OneHasOneBuilder<O> {\n\t\treturn this.withOption('nullable', false)\n\t}\n\n\tinverseNotNull(): OneHasOneBuilder<O> {\n\t\treturn this.withOption('inverseNullable', false)\n\t}\n\n\t/** @deprecated use inverseNotNull*/\n\tinversedNotNull(): OneHasOneBuilder<O> {\n\t\treturn this.withOption('inverseNullable', false)\n\t}\n\n\tremoveOrphan(): OneHasOneBuilder<O> {\n\t\treturn this.withOption('orphanRemoval', true)\n\t}\n\n\tgetOption(): O {\n\t\treturn this.options\n\t}\n\n\tprivate withOption<K extends keyof OneHasOneBuilder.Options>(key: K, value: OneHasOneBuilder.Options[K]) {\n\t\treturn new OneHasOneBuilder<O & PartialOptions<K>>(\n\t\t\t{ ...(this.options as object), [key]: value } as O & PartialOptions<K>,\n\t\t\tthis.addEntity,\n\t\t)\n\t}\n}\n\nnamespace OneHasOneBuilder {\n\texport type Options = {\n\t\ttarget: string\n\t\tinversedBy?: string\n\t\tjoiningColumn?: Partial<Model.JoiningColumn>\n\t\tnullable?: boolean\n\t\tinverseNullable?: boolean\n\t\torphanRemoval?: true\n\t}\n}\n\nexport default OneHasOneBuilder\n"],"names":[],"mappings":"AAQA,MAAM,iBAAqG;AAAA,EAC1G,YAA6B,SAA6B,WAA8B;AAA3D,SAAA,UAAA;AAA6B,SAAA,YAAA;AAAA,EAA+B;AAAA,EAEzF,OAAO,QAAgB,cAAmF;AACzG,QAAI,cAAc;AACjB,WAAK,UAAU,QAAQ,YAAY;AAAA,IACpC;AACA,WAAO,KAAK,WAAW,UAAU,MAAM;AAAA,EACxC;AAAA,EAEA,WAAW,YAAyC;AACnD,WAAO,KAAK,WAAW,cAAc,UAAU;AAAA,EAChD;AAAA,EAEA,cAAc,YAAyC;AACtD,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,eAAe,YAAY;AAAA,EAC9E;AAAA,EAEA,SAAS,UAA+C;AACvD,WAAO,KAAK,WAAW,iBAAiB,EAAE,GAAG,KAAK,eAAe,UAAU;AAAA,EAC5E;AAAA,EAEA,UAA+B;AAC9B,WAAO,KAAK,WAAW,YAAY,KAAK;AAAA,EACzC;AAAA,EAEA,iBAAsC;AACrC,WAAO,KAAK,WAAW,mBAAmB,KAAK;AAAA,EAChD;AAAA;AAAA,EAGA,kBAAuC;AACtC,WAAO,KAAK,WAAW,mBAAmB,KAAK;AAAA,EAChD;AAAA,EAEA,eAAoC;AACnC,WAAO,KAAK,WAAW,iBAAiB,IAAI;AAAA,EAC7C;AAAA,EAEA,YAAe;AACd,WAAO,KAAK;AAAA,EACb;AAAA,EAEQ,WAAqD,KAAQ,OAAoC;AACxG,WAAO,IAAI;AAAA,MACV,EAAE,GAAI,KAAK,SAAoB,CAAC,GAAG,GAAG,MAAA;AAAA,MACtC,KAAK;AAAA,IAAA;AAAA,EAEP;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaBuilder.cjs","sources":["../../../../../../packages/schema-definition/src/model/builder/SchemaBuilder.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport EntityBuilder from './EntityBuilder'\nimport { DefaultNamingConventions, NamingConventions } from '@contember/schema-utils'\nimport SchemaBuilderInternal from './SchemaBuilderInternal'\nimport { EntityConfigurator } from './types'\n\nexport default class SchemaBuilder {\n\tprivate entities: { [name: string]: EntityConfigurator } = {}\n\tprivate enums: { [name: string]: string[] } = {}\n\n\tconstructor(private readonly conventions: NamingConventions = new DefaultNamingConventions()) {}\n\n\tpublic enum(name: string, values: string[]): SchemaBuilder {\n\t\tthis.enums[name] = values\n\t\treturn this\n\t}\n\n\tpublic entity(name: string, configurator: EntityConfigurator): SchemaBuilder {\n\t\tthis.entities[name] = configurator\n\t\treturn this\n\t}\n\n\tpublic buildSchema(): Model.Schema {\n\t\tconst builder = new SchemaBuilderInternal(this.conventions)\n\n\t\tconst addEntity = (name: string, configurator: EntityConfigurator): void => {\n\t\t\tconst entityBuilder: EntityBuilder = configurator(new EntityBuilder({}, {}, addEntity))\n\t\t\tconst entityOptions = entityBuilder.getOptions()\n\t\t\tconst fields = entityBuilder.getFields()\n\t\t\tbuilder.addEntity(name, entityOptions, fields)\n\t\t}\n\t\tfor (let name in this.entities) {\n\t\t\tconst configurator = this.entities[name]\n\t\t\taddEntity(name, configurator)\n\t\t}\n\t\tObject.keys(this.enums).forEach(name => builder.addEnum(name, this.enums[name]))\n\n\t\treturn builder.createSchema()\n\t}\n}\n\nexport * from './SchemaBuilderError'\n"],"names":["DefaultNamingConventions"],"mappings":";;;;;;;;AAMA,MAAqB,cAAc;AAAA,EAIlC,YAA6B,cAAiC,IAAIA,YAAAA,4BAA4B;AAAjE,SAAA,cAAA;AAH7B,kBAAA,MAAQ,YAAmD,EAAC;AAC5D,kBAAA,MAAQ,SAAsC,EAAC;AAAA,EAEgD;AAAA,EAExF,KAAK,MAAc,QAAiC;AAC1D,SAAK,MAAM,IAAI,IAAI;AACnB,WAAO;AAAA,EACR;AAAA,EAEO,OAAO,MAAc,cAAiD;AAC5E,SAAK,SAAS,IAAI,IAAI;AACtB,WAAO;AAAA,EACR;AAAA,EAEO,cAA4B;AAClC,UAAM,UAAU,IAAI,sBAAsB,KAAK,WAAW;AAE1D,UAAM,YAAY,CAAC,MAAc,iBAA2C;AAC3E,YAAM,gBAA+B,aAAa,IAAI,cAAc,CAAA,GAAI,CAAA,GAAI,SAAS,CAAC;AACtF,YAAM,gBAAgB,cAAc,WAAA;AACpC,YAAM,SAAS,cAAc,UAAA;AAC7B,cAAQ,UAAU,MAAM,eAAe,MAAM;AAAA,IAC9C;AACA,aAAS,QAAQ,KAAK,UAAU;AAC/B,YAAM,eAAe,KAAK,SAAS,IAAI;AACvC,gBAAU,MAAM,YAAY;AAAA,IAC7B;AACA,WAAO,KAAK,KAAK,KAAK,EAAE,QAAQ,CAAA,SAAQ,QAAQ,QAAQ,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC;AAE/E,WAAO,QAAQ,aAAA;AAAA,EAChB;AACD;;"}
1
+ {"version":3,"file":"SchemaBuilder.cjs","sources":["../../../../../../packages/schema-definition/src/model/builder/SchemaBuilder.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport EntityBuilder from './EntityBuilder.js'\nimport { DefaultNamingConventions, NamingConventions } from '@contember/schema-utils'\nimport SchemaBuilderInternal from './SchemaBuilderInternal.js'\nimport { EntityConfigurator } from './types.js'\n\nexport default class SchemaBuilder {\n\tprivate entities: { [name: string]: EntityConfigurator } = {}\n\tprivate enums: { [name: string]: string[] } = {}\n\n\tconstructor(private readonly conventions: NamingConventions = new DefaultNamingConventions()) {}\n\n\tpublic enum(name: string, values: string[]): SchemaBuilder {\n\t\tthis.enums[name] = values\n\t\treturn this\n\t}\n\n\tpublic entity(name: string, configurator: EntityConfigurator): SchemaBuilder {\n\t\tthis.entities[name] = configurator\n\t\treturn this\n\t}\n\n\tpublic buildSchema(): Model.Schema {\n\t\tconst builder = new SchemaBuilderInternal(this.conventions)\n\n\t\tconst addEntity = (name: string, configurator: EntityConfigurator): void => {\n\t\t\tconst entityBuilder: EntityBuilder = configurator(new EntityBuilder({}, {}, addEntity))\n\t\t\tconst entityOptions = entityBuilder.getOptions()\n\t\t\tconst fields = entityBuilder.getFields()\n\t\t\tbuilder.addEntity(name, entityOptions, fields)\n\t\t}\n\t\tfor (let name in this.entities) {\n\t\t\tconst configurator = this.entities[name]\n\t\t\taddEntity(name, configurator)\n\t\t}\n\t\tObject.keys(this.enums).forEach(name => builder.addEnum(name, this.enums[name]))\n\n\t\treturn builder.createSchema()\n\t}\n}\n\nexport * from './SchemaBuilderError.js'\n"],"names":["DefaultNamingConventions"],"mappings":";;;;;;;;AAMA,MAAqB,cAAc;AAAA,EAIlC,YAA6B,cAAiC,IAAIA,YAAAA,4BAA4B;AAAjE,SAAA,cAAA;AAH7B,kBAAA,MAAQ,YAAmD,EAAC;AAC5D,kBAAA,MAAQ,SAAsC,EAAC;AAAA,EAEgD;AAAA,EAExF,KAAK,MAAc,QAAiC;AAC1D,SAAK,MAAM,IAAI,IAAI;AACnB,WAAO;AAAA,EACR;AAAA,EAEO,OAAO,MAAc,cAAiD;AAC5E,SAAK,SAAS,IAAI,IAAI;AACtB,WAAO;AAAA,EACR;AAAA,EAEO,cAA4B;AAClC,UAAM,UAAU,IAAI,sBAAsB,KAAK,WAAW;AAE1D,UAAM,YAAY,CAAC,MAAc,iBAA2C;AAC3E,YAAM,gBAA+B,aAAa,IAAI,cAAc,CAAA,GAAI,CAAA,GAAI,SAAS,CAAC;AACtF,YAAM,gBAAgB,cAAc,WAAA;AACpC,YAAM,SAAS,cAAc,UAAA;AAC7B,cAAQ,UAAU,MAAM,eAAe,MAAM;AAAA,IAC9C;AACA,aAAS,QAAQ,KAAK,UAAU;AAC/B,YAAM,eAAe,KAAK,SAAS,IAAI;AACvC,gBAAU,MAAM,YAAY;AAAA,IAC7B;AACA,WAAO,KAAK,KAAK,KAAK,EAAE,QAAQ,CAAA,SAAQ,QAAQ,QAAQ,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC;AAE/E,WAAO,QAAQ,aAAA;AAAA,EAChB;AACD;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaBuilder.js","sources":["../../../../../../packages/schema-definition/src/model/builder/SchemaBuilder.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport EntityBuilder from './EntityBuilder'\nimport { DefaultNamingConventions, NamingConventions } from '@contember/schema-utils'\nimport SchemaBuilderInternal from './SchemaBuilderInternal'\nimport { EntityConfigurator } from './types'\n\nexport default class SchemaBuilder {\n\tprivate entities: { [name: string]: EntityConfigurator } = {}\n\tprivate enums: { [name: string]: string[] } = {}\n\n\tconstructor(private readonly conventions: NamingConventions = new DefaultNamingConventions()) {}\n\n\tpublic enum(name: string, values: string[]): SchemaBuilder {\n\t\tthis.enums[name] = values\n\t\treturn this\n\t}\n\n\tpublic entity(name: string, configurator: EntityConfigurator): SchemaBuilder {\n\t\tthis.entities[name] = configurator\n\t\treturn this\n\t}\n\n\tpublic buildSchema(): Model.Schema {\n\t\tconst builder = new SchemaBuilderInternal(this.conventions)\n\n\t\tconst addEntity = (name: string, configurator: EntityConfigurator): void => {\n\t\t\tconst entityBuilder: EntityBuilder = configurator(new EntityBuilder({}, {}, addEntity))\n\t\t\tconst entityOptions = entityBuilder.getOptions()\n\t\t\tconst fields = entityBuilder.getFields()\n\t\t\tbuilder.addEntity(name, entityOptions, fields)\n\t\t}\n\t\tfor (let name in this.entities) {\n\t\t\tconst configurator = this.entities[name]\n\t\t\taddEntity(name, configurator)\n\t\t}\n\t\tObject.keys(this.enums).forEach(name => builder.addEnum(name, this.enums[name]))\n\n\t\treturn builder.createSchema()\n\t}\n}\n\nexport * from './SchemaBuilderError'\n"],"names":[],"mappings":";;;;;;AAMA,MAAqB,cAAc;AAAA,EAIlC,YAA6B,cAAiC,IAAI,4BAA4B;AAAjE,SAAA,cAAA;AAH7B,kBAAA,MAAQ,YAAmD,EAAC;AAC5D,kBAAA,MAAQ,SAAsC,EAAC;AAAA,EAEgD;AAAA,EAExF,KAAK,MAAc,QAAiC;AAC1D,SAAK,MAAM,IAAI,IAAI;AACnB,WAAO;AAAA,EACR;AAAA,EAEO,OAAO,MAAc,cAAiD;AAC5E,SAAK,SAAS,IAAI,IAAI;AACtB,WAAO;AAAA,EACR;AAAA,EAEO,cAA4B;AAClC,UAAM,UAAU,IAAI,sBAAsB,KAAK,WAAW;AAE1D,UAAM,YAAY,CAAC,MAAc,iBAA2C;AAC3E,YAAM,gBAA+B,aAAa,IAAI,cAAc,CAAA,GAAI,CAAA,GAAI,SAAS,CAAC;AACtF,YAAM,gBAAgB,cAAc,WAAA;AACpC,YAAM,SAAS,cAAc,UAAA;AAC7B,cAAQ,UAAU,MAAM,eAAe,MAAM;AAAA,IAC9C;AACA,aAAS,QAAQ,KAAK,UAAU;AAC/B,YAAM,eAAe,KAAK,SAAS,IAAI;AACvC,gBAAU,MAAM,YAAY;AAAA,IAC7B;AACA,WAAO,KAAK,KAAK,KAAK,EAAE,QAAQ,CAAA,SAAQ,QAAQ,QAAQ,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC;AAE/E,WAAO,QAAQ,aAAA;AAAA,EAChB;AACD;"}
1
+ {"version":3,"file":"SchemaBuilder.js","sources":["../../../../../../packages/schema-definition/src/model/builder/SchemaBuilder.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport EntityBuilder from './EntityBuilder.js'\nimport { DefaultNamingConventions, NamingConventions } from '@contember/schema-utils'\nimport SchemaBuilderInternal from './SchemaBuilderInternal.js'\nimport { EntityConfigurator } from './types.js'\n\nexport default class SchemaBuilder {\n\tprivate entities: { [name: string]: EntityConfigurator } = {}\n\tprivate enums: { [name: string]: string[] } = {}\n\n\tconstructor(private readonly conventions: NamingConventions = new DefaultNamingConventions()) {}\n\n\tpublic enum(name: string, values: string[]): SchemaBuilder {\n\t\tthis.enums[name] = values\n\t\treturn this\n\t}\n\n\tpublic entity(name: string, configurator: EntityConfigurator): SchemaBuilder {\n\t\tthis.entities[name] = configurator\n\t\treturn this\n\t}\n\n\tpublic buildSchema(): Model.Schema {\n\t\tconst builder = new SchemaBuilderInternal(this.conventions)\n\n\t\tconst addEntity = (name: string, configurator: EntityConfigurator): void => {\n\t\t\tconst entityBuilder: EntityBuilder = configurator(new EntityBuilder({}, {}, addEntity))\n\t\t\tconst entityOptions = entityBuilder.getOptions()\n\t\t\tconst fields = entityBuilder.getFields()\n\t\t\tbuilder.addEntity(name, entityOptions, fields)\n\t\t}\n\t\tfor (let name in this.entities) {\n\t\t\tconst configurator = this.entities[name]\n\t\t\taddEntity(name, configurator)\n\t\t}\n\t\tObject.keys(this.enums).forEach(name => builder.addEnum(name, this.enums[name]))\n\n\t\treturn builder.createSchema()\n\t}\n}\n\nexport * from './SchemaBuilderError.js'\n"],"names":[],"mappings":";;;;;;AAMA,MAAqB,cAAc;AAAA,EAIlC,YAA6B,cAAiC,IAAI,4BAA4B;AAAjE,SAAA,cAAA;AAH7B,kBAAA,MAAQ,YAAmD,EAAC;AAC5D,kBAAA,MAAQ,SAAsC,EAAC;AAAA,EAEgD;AAAA,EAExF,KAAK,MAAc,QAAiC;AAC1D,SAAK,MAAM,IAAI,IAAI;AACnB,WAAO;AAAA,EACR;AAAA,EAEO,OAAO,MAAc,cAAiD;AAC5E,SAAK,SAAS,IAAI,IAAI;AACtB,WAAO;AAAA,EACR;AAAA,EAEO,cAA4B;AAClC,UAAM,UAAU,IAAI,sBAAsB,KAAK,WAAW;AAE1D,UAAM,YAAY,CAAC,MAAc,iBAA2C;AAC3E,YAAM,gBAA+B,aAAa,IAAI,cAAc,CAAA,GAAI,CAAA,GAAI,SAAS,CAAC;AACtF,YAAM,gBAAgB,cAAc,WAAA;AACpC,YAAM,SAAS,cAAc,UAAA;AAC7B,cAAQ,UAAU,MAAM,eAAe,MAAM;AAAA,IAC9C;AACA,aAAS,QAAQ,KAAK,UAAU;AAC/B,YAAM,eAAe,KAAK,SAAS,IAAI;AACvC,gBAAU,MAAM,YAAY;AAAA,IAC7B;AACA,WAAO,KAAK,KAAK,KAAK,EAAE,QAAQ,CAAA,SAAQ,QAAQ,QAAQ,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC;AAE/E,WAAO,QAAQ,aAAA;AAAA,EAChB;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaBuilderInternal.cjs","sources":["../../../../../../packages/schema-definition/src/model/builder/SchemaBuilderInternal.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { NamingConventions } from '@contember/schema-utils'\nimport EntityBuilder from './EntityBuilder'\nimport { SchemaBuilderError } from './SchemaBuilderError'\nimport FieldProcessor from './internal/FieldProcessor'\nimport ColumnProcessor from './internal/ColumnProcessor'\nimport ManyHasManyProcessor from './internal/ManyHasManyProcessor'\nimport OneHasOneProcessor from './internal/OneHasOneProcessor'\nimport OneHasManyProcessor from './internal/OneHasManyProcessor'\nimport ManyHasOneProcessor from './internal/ManyHasOneProcessor'\nimport FieldBuilder from './FieldBuilder'\n\nexport default class SchemaBuilderInternal {\n\tprivate entities: { [name: string]: Model.Entity & { fields: Record<string, Model.AnyField> } } = {}\n\n\tprivate fieldOptions: { [entity: string]: FieldBuilder.Map } = {}\n\n\tprivate enums: { [name: string]: string[] } = {}\n\n\tconstructor(private readonly conventions: NamingConventions) {}\n\n\tpublic addEntity(name: string, options: EntityBuilder.EntityOptions, fieldOptions: FieldBuilder.Map): void {\n\t\tthis.fieldOptions[name] = fieldOptions\n\t\tconst primaryName = this.getPrimaryFieldName(options, name, fieldOptions)\n\t\tif (!fieldOptions[primaryName]) {\n\t\t\tfieldOptions[primaryName] = this.createDefaultPrimary(primaryName)\n\t\t}\n\t\tconst primaryField = fieldOptions[primaryName]\n\t\tif (primaryField.type !== FieldBuilder.Type.Column) {\n\t\t\tthrow new SchemaBuilderError(`${name}: Primary field must be a column`)\n\t\t}\n\t\tprimaryField.options.primary = true\n\t\tprimaryField.options.nullable = false\n\n\t\tthis.entities[name] = {\n\t\t\tname: name,\n\t\t\tprimary: primaryName,\n\t\t\tprimaryColumn: primaryField.options.columnName || this.conventions.getColumnName(primaryName),\n\t\t\tunique: this.createUnique(name, options, fieldOptions),\n\t\t\tfields: {},\n\t\t\tindexes: [],\n\t\t\ttableName: options.tableName || this.conventions.getTableName(name),\n\t\t\teventLog: {\n\t\t\t\tenabled: true,\n\t\t\t},\n\t\t\t...(options.orderBy !== undefined ? { orderBy: options.orderBy } : {}),\n\t\t}\n\t}\n\n\tpublic addEnum(name: string, values: string[]): void {\n\t\tthis.enums[name] = values\n\t}\n\n\tpublic createSchema(): Model.Schema {\n\t\tfor (let entityName in this.fieldOptions) {\n\t\t\tlet primaryField = this.entities[entityName].primary\n\t\t\tthis.processField(entityName, primaryField)\n\t\t\tfor (let fieldName in this.fieldOptions[entityName]) {\n\t\t\t\tif (fieldName === primaryField) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tthis.processField(entityName, fieldName)\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tenums: this.enums,\n\t\t\tentities: this.entities,\n\t\t}\n\t}\n\n\tprivate processField(entityName: string, fieldName: string): void {\n\t\tconst processor = this.createProcessor(entityName, fieldName)\n\t\tprocessor.process(\n\t\t\tentityName,\n\t\t\tfieldName,\n\t\t\tthis.fieldOptions[entityName][fieldName].options,\n\t\t\tthis.registerField.bind(this),\n\t\t)\n\t}\n\n\tprivate createProcessor(entityName: string, fieldName: string): FieldProcessor<any> {\n\t\tconst field: FieldBuilder.Options = this.fieldOptions[entityName][fieldName]\n\n\t\tif (field.type === FieldBuilder.Type.Column) {\n\t\t\treturn new ColumnProcessor(this.conventions)\n\t\t}\n\t\tthis.checkTarget(entityName, fieldName, field.options)\n\t\tswitch (field.type) {\n\t\t\tcase FieldBuilder.Type.ManyHasMany:\n\t\t\t\treturn new ManyHasManyProcessor(this.conventions)\n\t\t\tcase FieldBuilder.Type.OneHasOne:\n\t\t\t\treturn new OneHasOneProcessor(this.conventions)\n\t\t\tcase FieldBuilder.Type.OneHasMany:\n\t\t\t\treturn new OneHasManyProcessor(this.conventions)\n\t\t\tcase FieldBuilder.Type.ManyHasOne:\n\t\t\t\treturn new ManyHasOneProcessor(this.conventions)\n\t\t}\n\n\t\tthrow new Error()\n\t}\n\n\tprivate checkTarget(entityName: string, fieldName: string, options: { target: string }) {\n\t\tif (!this.entities[options.target]) {\n\t\t\tthrow new SchemaBuilderError(`${entityName}::${fieldName}: undefined target entity ${options.target}`)\n\t\t}\n\t}\n\n\tprivate registerField(entityName: string, field: Model.AnyColumn | Model.AnyRelation) {\n\t\tif (!this.entities[entityName]) {\n\t\t\tthrow new SchemaBuilderError(`Undefined entity ${entityName}`)\n\t\t}\n\t\tif (this.entities[entityName].fields[field.name]) {\n\t\t\tthrow new SchemaBuilderError(`${entityName}: Field ${field.name} is already defined`)\n\t\t}\n\t\tthis.entities[entityName].fields[field.name] = field\n\t}\n\n\tprivate getPrimaryFieldName(\n\t\tentityOptions: EntityBuilder.EntityOptions,\n\t\tentityName: string,\n\t\tfields: FieldBuilder.Map,\n\t) {\n\t\tlet primary: string[] = []\n\t\tif (entityOptions.primary) {\n\t\t\tprimary.push(entityOptions.primary)\n\t\t}\n\t\tfor (let name in fields) {\n\t\t\tconst field: FieldBuilder.Options = fields[name]\n\t\t\tif (field.type !== FieldBuilder.Type.Column) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif (!field.options.primary) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif (!primary.includes(name)) {\n\t\t\t\tprimary.push(name)\n\t\t\t}\n\t\t}\n\t\tif (primary.length > 1) {\n\t\t\tthrow new SchemaBuilderError(`${entityName}: Only single column can be a primary. Found: ${primary.join(', ')}`)\n\t\t}\n\t\treturn primary.length === 1 ? primary[0] : this.conventions.getPrimaryField()\n\t}\n\n\tprivate createDefaultPrimary(fieldName: string): FieldBuilder.Options {\n\t\treturn {\n\t\t\ttype: FieldBuilder.Type.Column,\n\t\t\toptions: {\n\t\t\t\tnullable: false,\n\t\t\t\ttype: Model.ColumnType.Uuid,\n\t\t\t\tprimary: true,\n\t\t\t},\n\t\t}\n\t}\n\n\tprivate createUnique(\n\t\tentityName: string,\n\t\toptions: EntityBuilder.EntityOptions,\n\t\tfieldOptions: FieldBuilder.Map,\n\t): Model.Uniques {\n\t\tconst unique: Model.UniqueConstraint[] = []\n\n\t\tfor (const singleUnique of options.unique || []) {\n\t\t\tunique.push(singleUnique)\n\t\t}\n\t\tfor (let fieldName in fieldOptions) {\n\t\t\tconst options = fieldOptions[fieldName]\n\n\t\t\tif (options.type === FieldBuilder.Type.Column && options.options.unique) {\n\t\t\t\tunique.push({ fields: [fieldName] })\n\t\t\t}\n\t\t}\n\t\treturn unique\n\t}\n}\n"],"names":["SchemaBuilderError","Model","options"],"mappings":"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"}
1
+ {"version":3,"file":"SchemaBuilderInternal.cjs","sources":["../../../../../../packages/schema-definition/src/model/builder/SchemaBuilderInternal.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { NamingConventions } from '@contember/schema-utils'\nimport EntityBuilder from './EntityBuilder.js'\nimport { SchemaBuilderError } from './SchemaBuilderError.js'\nimport FieldProcessor from './internal/FieldProcessor.js'\nimport ColumnProcessor from './internal/ColumnProcessor.js'\nimport ManyHasManyProcessor from './internal/ManyHasManyProcessor.js'\nimport OneHasOneProcessor from './internal/OneHasOneProcessor.js'\nimport OneHasManyProcessor from './internal/OneHasManyProcessor.js'\nimport ManyHasOneProcessor from './internal/ManyHasOneProcessor.js'\nimport FieldBuilder from './FieldBuilder.js'\n\nexport default class SchemaBuilderInternal {\n\tprivate entities: { [name: string]: Model.Entity & { fields: Record<string, Model.AnyField> } } = {}\n\n\tprivate fieldOptions: { [entity: string]: FieldBuilder.Map } = {}\n\n\tprivate enums: { [name: string]: string[] } = {}\n\n\tconstructor(private readonly conventions: NamingConventions) {}\n\n\tpublic addEntity(name: string, options: EntityBuilder.EntityOptions, fieldOptions: FieldBuilder.Map): void {\n\t\tthis.fieldOptions[name] = fieldOptions\n\t\tconst primaryName = this.getPrimaryFieldName(options, name, fieldOptions)\n\t\tif (!fieldOptions[primaryName]) {\n\t\t\tfieldOptions[primaryName] = this.createDefaultPrimary(primaryName)\n\t\t}\n\t\tconst primaryField = fieldOptions[primaryName]\n\t\tif (primaryField.type !== FieldBuilder.Type.Column) {\n\t\t\tthrow new SchemaBuilderError(`${name}: Primary field must be a column`)\n\t\t}\n\t\tprimaryField.options.primary = true\n\t\tprimaryField.options.nullable = false\n\n\t\tthis.entities[name] = {\n\t\t\tname: name,\n\t\t\tprimary: primaryName,\n\t\t\tprimaryColumn: primaryField.options.columnName || this.conventions.getColumnName(primaryName),\n\t\t\tunique: this.createUnique(name, options, fieldOptions),\n\t\t\tfields: {},\n\t\t\tindexes: [],\n\t\t\ttableName: options.tableName || this.conventions.getTableName(name),\n\t\t\teventLog: {\n\t\t\t\tenabled: true,\n\t\t\t},\n\t\t\t...(options.orderBy !== undefined ? { orderBy: options.orderBy } : {}),\n\t\t}\n\t}\n\n\tpublic addEnum(name: string, values: string[]): void {\n\t\tthis.enums[name] = values\n\t}\n\n\tpublic createSchema(): Model.Schema {\n\t\tfor (let entityName in this.fieldOptions) {\n\t\t\tlet primaryField = this.entities[entityName].primary\n\t\t\tthis.processField(entityName, primaryField)\n\t\t\tfor (let fieldName in this.fieldOptions[entityName]) {\n\t\t\t\tif (fieldName === primaryField) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tthis.processField(entityName, fieldName)\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tenums: this.enums,\n\t\t\tentities: this.entities,\n\t\t}\n\t}\n\n\tprivate processField(entityName: string, fieldName: string): void {\n\t\tconst processor = this.createProcessor(entityName, fieldName)\n\t\tprocessor.process(\n\t\t\tentityName,\n\t\t\tfieldName,\n\t\t\tthis.fieldOptions[entityName][fieldName].options,\n\t\t\tthis.registerField.bind(this),\n\t\t)\n\t}\n\n\tprivate createProcessor(entityName: string, fieldName: string): FieldProcessor<any> {\n\t\tconst field: FieldBuilder.Options = this.fieldOptions[entityName][fieldName]\n\n\t\tif (field.type === FieldBuilder.Type.Column) {\n\t\t\treturn new ColumnProcessor(this.conventions)\n\t\t}\n\t\tthis.checkTarget(entityName, fieldName, field.options)\n\t\tswitch (field.type) {\n\t\t\tcase FieldBuilder.Type.ManyHasMany:\n\t\t\t\treturn new ManyHasManyProcessor(this.conventions)\n\t\t\tcase FieldBuilder.Type.OneHasOne:\n\t\t\t\treturn new OneHasOneProcessor(this.conventions)\n\t\t\tcase FieldBuilder.Type.OneHasMany:\n\t\t\t\treturn new OneHasManyProcessor(this.conventions)\n\t\t\tcase FieldBuilder.Type.ManyHasOne:\n\t\t\t\treturn new ManyHasOneProcessor(this.conventions)\n\t\t}\n\n\t\tthrow new Error()\n\t}\n\n\tprivate checkTarget(entityName: string, fieldName: string, options: { target: string }) {\n\t\tif (!this.entities[options.target]) {\n\t\t\tthrow new SchemaBuilderError(`${entityName}::${fieldName}: undefined target entity ${options.target}`)\n\t\t}\n\t}\n\n\tprivate registerField(entityName: string, field: Model.AnyColumn | Model.AnyRelation) {\n\t\tif (!this.entities[entityName]) {\n\t\t\tthrow new SchemaBuilderError(`Undefined entity ${entityName}`)\n\t\t}\n\t\tif (this.entities[entityName].fields[field.name]) {\n\t\t\tthrow new SchemaBuilderError(`${entityName}: Field ${field.name} is already defined`)\n\t\t}\n\t\tthis.entities[entityName].fields[field.name] = field\n\t}\n\n\tprivate getPrimaryFieldName(\n\t\tentityOptions: EntityBuilder.EntityOptions,\n\t\tentityName: string,\n\t\tfields: FieldBuilder.Map,\n\t) {\n\t\tlet primary: string[] = []\n\t\tif (entityOptions.primary) {\n\t\t\tprimary.push(entityOptions.primary)\n\t\t}\n\t\tfor (let name in fields) {\n\t\t\tconst field: FieldBuilder.Options = fields[name]\n\t\t\tif (field.type !== FieldBuilder.Type.Column) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif (!field.options.primary) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif (!primary.includes(name)) {\n\t\t\t\tprimary.push(name)\n\t\t\t}\n\t\t}\n\t\tif (primary.length > 1) {\n\t\t\tthrow new SchemaBuilderError(`${entityName}: Only single column can be a primary. Found: ${primary.join(', ')}`)\n\t\t}\n\t\treturn primary.length === 1 ? primary[0] : this.conventions.getPrimaryField()\n\t}\n\n\tprivate createDefaultPrimary(fieldName: string): FieldBuilder.Options {\n\t\treturn {\n\t\t\ttype: FieldBuilder.Type.Column,\n\t\t\toptions: {\n\t\t\t\tnullable: false,\n\t\t\t\ttype: Model.ColumnType.Uuid,\n\t\t\t\tprimary: true,\n\t\t\t},\n\t\t}\n\t}\n\n\tprivate createUnique(\n\t\tentityName: string,\n\t\toptions: EntityBuilder.EntityOptions,\n\t\tfieldOptions: FieldBuilder.Map,\n\t): Model.Uniques {\n\t\tconst unique: Model.UniqueConstraint[] = []\n\n\t\tfor (const singleUnique of options.unique || []) {\n\t\t\tunique.push(singleUnique)\n\t\t}\n\t\tfor (let fieldName in fieldOptions) {\n\t\t\tconst options = fieldOptions[fieldName]\n\n\t\t\tif (options.type === FieldBuilder.Type.Column && options.options.unique) {\n\t\t\t\tunique.push({ fields: [fieldName] })\n\t\t\t}\n\t\t}\n\t\treturn unique\n\t}\n}\n"],"names":["SchemaBuilderError","Model","options"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaBuilderInternal.js","sources":["../../../../../../packages/schema-definition/src/model/builder/SchemaBuilderInternal.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { NamingConventions } from '@contember/schema-utils'\nimport EntityBuilder from './EntityBuilder'\nimport { SchemaBuilderError } from './SchemaBuilderError'\nimport FieldProcessor from './internal/FieldProcessor'\nimport ColumnProcessor from './internal/ColumnProcessor'\nimport ManyHasManyProcessor from './internal/ManyHasManyProcessor'\nimport OneHasOneProcessor from './internal/OneHasOneProcessor'\nimport OneHasManyProcessor from './internal/OneHasManyProcessor'\nimport ManyHasOneProcessor from './internal/ManyHasOneProcessor'\nimport FieldBuilder from './FieldBuilder'\n\nexport default class SchemaBuilderInternal {\n\tprivate entities: { [name: string]: Model.Entity & { fields: Record<string, Model.AnyField> } } = {}\n\n\tprivate fieldOptions: { [entity: string]: FieldBuilder.Map } = {}\n\n\tprivate enums: { [name: string]: string[] } = {}\n\n\tconstructor(private readonly conventions: NamingConventions) {}\n\n\tpublic addEntity(name: string, options: EntityBuilder.EntityOptions, fieldOptions: FieldBuilder.Map): void {\n\t\tthis.fieldOptions[name] = fieldOptions\n\t\tconst primaryName = this.getPrimaryFieldName(options, name, fieldOptions)\n\t\tif (!fieldOptions[primaryName]) {\n\t\t\tfieldOptions[primaryName] = this.createDefaultPrimary(primaryName)\n\t\t}\n\t\tconst primaryField = fieldOptions[primaryName]\n\t\tif (primaryField.type !== FieldBuilder.Type.Column) {\n\t\t\tthrow new SchemaBuilderError(`${name}: Primary field must be a column`)\n\t\t}\n\t\tprimaryField.options.primary = true\n\t\tprimaryField.options.nullable = false\n\n\t\tthis.entities[name] = {\n\t\t\tname: name,\n\t\t\tprimary: primaryName,\n\t\t\tprimaryColumn: primaryField.options.columnName || this.conventions.getColumnName(primaryName),\n\t\t\tunique: this.createUnique(name, options, fieldOptions),\n\t\t\tfields: {},\n\t\t\tindexes: [],\n\t\t\ttableName: options.tableName || this.conventions.getTableName(name),\n\t\t\teventLog: {\n\t\t\t\tenabled: true,\n\t\t\t},\n\t\t\t...(options.orderBy !== undefined ? { orderBy: options.orderBy } : {}),\n\t\t}\n\t}\n\n\tpublic addEnum(name: string, values: string[]): void {\n\t\tthis.enums[name] = values\n\t}\n\n\tpublic createSchema(): Model.Schema {\n\t\tfor (let entityName in this.fieldOptions) {\n\t\t\tlet primaryField = this.entities[entityName].primary\n\t\t\tthis.processField(entityName, primaryField)\n\t\t\tfor (let fieldName in this.fieldOptions[entityName]) {\n\t\t\t\tif (fieldName === primaryField) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tthis.processField(entityName, fieldName)\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tenums: this.enums,\n\t\t\tentities: this.entities,\n\t\t}\n\t}\n\n\tprivate processField(entityName: string, fieldName: string): void {\n\t\tconst processor = this.createProcessor(entityName, fieldName)\n\t\tprocessor.process(\n\t\t\tentityName,\n\t\t\tfieldName,\n\t\t\tthis.fieldOptions[entityName][fieldName].options,\n\t\t\tthis.registerField.bind(this),\n\t\t)\n\t}\n\n\tprivate createProcessor(entityName: string, fieldName: string): FieldProcessor<any> {\n\t\tconst field: FieldBuilder.Options = this.fieldOptions[entityName][fieldName]\n\n\t\tif (field.type === FieldBuilder.Type.Column) {\n\t\t\treturn new ColumnProcessor(this.conventions)\n\t\t}\n\t\tthis.checkTarget(entityName, fieldName, field.options)\n\t\tswitch (field.type) {\n\t\t\tcase FieldBuilder.Type.ManyHasMany:\n\t\t\t\treturn new ManyHasManyProcessor(this.conventions)\n\t\t\tcase FieldBuilder.Type.OneHasOne:\n\t\t\t\treturn new OneHasOneProcessor(this.conventions)\n\t\t\tcase FieldBuilder.Type.OneHasMany:\n\t\t\t\treturn new OneHasManyProcessor(this.conventions)\n\t\t\tcase FieldBuilder.Type.ManyHasOne:\n\t\t\t\treturn new ManyHasOneProcessor(this.conventions)\n\t\t}\n\n\t\tthrow new Error()\n\t}\n\n\tprivate checkTarget(entityName: string, fieldName: string, options: { target: string }) {\n\t\tif (!this.entities[options.target]) {\n\t\t\tthrow new SchemaBuilderError(`${entityName}::${fieldName}: undefined target entity ${options.target}`)\n\t\t}\n\t}\n\n\tprivate registerField(entityName: string, field: Model.AnyColumn | Model.AnyRelation) {\n\t\tif (!this.entities[entityName]) {\n\t\t\tthrow new SchemaBuilderError(`Undefined entity ${entityName}`)\n\t\t}\n\t\tif (this.entities[entityName].fields[field.name]) {\n\t\t\tthrow new SchemaBuilderError(`${entityName}: Field ${field.name} is already defined`)\n\t\t}\n\t\tthis.entities[entityName].fields[field.name] = field\n\t}\n\n\tprivate getPrimaryFieldName(\n\t\tentityOptions: EntityBuilder.EntityOptions,\n\t\tentityName: string,\n\t\tfields: FieldBuilder.Map,\n\t) {\n\t\tlet primary: string[] = []\n\t\tif (entityOptions.primary) {\n\t\t\tprimary.push(entityOptions.primary)\n\t\t}\n\t\tfor (let name in fields) {\n\t\t\tconst field: FieldBuilder.Options = fields[name]\n\t\t\tif (field.type !== FieldBuilder.Type.Column) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif (!field.options.primary) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif (!primary.includes(name)) {\n\t\t\t\tprimary.push(name)\n\t\t\t}\n\t\t}\n\t\tif (primary.length > 1) {\n\t\t\tthrow new SchemaBuilderError(`${entityName}: Only single column can be a primary. Found: ${primary.join(', ')}`)\n\t\t}\n\t\treturn primary.length === 1 ? primary[0] : this.conventions.getPrimaryField()\n\t}\n\n\tprivate createDefaultPrimary(fieldName: string): FieldBuilder.Options {\n\t\treturn {\n\t\t\ttype: FieldBuilder.Type.Column,\n\t\t\toptions: {\n\t\t\t\tnullable: false,\n\t\t\t\ttype: Model.ColumnType.Uuid,\n\t\t\t\tprimary: true,\n\t\t\t},\n\t\t}\n\t}\n\n\tprivate createUnique(\n\t\tentityName: string,\n\t\toptions: EntityBuilder.EntityOptions,\n\t\tfieldOptions: FieldBuilder.Map,\n\t): Model.Uniques {\n\t\tconst unique: Model.UniqueConstraint[] = []\n\n\t\tfor (const singleUnique of options.unique || []) {\n\t\t\tunique.push(singleUnique)\n\t\t}\n\t\tfor (let fieldName in fieldOptions) {\n\t\t\tconst options = fieldOptions[fieldName]\n\n\t\t\tif (options.type === FieldBuilder.Type.Column && options.options.unique) {\n\t\t\t\tunique.push({ fields: [fieldName] })\n\t\t\t}\n\t\t}\n\t\treturn unique\n\t}\n}\n"],"names":["options"],"mappings":"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"}
1
+ {"version":3,"file":"SchemaBuilderInternal.js","sources":["../../../../../../packages/schema-definition/src/model/builder/SchemaBuilderInternal.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { NamingConventions } from '@contember/schema-utils'\nimport EntityBuilder from './EntityBuilder.js'\nimport { SchemaBuilderError } from './SchemaBuilderError.js'\nimport FieldProcessor from './internal/FieldProcessor.js'\nimport ColumnProcessor from './internal/ColumnProcessor.js'\nimport ManyHasManyProcessor from './internal/ManyHasManyProcessor.js'\nimport OneHasOneProcessor from './internal/OneHasOneProcessor.js'\nimport OneHasManyProcessor from './internal/OneHasManyProcessor.js'\nimport ManyHasOneProcessor from './internal/ManyHasOneProcessor.js'\nimport FieldBuilder from './FieldBuilder.js'\n\nexport default class SchemaBuilderInternal {\n\tprivate entities: { [name: string]: Model.Entity & { fields: Record<string, Model.AnyField> } } = {}\n\n\tprivate fieldOptions: { [entity: string]: FieldBuilder.Map } = {}\n\n\tprivate enums: { [name: string]: string[] } = {}\n\n\tconstructor(private readonly conventions: NamingConventions) {}\n\n\tpublic addEntity(name: string, options: EntityBuilder.EntityOptions, fieldOptions: FieldBuilder.Map): void {\n\t\tthis.fieldOptions[name] = fieldOptions\n\t\tconst primaryName = this.getPrimaryFieldName(options, name, fieldOptions)\n\t\tif (!fieldOptions[primaryName]) {\n\t\t\tfieldOptions[primaryName] = this.createDefaultPrimary(primaryName)\n\t\t}\n\t\tconst primaryField = fieldOptions[primaryName]\n\t\tif (primaryField.type !== FieldBuilder.Type.Column) {\n\t\t\tthrow new SchemaBuilderError(`${name}: Primary field must be a column`)\n\t\t}\n\t\tprimaryField.options.primary = true\n\t\tprimaryField.options.nullable = false\n\n\t\tthis.entities[name] = {\n\t\t\tname: name,\n\t\t\tprimary: primaryName,\n\t\t\tprimaryColumn: primaryField.options.columnName || this.conventions.getColumnName(primaryName),\n\t\t\tunique: this.createUnique(name, options, fieldOptions),\n\t\t\tfields: {},\n\t\t\tindexes: [],\n\t\t\ttableName: options.tableName || this.conventions.getTableName(name),\n\t\t\teventLog: {\n\t\t\t\tenabled: true,\n\t\t\t},\n\t\t\t...(options.orderBy !== undefined ? { orderBy: options.orderBy } : {}),\n\t\t}\n\t}\n\n\tpublic addEnum(name: string, values: string[]): void {\n\t\tthis.enums[name] = values\n\t}\n\n\tpublic createSchema(): Model.Schema {\n\t\tfor (let entityName in this.fieldOptions) {\n\t\t\tlet primaryField = this.entities[entityName].primary\n\t\t\tthis.processField(entityName, primaryField)\n\t\t\tfor (let fieldName in this.fieldOptions[entityName]) {\n\t\t\t\tif (fieldName === primaryField) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tthis.processField(entityName, fieldName)\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tenums: this.enums,\n\t\t\tentities: this.entities,\n\t\t}\n\t}\n\n\tprivate processField(entityName: string, fieldName: string): void {\n\t\tconst processor = this.createProcessor(entityName, fieldName)\n\t\tprocessor.process(\n\t\t\tentityName,\n\t\t\tfieldName,\n\t\t\tthis.fieldOptions[entityName][fieldName].options,\n\t\t\tthis.registerField.bind(this),\n\t\t)\n\t}\n\n\tprivate createProcessor(entityName: string, fieldName: string): FieldProcessor<any> {\n\t\tconst field: FieldBuilder.Options = this.fieldOptions[entityName][fieldName]\n\n\t\tif (field.type === FieldBuilder.Type.Column) {\n\t\t\treturn new ColumnProcessor(this.conventions)\n\t\t}\n\t\tthis.checkTarget(entityName, fieldName, field.options)\n\t\tswitch (field.type) {\n\t\t\tcase FieldBuilder.Type.ManyHasMany:\n\t\t\t\treturn new ManyHasManyProcessor(this.conventions)\n\t\t\tcase FieldBuilder.Type.OneHasOne:\n\t\t\t\treturn new OneHasOneProcessor(this.conventions)\n\t\t\tcase FieldBuilder.Type.OneHasMany:\n\t\t\t\treturn new OneHasManyProcessor(this.conventions)\n\t\t\tcase FieldBuilder.Type.ManyHasOne:\n\t\t\t\treturn new ManyHasOneProcessor(this.conventions)\n\t\t}\n\n\t\tthrow new Error()\n\t}\n\n\tprivate checkTarget(entityName: string, fieldName: string, options: { target: string }) {\n\t\tif (!this.entities[options.target]) {\n\t\t\tthrow new SchemaBuilderError(`${entityName}::${fieldName}: undefined target entity ${options.target}`)\n\t\t}\n\t}\n\n\tprivate registerField(entityName: string, field: Model.AnyColumn | Model.AnyRelation) {\n\t\tif (!this.entities[entityName]) {\n\t\t\tthrow new SchemaBuilderError(`Undefined entity ${entityName}`)\n\t\t}\n\t\tif (this.entities[entityName].fields[field.name]) {\n\t\t\tthrow new SchemaBuilderError(`${entityName}: Field ${field.name} is already defined`)\n\t\t}\n\t\tthis.entities[entityName].fields[field.name] = field\n\t}\n\n\tprivate getPrimaryFieldName(\n\t\tentityOptions: EntityBuilder.EntityOptions,\n\t\tentityName: string,\n\t\tfields: FieldBuilder.Map,\n\t) {\n\t\tlet primary: string[] = []\n\t\tif (entityOptions.primary) {\n\t\t\tprimary.push(entityOptions.primary)\n\t\t}\n\t\tfor (let name in fields) {\n\t\t\tconst field: FieldBuilder.Options = fields[name]\n\t\t\tif (field.type !== FieldBuilder.Type.Column) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif (!field.options.primary) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif (!primary.includes(name)) {\n\t\t\t\tprimary.push(name)\n\t\t\t}\n\t\t}\n\t\tif (primary.length > 1) {\n\t\t\tthrow new SchemaBuilderError(`${entityName}: Only single column can be a primary. Found: ${primary.join(', ')}`)\n\t\t}\n\t\treturn primary.length === 1 ? primary[0] : this.conventions.getPrimaryField()\n\t}\n\n\tprivate createDefaultPrimary(fieldName: string): FieldBuilder.Options {\n\t\treturn {\n\t\t\ttype: FieldBuilder.Type.Column,\n\t\t\toptions: {\n\t\t\t\tnullable: false,\n\t\t\t\ttype: Model.ColumnType.Uuid,\n\t\t\t\tprimary: true,\n\t\t\t},\n\t\t}\n\t}\n\n\tprivate createUnique(\n\t\tentityName: string,\n\t\toptions: EntityBuilder.EntityOptions,\n\t\tfieldOptions: FieldBuilder.Map,\n\t): Model.Uniques {\n\t\tconst unique: Model.UniqueConstraint[] = []\n\n\t\tfor (const singleUnique of options.unique || []) {\n\t\t\tunique.push(singleUnique)\n\t\t}\n\t\tfor (let fieldName in fieldOptions) {\n\t\t\tconst options = fieldOptions[fieldName]\n\n\t\t\tif (options.type === FieldBuilder.Type.Column && options.options.unique) {\n\t\t\t\tunique.push({ fields: [fieldName] })\n\t\t\t}\n\t\t}\n\t\treturn unique\n\t}\n}\n"],"names":["options"],"mappings":";;;;;;;;;;;AAYA,MAAqB,sBAAsB;AAAA,EAO1C,YAA6B,aAAgC;AAAhC,SAAA,cAAA;AAN7B,kBAAA,MAAQ,YAA0F,EAAC;AAEnG,kBAAA,MAAQ,gBAAuD,EAAC;AAEhE,kBAAA,MAAQ,SAAsC,EAAC;AAAA,EAEe;AAAA,EAEvD,UAAU,MAAc,SAAsC,cAAsC;AAC1G,SAAK,aAAa,IAAI,IAAI;AAC1B,UAAM,cAAc,KAAK,oBAAoB,SAAS,MAAM,YAAY;AACxE,QAAI,CAAC,aAAa,WAAW,GAAG;AAC/B,mBAAa,WAAW,IAAI,KAAK,qBAAqB,WAAW;AAAA,IAClE;AACA,UAAM,eAAe,aAAa,WAAW;AAC7C,QAAI,aAAa,SAAS,aAAa,KAAK,QAAQ;AACnD,YAAM,IAAI,mBAAmB,GAAG,IAAI,kCAAkC;AAAA,IACvE;AACA,iBAAa,QAAQ,UAAU;AAC/B,iBAAa,QAAQ,WAAW;AAEhC,SAAK,SAAS,IAAI,IAAI;AAAA,MACrB;AAAA,MACA,SAAS;AAAA,MACT,eAAe,aAAa,QAAQ,cAAc,KAAK,YAAY,cAAc,WAAW;AAAA,MAC5F,QAAQ,KAAK,aAAa,MAAM,SAAS,YAAY;AAAA,MACrD,QAAQ,CAAA;AAAA,MACR,SAAS,CAAA;AAAA,MACT,WAAW,QAAQ,aAAa,KAAK,YAAY,aAAa,IAAI;AAAA,MAClE,UAAU;AAAA,QACT,SAAS;AAAA,MAAA;AAAA,MAEV,GAAI,QAAQ,YAAY,SAAY,EAAE,SAAS,QAAQ,YAAY,CAAA;AAAA,IAAC;AAAA,EAEtE;AAAA,EAEO,QAAQ,MAAc,QAAwB;AACpD,SAAK,MAAM,IAAI,IAAI;AAAA,EACpB;AAAA,EAEO,eAA6B;AACnC,aAAS,cAAc,KAAK,cAAc;AACzC,UAAI,eAAe,KAAK,SAAS,UAAU,EAAE;AAC7C,WAAK,aAAa,YAAY,YAAY;AAC1C,eAAS,aAAa,KAAK,aAAa,UAAU,GAAG;AACpD,YAAI,cAAc,cAAc;AAC/B;AAAA,QACD;AACA,aAAK,aAAa,YAAY,SAAS;AAAA,MACxC;AAAA,IACD;AAEA,WAAO;AAAA,MACN,OAAO,KAAK;AAAA,MACZ,UAAU,KAAK;AAAA,IAAA;AAAA,EAEjB;AAAA,EAEQ,aAAa,YAAoB,WAAyB;AACjE,UAAM,YAAY,KAAK,gBAAgB,YAAY,SAAS;AAC5D,cAAU;AAAA,MACT;AAAA,MACA;AAAA,MACA,KAAK,aAAa,UAAU,EAAE,SAAS,EAAE;AAAA,MACzC,KAAK,cAAc,KAAK,IAAI;AAAA,IAAA;AAAA,EAE9B;AAAA,EAEQ,gBAAgB,YAAoB,WAAwC;AACnF,UAAM,QAA8B,KAAK,aAAa,UAAU,EAAE,SAAS;AAE3E,QAAI,MAAM,SAAS,aAAa,KAAK,QAAQ;AAC5C,aAAO,IAAI,gBAAgB,KAAK,WAAW;AAAA,IAC5C;AACA,SAAK,YAAY,YAAY,WAAW,MAAM,OAAO;AACrD,YAAQ,MAAM,MAAA;AAAA,MACb,KAAK,aAAa,KAAK;AACtB,eAAO,IAAI,qBAAqB,KAAK,WAAW;AAAA,MACjD,KAAK,aAAa,KAAK;AACtB,eAAO,IAAI,mBAAmB,KAAK,WAAW;AAAA,MAC/C,KAAK,aAAa,KAAK;AACtB,eAAO,IAAI,oBAAoB,KAAK,WAAW;AAAA,MAChD,KAAK,aAAa,KAAK;AACtB,eAAO,IAAI,oBAAoB,KAAK,WAAW;AAAA,IAAA;AAGjD,UAAM,IAAI,MAAA;AAAA,EACX;AAAA,EAEQ,YAAY,YAAoB,WAAmB,SAA6B;AACvF,QAAI,CAAC,KAAK,SAAS,QAAQ,MAAM,GAAG;AACnC,YAAM,IAAI,mBAAmB,GAAG,UAAU,KAAK,SAAS,6BAA6B,QAAQ,MAAM,EAAE;AAAA,IACtG;AAAA,EACD;AAAA,EAEQ,cAAc,YAAoB,OAA4C;AACrF,QAAI,CAAC,KAAK,SAAS,UAAU,GAAG;AAC/B,YAAM,IAAI,mBAAmB,oBAAoB,UAAU,EAAE;AAAA,IAC9D;AACA,QAAI,KAAK,SAAS,UAAU,EAAE,OAAO,MAAM,IAAI,GAAG;AACjD,YAAM,IAAI,mBAAmB,GAAG,UAAU,WAAW,MAAM,IAAI,qBAAqB;AAAA,IACrF;AACA,SAAK,SAAS,UAAU,EAAE,OAAO,MAAM,IAAI,IAAI;AAAA,EAChD;AAAA,EAEQ,oBACP,eACA,YACA,QACC;AACD,QAAI,UAAoB,CAAA;AACxB,QAAI,cAAc,SAAS;AAC1B,cAAQ,KAAK,cAAc,OAAO;AAAA,IACnC;AACA,aAAS,QAAQ,QAAQ;AACxB,YAAM,QAA8B,OAAO,IAAI;AAC/C,UAAI,MAAM,SAAS,aAAa,KAAK,QAAQ;AAC5C;AAAA,MACD;AACA,UAAI,CAAC,MAAM,QAAQ,SAAS;AAC3B;AAAA,MACD;AACA,UAAI,CAAC,QAAQ,SAAS,IAAI,GAAG;AAC5B,gBAAQ,KAAK,IAAI;AAAA,MAClB;AAAA,IACD;AACA,QAAI,QAAQ,SAAS,GAAG;AACvB,YAAM,IAAI,mBAAmB,GAAG,UAAU,iDAAiD,QAAQ,KAAK,IAAI,CAAC,EAAE;AAAA,IAChH;AACA,WAAO,QAAQ,WAAW,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,gBAAA;AAAA,EAC7D;AAAA,EAEQ,qBAAqB,WAAyC;AACrE,WAAO;AAAA,MACN,MAAM,aAAa,KAAK;AAAA,MACxB,SAAS;AAAA,QACR,UAAU;AAAA,QACV,MAAM,MAAM,WAAW;AAAA,QACvB,SAAS;AAAA,MAAA;AAAA,IACV;AAAA,EAEF;AAAA,EAEQ,aACP,YACA,SACA,cACgB;AAChB,UAAM,SAAmC,CAAA;AAEzC,eAAW,gBAAgB,QAAQ,UAAU,CAAA,GAAI;AAChD,aAAO,KAAK,YAAY;AAAA,IACzB;AACA,aAAS,aAAa,cAAc;AACnC,YAAMA,WAAU,aAAa,SAAS;AAEtC,UAAIA,SAAQ,SAAS,aAAa,KAAK,UAAUA,SAAQ,QAAQ,QAAQ;AACxE,eAAO,KAAK,EAAE,QAAQ,CAAC,SAAS,GAAG;AAAA,MACpC;AAAA,IACD;AACA,WAAO;AAAA,EACR;AACD;"}