@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
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/schema/models/models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAC;AAyBxD,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6ExC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,GAAG,CAAC,WAAW,CAClD,OAAO,4BAA4B,CACpC,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,GAAG,CAAC,UAAU,CACtD,OAAO,4BAA4B,CACpC,CAAC;AAEF,eAAO,MAAM,mBAAmB,uEAMtB,CAAC;AAEX,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkD1C,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,GAAG,CAAC,WAAW,CACpD,OAAO,8BAA8B,CACtC,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,GAAG,CAAC,UAAU,CACxD,OAAO,8BAA8B,CACtC,CAAC;AAEF,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;EA2B7C,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,GAAG,CAAC,WAAW,CACvD,OAAO,iCAAiC,CACzC,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG,GAAG,CAAC,UAAU,CAC3D,OAAO,iCAAiC,CACzC,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;EA6DpC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,GAAG,CAAC,WAAW,CAC9C,OAAO,wBAAwB,CAChC,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2CjC,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAO7B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEpE,MAAM,MAAM,gBAAgB,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/schema/models/models.ts"],"names":[],"mappings":"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"}
@@ -1,80 +1,120 @@
1
1
  import { z } from 'zod';
2
2
  import { createDefinitionEntityNameResolver } from '#src/references/index.js';
3
+ import { withFix } from '#src/schema/creator/definition-fix-registry.js';
4
+ import { withIssueChecker } from '#src/schema/creator/definition-issue-registry.js';
5
+ import { withDefault } from '#src/schema/creator/index.js';
3
6
  import { definitionSchema, definitionSchemaWithSlots, } from '#src/schema/creator/schema-creator.js';
4
- import { SCALAR_FIELD_TYPES } from '#src/types/field-types.js';
7
+ import { authRoleEntityType } from '../auth/index.js';
5
8
  import { featureEntityType } from '../features/index.js';
6
9
  import { VALIDATORS } from '../utils/validation.js';
7
10
  import { createModelAuthorizerSchema } from './authorizer/authorizer.js';
11
+ import { modelAuthorizerRoleEntityType } from './authorizer/types.js';
8
12
  import { createModelGraphqlSchema } from './graphql.js';
9
13
  import { createTransformerSchema } from './transformers/transformers.js';
10
14
  import { modelEntityType, modelEnumEntityType, modelEnumValueEntityType, modelForeignRelationEntityType, modelLocalRelationEntityType, modelScalarFieldEntityType, modelTransformerEntityType, modelUniqueConstraintEntityType, } from './types.js';
11
- export const createModelScalarFieldSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType }, (ctx, { modelSlot }) => ctx
12
- .withEnt(z.object({
13
- id: z.string(),
14
- name: VALIDATORS.CAMEL_CASE_STRING,
15
- type: z.enum(SCALAR_FIELD_TYPES),
16
- isOptional: z.boolean().default(false),
17
- options: ctx.refContext({ enumSlot: modelEnumEntityType }, ({ enumSlot }) => z
18
- .object({
19
- // string options
20
- default: z.string().default(''),
21
- // uuid options
22
- genUuid: z.boolean().optional(),
23
- // date options
24
- updatedAt: z.boolean().optional(),
25
- defaultToNow: z.boolean().optional(),
26
- // enum options
27
- enumRef: ctx
28
- .withRef({
29
- type: modelEnumEntityType,
30
- onDelete: 'RESTRICT',
31
- provides: enumSlot,
32
- })
33
- .optional(),
34
- defaultEnumValueRef: ctx
35
- .withRef({
36
- type: modelEnumValueEntityType,
37
- onDelete: 'RESTRICT',
38
- parentSlot: enumSlot,
39
- })
40
- .optional(),
41
- })
42
- .transform((val) => ({
43
- ...val,
44
- ...(val.enumRef ? {} : { defaultEnumValueRef: undefined }),
45
- }))
46
- .prefault({})),
47
- }), {
48
- type: modelScalarFieldEntityType,
49
- parentSlot: modelSlot,
50
- })
51
- .superRefine((arg, ctx) => {
52
- // check default values
53
- const defaultValue = arg.options.default;
54
- const { type } = arg;
55
- if (!defaultValue) {
56
- return;
57
- }
58
- if (type === 'boolean' && !['true', 'false'].includes(defaultValue)) {
59
- ctx.addIssue({
60
- path: ['options', 'default'],
61
- code: 'custom',
62
- message: 'Default value must be true or false',
63
- });
64
- }
65
- })
66
- .transform((value) => {
67
- if (value.type !== 'enum' && value.options.enumRef) {
68
- return {
69
- ...value,
70
- options: {
71
- ...value.options,
72
- enumRef: undefined,
73
- },
74
- };
75
- }
76
- return value;
77
- }));
15
+ export const createModelScalarFieldSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType }, (ctx, { modelSlot }) => {
16
+ const commonFields = {
17
+ id: z.string(),
18
+ name: VALIDATORS.CAMEL_CASE_STRING,
19
+ isOptional: z.boolean().default(false),
20
+ };
21
+ const defaultOptionsSchema = z
22
+ .object({ default: z.string().optional() })
23
+ .default({ default: '' });
24
+ const union = z.discriminatedUnion('type', [
25
+ z.object({
26
+ ...commonFields,
27
+ type: z.literal('string'),
28
+ options: defaultOptionsSchema,
29
+ }),
30
+ z.object({
31
+ ...commonFields,
32
+ type: z.literal('uuid'),
33
+ options: z
34
+ .object({
35
+ default: z.string().optional(),
36
+ genUuid: z.boolean().optional(),
37
+ })
38
+ .default({ default: '' }),
39
+ }),
40
+ z.object({
41
+ ...commonFields,
42
+ type: z.literal('int'),
43
+ options: z
44
+ .object({
45
+ default: z
46
+ .string()
47
+ .regex(/^-?\d*$/, { error: 'Default value must be a number' })
48
+ .optional(),
49
+ })
50
+ .default({ default: '' }),
51
+ }),
52
+ z.object({
53
+ ...commonFields,
54
+ type: z.literal('boolean'),
55
+ options: z
56
+ .object({ default: z.enum(['', 'true', 'false']).optional() })
57
+ .default({}),
58
+ }),
59
+ z.object({
60
+ ...commonFields,
61
+ type: z.literal('dateTime'),
62
+ options: z
63
+ .object({
64
+ defaultToNow: z.boolean().optional(),
65
+ updatedAt: z.boolean().optional(),
66
+ })
67
+ .default({}),
68
+ }),
69
+ z.object({
70
+ ...commonFields,
71
+ type: z.literal('float'),
72
+ options: defaultOptionsSchema,
73
+ }),
74
+ z.object({
75
+ ...commonFields,
76
+ type: z.literal('decimal'),
77
+ options: z.object({ default: z.string().optional() }).default({}),
78
+ }),
79
+ z.object({
80
+ ...commonFields,
81
+ type: z.literal('json'),
82
+ options: z.object({ default: z.string().optional() }).default({}),
83
+ }),
84
+ z.object({
85
+ ...commonFields,
86
+ type: z.literal('date'),
87
+ options: z
88
+ .object({
89
+ default: z.string().optional(),
90
+ defaultToNow: z.boolean().optional(),
91
+ })
92
+ .prefault({}),
93
+ }),
94
+ z.object({
95
+ ...commonFields,
96
+ type: z.literal('enum'),
97
+ options: ctx.refContext({ enumSlot: modelEnumEntityType }, ({ enumSlot }) => z.object({
98
+ enumRef: ctx.withRef({
99
+ type: modelEnumEntityType,
100
+ onDelete: 'RESTRICT',
101
+ provides: enumSlot,
102
+ }),
103
+ defaultEnumValueRef: ctx
104
+ .withRef({
105
+ type: modelEnumValueEntityType,
106
+ onDelete: 'RESTRICT',
107
+ parentSlot: enumSlot,
108
+ })
109
+ .optional(),
110
+ })),
111
+ }),
112
+ ]);
113
+ return ctx.withEnt(union, {
114
+ type: modelScalarFieldEntityType,
115
+ parentSlot: modelSlot,
116
+ });
117
+ });
78
118
  export const REFERENTIAL_ACTIONS = [
79
119
  'Cascade',
80
120
  'Restrict',
@@ -136,7 +176,34 @@ export const createModelUniqueConstraintSchema = definitionSchemaWithSlots({ mod
136
176
  });
137
177
  },
138
178
  }));
139
- export const createModelServiceSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType }, (ctx, { modelSlot }) => z.object({
179
+ /**
180
+ * Checks that enabled service methods have at least one field or transformer.
181
+ */
182
+ function checkServiceMethods(value) {
183
+ const service = value;
184
+ const issues = [];
185
+ if (service.create.enabled &&
186
+ !service.create.fields?.length &&
187
+ !service.create.transformerNames?.length) {
188
+ issues.push({
189
+ message: 'Create method must have at least one field or transformer.',
190
+ path: ['create'],
191
+ severity: 'error',
192
+ });
193
+ }
194
+ if (service.update.enabled &&
195
+ !service.update.fields?.length &&
196
+ !service.update.transformerNames?.length) {
197
+ issues.push({
198
+ message: 'Update method must have at least one field or transformer.',
199
+ path: ['update'],
200
+ severity: 'error',
201
+ });
202
+ }
203
+ return issues;
204
+ }
205
+ export const createModelServiceSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType }, (ctx, { modelSlot }) => z
206
+ .object({
140
207
  create: z
141
208
  .object({
142
209
  enabled: z.boolean().default(false),
@@ -154,8 +221,14 @@ export const createModelServiceSchema = definitionSchemaWithSlots({ modelSlot: m
154
221
  parentSlot: modelSlot,
155
222
  }))
156
223
  .optional(),
224
+ globalRoles: z
225
+ .array(ctx.withRef({
226
+ type: authRoleEntityType,
227
+ onDelete: 'DELETE',
228
+ }))
229
+ .apply(withDefault([])),
157
230
  })
158
- .default({ enabled: false }),
231
+ .apply(withDefault({ enabled: false })),
159
232
  update: z
160
233
  .object({
161
234
  enabled: z.boolean().default(false),
@@ -173,20 +246,109 @@ export const createModelServiceSchema = definitionSchemaWithSlots({ modelSlot: m
173
246
  parentSlot: modelSlot,
174
247
  }))
175
248
  .optional(),
249
+ globalRoles: z
250
+ .array(ctx.withRef({
251
+ type: authRoleEntityType,
252
+ onDelete: 'DELETE',
253
+ }))
254
+ .apply(withDefault([])),
255
+ instanceRoles: z
256
+ .array(ctx.withRef({
257
+ type: modelAuthorizerRoleEntityType,
258
+ onDelete: 'DELETE',
259
+ parentSlot: modelSlot,
260
+ }))
261
+ .apply(withDefault([])),
176
262
  })
177
- .default({ enabled: false }),
263
+ .apply(withDefault({ enabled: false })),
178
264
  delete: z
179
265
  .object({
180
266
  enabled: z.boolean().default(false),
267
+ globalRoles: z
268
+ .array(ctx.withRef({
269
+ type: authRoleEntityType,
270
+ onDelete: 'DELETE',
271
+ }))
272
+ .apply(withDefault([])),
273
+ instanceRoles: z
274
+ .array(ctx.withRef({
275
+ type: modelAuthorizerRoleEntityType,
276
+ onDelete: 'DELETE',
277
+ parentSlot: modelSlot,
278
+ }))
279
+ .apply(withDefault([])),
181
280
  })
182
- .default({
183
- enabled: false,
184
- }),
281
+ .apply(withDefault({ enabled: false })),
185
282
  transformers: z
186
283
  .array(createTransformerSchema(ctx, { modelSlot }))
187
284
  .default([]),
188
- }));
189
- export const createModelBaseSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType }, (ctx, slots) => z.object({
285
+ })
286
+ .apply(withFix((value) => {
287
+ const fixed = { ...value };
288
+ if (!fixed.create.enabled) {
289
+ fixed.create = { enabled: false, globalRoles: [] };
290
+ }
291
+ if (!fixed.update.enabled) {
292
+ fixed.update = {
293
+ enabled: false,
294
+ globalRoles: [],
295
+ instanceRoles: [],
296
+ };
297
+ }
298
+ if (!fixed.delete.enabled) {
299
+ fixed.delete = {
300
+ enabled: false,
301
+ globalRoles: [],
302
+ instanceRoles: [],
303
+ };
304
+ }
305
+ // If nothing is enabled and there are no transformers, reset entirely
306
+ if (!fixed.create.enabled &&
307
+ !fixed.update.enabled &&
308
+ !fixed.delete.enabled &&
309
+ fixed.transformers.length === 0) {
310
+ return {
311
+ create: { enabled: false, globalRoles: [] },
312
+ update: {
313
+ enabled: false,
314
+ globalRoles: [],
315
+ instanceRoles: [],
316
+ },
317
+ delete: {
318
+ enabled: false,
319
+ globalRoles: [],
320
+ instanceRoles: [],
321
+ },
322
+ transformers: [],
323
+ };
324
+ }
325
+ return fixed;
326
+ }))
327
+ .apply(withIssueChecker(checkServiceMethods)));
328
+ /**
329
+ * Checks model-level constraints: must have fields and primary keys.
330
+ */
331
+ function checkModelConstraints(value) {
332
+ const model = value;
333
+ const issues = [];
334
+ if (model.model.fields.length === 0) {
335
+ issues.push({
336
+ message: 'Model must have at least one field.',
337
+ path: ['model', 'fields'],
338
+ severity: 'error',
339
+ });
340
+ }
341
+ if (model.model.primaryKeyFieldRefs.length === 0) {
342
+ issues.push({
343
+ message: 'Model must have at least one primary key field.',
344
+ path: ['model', 'primaryKeyFieldRefs'],
345
+ severity: 'error',
346
+ });
347
+ }
348
+ return issues;
349
+ }
350
+ export const createModelBaseSchema = definitionSchemaWithSlots({ modelSlot: modelEntityType }, (ctx, slots) => z
351
+ .object({
190
352
  id: z.string(),
191
353
  name: VALIDATORS.PASCAL_CASE_STRING,
192
354
  featureRef: ctx.withRef({
@@ -197,7 +359,7 @@ export const createModelBaseSchema = definitionSchemaWithSlots({ modelSlot: mode
197
359
  fields: z.array(createModelScalarFieldSchema(ctx, slots)),
198
360
  relations: z
199
361
  .array(createModelRelationFieldSchema(ctx, slots))
200
- .optional(),
362
+ .apply(withDefault([])),
201
363
  primaryKeyFieldRefs: z
202
364
  .array(ctx.withRef({
203
365
  type: modelScalarFieldEntityType,
@@ -207,17 +369,27 @@ export const createModelBaseSchema = definitionSchemaWithSlots({ modelSlot: mode
207
369
  .min(1),
208
370
  uniqueConstraints: z
209
371
  .array(createModelUniqueConstraintSchema(ctx, slots))
210
- .optional(),
372
+ .apply(withDefault([])),
211
373
  }),
212
- service: createModelServiceSchema(ctx, slots).default({
213
- create: { enabled: false },
214
- update: { enabled: false },
215
- delete: { enabled: false },
216
- transformers: [],
374
+ service: createModelServiceSchema(ctx, slots).apply(withDefault({})),
375
+ graphql: ctx.withDefault(createModelGraphqlSchema(ctx, slots), {}),
376
+ authorizer: ctx.withDefault(createModelAuthorizerSchema(ctx, slots), {
377
+ roles: [],
217
378
  }),
218
- graphql: ctx.withDefault(createModelGraphqlSchema(ctx, slots).optional(), {}),
219
- authorizer: ctx.withDefault(createModelAuthorizerSchema(ctx, slots).optional(), { roles: [] }),
220
- }));
379
+ })
380
+ .apply(withFix((value) => {
381
+ if (!value.service.create.enabled) {
382
+ value.graphql.mutations.create = { enabled: false };
383
+ }
384
+ if (!value.service.update.enabled) {
385
+ value.graphql.mutations.update = { enabled: false };
386
+ }
387
+ if (!value.service.delete.enabled) {
388
+ value.graphql.mutations.delete = { enabled: false };
389
+ }
390
+ return value;
391
+ }))
392
+ .apply(withIssueChecker(checkModelConstraints)));
221
393
  export const createModelSchema = definitionSchema((ctx) => ctx.refContext({ modelSlot: modelEntityType }, ({ modelSlot }) => ctx.withEnt(createModelBaseSchema(ctx, { modelSlot }), {
222
394
  type: modelEntityType,
223
395
  provides: modelSlot,
@@ -1 +1 @@
1
- {"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/schema/models/models.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/schema/models/models.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ export declare const basePluginDefinitionSchema: z.ZodObject<{
8
8
  configSchemaVersion: z.ZodOptional<z.ZodNumber>;
9
9
  }, z.core.$strip>;
10
10
  export type BasePluginDefinition = z.infer<typeof basePluginDefinitionSchema>;
11
- export declare const createPluginWithConfigSchema: (context: import("../index.js").DefinitionSchemaParserContext) => z.ZodPipe<z.ZodType<{
11
+ export declare const createPluginWithConfigSchema: (context: import("../index.js").DefinitionSchemaParserContext) => z.ZodType<{
12
12
  id: string;
13
13
  packageName: string;
14
14
  name: string;
@@ -36,22 +36,8 @@ export declare const createPluginWithConfigSchema: (context: import("../index.js
36
36
  version: string;
37
37
  config: unknown;
38
38
  configSchemaVersion?: number | undefined;
39
- }>>, z.ZodTransform<{
40
- id: string;
41
- packageName: string;
42
- name: string;
43
- version: string;
44
- config: unknown;
45
- configSchemaVersion?: number | undefined;
46
- }, {
47
- id: string;
48
- packageName: string;
49
- name: string;
50
- version: string;
51
- config: unknown;
52
- configSchemaVersion?: number | undefined;
53
39
  }>>;
54
- export declare const createPluginsSchema: (context: import("../index.js").DefinitionSchemaParserContext) => z.ZodArray<z.ZodPipe<z.ZodType<{
40
+ export declare const createPluginsSchema: (context: import("../index.js").DefinitionSchemaParserContext) => z.ZodArray<z.ZodType<{
55
41
  id: string;
56
42
  packageName: string;
57
43
  name: string;
@@ -79,19 +65,5 @@ export declare const createPluginsSchema: (context: import("../index.js").Defini
79
65
  version: string;
80
66
  config: unknown;
81
67
  configSchemaVersion?: number | undefined;
82
- }>>, z.ZodTransform<{
83
- id: string;
84
- packageName: string;
85
- name: string;
86
- version: string;
87
- config: unknown;
88
- configSchemaVersion?: number | undefined;
89
- }, {
90
- id: string;
91
- packageName: string;
92
- name: string;
93
- version: string;
94
- config: unknown;
95
- configSchemaVersion?: number | undefined;
96
68
  }>>>;
97
69
  //# sourceMappingURL=definition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../../src/schema/plugins/definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,0BAA0B;;;;;;;iBAOrC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmBxC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAE/B,CAAC"}
1
+ {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../../src/schema/plugins/definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,0BAA0B;;;;;;;iBAOrC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCvC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAE/B,CAAC"}
@@ -10,21 +10,32 @@ export const basePluginDefinitionSchema = z.object({
10
10
  config: z.unknown(),
11
11
  configSchemaVersion: z.number().optional(),
12
12
  });
13
- export const createPluginWithConfigSchema = definitionSchema((ctx) => ctx
14
- .withEnt(basePluginDefinitionSchema, {
15
- type: pluginEntityType,
16
- })
17
- .transform((data) => {
18
- const pluginKey = pluginEntityType.keyFromId(data.id);
19
- const createConfigSchema = ctx.plugins
13
+ export const createPluginWithConfigSchema = definitionSchema((ctx) => {
14
+ const pluginKeys = ctx.plugins.getPluginKeys();
15
+ const schemaCreators = ctx.plugins
20
16
  .use(pluginConfigSpec)
21
- .getSchemaCreator(pluginKey);
22
- if (!createConfigSchema)
23
- return data;
24
- return {
25
- ...data,
26
- config: createConfigSchema(ctx).parse(data.config),
27
- };
28
- }));
17
+ .getAllSchemaCreators();
18
+ if (pluginKeys.length === 0) {
19
+ // Create a fresh schema instance to avoid accumulating entity metadata
20
+ // on the shared basePluginDefinitionSchema via the global ref registry.
21
+ return ctx.withEnt(basePluginDefinitionSchema.refine(() => true), {
22
+ type: pluginEntityType,
23
+ });
24
+ }
25
+ const variants = pluginKeys.map((key) => {
26
+ const configSchema = schemaCreators.get(key)?.(ctx) ?? z.unknown();
27
+ return z.object({
28
+ id: z.literal(pluginEntityType.idFromKey(key)),
29
+ packageName: z.string(),
30
+ name: z.string(),
31
+ version: z.string(),
32
+ config: configSchema,
33
+ configSchemaVersion: z.number().optional(),
34
+ });
35
+ });
36
+ return ctx.withEnt(z.discriminatedUnion('id', variants), {
37
+ type: pluginEntityType,
38
+ });
39
+ });
29
40
  export const createPluginsSchema = definitionSchema((ctx) => z.array(createPluginWithConfigSchema(ctx)));
30
41
  //# sourceMappingURL=definition.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../src/schema/plugins/definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAEzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;IACnB,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,4BAA4B,GAAG,gBAAgB,CAAC,CAAC,GAAG,EAAE,EAAE,CACnE,GAAG;KACA,OAAO,CAAC,0BAA0B,EAAE;IACnC,IAAI,EAAE,gBAAgB;CACvB,CAAC;KACD,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;IAClB,MAAM,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEtD,MAAM,kBAAkB,GAAG,GAAG,CAAC,OAAO;SACnC,GAAG,CAAC,gBAAgB,CAAC;SACrB,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAE/B,IAAI,CAAC,kBAAkB;QAAE,OAAO,IAAI,CAAC;IAErC,OAAO;QACL,GAAG,IAAI;QACP,MAAM,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;KACnD,CAAC;AACJ,CAAC,CAAC,CACL,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,CAAC,GAAG,EAAE,EAAE,CAC1D,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC,CAC3C,CAAC"}
1
+ {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../src/schema/plugins/definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAEzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;IACnB,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,4BAA4B,GAAG,gBAAgB,CAAC,CAAC,GAAG,EAAE,EAAE;IACnE,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;IAC/C,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO;SAC/B,GAAG,CAAC,gBAAgB,CAAC;SACrB,oBAAoB,EAAE,CAAC;IAE1B,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,uEAAuE;QACvE,wEAAwE;QACxE,OAAO,GAAG,CAAC,OAAO,CAChB,0BAA0B,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAC7C;YACE,IAAI,EAAE,gBAAgB;SACvB,CACF,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACtC,MAAM,YAAY,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QACnE,OAAO,CAAC,CAAC,MAAM,CAAC;YACd,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAC9C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;YACvB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;YACnB,MAAM,EAAE,YAAY;YACpB,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC3C,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC,OAAO,CAChB,CAAC,CAAC,kBAAkB,CAClB,IAAI,EACJ,QAA0D,CAC3D,EACD;QACE,IAAI,EAAE,gBAAgB;KACvB,CACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,CAAC,GAAG,EAAE,EAAE,CAC1D,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC,CAC3C,CAAC"}