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

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 +60 -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
@@ -1,171 +1,131 @@
1
- import { get } from 'es-toolkit/compat';
2
1
  import { z } from 'zod';
3
- import { DefinitionExpressionMarker, DefinitionReferenceMarker, REF_ANNOTATIONS_MARKER_SYMBOL, } from './markers.js';
2
+ import { definitionRefRegistry } from './definition-ref-registry.js';
4
3
  import { createRefContextSlotMap } from './ref-context-slot.js';
5
- import { stripRefMarkers } from './strip-ref-markers.js';
6
- export function extendParserContextWithRefs({ transformReferences, }) {
7
- function modifyAnnotations(value, ctx, modifier) {
8
- if (value === null || value === undefined)
9
- return value;
10
- if (typeof value !== 'object') {
11
- ctx.addIssue({
12
- code: 'invalid_type',
13
- expected: 'object',
14
- message: `Entity must be an object`,
15
- input: value,
16
- });
17
- return value;
18
- }
19
- if (transformReferences) {
20
- const existingAnnotations = REF_ANNOTATIONS_MARKER_SYMBOL in value
21
- ? value[REF_ANNOTATIONS_MARKER_SYMBOL]
22
- : { entities: [], references: [], slots: [] };
23
- return {
24
- ...value,
25
- [REF_ANNOTATIONS_MARKER_SYMBOL]: modifier(existingAnnotations),
26
- };
27
- }
28
- return value;
29
- }
30
- function withRef(reference) {
31
- return z.string().transform((value) => {
32
- if (transformReferences && value) {
33
- return new DefinitionReferenceMarker(value, {
34
- path: [],
35
- type: reference.type,
36
- onDelete: reference.onDelete,
37
- parentSlot: reference.parentSlot,
38
- provides: reference.provides,
39
- });
40
- }
41
- return value;
42
- });
43
- }
44
- function withEnt(schema, entity) {
45
- return schema.transform((value, ctx) => {
46
- if (value === null || value === undefined)
47
- return value;
48
- if (transformReferences) {
49
- if (typeof value !== 'object') {
50
- ctx.addIssue({
51
- code: 'invalid_type',
52
- expected: 'object',
53
- message: `Entity must be an object`,
54
- input: value,
55
- });
56
- return value;
57
- }
58
- // Check if the id is valid
59
- const idPath = entity.idPath ?? ['id'];
60
- const id = get(value, idPath);
61
- if (typeof id !== 'string' || !id || !entity.type.isId(id)) {
62
- ctx.addIssue({
63
- code: 'custom',
64
- message: `Unable to find string id field '${entity.idPath?.join('.') ?? 'id'}' in entity ${entity.type.name}`,
65
- input: value,
66
- });
67
- return value;
68
- }
69
- const nameResolver = (() => {
70
- if (entity.getNameResolver) {
71
- return entity.getNameResolver(stripRefMarkers(value));
72
- }
73
- if (!('name' in value) || typeof value.name !== 'string') {
74
- ctx.addIssue({
75
- code: 'custom',
76
- message: `Unable to find string name field in entity ${entity.type.name}`,
77
- input: value,
78
- });
79
- return 'invalid';
80
- }
81
- return value.name;
82
- })();
83
- const newEntity = {
84
- id,
85
- idPath,
86
- path: [],
87
- type: entity.type,
88
- nameResolver,
89
- parentSlot: entity.parentSlot,
90
- provides: entity.provides,
91
- };
92
- return modifyAnnotations(value, ctx, (annotations) => ({
93
- ...annotations,
94
- entities: [...annotations.entities, newEntity],
95
- }));
96
- }
97
- return value;
98
- });
99
- }
100
- /**
101
- * Creates ref context slots for use within a schema definition.
102
- * Slots provide type-safe context for parent-child entity relationships.
103
- *
104
- * @example
105
- * ```typescript
106
- * ctx.refContext(
107
- * { modelSlot: modelEntityType },
108
- * ({ modelSlot }) =>
109
- * ctx.withEnt(schema, {
110
- * type: modelEntityType,
111
- * provides: modelSlot,
112
- * }),
113
- * );
114
- * ```
115
- */
116
- function refContext(slotDefinition, schemaBuilder) {
117
- const slots = createRefContextSlotMap(slotDefinition);
118
- return schemaBuilder(slots).transform((value, ctx) => modifyAnnotations(value, ctx, (annotations) => ({
119
- ...annotations,
120
- slots: [
121
- ...annotations.slots,
122
- ...Object.values(slots).map((slot) => ({
123
- path: [],
124
- slot,
125
- })),
126
- ],
127
- })));
128
- }
129
- /**
130
- * Wraps a value with a ref expression parser for deferred validation.
131
- * The parser handles all parsing, validation, and rename handling.
132
- *
133
- * If the parser declares required slots (via TRequiredSlots), they must be
134
- * provided as the second argument. TypeScript enforces this at compile time.
135
- *
136
- * The parser's `schema` property is used for input validation.
137
- *
138
- * @example
139
- * ```typescript
140
- * // Parser without required slots
141
- * const expressionSchema = ctx.withExpression(simpleParser);
142
- *
143
- * // Parser with required slots (TypeScript enforces the second argument)
144
- * ctx.refContext(
145
- * { modelSlot: modelEntityType },
146
- * ({ modelSlot }) =>
147
- * z.object({
148
- * condition: ctx.withExpression(authorizerParser, { model: modelSlot }),
149
- * })
150
- * );
151
- * ```
152
- */
153
- function withExpression(parser, slots) {
154
- return parser.schema.transform((value) => {
155
- if (transformReferences && value !== undefined) {
156
- return new DefinitionExpressionMarker(value, {
157
- path: [],
158
- value,
159
- parser,
160
- slots,
161
- });
162
- }
163
- return value;
4
+ /**
5
+ * Creates a string schema annotated as a reference to another entity.
6
+ *
7
+ * Can be used standalone:
8
+ * ```typescript
9
+ * withRef({ type: modelEnumEntityType, onDelete: 'RESTRICT' })
10
+ * ```
11
+ *
12
+ * Or on the parser context:
13
+ * ```typescript
14
+ * ctx.withRef({ type: modelEnumEntityType, onDelete: 'RESTRICT' })
15
+ * ```
16
+ */
17
+ export function withRef(reference) {
18
+ const schema = z.string().min(1);
19
+ definitionRefRegistry.add(schema, {
20
+ kind: 'reference',
21
+ type: reference.type,
22
+ onDelete: reference.onDelete,
23
+ parentSlot: reference.parentSlot,
24
+ provides: reference.provides,
25
+ });
26
+ return schema;
27
+ }
28
+ /**
29
+ * Creates a schema decorator that marks a schema as defining an entity.
30
+ *
31
+ * Can be used with `.apply()`:
32
+ * ```typescript
33
+ * schema.apply(withEnt({ type: modelEntityType, provides: modelSlot }))
34
+ * ```
35
+ *
36
+ * Or via the parser context (2-arg legacy form):
37
+ * ```typescript
38
+ * ctx.withEnt(schema, { type: modelEntityType, provides: modelSlot })
39
+ * ```
40
+ *
41
+ * @param entity - The entity definition input
42
+ * @returns A function that decorates a schema with entity metadata
43
+ */
44
+ export function withEnt(entity) {
45
+ return (schema) => {
46
+ const idPath = entity.idPath ?? ['id'];
47
+ definitionRefRegistry.add(schema, {
48
+ kind: 'entity',
49
+ type: entity.type,
50
+ idPath,
51
+ getNameResolver: entity.getNameResolver,
52
+ parentSlot: entity.parentSlot,
53
+ provides: entity.provides,
164
54
  });
165
- }
55
+ return schema;
56
+ };
57
+ }
58
+ /**
59
+ * Creates ref context slots for use within a schema definition.
60
+ * Slots provide type-safe context for parent-child entity relationships.
61
+ *
62
+ * @example
63
+ * ```typescript
64
+ * ctx.refContext(
65
+ * { modelSlot: modelEntityType },
66
+ * ({ modelSlot }) =>
67
+ * ctx.withEnt(schema, {
68
+ * type: modelEntityType,
69
+ * provides: modelSlot,
70
+ * }),
71
+ * );
72
+ * ```
73
+ */
74
+ function refContext(slotDefinition, schemaBuilder) {
75
+ const slots = createRefContextSlotMap(slotDefinition);
76
+ const schema = schemaBuilder(slots);
77
+ definitionRefRegistry.add(schema, {
78
+ kind: 'ref-context',
79
+ slots: Object.values(slots),
80
+ });
81
+ return schema;
82
+ }
83
+ /**
84
+ * Wraps a value with a ref expression parser for deferred validation.
85
+ * The parser handles all parsing, validation, and rename handling.
86
+ *
87
+ * If the parser declares required slots (via TRequiredSlots), they must be
88
+ * provided as the second argument. TypeScript enforces this at compile time.
89
+ *
90
+ * The parser's `createSchema()` method is called to get a fresh schema
91
+ * instance per call site, allowing per-call metadata to be registered
92
+ * independently in the Baseplate registry.
93
+ *
94
+ * @example
95
+ * ```typescript
96
+ * // Parser without required slots
97
+ * const expressionSchema = ctx.withExpression(simpleParser);
98
+ *
99
+ * // Parser with required slots (TypeScript enforces the second argument)
100
+ * ctx.refContext(
101
+ * { modelSlot: modelEntityType },
102
+ * ({ modelSlot }) =>
103
+ * z.object({
104
+ * condition: ctx.withExpression(authorizerParser, { model: modelSlot }),
105
+ * })
106
+ * );
107
+ * ```
108
+ */
109
+ function withExpression(parser, slots) {
110
+ // createSchema() returns a fresh instance per call, allowing per-call
111
+ // metadata to be registered without conflicting across call sites.
112
+ const schema = parser.createSchema();
113
+ definitionRefRegistry.add(schema, {
114
+ kind: 'expression',
115
+ parser,
116
+ slots,
117
+ });
118
+ return schema;
119
+ }
120
+ export function extendParserContextWithRefs() {
166
121
  return {
167
122
  withRef,
168
- withEnt,
123
+ // Legacy 2-arg API that delegates to the standalone withEnt decorator.
124
+ // Uses a cast because the standalone accepts DefinitionEntityInput<unknown, ...>
125
+ // while this 2-arg form infers the full z.output<TType> for type-safe idPath.
126
+ withEnt(schema, entity) {
127
+ return schema.apply(withEnt(entity));
128
+ },
169
129
  refContext,
170
130
  withExpression,
171
131
  };
@@ -1 +1 @@
1
- {"version":3,"file":"extend-parser-context-with-refs.js","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.js","sourceRoot":"","sources":["../../src/references/extend-parser-context-with-refs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAkBxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AA2DhE;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,OAAO,CACrB,SAAgD;IAEhD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACjC,qBAAqB,CAAC,GAAG,CAAC,MAAM,EAAE;QAChC,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,UAAU,EAAE,SAAS,CAAC,UAAU;QAChC,QAAQ,EAAE,SAAS,CAAC,QAAQ;KAC7B,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,OAAO,CACrB,MAAmD;IAEnD,OAAO,CACL,MAAa,EACe,EAAE;QAC9B,MAAM,MAAM,GAAI,MAAM,CAAC,MAA0C,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5E,qBAAqB,CAAC,GAAG,CAAC,MAAM,EAAE;YAChC,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,MAAM;YACN,eAAe,EAAE,MAAM,CAAC,eAGJ;YACpB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC,CAAC;QACH,OAAO,MAA+C,CAAC;IACzD,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAS,UAAU,CAIjB,cAAwB,EACxB,aAA8D;IAE9D,MAAM,KAAK,GAAG,uBAAuB,CAAC,cAAc,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,qBAAqB,CAAC,GAAG,CAAC,MAAM,EAAE;QAChC,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAqB;KAChD,CAAC,CAAC;IACH,OAAO,MAAiD,CAAC;AAC3D,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,SAAS,cAAc,CAKrB,MAAiE,EACjE,KAAyC;IAEzC,sEAAsE;IACtE,mEAAmE;IACnE,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,EAA+B,CAAC;IAElE,qBAAqB,CAAC,GAAG,CAAC,MAAM,EAAE;QAChC,IAAI,EAAE,YAAY;QAElB,MAAM;QACN,KAAK;KACN,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,2BAA2B;IAMzC,OAAO;QACL,OAAO;QACP,uEAAuE;QACvE,iFAAiF;QACjF,8EAA8E;QAC9E,OAAO,CAKL,MAAa,EACb,MAAoE;YAEpE,OAAO,MAAM,CAAC,KAAK,CACjB,OAAO,CAAC,MAAqD,CAAC,CAC/D,CAAC;QACJ,CAAC;QACD,UAAU;QACV,cAAc;KACf,CAAC;AACJ,CAAC"}
@@ -1,3 +1,4 @@
1
+ import type { z } from 'zod';
1
2
  import type { DefinitionEntityWithNameResolver } from './definition-ref-builder.js';
2
3
  import type { DefinitionExpression } from './expression-types.js';
3
4
  import type { DefinitionReference } from './types.js';
@@ -13,17 +14,17 @@ export interface ExtractDefinitionRefsPayload<TData> {
13
14
  expressions: DefinitionExpression[];
14
15
  }
15
16
  /**
16
- * Extracts definition refs from a parsed value using functional approach.
17
+ * Extracts definition refs by walking the schema structure alongside the parsed data.
17
18
  *
18
19
  * Flow:
19
- * 1. Collect all refs (entities, references, slots, expressions) recursively
20
+ * 1. Walk schema+data in parallel using registered collectors
20
21
  * 2. Resolve all slot references to actual paths
21
- * 3. Strip ref markers from the data
22
- * 4. Resolve entity, reference, and expression parent/slot paths
23
- * 5. Validate no duplicate IDs
22
+ * 3. Resolve entity, reference, and expression parent/slot paths
23
+ * 4. Validate no duplicate IDs
24
24
  *
25
- * @param value - The parsed value from Zod schema
26
- * @returns The extracted refs with clean data
25
+ * @param schema - The Zod schema used to validate the data
26
+ * @param value - The parsed value (output of schema.parse())
27
+ * @returns The extracted refs with the original data unchanged
27
28
  */
28
- export declare function extractDefinitionRefs<T>(value: T): ExtractDefinitionRefsPayload<T>;
29
+ export declare function extractDefinitionRefs<T>(schema: z.ZodType, value: T): ExtractDefinitionRefsPayload<T>;
29
30
  //# sourceMappingURL=extract-definition-refs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"extract-definition-refs.d.ts","sourceRoot":"","sources":["../../src/references/extract-definition-refs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElE,OAAO,KAAK,EAAE,mBAAmB,EAAiB,MAAM,YAAY,CAAC;AAMrE;;;;GAIG;AACH,MAAM,WAAW,4BAA4B,CAAC,KAAK;IACjD,IAAI,EAAE,KAAK,CAAC;IACZ,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,wBAAwB,EAAE,gCAAgC,EAAE,CAAC;IAC7D,WAAW,EAAE,oBAAoB,EAAE,CAAC;CACrC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,KAAK,EAAE,CAAC,GACP,4BAA4B,CAAC,CAAC,CAAC,CAgGjC"}
1
+ {"version":3,"file":"extract-definition-refs.d.ts","sourceRoot":"","sources":["../../src/references/extract-definition-refs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAM7B,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,6BAA6B,CAAC;AAOpF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAiB,MAAM,YAAY,CAAC;AAQrE;;;;GAIG;AACH,MAAM,WAAW,4BAA4B,CAAC,KAAK;IACjD,IAAI,EAAE,KAAK,CAAC;IACZ,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,wBAAwB,EAAE,gCAAgC,EAAE,CAAC;IAC7D,WAAW,EAAE,oBAAoB,EAAE,CAAC;CACrC;AAID;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,MAAM,EAAE,CAAC,CAAC,OAAO,EACjB,KAAK,EAAE,CAAC,GACP,4BAA4B,CAAC,CAAC,CAAC,CA6LjC"}
@@ -1,35 +1,119 @@
1
- import { collectRefs } from './collect-refs.js';
1
+ import { get } from 'es-toolkit/compat';
2
+ import { walkDataWithSchema } from '#src/parser/walk-data-with-schema.js';
3
+ import { createRefSchemaCollector, createRefSchemaVisitor, } from './ref-schema-visitor.js';
2
4
  import { findNearestAncestorSlot, resolveSlots } from './resolve-slots.js';
3
- import { stripRefMarkers } from './strip-ref-markers.js';
4
5
  /**
5
- * Extracts definition refs from a parsed value using functional approach.
6
+ * Extracts definition refs by walking the schema structure alongside the parsed data.
6
7
  *
7
8
  * Flow:
8
- * 1. Collect all refs (entities, references, slots, expressions) recursively
9
+ * 1. Walk schema+data in parallel using registered collectors
9
10
  * 2. Resolve all slot references to actual paths
10
- * 3. Strip ref markers from the data
11
- * 4. Resolve entity, reference, and expression parent/slot paths
12
- * 5. Validate no duplicate IDs
11
+ * 3. Resolve entity, reference, and expression parent/slot paths
12
+ * 4. Validate no duplicate IDs
13
13
  *
14
- * @param value - The parsed value from Zod schema
15
- * @returns The extracted refs with clean data
14
+ * @param schema - The Zod schema used to validate the data
15
+ * @param value - The parsed value (output of schema.parse())
16
+ * @returns The extracted refs with the original data unchanged
16
17
  */
17
- export function extractDefinitionRefs(value) {
18
- // Step 1: Collect all refs without resolving slots
19
- const collected = collectRefs(value);
20
- // Step 2: Resolve all slots to paths
21
- const resolvedSlots = resolveSlots(collected);
22
- // Step 3: Strip markers from data
23
- const cleanData = stripRefMarkers(value);
24
- // Step 4: Resolve entity, reference, and expression parent/slot paths
18
+ export function extractDefinitionRefs(schema, value) {
19
+ const entities = [];
20
+ const references = [];
21
+ const slots = [];
22
+ const expressionAnnotations = [];
23
+ // Entity collector: validates ID and captures name resolver
24
+ const entityCollector = createRefSchemaCollector({
25
+ kind: 'entity',
26
+ visit(meta, data, context) {
27
+ if (data === null || data === undefined || typeof data !== 'object')
28
+ return;
29
+ const id = get(data, meta.idPath);
30
+ if (typeof id !== 'string' || !id || !meta.type.isId(id)) {
31
+ throw new Error(`Unable to find valid id field '${meta.idPath.join('.')}' in entity ${meta.type.name} at path ${context.path.join('.')}`);
32
+ }
33
+ const nameResolver = (() => {
34
+ if (meta.getNameResolver) {
35
+ return meta.getNameResolver(data);
36
+ }
37
+ if (!('name' in data) ||
38
+ typeof data.name !== 'string') {
39
+ throw new Error(`Unable to find string name field in entity ${meta.type.name} at path ${context.path.join('.')}`);
40
+ }
41
+ return data.name;
42
+ })();
43
+ entities.push({
44
+ id,
45
+ idPath: meta.idPath,
46
+ path: context.path,
47
+ type: meta.type,
48
+ nameResolver,
49
+ parentSlot: meta.parentSlot,
50
+ provides: meta.provides,
51
+ });
52
+ },
53
+ });
54
+ // Reference collector: records non-empty string references
55
+ const referenceCollector = createRefSchemaCollector({
56
+ kind: 'reference',
57
+ visit(meta, data, context) {
58
+ // Skip empty/undefined references
59
+ if (typeof data !== 'string' || !data)
60
+ return;
61
+ references.push({
62
+ path: context.path,
63
+ type: meta.type,
64
+ onDelete: meta.onDelete,
65
+ parentSlot: meta.parentSlot,
66
+ provides: meta.provides,
67
+ });
68
+ },
69
+ });
70
+ // Slot collector: records which ref-context scopes exist and where
71
+ const slotCollector = createRefSchemaCollector({
72
+ kind: 'ref-context',
73
+ visit(meta, _data, context) {
74
+ for (const slot of meta.slots) {
75
+ slots.push({ path: context.path, slot });
76
+ }
77
+ },
78
+ });
79
+ // Expression collector: records expression annotations
80
+ const expressionCollector = createRefSchemaCollector({
81
+ kind: 'expression',
82
+ visit(meta, data, context) {
83
+ if (data === undefined || data === null)
84
+ return;
85
+ expressionAnnotations.push({
86
+ path: context.path,
87
+ value: data,
88
+ parser: meta.parser,
89
+ slots: meta.slots,
90
+ });
91
+ },
92
+ });
93
+ // Walk schema+data in parallel to collect all metadata
94
+ const refVisitor = createRefSchemaVisitor([
95
+ entityCollector,
96
+ referenceCollector,
97
+ slotCollector,
98
+ expressionCollector,
99
+ ]);
100
+ walkDataWithSchema(schema, value, [refVisitor]);
101
+ // Resolve all slots to paths (reuses existing slot resolution logic)
102
+ const resolvedSlots = resolveSlots({
103
+ entities,
104
+ references,
105
+ slots,
106
+ expressions: expressionAnnotations,
107
+ });
108
+ // Helper to resolve a parentSlot to a path
25
109
  function resolveParentPath(parentSlot, path) {
26
110
  const resolvedSlot = findNearestAncestorSlot(resolvedSlots.get(parentSlot.id), path);
27
111
  if (!resolvedSlot) {
28
- throw new Error(`Could not resolve parent path from ${path.join('.')} for slot ${parentSlot.id.description}`);
112
+ throw new Error(`Could not resolve parent path from ${path.join('.')} for slot ${String(parentSlot.id.description)}`);
29
113
  }
30
114
  return resolvedSlot.resolvedPath;
31
115
  }
32
- const entitiesWithNameResolver = collected.entities.map((entity) => ({
116
+ const entitiesWithNameResolver = entities.map((entity) => ({
33
117
  id: entity.id,
34
118
  idPath: entity.idPath,
35
119
  nameResolver: entity.nameResolver,
@@ -39,7 +123,7 @@ export function extractDefinitionRefs(value) {
39
123
  ? resolveParentPath(entity.parentSlot, entity.path)
40
124
  : undefined,
41
125
  }));
42
- const references = collected.references.map((reference) => ({
126
+ const resolvedReferences = references.map((reference) => ({
43
127
  type: reference.type,
44
128
  path: reference.path,
45
129
  onDelete: reference.onDelete,
@@ -48,13 +132,13 @@ export function extractDefinitionRefs(value) {
48
132
  : undefined,
49
133
  }));
50
134
  // Resolve expression slots
51
- const expressions = collected.expressions.map((expression) => {
135
+ const expressions = expressionAnnotations.map((expression) => {
52
136
  const resolvedSlotPaths = {};
53
137
  if (expression.slots) {
54
138
  for (const [key, slot] of Object.entries(expression.slots)) {
55
139
  const resolvedSlot = findNearestAncestorSlot(resolvedSlots.get(slot.id), expression.path);
56
140
  if (!resolvedSlot) {
57
- throw new Error(`Could not resolve expression slot "${key}" at path ${expression.path.join('.')} for slot ${slot.id.description}`);
141
+ throw new Error(`Could not resolve expression slot "${key}" at path ${expression.path.join('.')}`);
58
142
  }
59
143
  resolvedSlotPaths[key] = resolvedSlot.resolvedPath;
60
144
  }
@@ -66,17 +150,17 @@ export function extractDefinitionRefs(value) {
66
150
  resolvedSlots: resolvedSlotPaths,
67
151
  };
68
152
  });
69
- // Step 5: Validate no duplicate IDs
153
+ // Validate no duplicate entity IDs
70
154
  const idSet = new Set();
71
- for (const entity of collected.entities) {
155
+ for (const entity of entities) {
72
156
  if (idSet.has(entity.id)) {
73
157
  throw new Error(`Duplicate ID found: ${entity.id}`);
74
158
  }
75
159
  idSet.add(entity.id);
76
160
  }
77
161
  return {
78
- data: cleanData,
79
- references,
162
+ data: value,
163
+ references: resolvedReferences,
80
164
  entitiesWithNameResolver,
81
165
  expressions,
82
166
  };
@@ -1 +1 @@
1
- {"version":3,"file":"extract-definition-refs.js","sourceRoot":"","sources":["../../src/references/extract-definition-refs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extract-definition-refs.js","sourceRoot":"","sources":["../../src/references/extract-definition-refs.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import type { def, DefinitionSchemaCreator, DefinitionSchemaCreatorOptions } from '#src/schema/index.js';
1
+ import type { z } from 'zod';
2
2
  import type { DefinitionReference, ResolvedZodRefPayload } from './types.js';
3
- interface FixRefDeletionSuccessResult<T extends DefinitionSchemaCreator> {
3
+ interface FixRefDeletionSuccessResult<T> {
4
4
  type: 'success';
5
- value: def.InferOutput<T>;
6
- refPayload: ResolvedZodRefPayload<def.InferOutput<T>>;
5
+ value: T;
6
+ refPayload: ResolvedZodRefPayload<T>;
7
7
  }
8
8
  export interface FixRefDeletionError {
9
9
  ref: DefinitionReference;
@@ -13,10 +13,10 @@ interface FixRefDeletionFailureResult {
13
13
  type: 'failure';
14
14
  issues: FixRefDeletionError[];
15
15
  }
16
- export type FixRefDeletionResult<T extends DefinitionSchemaCreator> = FixRefDeletionSuccessResult<T> | FixRefDeletionFailureResult;
16
+ export type FixRefDeletionResult<T> = FixRefDeletionSuccessResult<T> | FixRefDeletionFailureResult;
17
17
  /**
18
18
  * Fixes any reference deletions by performing the appropriate action for the reference
19
19
  */
20
- export declare function fixRefDeletions<T extends DefinitionSchemaCreator>(schemaCreator: T, value: unknown, schemaCreatorOptions: Omit<DefinitionSchemaCreatorOptions, 'transformReferences'>): FixRefDeletionResult<T>;
20
+ export declare function fixRefDeletions<T extends z.ZodType>(schema: T, value: unknown): FixRefDeletionResult<z.output<T>>;
21
21
  export {};
22
22
  //# sourceMappingURL=fix-ref-deletions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fix-ref-deletions.d.ts","sourceRoot":"","sources":["../../src/references/fix-ref-deletions.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,GAAG,EACH,uBAAuB,EACvB,8BAA8B,EAC/B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EACV,mBAAmB,EAEnB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAIpB,UAAU,2BAA2B,CAAC,CAAC,SAAS,uBAAuB;IACrE,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC1B,UAAU,EAAE,qBAAqB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;CACvD;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,mBAAmB,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,2BAA2B;IACnC,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,mBAAmB,EAAE,CAAC;CAC/B;AAED,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,uBAAuB,IAC9D,2BAA2B,CAAC,CAAC,CAAC,GAC9B,2BAA2B,CAAC;AAKhC;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,uBAAuB,EAC/D,aAAa,EAAE,CAAC,EAChB,KAAK,EAAE,OAAO,EACd,oBAAoB,EAAE,IAAI,CACxB,8BAA8B,EAC9B,qBAAqB,CACtB,GACA,oBAAoB,CAAC,CAAC,CAAC,CAsHzB"}
1
+ {"version":3,"file":"fix-ref-deletions.d.ts","sourceRoot":"","sources":["../../src/references/fix-ref-deletions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAK7B,OAAO,KAAK,EACV,mBAAmB,EAEnB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAIpB,UAAU,2BAA2B,CAAC,CAAC;IACrC,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,CAAC,CAAC;IACT,UAAU,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,mBAAmB,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,2BAA2B;IACnC,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,mBAAmB,EAAE,CAAC;CAC/B;AAED,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAC9B,2BAA2B,CAAC,CAAC,CAAC,GAC9B,2BAA2B,CAAC;AAKhC;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EACjD,MAAM,EAAE,CAAC,EACT,KAAK,EAAE,OAAO,GACb,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAqHnC"}
@@ -6,13 +6,13 @@ const DELETED_SENTINEL_ID = 'deleted-sentinel-id';
6
6
  /**
7
7
  * Fixes any reference deletions by performing the appropriate action for the reference
8
8
  */
9
- export function fixRefDeletions(schemaCreator, value, schemaCreatorOptions) {
9
+ export function fixRefDeletions(schema, value) {
10
10
  const issues = [];
11
11
  // find all references that do not have a corresponding entity
12
12
  let iterations;
13
13
  let valueToEdit = value;
14
14
  for (iterations = 0; iterations < 100; iterations++) {
15
- const parseResult = parseSchemaWithTransformedReferences(schemaCreator, valueToEdit, schemaCreatorOptions, {
15
+ const parseResult = parseSchemaWithTransformedReferences(schema, valueToEdit, {
16
16
  allowInvalidReferences: true,
17
17
  });
18
18
  const { references, entities } = parseResult;
@@ -1 +1 @@
1
- {"version":3,"file":"fix-ref-deletions.js","sourceRoot":"","sources":["../../src/references/fix-ref-deletions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fix-ref-deletions.js","sourceRoot":"","sources":["../../src/references/fix-ref-deletions.ts"],"names":[],"mappings":"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"}