@baseplate-dev/project-builder-lib 0.5.3 → 0.6.1

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 (369) hide show
  1. package/CHANGELOG.md +69 -0
  2. package/dist/definition/index.d.ts +0 -1
  3. package/dist/definition/index.d.ts.map +1 -1
  4. package/dist/definition/index.js +0 -1
  5. package/dist/definition/index.js.map +1 -1
  6. package/dist/definition/model/model-field-utils.js +2 -2
  7. package/dist/definition/model/model-field-utils.js.map +1 -1
  8. package/dist/definition/model/model-utils.d.ts.map +1 -1
  9. package/dist/definition/model/model-utils.js +2 -2
  10. package/dist/definition/model/model-utils.js.map +1 -1
  11. package/dist/definition/project-definition-container.d.ts +21 -12
  12. package/dist/definition/project-definition-container.d.ts.map +1 -1
  13. package/dist/definition/project-definition-container.js +42 -23
  14. package/dist/definition/project-definition-container.js.map +1 -1
  15. package/dist/migrations/index.d.ts.map +1 -1
  16. package/dist/migrations/index.js +6 -0
  17. package/dist/migrations/index.js.map +1 -1
  18. package/dist/migrations/migration-024-graphql-object-type-field-auth.d.ts +30 -0
  19. package/dist/migrations/migration-024-graphql-object-type-field-auth.d.ts.map +1 -0
  20. package/dist/migrations/migration-024-graphql-object-type-field-auth.js +54 -0
  21. package/dist/migrations/migration-024-graphql-object-type-field-auth.js.map +1 -0
  22. package/dist/migrations/migration-025-service-method-auth.d.ts +44 -0
  23. package/dist/migrations/migration-025-service-method-auth.d.ts.map +1 -0
  24. package/dist/migrations/migration-025-service-method-auth.js +62 -0
  25. package/dist/migrations/migration-025-service-method-auth.js.map +1 -0
  26. package/dist/migrations/migration-026-query-shared-roles.d.ts +32 -0
  27. package/dist/migrations/migration-026-query-shared-roles.d.ts.map +1 -0
  28. package/dist/migrations/migration-026-query-shared-roles.js +48 -0
  29. package/dist/migrations/migration-026-query-shared-roles.js.map +1 -0
  30. package/dist/parser/apply-definition-fixes.d.ts +13 -0
  31. package/dist/parser/apply-definition-fixes.d.ts.map +1 -0
  32. package/dist/parser/apply-definition-fixes.js +25 -0
  33. package/dist/parser/apply-definition-fixes.js.map +1 -0
  34. package/dist/parser/clean-default-values.d.ts +14 -0
  35. package/dist/parser/clean-default-values.d.ts.map +1 -0
  36. package/dist/parser/clean-default-values.js +24 -0
  37. package/dist/parser/clean-default-values.js.map +1 -0
  38. package/dist/parser/collect-definition-issues.d.ts +36 -0
  39. package/dist/parser/collect-definition-issues.d.ts.map +1 -0
  40. package/dist/parser/collect-definition-issues.js +94 -0
  41. package/dist/parser/collect-definition-issues.js.map +1 -0
  42. package/dist/parser/collect-expression-issues.d.ts +17 -0
  43. package/dist/parser/collect-expression-issues.d.ts.map +1 -0
  44. package/dist/parser/collect-expression-issues.js +33 -0
  45. package/dist/parser/collect-expression-issues.js.map +1 -0
  46. package/dist/parser/definition-issue-checkers/mutation-roles-checker.d.ts +11 -0
  47. package/dist/parser/definition-issue-checkers/mutation-roles-checker.d.ts.map +1 -0
  48. package/dist/parser/definition-issue-checkers/mutation-roles-checker.js +41 -0
  49. package/dist/parser/definition-issue-checkers/mutation-roles-checker.js.map +1 -0
  50. package/dist/parser/definition-issue-checkers/relation-type-mismatch-checker.d.ts +10 -0
  51. package/dist/parser/definition-issue-checkers/relation-type-mismatch-checker.d.ts.map +1 -0
  52. package/dist/parser/definition-issue-checkers/relation-type-mismatch-checker.js +36 -0
  53. package/dist/parser/definition-issue-checkers/relation-type-mismatch-checker.js.map +1 -0
  54. package/dist/parser/definition-issue-utils.d.ts +23 -0
  55. package/dist/parser/definition-issue-utils.d.ts.map +1 -0
  56. package/dist/parser/definition-issue-utils.js +33 -0
  57. package/dist/parser/definition-issue-utils.js.map +1 -0
  58. package/dist/parser/index.d.ts +9 -0
  59. package/dist/parser/index.d.ts.map +1 -1
  60. package/dist/parser/index.js +8 -0
  61. package/dist/parser/index.js.map +1 -1
  62. package/dist/parser/parser.d.ts.map +1 -1
  63. package/dist/parser/parser.js +7 -2
  64. package/dist/parser/parser.js.map +1 -1
  65. package/dist/parser/schema-structure.d.ts +53 -0
  66. package/dist/parser/schema-structure.d.ts.map +1 -0
  67. package/dist/parser/schema-structure.js +171 -0
  68. package/dist/parser/schema-structure.js.map +1 -0
  69. package/dist/parser/transform-data-with-schema.d.ts +35 -0
  70. package/dist/parser/transform-data-with-schema.d.ts.map +1 -0
  71. package/dist/parser/transform-data-with-schema.js +140 -0
  72. package/dist/parser/transform-data-with-schema.js.map +1 -0
  73. package/dist/parser/types.d.ts +6 -3
  74. package/dist/parser/types.d.ts.map +1 -1
  75. package/dist/parser/walk-data-with-schema.d.ts +46 -0
  76. package/dist/parser/walk-data-with-schema.d.ts.map +1 -0
  77. package/dist/parser/walk-data-with-schema.js +140 -0
  78. package/dist/parser/walk-data-with-schema.js.map +1 -0
  79. package/dist/parser/walk-schema-structure.d.ts +60 -0
  80. package/dist/parser/walk-schema-structure.d.ts.map +1 -0
  81. package/dist/parser/walk-schema-structure.js +163 -0
  82. package/dist/parser/walk-schema-structure.js.map +1 -0
  83. package/dist/plugins/imports/loader.d.ts +1 -1
  84. package/dist/plugins/imports/loader.d.ts.map +1 -1
  85. package/dist/plugins/imports/loader.js +2 -2
  86. package/dist/plugins/imports/loader.js.map +1 -1
  87. package/dist/plugins/imports/types.d.ts +1 -1
  88. package/dist/plugins/imports/types.d.ts.map +1 -1
  89. package/dist/plugins/metadata/types.d.ts +1 -1
  90. package/dist/plugins/metadata/types.js +1 -1
  91. package/dist/plugins/plugins.test-utils.d.ts +15 -0
  92. package/dist/plugins/plugins.test-utils.d.ts.map +1 -1
  93. package/dist/plugins/plugins.test-utils.js +24 -0
  94. package/dist/plugins/plugins.test-utils.js.map +1 -1
  95. package/dist/plugins/spec/config-spec.d.ts +1 -0
  96. package/dist/plugins/spec/config-spec.d.ts.map +1 -1
  97. package/dist/plugins/spec/config-spec.js +1 -0
  98. package/dist/plugins/spec/config-spec.js.map +1 -1
  99. package/dist/plugins/store/store.d.ts +6 -1
  100. package/dist/plugins/store/store.d.ts.map +1 -1
  101. package/dist/plugins/store/store.js +9 -1
  102. package/dist/plugins/store/store.js.map +1 -1
  103. package/dist/references/definition-ref-registry.d.ts +105 -0
  104. package/dist/references/definition-ref-registry.d.ts.map +1 -0
  105. package/dist/references/definition-ref-registry.js +40 -0
  106. package/dist/references/definition-ref-registry.js.map +1 -0
  107. package/dist/references/deserialize-schema.d.ts +4 -6
  108. package/dist/references/deserialize-schema.d.ts.map +1 -1
  109. package/dist/references/deserialize-schema.js +4 -5
  110. package/dist/references/deserialize-schema.js.map +1 -1
  111. package/dist/references/expression-types.d.ts +46 -14
  112. package/dist/references/expression-types.d.ts.map +1 -1
  113. package/dist/references/expression-types.js +17 -0
  114. package/dist/references/expression-types.js.map +1 -1
  115. package/dist/references/extend-parser-context-with-refs.d.ts +32 -2
  116. package/dist/references/extend-parser-context-with-refs.d.ts.map +1 -1
  117. package/dist/references/extend-parser-context-with-refs.js +123 -163
  118. package/dist/references/extend-parser-context-with-refs.js.map +1 -1
  119. package/dist/references/extract-definition-refs.d.ts +9 -8
  120. package/dist/references/extract-definition-refs.d.ts.map +1 -1
  121. package/dist/references/extract-definition-refs.js +110 -26
  122. package/dist/references/extract-definition-refs.js.map +1 -1
  123. package/dist/references/fix-ref-deletions.d.ts +6 -6
  124. package/dist/references/fix-ref-deletions.d.ts.map +1 -1
  125. package/dist/references/fix-ref-deletions.js +2 -2
  126. package/dist/references/fix-ref-deletions.js.map +1 -1
  127. package/dist/references/index.d.ts +3 -0
  128. package/dist/references/index.d.ts.map +1 -1
  129. package/dist/references/index.js +3 -0
  130. package/dist/references/index.js.map +1 -1
  131. package/dist/references/parse-schema-with-references.d.ts +8 -6
  132. package/dist/references/parse-schema-with-references.d.ts.map +1 -1
  133. package/dist/references/parse-schema-with-references.js +10 -12
  134. package/dist/references/parse-schema-with-references.js.map +1 -1
  135. package/dist/references/ref-schema-visitor.d.ts +33 -0
  136. package/dist/references/ref-schema-visitor.d.ts.map +1 -0
  137. package/dist/references/ref-schema-visitor.js +61 -0
  138. package/dist/references/ref-schema-visitor.js.map +1 -0
  139. package/dist/references/resolve-slots.d.ts +1 -1
  140. package/dist/references/resolve-slots.d.ts.map +1 -1
  141. package/dist/references/serialize-schema.d.ts +9 -2
  142. package/dist/references/serialize-schema.d.ts.map +1 -1
  143. package/dist/references/serialize-schema.js +20 -4
  144. package/dist/references/serialize-schema.js.map +1 -1
  145. package/dist/schema/apps/web/admin/admin.d.ts +22 -37
  146. package/dist/schema/apps/web/admin/admin.d.ts.map +1 -1
  147. package/dist/schema/apps/web/admin/sections/crud-actions/admin-crud-action.d.ts +6 -15
  148. package/dist/schema/apps/web/admin/sections/crud-actions/admin-crud-action.d.ts.map +1 -1
  149. package/dist/schema/apps/web/admin/sections/crud-actions/admin-crud-action.js +3 -8
  150. package/dist/schema/apps/web/admin/sections/crud-actions/admin-crud-action.js.map +1 -1
  151. package/dist/schema/apps/web/admin/sections/crud-columns/admin-crud-column.d.ts +6 -15
  152. package/dist/schema/apps/web/admin/sections/crud-columns/admin-crud-column.d.ts.map +1 -1
  153. package/dist/schema/apps/web/admin/sections/crud-columns/admin-crud-column.js +3 -8
  154. package/dist/schema/apps/web/admin/sections/crud-columns/admin-crud-column.js.map +1 -1
  155. package/dist/schema/apps/web/admin/sections/crud-form/admin-crud-input.d.ts +9 -15
  156. package/dist/schema/apps/web/admin/sections/crud-form/admin-crud-input.d.ts.map +1 -1
  157. package/dist/schema/apps/web/admin/sections/crud-form/admin-crud-input.js +3 -8
  158. package/dist/schema/apps/web/admin/sections/crud-form/admin-crud-input.js.map +1 -1
  159. package/dist/schema/apps/web/admin/sections/crud.d.ts +6 -6
  160. package/dist/schema/apps/web/web-app.d.ts +32 -47
  161. package/dist/schema/apps/web/web-app.d.ts.map +1 -1
  162. package/dist/schema/creator/definition-default-registry.d.ts +22 -0
  163. package/dist/schema/creator/definition-default-registry.d.ts.map +1 -0
  164. package/dist/schema/creator/definition-default-registry.js +18 -0
  165. package/dist/schema/creator/definition-default-registry.js.map +1 -0
  166. package/dist/schema/creator/definition-fix-registry.d.ts +45 -0
  167. package/dist/schema/creator/definition-fix-registry.d.ts.map +1 -0
  168. package/dist/schema/creator/definition-fix-registry.js +41 -0
  169. package/dist/schema/creator/definition-fix-registry.js.map +1 -0
  170. package/dist/schema/creator/definition-issue-checker-spec.d.ts +37 -0
  171. package/dist/schema/creator/definition-issue-checker-spec.d.ts.map +1 -0
  172. package/dist/schema/creator/definition-issue-checker-spec.js +28 -0
  173. package/dist/schema/creator/definition-issue-checker-spec.js.map +1 -0
  174. package/dist/schema/creator/definition-issue-checkers.d.ts +16 -0
  175. package/dist/schema/creator/definition-issue-checkers.d.ts.map +1 -0
  176. package/dist/schema/creator/definition-issue-checkers.js +35 -0
  177. package/dist/schema/creator/definition-issue-checkers.js.map +1 -0
  178. package/dist/schema/creator/definition-issue-registry.d.ts +54 -0
  179. package/dist/schema/creator/definition-issue-registry.d.ts.map +1 -0
  180. package/dist/schema/creator/definition-issue-registry.js +47 -0
  181. package/dist/schema/creator/definition-issue-registry.js.map +1 -0
  182. package/dist/schema/creator/definition-issue-types.d.ts +53 -0
  183. package/dist/schema/creator/definition-issue-types.d.ts.map +1 -0
  184. package/dist/schema/creator/definition-issue-types.js +2 -0
  185. package/dist/schema/creator/definition-issue-types.js.map +1 -0
  186. package/dist/schema/creator/extend-parser-context-with-defaults.d.ts +20 -4
  187. package/dist/schema/creator/extend-parser-context-with-defaults.d.ts.map +1 -1
  188. package/dist/schema/creator/extend-parser-context-with-defaults.js +24 -42
  189. package/dist/schema/creator/extend-parser-context-with-defaults.js.map +1 -1
  190. package/dist/schema/creator/index.d.ts +6 -0
  191. package/dist/schema/creator/index.d.ts.map +1 -1
  192. package/dist/schema/creator/index.js +5 -0
  193. package/dist/schema/creator/index.js.map +1 -1
  194. package/dist/schema/creator/schema-creator.d.ts.map +1 -1
  195. package/dist/schema/creator/schema-creator.js +18 -4
  196. package/dist/schema/creator/schema-creator.js.map +1 -1
  197. package/dist/schema/creator/types.d.ts +3 -30
  198. package/dist/schema/creator/types.d.ts.map +1 -1
  199. package/dist/schema/models/authorizer/authorizer-expression-acorn-parser.d.ts.map +1 -1
  200. package/dist/schema/models/authorizer/authorizer-expression-acorn-parser.js +116 -25
  201. package/dist/schema/models/authorizer/authorizer-expression-acorn-parser.js.map +1 -1
  202. package/dist/schema/models/authorizer/authorizer-expression-ast.d.ts +82 -1
  203. package/dist/schema/models/authorizer/authorizer-expression-ast.d.ts.map +1 -1
  204. package/dist/schema/models/authorizer/authorizer-expression-ast.js.map +1 -1
  205. package/dist/schema/models/authorizer/authorizer-expression-parser.d.ts +8 -9
  206. package/dist/schema/models/authorizer/authorizer-expression-parser.d.ts.map +1 -1
  207. package/dist/schema/models/authorizer/authorizer-expression-parser.js +28 -35
  208. package/dist/schema/models/authorizer/authorizer-expression-parser.js.map +1 -1
  209. package/dist/schema/models/authorizer/authorizer-expression-validator.d.ts +42 -4
  210. package/dist/schema/models/authorizer/authorizer-expression-validator.d.ts.map +1 -1
  211. package/dist/schema/models/authorizer/authorizer-expression-validator.js +119 -18
  212. package/dist/schema/models/authorizer/authorizer-expression-validator.js.map +1 -1
  213. package/dist/schema/models/graphql.d.ts +42 -111
  214. package/dist/schema/models/graphql.d.ts.map +1 -1
  215. package/dist/schema/models/graphql.js +59 -19
  216. package/dist/schema/models/graphql.js.map +1 -1
  217. package/dist/schema/models/models.d.ts +1134 -343
  218. package/dist/schema/models/models.d.ts.map +1 -1
  219. package/dist/schema/models/models.js +258 -86
  220. package/dist/schema/models/models.js.map +1 -1
  221. package/dist/schema/plugins/definition.d.ts +2 -30
  222. package/dist/schema/plugins/definition.d.ts.map +1 -1
  223. package/dist/schema/plugins/definition.js +26 -15
  224. package/dist/schema/plugins/definition.js.map +1 -1
  225. package/dist/schema/project-definition.d.ts +532 -186
  226. package/dist/schema/project-definition.d.ts.map +1 -1
  227. package/dist/schema/project-definition.js +15 -3
  228. package/dist/schema/project-definition.js.map +1 -1
  229. package/dist/schema/settings/general.d.ts +1 -1
  230. package/dist/schema/settings/general.d.ts.map +1 -1
  231. package/dist/schema/settings/general.js +4 -1
  232. package/dist/schema/settings/general.js.map +1 -1
  233. package/dist/schema/settings/settings.d.ts +3 -3
  234. package/dist/schema/settings/theme.d.ts +3 -3
  235. package/dist/testing/definition-helpers.test-helper.d.ts +12 -0
  236. package/dist/testing/definition-helpers.test-helper.d.ts.map +1 -0
  237. package/dist/testing/definition-helpers.test-helper.js +77 -0
  238. package/dist/testing/definition-helpers.test-helper.js.map +1 -0
  239. package/dist/testing/expression-stub-parser.test-helper.d.ts +59 -0
  240. package/dist/testing/expression-stub-parser.test-helper.d.ts.map +1 -0
  241. package/dist/testing/expression-stub-parser.test-helper.js +79 -0
  242. package/dist/testing/expression-stub-parser.test-helper.js.map +1 -0
  243. package/dist/testing/expression-warning-parser.test-helper.d.ts +39 -0
  244. package/dist/testing/expression-warning-parser.test-helper.d.ts.map +1 -0
  245. package/dist/testing/expression-warning-parser.test-helper.js +62 -0
  246. package/dist/testing/expression-warning-parser.test-helper.js.map +1 -0
  247. package/dist/testing/index.d.ts +5 -0
  248. package/dist/testing/index.d.ts.map +1 -0
  249. package/dist/testing/index.js +5 -0
  250. package/dist/testing/index.js.map +1 -0
  251. package/dist/testing/parser-context.test-helper.d.ts +8 -0
  252. package/dist/testing/parser-context.test-helper.d.ts.map +1 -0
  253. package/dist/testing/parser-context.test-helper.js +16 -0
  254. package/dist/testing/parser-context.test-helper.js.map +1 -0
  255. package/dist/{definition/project-definition-container.test-utils.d.ts → testing/project-definition-container.test-helper.d.ts} +4 -2
  256. package/dist/testing/project-definition-container.test-helper.d.ts.map +1 -0
  257. package/dist/{definition/project-definition-container.test-utils.js → testing/project-definition-container.test-helper.js} +11 -5
  258. package/dist/testing/project-definition-container.test-helper.js.map +1 -0
  259. package/dist/tools/assign-entity-ids.d.ts +17 -0
  260. package/dist/tools/assign-entity-ids.d.ts.map +1 -0
  261. package/dist/tools/assign-entity-ids.js +34 -0
  262. package/dist/tools/assign-entity-ids.js.map +1 -0
  263. package/dist/tools/entity-service/entity-navigation.d.ts +13 -0
  264. package/dist/tools/entity-service/entity-navigation.d.ts.map +1 -0
  265. package/dist/tools/entity-service/entity-navigation.js +84 -0
  266. package/dist/tools/entity-service/entity-navigation.js.map +1 -0
  267. package/dist/tools/entity-service/entity-read.d.ts +38 -0
  268. package/dist/tools/entity-service/entity-read.d.ts.map +1 -0
  269. package/dist/tools/entity-service/entity-read.js +56 -0
  270. package/dist/tools/entity-service/entity-read.js.map +1 -0
  271. package/dist/tools/entity-service/entity-type-map.d.ts +18 -0
  272. package/dist/tools/entity-service/entity-type-map.d.ts.map +1 -0
  273. package/dist/tools/entity-service/entity-type-map.js +75 -0
  274. package/dist/tools/entity-service/entity-type-map.js.map +1 -0
  275. package/dist/tools/entity-service/entity-write.d.ts +39 -0
  276. package/dist/tools/entity-service/entity-write.d.ts.map +1 -0
  277. package/dist/tools/entity-service/entity-write.js +99 -0
  278. package/dist/tools/entity-service/entity-write.js.map +1 -0
  279. package/dist/tools/entity-service/index.d.ts +5 -0
  280. package/dist/tools/entity-service/index.d.ts.map +1 -0
  281. package/dist/tools/entity-service/index.js +4 -0
  282. package/dist/tools/entity-service/index.js.map +1 -0
  283. package/dist/tools/entity-service/types.d.ts +41 -0
  284. package/dist/tools/entity-service/types.d.ts.map +1 -0
  285. package/dist/tools/entity-service/types.js +2 -0
  286. package/dist/tools/entity-service/types.js.map +1 -0
  287. package/dist/tools/index.d.ts +2 -1
  288. package/dist/tools/index.d.ts.map +1 -1
  289. package/dist/tools/index.js +2 -1
  290. package/dist/tools/index.js.map +1 -1
  291. package/dist/tools/merge-schema/diff-definition.d.ts +74 -0
  292. package/dist/tools/merge-schema/diff-definition.d.ts.map +1 -0
  293. package/dist/tools/merge-schema/diff-definition.js +163 -0
  294. package/dist/tools/merge-schema/diff-definition.js.map +1 -0
  295. package/dist/tools/merge-schema/entity-utils.d.ts +18 -0
  296. package/dist/tools/merge-schema/entity-utils.d.ts.map +1 -0
  297. package/dist/tools/merge-schema/entity-utils.js +42 -0
  298. package/dist/tools/merge-schema/entity-utils.js.map +1 -0
  299. package/dist/tools/merge-schema/index.d.ts +10 -0
  300. package/dist/tools/merge-schema/index.d.ts.map +1 -0
  301. package/dist/tools/merge-schema/index.js +7 -0
  302. package/dist/tools/merge-schema/index.js.map +1 -0
  303. package/dist/tools/merge-schema/merge-data-with-schema.d.ts +21 -0
  304. package/dist/tools/merge-schema/merge-data-with-schema.d.ts.map +1 -0
  305. package/dist/tools/merge-schema/merge-data-with-schema.js +168 -0
  306. package/dist/tools/merge-schema/merge-data-with-schema.js.map +1 -0
  307. package/dist/tools/merge-schema/merge-definition.d.ts +42 -0
  308. package/dist/tools/merge-schema/merge-definition.d.ts.map +1 -0
  309. package/dist/tools/merge-schema/merge-definition.js +53 -0
  310. package/dist/tools/merge-schema/merge-definition.js.map +1 -0
  311. package/dist/tools/merge-schema/merge-rule-registry.d.ts +47 -0
  312. package/dist/tools/merge-schema/merge-rule-registry.d.ts.map +1 -0
  313. package/dist/tools/merge-schema/merge-rule-registry.js +53 -0
  314. package/dist/tools/merge-schema/merge-rule-registry.js.map +1 -0
  315. package/dist/tools/merge-schema/walk-schema.d.ts +26 -0
  316. package/dist/tools/merge-schema/walk-schema.d.ts.map +1 -0
  317. package/dist/tools/merge-schema/walk-schema.js +94 -0
  318. package/dist/tools/merge-schema/walk-schema.js.map +1 -0
  319. package/dist/utils/definition-diff/definition-diff.js.map +1 -1
  320. package/dist/web/components/definition-diff-alert.d.ts +9 -0
  321. package/dist/web/components/definition-diff-alert.d.ts.map +1 -0
  322. package/dist/web/components/definition-diff-alert.js +17 -0
  323. package/dist/web/components/definition-diff-alert.js.map +1 -0
  324. package/dist/web/components/index.d.ts +1 -1
  325. package/dist/web/components/index.d.ts.map +1 -1
  326. package/dist/web/components/index.js +1 -1
  327. package/dist/web/components/index.js.map +1 -1
  328. package/dist/web/hooks/use-project-definition.d.ts +10 -2
  329. package/dist/web/hooks/use-project-definition.d.ts.map +1 -1
  330. package/dist/web/hooks/use-project-definition.js.map +1 -1
  331. package/dist/web/specs/entity-type-url-web-spec.d.ts +68 -0
  332. package/dist/web/specs/entity-type-url-web-spec.d.ts.map +1 -0
  333. package/dist/web/specs/entity-type-url-web-spec.js +27 -0
  334. package/dist/web/specs/entity-type-url-web-spec.js.map +1 -0
  335. package/dist/web/specs/index.d.ts +1 -0
  336. package/dist/web/specs/index.d.ts.map +1 -1
  337. package/dist/web/specs/index.js +1 -0
  338. package/dist/web/specs/index.js.map +1 -1
  339. package/package.json +12 -11
  340. package/dist/definition/project-definition-container.test-utils.d.ts.map +0 -1
  341. package/dist/definition/project-definition-container.test-utils.js.map +0 -1
  342. package/dist/references/collect-refs.d.ts +0 -24
  343. package/dist/references/collect-refs.d.ts.map +0 -1
  344. package/dist/references/collect-refs.js +0 -86
  345. package/dist/references/collect-refs.js.map +0 -1
  346. package/dist/references/markers.d.ts +0 -59
  347. package/dist/references/markers.d.ts.map +0 -1
  348. package/dist/references/markers.js +0 -29
  349. package/dist/references/markers.js.map +0 -1
  350. package/dist/references/strip-ref-markers.d.ts +0 -7
  351. package/dist/references/strip-ref-markers.d.ts.map +0 -1
  352. package/dist/references/strip-ref-markers.js +0 -25
  353. package/dist/references/strip-ref-markers.js.map +0 -1
  354. package/dist/schema/models/mocks.d.ts +0 -6
  355. package/dist/schema/models/mocks.d.ts.map +0 -1
  356. package/dist/schema/models/mocks.js +0 -55
  357. package/dist/schema/models/mocks.js.map +0 -1
  358. package/dist/tools/model-merger/index.d.ts +0 -2
  359. package/dist/tools/model-merger/index.d.ts.map +0 -1
  360. package/dist/tools/model-merger/index.js +0 -2
  361. package/dist/tools/model-merger/index.js.map +0 -1
  362. package/dist/tools/model-merger/model-merger.d.ts +0 -569
  363. package/dist/tools/model-merger/model-merger.d.ts.map +0 -1
  364. package/dist/tools/model-merger/model-merger.js +0 -319
  365. package/dist/tools/model-merger/model-merger.js.map +0 -1
  366. package/dist/web/components/model-merger-result-alert.d.ts +0 -8
  367. package/dist/web/components/model-merger-result-alert.d.ts.map +0 -1
  368. package/dist/web/components/model-merger-result-alert.js +0 -20
  369. package/dist/web/components/model-merger-result-alert.js.map +0 -1
@@ -0,0 +1,105 @@
1
+ import type { z } from 'zod';
2
+ import type { DefinitionEntityNameResolver } from './definition-ref-builder.js';
3
+ import type { ExpressionSlotMap, RefExpressionParser } from './expression-types.js';
4
+ import type { RefContextSlot } from './ref-context-slot.js';
5
+ import type { DefinitionEntityType, ReferenceOnDeleteAction, ReferencePath } from './types.js';
6
+ export interface EntitySchemaMeta {
7
+ readonly kind: 'entity';
8
+ readonly type: DefinitionEntityType;
9
+ readonly idPath: ReferencePath;
10
+ readonly getNameResolver?: (value: any) => DefinitionEntityNameResolver | string;
11
+ readonly parentSlot?: RefContextSlot;
12
+ readonly provides?: RefContextSlot;
13
+ }
14
+ export interface ReferenceSchemaMeta {
15
+ readonly kind: 'reference';
16
+ readonly type: DefinitionEntityType;
17
+ readonly onDelete: ReferenceOnDeleteAction;
18
+ readonly parentSlot?: RefContextSlot;
19
+ readonly provides?: RefContextSlot;
20
+ }
21
+ export interface ExpressionSchemaMeta {
22
+ readonly kind: 'expression';
23
+ readonly parser: RefExpressionParser<any, any, any>;
24
+ readonly slots?: ExpressionSlotMap<any>;
25
+ }
26
+ export interface RefContextSchemaMeta {
27
+ readonly kind: 'ref-context';
28
+ readonly slots: RefContextSlot[];
29
+ }
30
+ /**
31
+ * An entity annotation collected during the schema walk.
32
+ * Represents a single entity instance found in the parsed data.
33
+ */
34
+ export interface DefinitionEntityAnnotation {
35
+ path: ReferencePath;
36
+ id: string;
37
+ idPath: ReferencePath;
38
+ type: DefinitionEntityType;
39
+ nameResolver: DefinitionEntityNameResolver | string;
40
+ parentSlot?: RefContextSlot;
41
+ provides?: RefContextSlot;
42
+ }
43
+ /**
44
+ * A reference annotation collected during the schema walk.
45
+ */
46
+ export interface DefinitionReferenceAnnotation {
47
+ path: ReferencePath;
48
+ type: DefinitionEntityType;
49
+ onDelete: ReferenceOnDeleteAction;
50
+ parentSlot?: RefContextSlot;
51
+ provides?: RefContextSlot;
52
+ }
53
+ /**
54
+ * A slot annotation collected during the schema walk.
55
+ */
56
+ export interface DefinitionSlotAnnotation {
57
+ path: ReferencePath;
58
+ slot: RefContextSlot;
59
+ }
60
+ /**
61
+ * An expression annotation collected during the schema walk.
62
+ */
63
+ export interface DefinitionExpressionAnnotation {
64
+ path: ReferencePath;
65
+ value: unknown;
66
+ parser: RefExpressionParser<any, any, any>;
67
+ slots?: ExpressionSlotMap<any>;
68
+ }
69
+ /**
70
+ * All annotations collected during a single schema+data walk.
71
+ */
72
+ export interface CollectedRefs {
73
+ entities: DefinitionEntityAnnotation[];
74
+ references: DefinitionReferenceAnnotation[];
75
+ slots: DefinitionSlotAnnotation[];
76
+ expressions: DefinitionExpressionAnnotation[];
77
+ }
78
+ /**
79
+ * Discriminated union of all Baseplate schema metadata types.
80
+ *
81
+ * New metadata types can be added by:
82
+ * 1. Adding a new interface with a unique `kind`
83
+ * 2. Adding it to this union
84
+ * 3. Implementing a `SchemaWalkerCollector` that handles the new kind
85
+ */
86
+ export type DefinitionRefMeta = EntitySchemaMeta | ReferenceSchemaMeta | ExpressionSchemaMeta | RefContextSchemaMeta;
87
+ /**
88
+ * Global registry that stores Baseplate metadata on Zod schema instances.
89
+ *
90
+ * Uses a plain WeakMap to avoid Zod's `$replace<Meta, S>` type substitution
91
+ * which causes "type instantiation excessively deep" errors with complex unions.
92
+ *
93
+ * Stores an array of metadata per schema to support schemas that carry multiple
94
+ * annotations (e.g. a schema that is both an `entity` and a `ref-context`).
95
+ *
96
+ * Used by `withEnt`, `withRef`, `withExpression`, and `refContext` to attach
97
+ * metadata to schema nodes. The parallel schema+data walker reads this registry
98
+ * to extract entity/reference/expression information after validation.
99
+ */
100
+ export declare const definitionRefRegistry: {
101
+ add(schema: z.ZodType, meta: DefinitionRefMeta): void;
102
+ getAll(schema: z.ZodType): DefinitionRefMeta[];
103
+ has(schema: z.ZodType): boolean;
104
+ };
105
+ //# sourceMappingURL=definition-ref-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definition-ref-registry.d.ts","sourceRoot":"","sources":["../../src/references/definition-ref-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Global registry that stores Baseplate metadata on Zod schema instances.
3
+ *
4
+ * Uses a plain WeakMap to avoid Zod's `$replace<Meta, S>` type substitution
5
+ * which causes "type instantiation excessively deep" errors with complex unions.
6
+ *
7
+ * Stores an array of metadata per schema to support schemas that carry multiple
8
+ * annotations (e.g. a schema that is both an `entity` and a `ref-context`).
9
+ *
10
+ * Used by `withEnt`, `withRef`, `withExpression`, and `refContext` to attach
11
+ * metadata to schema nodes. The parallel schema+data walker reads this registry
12
+ * to extract entity/reference/expression information after validation.
13
+ */
14
+ export const definitionRefRegistry = (() => {
15
+ const map = new WeakMap();
16
+ return {
17
+ add(schema, meta) {
18
+ const existing = map.get(schema);
19
+ if (existing) {
20
+ if ((meta.kind === 'entity' || meta.kind === 'reference') &&
21
+ existing.some((e) => e.kind === meta.kind && e.type === meta.type)) {
22
+ throw new Error(`Duplicate definition ref metadata kind "${meta.kind}" for type "${meta.type.name}" on the same schema instance. ` +
23
+ `This usually means a shared/module-level schema was passed to withEnt/withRef multiple times. ` +
24
+ `Create a fresh schema instance instead.`);
25
+ }
26
+ existing.push(meta);
27
+ }
28
+ else {
29
+ map.set(schema, [meta]);
30
+ }
31
+ },
32
+ getAll(schema) {
33
+ return map.get(schema) ?? [];
34
+ },
35
+ has(schema) {
36
+ return map.has(schema);
37
+ },
38
+ };
39
+ })();
40
+ //# sourceMappingURL=definition-ref-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definition-ref-registry.js","sourceRoot":"","sources":["../../src/references/definition-ref-registry.ts"],"names":[],"mappings":"AA6HA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAI9B,CAAC,GAAG,EAAE;IACR,MAAM,GAAG,GAAG,IAAI,OAAO,EAAkC,CAAC;IAC1D,OAAO;QACL,GAAG,CAAC,MAAiB,EAAE,IAAuB;YAC5C,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACjC,IAAI,QAAQ,EAAE,CAAC;gBACb,IACE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC;oBACrD,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAClE,CAAC;oBACD,MAAM,IAAI,KAAK,CACb,2CAA2C,IAAI,CAAC,IAAI,eAAe,IAAI,CAAC,IAAI,CAAC,IAAI,iCAAiC;wBAChH,gGAAgG;wBAChG,yCAAyC,CAC5C,CAAC;gBACJ,CAAC;gBACD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,MAAM,CAAC,MAAiB;YACtB,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC/B,CAAC;QACD,GAAG,CAAC,MAAiB;YACnB,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;KACF,CAAC;AACJ,CAAC,CAAC,EAAE,CAAC"}
@@ -1,15 +1,13 @@
1
- import type { DefinitionSchemaCreator, DefinitionSchemaCreatorOptions } from '#src/schema/creator/types.js';
2
- import type { def } from '#src/schema/index.js';
1
+ import type { z } from 'zod';
3
2
  import type { ResolvedZodRefPayload } from './types.js';
4
3
  /**
5
4
  * Deserialize a schema with references using the new transform-based approach.
6
5
  * This function converts human-readable names back to entity IDs.
7
6
  *
8
- * @template T - The schema creator type
9
- * @param schemaCreator - The schema creator function
7
+ * @template T - The Zod schema type
8
+ * @param schema - The already-constructed Zod schema
10
9
  * @param input - The input data with names instead of IDs
11
- * @param options - Options for the schema creator (excluding transformReferences)
12
10
  * @returns The resolved payload with IDs instead of names
13
11
  */
14
- export declare function deserializeSchemaWithTransformedReferences<T extends DefinitionSchemaCreator>(schemaCreator: T, input: unknown, options: Omit<DefinitionSchemaCreatorOptions, 'transformReferences'>): ResolvedZodRefPayload<def.InferOutput<T>>;
12
+ export declare function deserializeSchemaWithTransformedReferences<T extends z.ZodType>(schema: T, input: unknown): ResolvedZodRefPayload<z.output<T>>;
15
13
  //# sourceMappingURL=deserialize-schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deserialize-schema.d.ts","sourceRoot":"","sources":["../../src/references/deserialize-schema.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,uBAAuB,EACvB,8BAA8B,EAC/B,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,KAAK,EAAoB,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAQ1E;;;;;;;;;GASG;AACH,wBAAgB,0CAA0C,CACxD,CAAC,SAAS,uBAAuB,EAEjC,aAAa,EAAE,CAAC,EAChB,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,IAAI,CAAC,8BAA8B,EAAE,qBAAqB,CAAC,GACnE,qBAAqB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAY3C"}
1
+ {"version":3,"file":"deserialize-schema.d.ts","sourceRoot":"","sources":["../../src/references/deserialize-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAM7B,OAAO,KAAK,EAAoB,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAQ1E;;;;;;;;GAQG;AACH,wBAAgB,0CAA0C,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAC5E,MAAM,EAAE,CAAC,EACT,KAAK,EAAE,OAAO,GACb,qBAAqB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAOpC"}
@@ -9,14 +9,13 @@ function referenceToNameParentId(name, parentId) {
9
9
  * Deserialize a schema with references using the new transform-based approach.
10
10
  * This function converts human-readable names back to entity IDs.
11
11
  *
12
- * @template T - The schema creator type
13
- * @param schemaCreator - The schema creator function
12
+ * @template T - The Zod schema type
13
+ * @param schema - The already-constructed Zod schema
14
14
  * @param input - The input data with names instead of IDs
15
- * @param options - Options for the schema creator (excluding transformReferences)
16
15
  * @returns The resolved payload with IDs instead of names
17
16
  */
18
- export function deserializeSchemaWithTransformedReferences(schemaCreator, input, options) {
19
- const payload = parseSchemaWithTransformedReferences(schemaCreator, input, options, {
17
+ export function deserializeSchemaWithTransformedReferences(schema, input) {
18
+ const payload = parseSchemaWithTransformedReferences(schema, input, {
20
19
  skipReferenceNameResolution: true,
21
20
  });
22
21
  // Use the same resolution logic as the original function
@@ -1 +1 @@
1
- {"version":3,"file":"deserialize-schema.js","sourceRoot":"","sources":["../../src/references/deserialize-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deserialize-schema.js","sourceRoot":"","sources":["../../src/references/deserialize-schema.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,29 @@
1
1
  import type { z } from 'zod';
2
+ import type { PluginSpecStore } from '#src/plugins/index.js';
2
3
  import type { RefContextSlot } from './ref-context-slot.js';
3
4
  import type { DefinitionEntityType, ReferencePath } from './types.js';
5
+ /**
6
+ * Context provided to expression parsers during validation.
7
+ * Contains the project definition data and plugin store needed for
8
+ * validating expressions against model fields, roles, etc.
9
+ */
10
+ export interface ExpressionValidationContext {
11
+ /** The raw project definition data */
12
+ readonly definition: unknown;
13
+ /** The plugin spec store for accessing plugin-registered configuration */
14
+ readonly pluginStore: PluginSpecStore;
15
+ }
16
+ /**
17
+ * Result of parsing a ref expression.
18
+ * Success carries the parsed value; failure carries the error message.
19
+ */
20
+ export type RefExpressionParseResult<T> = {
21
+ success: true;
22
+ value: T;
23
+ } | {
24
+ success: false;
25
+ error: string;
26
+ };
4
27
  /**
5
28
  * A warning from validating a ref expression.
6
29
  * Warnings are non-blocking - they don't prevent loading the project definition.
@@ -84,32 +107,30 @@ export declare abstract class RefExpressionParser<TValue = unknown, TParseResult
84
107
  /** Unique name for this parser type (used for serialization) */
85
108
  abstract readonly name: string;
86
109
  /**
87
- * Zod schema for validating the expression value.
88
- * This schema is used by `withExpression()` for input validation.
110
+ * Creates a new Zod schema instance for validating the expression value.
89
111
  *
90
- * @returns A Zod schema that validates the raw expression value
112
+ * @returns A fresh Zod schema that validates the raw expression value
91
113
  */
92
- abstract readonly schema: z.ZodType<TValue>;
114
+ abstract createSchema(): z.ZodType<TValue>;
93
115
  /**
94
116
  * Parse the raw value and return the parse result.
95
117
  * The result is cached on the marker for subsequent operations.
96
118
  *
97
119
  * @param value - The raw expression value
98
120
  * @param projectDef - The project definition for context (typed as unknown to avoid circular reference)
99
- * @returns The parsed result (type determined by parser)
121
+ * @returns Success with parsed value, or failure with error message
100
122
  */
101
- abstract parse(value: TValue, projectDef: unknown): TParseResult;
123
+ abstract parse(value: TValue, projectDef: unknown): RefExpressionParseResult<TParseResult>;
102
124
  /**
103
- * Get validation warnings for the expression.
104
- * Warnings are non-blocking - they don't prevent loading.
125
+ * Get validation warnings for a successfully parsed expression.
126
+ * Only called when parse() succeeds. Parse failures are handled by validate().
105
127
  *
106
- * @param value - The raw expression value
107
- * @param parseResult - The cached parse result
108
- * @param projectDef - The project definition for validation context (typed as unknown to avoid circular reference)
128
+ * @param parseResult - The successfully parsed result
129
+ * @param context - Validation context with project definition and plugin store
109
130
  * @param resolvedSlots - The resolved slot paths for this expression
110
131
  * @returns Array of warnings (empty if valid)
111
132
  */
112
- abstract getWarnings(value: TValue, parseResult: TParseResult, projectDef: unknown, resolvedSlots: ResolvedExpressionSlots<TRequiredSlots>): RefExpressionWarning[];
133
+ abstract getWarnings(parseResult: TParseResult, context: ExpressionValidationContext, resolvedSlots: ResolvedExpressionSlots<TRequiredSlots>): RefExpressionWarning[];
113
134
  /**
114
135
  * Get entity/field dependencies from the expression.
115
136
  * Used for tracking what the expression references for rename handling.
@@ -118,7 +139,7 @@ export declare abstract class RefExpressionParser<TValue = unknown, TParseResult
118
139
  * @param parseResult - The cached parse result
119
140
  * @returns Array of dependencies
120
141
  */
121
- abstract getDependencies(value: TValue, parseResult: TParseResult): RefExpressionDependency[];
142
+ abstract getDependencies(value: TValue, parseResult: RefExpressionParseResult<TParseResult>): RefExpressionDependency[];
122
143
  /**
123
144
  * Update the expression when dependencies are renamed.
124
145
  *
@@ -127,7 +148,18 @@ export declare abstract class RefExpressionParser<TValue = unknown, TParseResult
127
148
  * @param renames - Map of old entity ID to new name
128
149
  * @returns The updated expression value
129
150
  */
130
- abstract updateForRename(value: TValue, parseResult: TParseResult, renames: Map<string, string>): TValue;
151
+ abstract updateForRename(value: TValue, parseResult: RefExpressionParseResult<TParseResult>, renames: Map<string, string>): TValue;
152
+ /**
153
+ * Convenience method that combines parse() and getWarnings() into a single call.
154
+ * Parses the expression and returns all validation warnings (including parse errors).
155
+ *
156
+ * @param value - The raw expression value
157
+ * @param projectDef - The project definition for context
158
+ * @param context - Validation context with project definition and plugin store
159
+ * @param resolvedSlots - The resolved slot paths for this expression
160
+ * @returns Array of warnings (empty if valid)
161
+ */
162
+ validate(value: TValue, projectDef: unknown, context: ExpressionValidationContext, resolvedSlots: ResolvedExpressionSlots<TRequiredSlots>): RefExpressionWarning[];
131
163
  /**
132
164
  * Phantom property for TRequiredSlots type inference.
133
165
  * This is never actually used at runtime.
@@ -1 +1 @@
1
- {"version":3,"file":"expression-types.d.ts","sourceRoot":"","sources":["../../src/references/expression-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expression-types.d.ts","sourceRoot":"","sources":["../../src/references/expression-types.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,23 @@
36
36
  * ```
37
37
  */
38
38
  export class RefExpressionParser {
39
+ /**
40
+ * Convenience method that combines parse() and getWarnings() into a single call.
41
+ * Parses the expression and returns all validation warnings (including parse errors).
42
+ *
43
+ * @param value - The raw expression value
44
+ * @param projectDef - The project definition for context
45
+ * @param context - Validation context with project definition and plugin store
46
+ * @param resolvedSlots - The resolved slot paths for this expression
47
+ * @returns Array of warnings (empty if valid)
48
+ */
49
+ validate(value, projectDef, context, resolvedSlots) {
50
+ const parseResult = this.parse(value, projectDef);
51
+ if (!parseResult.success) {
52
+ return [{ message: parseResult.error }];
53
+ }
54
+ return this.getWarnings(parseResult.value, context, resolvedSlots);
55
+ }
39
56
  /**
40
57
  * Phantom property for TRequiredSlots type inference.
41
58
  * This is never actually used at runtime.
@@ -1 +1 @@
1
- {"version":3,"file":"expression-types.js","sourceRoot":"","sources":["../../src/references/expression-types.ts"],"names":[],"mappings":"AAuDA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,OAAgB,mBAAmB;IAyEvC;;;;OAIG;IACM,cAAc,CAAkB;CAC1C"}
1
+ {"version":3,"file":"expression-types.js","sourceRoot":"","sources":["../../src/references/expression-types.ts"],"names":[],"mappings":"AA6EA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,OAAgB,mBAAmB;IAyEvC;;;;;;;;;OASG;IACH,QAAQ,CACN,KAAa,EACb,UAAmB,EACnB,OAAoC,EACpC,aAAsD;QAEtD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YACzB,OAAO,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;IACrE,CAAC;IAED;;;;OAIG;IACM,cAAc,CAAkB;CAC1C"}
@@ -1,7 +1,6 @@
1
1
  import type { TuplePaths } from '@baseplate-dev/utils';
2
2
  import { z } from 'zod';
3
3
  import type { DefinitionEntityType } from '#src/index.js';
4
- import type { DefinitionSchemaCreatorOptions } from '#src/schema/index.js';
5
4
  import type { DefinitionEntityInput, DefinitionReferenceInput } from './definition-ref-builder.js';
6
5
  import type { ExpressionSlotMap, RefExpressionParser } from './expression-types.js';
7
6
  import type { RefContextSlotDefinition, RefContextSlotMap } from './ref-context-slot.js';
@@ -24,7 +23,38 @@ export interface WithExpressionType {
24
23
  <TValue, TParseResult>(parser: RefExpressionParser<TValue, TParseResult>): z.ZodType<TValue, TValue>;
25
24
  <TValue, TParseResult, TRequiredSlots extends Record<string, DefinitionEntityType>>(parser: RefExpressionParser<TValue, TParseResult, TRequiredSlots>, slots: ExpressionSlotMap<TRequiredSlots>): z.ZodType<TValue, TValue>;
26
25
  }
27
- export declare function extendParserContextWithRefs({ transformReferences, }: DefinitionSchemaCreatorOptions): {
26
+ /**
27
+ * Creates a string schema annotated as a reference to another entity.
28
+ *
29
+ * Can be used standalone:
30
+ * ```typescript
31
+ * withRef({ type: modelEnumEntityType, onDelete: 'RESTRICT' })
32
+ * ```
33
+ *
34
+ * Or on the parser context:
35
+ * ```typescript
36
+ * ctx.withRef({ type: modelEnumEntityType, onDelete: 'RESTRICT' })
37
+ * ```
38
+ */
39
+ export declare function withRef<TEntityType extends DefinitionEntityType>(reference: DefinitionReferenceInput<TEntityType>): z.ZodType<string, string>;
40
+ /**
41
+ * Creates a schema decorator that marks a schema as defining an entity.
42
+ *
43
+ * Can be used with `.apply()`:
44
+ * ```typescript
45
+ * schema.apply(withEnt({ type: modelEntityType, provides: modelSlot }))
46
+ * ```
47
+ *
48
+ * Or via the parser context (2-arg legacy form):
49
+ * ```typescript
50
+ * ctx.withEnt(schema, { type: modelEntityType, provides: modelSlot })
51
+ * ```
52
+ *
53
+ * @param entity - The entity definition input
54
+ * @returns A function that decorates a schema with entity metadata
55
+ */
56
+ export declare function withEnt<TEntityType extends DefinitionEntityType>(entity: DefinitionEntityInput<unknown, TEntityType>): <TType extends z.ZodType>(schema: TType) => ZodTypeWithOptional<TType>;
57
+ export declare function extendParserContextWithRefs(): {
28
58
  withRef: WithRefType;
29
59
  withEnt: WithEntType;
30
60
  refContext: RefContextType;
@@ -1 +1 @@
1
- {"version":3,"file":"extend-parser-context-with-refs.d.ts","sourceRoot":"","sources":["../../src/references/extend-parser-context-with-refs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extend-parser-context-with-refs.d.ts","sourceRoot":"","sources":["../../src/references/extend-parser-context-with-refs.ts"],"names":[],"mappings":"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"}