@baseplate-dev/project-builder-lib 0.6.3 → 0.6.5

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 (290) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/dist/compiler/admin-crud-action-compiler.js +1 -1
  3. package/dist/compiler/admin-crud-action-compiler.js.map +1 -1
  4. package/dist/compiler/admin-crud-column-compiler-spec.js +1 -1
  5. package/dist/compiler/admin-crud-column-compiler-spec.js.map +1 -1
  6. package/dist/compiler/admin-crud-input-spec.js +1 -1
  7. package/dist/compiler/admin-crud-input-spec.js.map +1 -1
  8. package/dist/compiler/app-compiler-spec.js +1 -1
  9. package/dist/compiler/app-compiler-spec.js.map +1 -1
  10. package/dist/compiler/index.d.ts +1 -0
  11. package/dist/compiler/index.d.ts.map +1 -1
  12. package/dist/compiler/index.js +1 -0
  13. package/dist/compiler/index.js.map +1 -1
  14. package/dist/compiler/model-transformer-compiler-spec.js +1 -1
  15. package/dist/compiler/model-transformer-compiler-spec.js.map +1 -1
  16. package/dist/compiler/root-compiler-spec.d.ts +25 -0
  17. package/dist/compiler/root-compiler-spec.d.ts.map +1 -0
  18. package/dist/compiler/root-compiler-spec.js +23 -0
  19. package/dist/compiler/root-compiler-spec.js.map +1 -0
  20. package/dist/constants/theme-colors.d.ts +0 -48
  21. package/dist/constants/theme-colors.d.ts.map +1 -1
  22. package/dist/constants/theme-colors.js +0 -32
  23. package/dist/constants/theme-colors.js.map +1 -1
  24. package/dist/definition/feature/feature-utils.d.ts +9 -3
  25. package/dist/definition/feature/feature-utils.d.ts.map +1 -1
  26. package/dist/definition/feature/feature-utils.js +30 -2
  27. package/dist/definition/feature/feature-utils.js.map +1 -1
  28. package/dist/definition/plugins/plugin-utils.d.ts +15 -0
  29. package/dist/definition/plugins/plugin-utils.d.ts.map +1 -1
  30. package/dist/definition/plugins/plugin-utils.js +50 -1
  31. package/dist/definition/plugins/plugin-utils.js.map +1 -1
  32. package/dist/definition/project-definition-container.d.ts.map +1 -1
  33. package/dist/definition/project-definition-container.js +3 -1
  34. package/dist/definition/project-definition-container.js.map +1 -1
  35. package/dist/{schema/models → expression-parsers}/authorizer/authorizer-expression-acorn-parser.d.ts +2 -0
  36. package/dist/expression-parsers/authorizer/authorizer-expression-acorn-parser.d.ts.map +1 -0
  37. package/dist/{schema/models → expression-parsers}/authorizer/authorizer-expression-acorn-parser.js +107 -52
  38. package/dist/expression-parsers/authorizer/authorizer-expression-acorn-parser.js.map +1 -0
  39. package/dist/{schema/models → expression-parsers}/authorizer/authorizer-expression-ast.d.ts +69 -1
  40. package/dist/expression-parsers/authorizer/authorizer-expression-ast.d.ts.map +1 -0
  41. package/dist/{schema/models → expression-parsers}/authorizer/authorizer-expression-ast.js +2 -0
  42. package/dist/expression-parsers/authorizer/authorizer-expression-ast.js.map +1 -0
  43. package/dist/{schema/models → expression-parsers}/authorizer/authorizer-expression-parser.d.ts +13 -14
  44. package/dist/expression-parsers/authorizer/authorizer-expression-parser.d.ts.map +1 -0
  45. package/dist/expression-parsers/authorizer/authorizer-expression-parser.js +292 -0
  46. package/dist/expression-parsers/authorizer/authorizer-expression-parser.js.map +1 -0
  47. package/dist/{schema/models → expression-parsers}/authorizer/authorizer-expression-validator.d.ts +37 -17
  48. package/dist/expression-parsers/authorizer/authorizer-expression-validator.d.ts.map +1 -0
  49. package/dist/expression-parsers/authorizer/authorizer-expression-validator.js +379 -0
  50. package/dist/expression-parsers/authorizer/authorizer-expression-validator.js.map +1 -0
  51. package/dist/expression-parsers/authorizer/authorizer-expression-visitor.d.ts +54 -0
  52. package/dist/expression-parsers/authorizer/authorizer-expression-visitor.d.ts.map +1 -0
  53. package/dist/expression-parsers/authorizer/authorizer-expression-visitor.js +52 -0
  54. package/dist/expression-parsers/authorizer/authorizer-expression-visitor.js.map +1 -0
  55. package/dist/expression-parsers/authorizer/index.d.ts +6 -0
  56. package/dist/expression-parsers/authorizer/index.d.ts.map +1 -0
  57. package/dist/expression-parsers/authorizer/index.js +6 -0
  58. package/dist/expression-parsers/authorizer/index.js.map +1 -0
  59. package/dist/expression-parsers/register-core-module.d.ts +6 -0
  60. package/dist/expression-parsers/register-core-module.d.ts.map +1 -0
  61. package/dist/expression-parsers/register-core-module.js +29 -0
  62. package/dist/expression-parsers/register-core-module.js.map +1 -0
  63. package/dist/index.d.ts +1 -0
  64. package/dist/index.js +1 -0
  65. package/dist/migrations/index.d.ts.map +1 -1
  66. package/dist/migrations/index.js +6 -0
  67. package/dist/migrations/index.js.map +1 -1
  68. package/dist/migrations/migration-029-admin-role-and-auto-assigned.d.ts +25 -0
  69. package/dist/migrations/migration-029-admin-role-and-auto-assigned.d.ts.map +1 -0
  70. package/dist/migrations/migration-029-admin-role-and-auto-assigned.js +72 -0
  71. package/dist/migrations/migration-029-admin-role-and-auto-assigned.js.map +1 -0
  72. package/dist/migrations/migration-030-remove-theme-hover-colors.d.ts +17 -0
  73. package/dist/migrations/migration-030-remove-theme-hover-colors.d.ts.map +1 -0
  74. package/dist/migrations/migration-030-remove-theme-hover-colors.js +41 -0
  75. package/dist/migrations/migration-030-remove-theme-hover-colors.js.map +1 -0
  76. package/dist/migrations/migration-031-uuid-default-generation.d.ts +24 -0
  77. package/dist/migrations/migration-031-uuid-default-generation.d.ts.map +1 -0
  78. package/dist/migrations/migration-031-uuid-default-generation.js +40 -0
  79. package/dist/migrations/migration-031-uuid-default-generation.js.map +1 -0
  80. package/dist/migrations/transform-json-path.d.ts.map +1 -1
  81. package/dist/migrations/transform-json-path.js +2 -3
  82. package/dist/migrations/transform-json-path.js.map +1 -1
  83. package/dist/parser/collect-definition-issues.d.ts.map +1 -1
  84. package/dist/parser/collect-definition-issues.js +10 -2
  85. package/dist/parser/collect-definition-issues.js.map +1 -1
  86. package/dist/parser/collect-expression-issues.d.ts +17 -9
  87. package/dist/parser/collect-expression-issues.d.ts.map +1 -1
  88. package/dist/parser/collect-expression-issues.js +21 -15
  89. package/dist/parser/collect-expression-issues.js.map +1 -1
  90. package/dist/parser/definition-issue-checkers/plugin-dependency-checker.d.ts +11 -0
  91. package/dist/parser/definition-issue-checkers/plugin-dependency-checker.d.ts.map +1 -0
  92. package/dist/parser/definition-issue-checkers/plugin-dependency-checker.js +41 -0
  93. package/dist/parser/definition-issue-checkers/plugin-dependency-checker.js.map +1 -0
  94. package/dist/parser/definition-issue-checkers/plugin-implementation-checker.d.ts +16 -0
  95. package/dist/parser/definition-issue-checkers/plugin-implementation-checker.d.ts.map +1 -0
  96. package/dist/parser/definition-issue-checkers/plugin-implementation-checker.js +69 -0
  97. package/dist/parser/definition-issue-checkers/plugin-implementation-checker.js.map +1 -0
  98. package/dist/parser/definition-issue-utils.d.ts +28 -1
  99. package/dist/parser/definition-issue-utils.d.ts.map +1 -1
  100. package/dist/parser/definition-issue-utils.js +59 -0
  101. package/dist/parser/definition-issue-utils.js.map +1 -1
  102. package/dist/parser/find-orphaned-union-items.d.ts +30 -0
  103. package/dist/parser/find-orphaned-union-items.d.ts.map +1 -0
  104. package/dist/parser/find-orphaned-union-items.js +47 -0
  105. package/dist/parser/find-orphaned-union-items.js.map +1 -0
  106. package/dist/parser/index.d.ts +3 -1
  107. package/dist/parser/index.d.ts.map +1 -1
  108. package/dist/parser/index.js +3 -1
  109. package/dist/parser/index.js.map +1 -1
  110. package/dist/parser/parser.d.ts.map +1 -1
  111. package/dist/parser/parser.js +3 -0
  112. package/dist/parser/parser.js.map +1 -1
  113. package/dist/parser/transform-data-with-schema.js +1 -1
  114. package/dist/parser/transform-data-with-schema.js.map +1 -1
  115. package/dist/plugins/imports/index.d.ts +1 -0
  116. package/dist/plugins/imports/index.d.ts.map +1 -1
  117. package/dist/plugins/imports/index.js +1 -0
  118. package/dist/plugins/imports/index.js.map +1 -1
  119. package/dist/plugins/imports/validate-plugin-dependencies.d.ts +42 -0
  120. package/dist/plugins/imports/validate-plugin-dependencies.d.ts.map +1 -0
  121. package/dist/plugins/imports/validate-plugin-dependencies.js +80 -0
  122. package/dist/plugins/imports/validate-plugin-dependencies.js.map +1 -0
  123. package/dist/plugins/metadata/types.d.ts +13 -0
  124. package/dist/plugins/metadata/types.d.ts.map +1 -1
  125. package/dist/plugins/metadata/types.js +15 -0
  126. package/dist/plugins/metadata/types.js.map +1 -1
  127. package/dist/plugins/spec/auth-config-spec.d.ts +1 -0
  128. package/dist/plugins/spec/auth-config-spec.d.ts.map +1 -1
  129. package/dist/plugins/spec/auth-config-spec.js.map +1 -1
  130. package/dist/references/definition-ref-builder.d.ts +2 -0
  131. package/dist/references/definition-ref-builder.d.ts.map +1 -1
  132. package/dist/references/definition-ref-registry.d.ts +2 -0
  133. package/dist/references/definition-ref-registry.d.ts.map +1 -1
  134. package/dist/references/definition-ref-registry.js.map +1 -1
  135. package/dist/references/expression-parser-ref.d.ts +51 -0
  136. package/dist/references/expression-parser-ref.d.ts.map +1 -0
  137. package/dist/references/expression-parser-ref.js +14 -0
  138. package/dist/references/expression-parser-ref.js.map +1 -0
  139. package/dist/references/expression-parser-spec.d.ts +29 -0
  140. package/dist/references/expression-parser-spec.d.ts.map +1 -0
  141. package/dist/references/expression-parser-spec.js +29 -0
  142. package/dist/references/expression-parser-spec.js.map +1 -0
  143. package/dist/references/expression-types.d.ts +20 -22
  144. package/dist/references/expression-types.d.ts.map +1 -1
  145. package/dist/references/expression-types.js +1 -2
  146. package/dist/references/expression-types.js.map +1 -1
  147. package/dist/references/extend-parser-context-with-refs.d.ts +7 -2
  148. package/dist/references/extend-parser-context-with-refs.d.ts.map +1 -1
  149. package/dist/references/extend-parser-context-with-refs.js +42 -12
  150. package/dist/references/extend-parser-context-with-refs.js.map +1 -1
  151. package/dist/references/extract-definition-refs.js +1 -1
  152. package/dist/references/extract-definition-refs.js.map +1 -1
  153. package/dist/references/fix-definition-refs.d.ts +22 -0
  154. package/dist/references/fix-definition-refs.d.ts.map +1 -0
  155. package/dist/references/fix-definition-refs.js +29 -0
  156. package/dist/references/fix-definition-refs.js.map +1 -0
  157. package/dist/references/fix-expression-renames.d.ts +20 -0
  158. package/dist/references/fix-expression-renames.d.ts.map +1 -0
  159. package/dist/references/fix-expression-renames.js +87 -0
  160. package/dist/references/fix-expression-renames.js.map +1 -0
  161. package/dist/references/index.d.ts +4 -0
  162. package/dist/references/index.d.ts.map +1 -1
  163. package/dist/references/index.js +4 -0
  164. package/dist/references/index.js.map +1 -1
  165. package/dist/references/parse-schema-with-references.d.ts +2 -1
  166. package/dist/references/parse-schema-with-references.d.ts.map +1 -1
  167. package/dist/references/parse-schema-with-references.js.map +1 -1
  168. package/dist/schema/apps/web/admin/sections/crud.d.ts.map +1 -1
  169. package/dist/schema/apps/web/admin/sections/crud.js +3 -2
  170. package/dist/schema/apps/web/admin/sections/crud.js.map +1 -1
  171. package/dist/schema/creator/definition-issue-checkers.d.ts +15 -0
  172. package/dist/schema/creator/definition-issue-checkers.d.ts.map +1 -1
  173. package/dist/schema/creator/definition-issue-checkers.js +33 -0
  174. package/dist/schema/creator/definition-issue-checkers.js.map +1 -1
  175. package/dist/schema/creator/schema-creator.js +1 -1
  176. package/dist/schema/creator/schema-creator.js.map +1 -1
  177. package/dist/schema/features/feature.js +1 -1
  178. package/dist/schema/features/feature.js.map +1 -1
  179. package/dist/schema/libraries/library.d.ts.map +1 -1
  180. package/dist/schema/libraries/library.js +1 -0
  181. package/dist/schema/libraries/library.js.map +1 -1
  182. package/dist/schema/models/authorizer/authorizer-expression-ref.d.ts +11 -0
  183. package/dist/schema/models/authorizer/authorizer-expression-ref.d.ts.map +1 -0
  184. package/dist/schema/models/authorizer/authorizer-expression-ref.js +10 -0
  185. package/dist/schema/models/authorizer/authorizer-expression-ref.js.map +1 -0
  186. package/dist/schema/models/authorizer/authorizer.js +2 -2
  187. package/dist/schema/models/authorizer/authorizer.js.map +1 -1
  188. package/dist/schema/models/authorizer/index.d.ts +1 -4
  189. package/dist/schema/models/authorizer/index.d.ts.map +1 -1
  190. package/dist/schema/models/authorizer/index.js +1 -4
  191. package/dist/schema/models/authorizer/index.js.map +1 -1
  192. package/dist/schema/models/enums.d.ts +12 -0
  193. package/dist/schema/models/enums.d.ts.map +1 -1
  194. package/dist/schema/models/enums.js +5 -2
  195. package/dist/schema/models/enums.js.map +1 -1
  196. package/dist/schema/models/graphql.js +3 -3
  197. package/dist/schema/models/graphql.js.map +1 -1
  198. package/dist/schema/models/models.d.ts +24 -36
  199. package/dist/schema/models/models.d.ts.map +1 -1
  200. package/dist/schema/models/models.js +7 -5
  201. package/dist/schema/models/models.js.map +1 -1
  202. package/dist/schema/plugins/definition.d.ts.map +1 -1
  203. package/dist/schema/plugins/definition.js +2 -0
  204. package/dist/schema/plugins/definition.js.map +1 -1
  205. package/dist/schema/project-definition.d.ts +14 -22
  206. package/dist/schema/project-definition.d.ts.map +1 -1
  207. package/dist/schema/project-definition.js +5 -1
  208. package/dist/schema/project-definition.js.map +1 -1
  209. package/dist/schema/settings/settings.d.ts +2 -10
  210. package/dist/schema/settings/settings.d.ts.map +1 -1
  211. package/dist/schema/settings/theme.d.ts +3 -15
  212. package/dist/schema/settings/theme.d.ts.map +1 -1
  213. package/dist/schema/utils/validation.d.ts.map +1 -1
  214. package/dist/schema/utils/validation.js +16 -3
  215. package/dist/schema/utils/validation.js.map +1 -1
  216. package/dist/specs/packages/library-type-spec.d.ts +4 -0
  217. package/dist/specs/packages/library-type-spec.d.ts.map +1 -1
  218. package/dist/specs/packages/library-type-spec.js +2 -2
  219. package/dist/specs/packages/library-type-spec.js.map +1 -1
  220. package/dist/testing/definition-helpers.test-helper.js +2 -2
  221. package/dist/testing/definition-helpers.test-helper.js.map +1 -1
  222. package/dist/testing/expression-stub-parser.test-helper.d.ts +2 -4
  223. package/dist/testing/expression-stub-parser.test-helper.d.ts.map +1 -1
  224. package/dist/testing/expression-stub-parser.test-helper.js +2 -10
  225. package/dist/testing/expression-stub-parser.test-helper.js.map +1 -1
  226. package/dist/testing/expression-warning-parser.test-helper.d.ts +2 -4
  227. package/dist/testing/expression-warning-parser.test-helper.d.ts.map +1 -1
  228. package/dist/testing/expression-warning-parser.test-helper.js +2 -8
  229. package/dist/testing/expression-warning-parser.test-helper.js.map +1 -1
  230. package/dist/testing/index.d.ts +1 -0
  231. package/dist/testing/index.d.ts.map +1 -1
  232. package/dist/testing/index.js +1 -0
  233. package/dist/testing/index.js.map +1 -1
  234. package/dist/testing/parser-context.test-helper.d.ts.map +1 -1
  235. package/dist/testing/parser-context.test-helper.js +2 -1
  236. package/dist/testing/parser-context.test-helper.js.map +1 -1
  237. package/dist/testing/plugin-store.test-helper.d.ts +11 -0
  238. package/dist/testing/plugin-store.test-helper.d.ts.map +1 -0
  239. package/dist/testing/plugin-store.test-helper.js +32 -0
  240. package/dist/testing/plugin-store.test-helper.js.map +1 -0
  241. package/dist/testing/project-definition-container.test-helper.d.ts.map +1 -1
  242. package/dist/testing/project-definition-container.test-helper.js +2 -1
  243. package/dist/testing/project-definition-container.test-helper.js.map +1 -1
  244. package/dist/tools/index.d.ts +2 -0
  245. package/dist/tools/index.d.ts.map +1 -1
  246. package/dist/tools/index.js +2 -0
  247. package/dist/tools/index.js.map +1 -1
  248. package/dist/tools/sort-entity-arrays.d.ts +15 -0
  249. package/dist/tools/sort-entity-arrays.d.ts.map +1 -0
  250. package/dist/tools/sort-entity-arrays.js +31 -0
  251. package/dist/tools/sort-entity-arrays.js.map +1 -0
  252. package/dist/utils/color-conversions.d.ts +12 -0
  253. package/dist/utils/color-conversions.d.ts.map +1 -1
  254. package/dist/utils/color-conversions.js +17 -1
  255. package/dist/utils/color-conversions.js.map +1 -1
  256. package/dist/utils/color-names.d.ts.map +1 -1
  257. package/dist/utils/color-names.js +6 -5
  258. package/dist/utils/color-names.js.map +1 -1
  259. package/dist/utils/definition-diff/definition-diff.js +2 -2
  260. package/dist/utils/definition-diff/definition-diff.js.map +1 -1
  261. package/dist/utils/theme.d.ts +1 -0
  262. package/dist/utils/theme.d.ts.map +1 -1
  263. package/dist/utils/theme.js +18 -10
  264. package/dist/utils/theme.js.map +1 -1
  265. package/dist/web/components/definition-diff-alert.js +2 -2
  266. package/dist/web/components/definition-diff-alert.js.map +1 -1
  267. package/dist/web/components/feature-combobox-field.d.ts.map +1 -1
  268. package/dist/web/components/feature-combobox-field.js +5 -3
  269. package/dist/web/components/feature-combobox-field.js.map +1 -1
  270. package/dist/web/specs/admin-crud-action-web-spec.js +1 -1
  271. package/dist/web/specs/admin-crud-action-web-spec.js.map +1 -1
  272. package/dist/web/specs/admin-crud-column-web-spec.js +1 -1
  273. package/dist/web/specs/admin-crud-column-web-spec.js.map +1 -1
  274. package/dist/web/specs/admin-crud-input-web-spec.js +1 -1
  275. package/dist/web/specs/admin-crud-input-web-spec.js.map +1 -1
  276. package/dist/web/specs/model-transformer-web-spec.d.ts +19 -2
  277. package/dist/web/specs/model-transformer-web-spec.d.ts.map +1 -1
  278. package/dist/web/specs/model-transformer-web-spec.js +1 -1
  279. package/dist/web/specs/model-transformer-web-spec.js.map +1 -1
  280. package/package.json +8 -8
  281. package/dist/schema/models/authorizer/authorizer-expression-acorn-parser.d.ts.map +0 -1
  282. package/dist/schema/models/authorizer/authorizer-expression-acorn-parser.js.map +0 -1
  283. package/dist/schema/models/authorizer/authorizer-expression-ast.d.ts.map +0 -1
  284. package/dist/schema/models/authorizer/authorizer-expression-ast.js.map +0 -1
  285. package/dist/schema/models/authorizer/authorizer-expression-parser.d.ts.map +0 -1
  286. package/dist/schema/models/authorizer/authorizer-expression-parser.js +0 -145
  287. package/dist/schema/models/authorizer/authorizer-expression-parser.js.map +0 -1
  288. package/dist/schema/models/authorizer/authorizer-expression-validator.d.ts.map +0 -1
  289. package/dist/schema/models/authorizer/authorizer-expression-validator.js +0 -284
  290. package/dist/schema/models/authorizer/authorizer-expression-validator.js.map +0 -1
@@ -1,7 +1,9 @@
1
1
  import type { ProjectDefinitionContainer } from '#src/definition/project-definition-container.js';
2
2
  import type { ReferencePath } from '#src/references/types.js';
3
+ import type { DefinitionIssueChecker } from '#src/schema/creator/definition-issue-checker-spec.js';
3
4
  import type { DefinitionIssue, EntityDefinitionIssue } from '#src/schema/creator/definition-issue-types.js';
4
- import type { ProjectDefinition } from '#src/schema/project-definition.js';
5
+ import type { PartialProjectDefinitionInput, ProjectDefinition } from '#src/schema/project-definition.js';
6
+ import type { DefinitionDiff } from '#src/tools/merge-schema/diff-definition.js';
5
7
  /**
6
8
  * Resolves a definition issue's path to an absolute path in the definition.
7
9
  *
@@ -32,4 +34,29 @@ export declare function createEntityIssue(container: ProjectDefinitionContainer,
32
34
  * Returns `undefined` if the issue has no fix.
33
35
  */
34
36
  export declare function createIssueFixSetter(issue: DefinitionIssue, container: ProjectDefinitionContainer): ((draft: ProjectDefinition) => void) | undefined;
37
+ /**
38
+ * Creates a definition-level issue checker that warns when a plugin's required
39
+ * models are out of sync with what the plugin expects.
40
+ *
41
+ * The `buildPartialDef` callback receives the container and should return the
42
+ * expected partial definition, or `undefined` to skip the check (e.g. when a
43
+ * required feature ref is missing or dangling).
44
+ *
45
+ * The helper handles the common pattern of:
46
+ * 1. Guarding against a missing plugin config
47
+ * 2. Diffing the current definition against the expected partial definition
48
+ * 3. Returning a fixable warning if there are changes
49
+ */
50
+ export declare function createPluginModelSyncChecker(options: {
51
+ pluginKey: string;
52
+ pluginLabel: string;
53
+ buildPartialDef: (container: ProjectDefinitionContainer) => PartialProjectDefinitionInput | undefined;
54
+ }): DefinitionIssueChecker;
55
+ /**
56
+ * Previews the diff that would result from applying an issue's fix.
57
+ *
58
+ * Applies the fix to a draft copy of the definition, serializes both versions,
59
+ * and returns a structured diff. Returns `undefined` if the issue has no fix.
60
+ */
61
+ export declare function previewIssueFix(issue: DefinitionIssue, container: ProjectDefinitionContainer): DefinitionDiff | undefined;
35
62
  //# sourceMappingURL=definition-issue-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"definition-issue-utils.d.ts","sourceRoot":"","sources":["../../src/parser/definition-issue-utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAClG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EACV,eAAe,EACf,qBAAqB,EACtB,MAAM,+CAA+C,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAE3E;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,eAAe,EACtB,SAAS,EAAE,0BAA0B,GACpC,aAAa,CAKf;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,0BAA0B,EACrC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,aAAa,EAC3B,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,UAAU,GAAG,KAAK,CAAC,GAC3D,qBAAqB,CAMvB;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,eAAe,EACtB,SAAS,EAAE,0BAA0B,GACpC,CAAC,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC,GAAG,SAAS,CAkBlD"}
1
+ {"version":3,"file":"definition-issue-utils.d.ts","sourceRoot":"","sources":["../../src/parser/definition-issue-utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAClG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;AACnG,OAAO,KAAK,EACV,eAAe,EACf,qBAAqB,EACtB,MAAM,+CAA+C,CAAC;AACvD,OAAO,KAAK,EACV,6BAA6B,EAC7B,iBAAiB,EAClB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAWjF;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,eAAe,EACtB,SAAS,EAAE,0BAA0B,GACpC,aAAa,CAKf;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,0BAA0B,EACrC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,aAAa,EAC3B,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,UAAU,GAAG,KAAK,CAAC,GAC3D,qBAAqB,CAMvB;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,eAAe,EACtB,SAAS,EAAE,0BAA0B,GACpC,CAAC,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC,GAAG,SAAS,CAkBlD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,CACf,SAAS,EAAE,0BAA0B,KAClC,6BAA6B,GAAG,SAAS,CAAC;CAChD,GAAG,sBAAsB,CAoCzB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,eAAe,EACtB,SAAS,EAAE,0BAA0B,GACpC,cAAc,GAAG,SAAS,CAe5B"}
@@ -1,4 +1,10 @@
1
1
  import { get, set } from 'es-toolkit/compat';
2
+ import { produce } from 'immer';
3
+ import { PluginUtils } from '#src/definition/plugins/plugin-utils.js';
4
+ import { serializeSchema } from '#src/references/serialize-schema.js';
5
+ import { pluginEntityType } from '#src/schema/plugins/entity-types.js';
6
+ import { diffDefinition, diffSerializedDefinitions, } from '#src/tools/merge-schema/diff-definition.js';
7
+ import { applyMergedDefinition } from '#src/tools/merge-schema/merge-definition.js';
2
8
  /**
3
9
  * Resolves a definition issue's path to an absolute path in the definition.
4
10
  *
@@ -58,4 +64,57 @@ export function createIssueFixSetter(issue, container) {
58
64
  }
59
65
  return undefined;
60
66
  }
67
+ /**
68
+ * Creates a definition-level issue checker that warns when a plugin's required
69
+ * models are out of sync with what the plugin expects.
70
+ *
71
+ * The `buildPartialDef` callback receives the container and should return the
72
+ * expected partial definition, or `undefined` to skip the check (e.g. when a
73
+ * required feature ref is missing or dangling).
74
+ *
75
+ * The helper handles the common pattern of:
76
+ * 1. Guarding against a missing plugin config
77
+ * 2. Diffing the current definition against the expected partial definition
78
+ * 3. Returning a fixable warning if there are changes
79
+ */
80
+ export function createPluginModelSyncChecker(options) {
81
+ return (container) => {
82
+ const pluginConfig = PluginUtils.configByKey(container.definition, options.pluginKey);
83
+ if (!pluginConfig)
84
+ return [];
85
+ const partialDef = options.buildPartialDef(container);
86
+ if (!partialDef)
87
+ return [];
88
+ const diff = diffDefinition(container.schema, container.definition, partialDef);
89
+ if (!diff.hasChanges)
90
+ return [];
91
+ const changedLabels = diff.entries.map((e) => e.label).join(', ');
92
+ return [
93
+ createEntityIssue(container, pluginEntityType.idFromKey(options.pluginKey), [], {
94
+ message: `${options.pluginLabel} plugin models are out of sync: ${changedLabels}. Save the ${options.pluginLabel} plugin settings to update.`,
95
+ severity: 'warning',
96
+ fix: {
97
+ label: `Sync ${options.pluginLabel} models`,
98
+ applySetter: applyMergedDefinition(container, partialDef),
99
+ },
100
+ }),
101
+ ];
102
+ };
103
+ }
104
+ /**
105
+ * Previews the diff that would result from applying an issue's fix.
106
+ *
107
+ * Applies the fix to a draft copy of the definition, serializes both versions,
108
+ * and returns a structured diff. Returns `undefined` if the issue has no fix.
109
+ */
110
+ export function previewIssueFix(issue, container) {
111
+ const setter = createIssueFixSetter(issue, container);
112
+ if (!setter)
113
+ return undefined;
114
+ const { schema, definition } = container;
115
+ const fixedDefinition = produce(definition, setter);
116
+ const currentSerialized = serializeSchema(schema, definition);
117
+ const fixedSerialized = serializeSchema(schema, fixedDefinition);
118
+ return diffSerializedDefinitions(schema, currentSerialized, fixedSerialized);
119
+ }
61
120
  //# sourceMappingURL=definition-issue-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"definition-issue-utils.js","sourceRoot":"","sources":["../../src/parser/definition-issue-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAU7C;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAsB,EACtB,SAAqC;IAErC,IAAI,CAAC,KAAK,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC;IACvC,MAAM,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtD,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC;IAC/B,OAAO,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAAqC,EACrC,QAAgB,EAChB,YAA2B,EAC3B,KAA4D;IAE5D,MAAM,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;AACpD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAClC,KAAsB,EACtB,SAAqC;IAErC,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IACtB,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAE3B,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;QACpB,OAAO,GAAG,CAAC,WAAW,CAAC;IACzB,CAAC;IAED,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QACd,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;QAC1B,OAAO,CAAC,KAAK,EAAE,EAAE;YACf,MAAM,YAAY,GAAG,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YACxD,MAAM,YAAY,GAAY,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;YACvD,GAAG,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;QAClD,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"definition-issue-utils.js","sourceRoot":"","sources":["../../src/parser/definition-issue-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { z } from 'zod';
2
+ import type { ReferencePath } from '#src/references/types.js';
3
+ /**
4
+ * Describes an item in a discriminated union array whose discriminator value
5
+ * no longer matches any branch in the schema.
6
+ *
7
+ * This happens when a plugin that contributed a union branch is disabled —
8
+ * the branch is removed from the schema but the data still contains items
9
+ * with that discriminator value.
10
+ */
11
+ export interface OrphanedUnionItem {
12
+ /** Absolute path to the orphaned item in the data tree. */
13
+ readonly path: ReferencePath;
14
+ /** The discriminator field name (e.g., 'type'). */
15
+ readonly discriminator: string;
16
+ /** The discriminator value that has no matching schema branch (e.g., 'file'). */
17
+ readonly discriminatorValue: string;
18
+ }
19
+ /**
20
+ * Walks raw data against a Zod schema and collects items in discriminated
21
+ * unions whose discriminator value no longer matches any schema branch.
22
+ *
23
+ * This is used to detect orphaned items before `schema.parse()` is called,
24
+ * which would otherwise silently strip or reject the data.
25
+ *
26
+ * Uses `walkDataWithSchema` with a visitor that checks each discriminated
27
+ * union node for unmatched discriminator values.
28
+ */
29
+ export declare function findOrphanedUnionItems(schema: z.ZodType, data: unknown): OrphanedUnionItem[];
30
+ //# sourceMappingURL=find-orphaned-union-items.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-orphaned-union-items.d.ts","sourceRoot":"","sources":["../../src/parser/find-orphaned-union-items.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAyB,MAAM,KAAK,CAAC;AAEpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAO9D;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC,2DAA2D;IAC3D,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,mDAAmD;IACnD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,iFAAiF;IACjF,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;CACrC;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,CAAC,CAAC,OAAO,EACjB,IAAI,EAAE,OAAO,GACZ,iBAAiB,EAAE,CAyCrB"}
@@ -0,0 +1,47 @@
1
+ import { findDiscriminatedUnionMatch } from './schema-structure.js';
2
+ import { walkDataWithSchema } from './walk-data-with-schema.js';
3
+ /**
4
+ * Walks raw data against a Zod schema and collects items in discriminated
5
+ * unions whose discriminator value no longer matches any schema branch.
6
+ *
7
+ * This is used to detect orphaned items before `schema.parse()` is called,
8
+ * which would otherwise silently strip or reject the data.
9
+ *
10
+ * Uses `walkDataWithSchema` with a visitor that checks each discriminated
11
+ * union node for unmatched discriminator values.
12
+ */
13
+ export function findOrphanedUnionItems(schema, data) {
14
+ const items = [];
15
+ const visitor = {
16
+ visit(nodeSchema, nodeData, ctx) {
17
+ // Only interested in discriminated unions
18
+ if (nodeSchema._zod.def.type !== 'union')
19
+ return undefined;
20
+ const { discriminator } = nodeSchema._zod.def;
21
+ if (!discriminator)
22
+ return undefined;
23
+ // Check if the data has a discriminator value that doesn't match any branch
24
+ if (nodeData === null ||
25
+ nodeData === undefined ||
26
+ typeof nodeData !== 'object')
27
+ return undefined;
28
+ const discValue = nodeData[discriminator];
29
+ if (typeof discValue !== 'string' || discValue === '')
30
+ return undefined;
31
+ const options = nodeSchema
32
+ .options;
33
+ const match = findDiscriminatedUnionMatch(options, discriminator, nodeData);
34
+ if (!match) {
35
+ items.push({
36
+ path: ctx.path,
37
+ discriminator,
38
+ discriminatorValue: discValue,
39
+ });
40
+ }
41
+ return undefined;
42
+ },
43
+ };
44
+ walkDataWithSchema(schema, data, [visitor]);
45
+ return items;
46
+ }
47
+ //# sourceMappingURL=find-orphaned-union-items.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-orphaned-union-items.js","sourceRoot":"","sources":["../../src/parser/find-orphaned-union-items.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAmBhE;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAiB,EACjB,IAAa;IAEb,MAAM,KAAK,GAAwB,EAAE,CAAC;IACtC,MAAM,OAAO,GAAsB;QACjC,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,GAAG;YAC7B,0CAA0C;YAC1C,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,OAAO;gBAAE,OAAO,SAAS,CAAC;YAC3D,MAAM,EAAE,aAAa,EAAE,GAAI,UAAoC,CAAC,IAAI,CAAC,GAAG,CAAC;YACzE,IAAI,CAAC,aAAa;gBAAE,OAAO,SAAS,CAAC;YAErC,4EAA4E;YAC5E,IACE,QAAQ,KAAK,IAAI;gBACjB,QAAQ,KAAK,SAAS;gBACtB,OAAO,QAAQ,KAAK,QAAQ;gBAE5B,OAAO,SAAS,CAAC;YAEnB,MAAM,SAAS,GAAI,QAAoC,CAAC,aAAa,CAAC,CAAC;YACvE,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,EAAE;gBAAE,OAAO,SAAS,CAAC;YAExE,MAAM,OAAO,GAAI,UAAoC;iBAClD,OAAsB,CAAC;YAC1B,MAAM,KAAK,GAAG,2BAA2B,CACvC,OAAO,EACP,aAAa,EACb,QAAQ,CACT,CAAC;YACF,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,aAAa;oBACb,kBAAkB,EAAE,SAAS;iBAC9B,CAAC,CAAC;YACL,CAAC;YAED,OAAO,SAAS,CAAC;QACnB,CAAC;KACF,CAAC;IAEF,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5C,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -3,10 +3,12 @@ export { cleanDefaultValues } from './clean-default-values.js';
3
3
  export { collectDefinitionIssues, collectFieldIssues, partitionIssuesBySeverity, } from './collect-definition-issues.js';
4
4
  export type { PartitionedIssues } from './collect-definition-issues.js';
5
5
  export { collectExpressionIssues } from './collect-expression-issues.js';
6
- export { createEntityIssue, createIssueFixSetter, resolveIssuePath, } from './definition-issue-utils.js';
6
+ export { createEntityIssue, createIssueFixSetter, createPluginModelSyncChecker, previewIssueFix, resolveIssuePath, } from './definition-issue-utils.js';
7
+ export { findOrphanedUnionItems, type OrphanedUnionItem, } from './find-orphaned-union-items.js';
7
8
  export * from './parser.js';
8
9
  export { findDiscriminatedUnionMatch } from './schema-structure.js';
9
10
  export { transformDataWithSchema } from './transform-data-with-schema.js';
10
11
  export type * from './types.js';
11
12
  export { walkDataWithSchema } from './walk-data-with-schema.js';
13
+ export { type SchemaStructureVisitor, walkSchemaStructure, } from './walk-schema-structure.js';
12
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,gCAAgC,CAAC;AACxC,YAAY,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,6BAA6B,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,mBAAmB,YAAY,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,gCAAgC,CAAC;AACxC,YAAY,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,4BAA4B,EAC5B,eAAe,EACf,gBAAgB,GACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,sBAAsB,EACtB,KAAK,iBAAiB,GACvB,MAAM,gCAAgC,CAAC;AACxC,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,mBAAmB,YAAY,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EACL,KAAK,sBAAsB,EAC3B,mBAAmB,GACpB,MAAM,4BAA4B,CAAC"}
@@ -2,9 +2,11 @@ export { applyDefinitionFixes } from './apply-definition-fixes.js';
2
2
  export { cleanDefaultValues } from './clean-default-values.js';
3
3
  export { collectDefinitionIssues, collectFieldIssues, partitionIssuesBySeverity, } from './collect-definition-issues.js';
4
4
  export { collectExpressionIssues } from './collect-expression-issues.js';
5
- export { createEntityIssue, createIssueFixSetter, resolveIssuePath, } from './definition-issue-utils.js';
5
+ export { createEntityIssue, createIssueFixSetter, createPluginModelSyncChecker, previewIssueFix, resolveIssuePath, } from './definition-issue-utils.js';
6
+ export { findOrphanedUnionItems, } from './find-orphaned-union-items.js';
6
7
  export * from './parser.js';
7
8
  export { findDiscriminatedUnionMatch } from './schema-structure.js';
8
9
  export { transformDataWithSchema } from './transform-data-with-schema.js';
9
10
  export { walkDataWithSchema } from './walk-data-with-schema.js';
11
+ export { walkSchemaStructure, } from './walk-schema-structure.js';
10
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,6BAA6B,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAE1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,4BAA4B,EAC5B,eAAe,EACf,gBAAgB,GACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,sBAAsB,GAEvB,MAAM,gCAAgC,CAAC;AACxC,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAE1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAEL,mBAAmB,GACpB,MAAM,4BAA4B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/parser/parser.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,WAAW,EACZ,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EACV,uBAAuB,EACvB,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,KAAK,EACV,iBAAiB,EACjB,uBAAuB,EACxB,MAAM,mCAAmC,CAAC;AAW3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,OAAO,GACzB,eAAe,CAyBjB;AAED;;;;;;;GAOG;AACH,wBAAgB,6CAA6C,CAC3D,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,uBAAuB,EAAE,EAClC,iBAAiB,EAAE,iBAAiB,GACnC,eAAe,CAsBjB;AAED;;;;;;GAMG;AACH,wBAAgB,wCAAwC,CACtD,iBAAiB,EAAE,OAAO,EAC1B,OAAO,EAAE,mBAAmB,GAC3B,uBAAuB,CAOzB;AAED,wBAAgB,iCAAiC,CAC/C,iBAAiB,EAAE,OAAO,EAC1B,OAAO,EAAE,mBAAmB,GAC3B,iBAAiB,CAMnB;AAED;;;;;;GAMG;AACH,wBAAgB,oCAAoC,CAClD,iBAAiB,EAAE,OAAO,EAC1B,OAAO,EAAE,mBAAmB,GAC3B;IACD,UAAU,EAAE,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;IACrD,WAAW,EAAE,eAAe,CAAC;CAC9B,CAYA"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/parser/parser.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,WAAW,EACZ,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EACV,uBAAuB,EACvB,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,KAAK,EACV,iBAAiB,EACjB,uBAAuB,EACxB,MAAM,mCAAmC,CAAC;AAY3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,OAAO,GACzB,eAAe,CA6BjB;AAED;;;;;;;GAOG;AACH,wBAAgB,6CAA6C,CAC3D,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,uBAAuB,EAAE,EAClC,iBAAiB,EAAE,iBAAiB,GACnC,eAAe,CAsBjB;AAED;;;;;;GAMG;AACH,wBAAgB,wCAAwC,CACtD,iBAAiB,EAAE,OAAO,EAC1B,OAAO,EAAE,mBAAmB,GAC3B,uBAAuB,CAOzB;AAED,wBAAgB,iCAAiC,CAC/C,iBAAiB,EAAE,OAAO,EAC1B,OAAO,EAAE,mBAAmB,GAC3B,iBAAiB,CAMnB;AAED;;;;;;GAMG;AACH,wBAAgB,oCAAoC,CAClD,iBAAiB,EAAE,OAAO,EAC1B,OAAO,EAAE,mBAAmB,GAC3B;IACD,UAAU,EAAE,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;IACrD,WAAW,EAAE,eAAe,CAAC;CAC9B,CAYA"}
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { initializePlugins } from '#src/plugins/imports/loader.js';
3
+ import { validatePluginDependencyGraph } from '#src/plugins/imports/validate-plugin-dependencies.js';
3
4
  import { parseSchemaWithTransformedReferences } from '#src/references/parse-schema-with-references.js';
4
5
  import { createDefinitionSchemaParserContext, pluginEntityType, } from '#src/schema/index.js';
5
6
  import { basePluginDefinitionSchema } from '#src/schema/plugins/definition.js';
@@ -14,6 +15,8 @@ import { createProjectDefinitionSchema } from '#src/schema/project-definition.js
14
15
  */
15
16
  export function createPluginSpecStore(pluginStore, projectDefinition) {
16
17
  const { availablePlugins, coreModules } = pluginStore;
18
+ // Validate that the plugin dependency graph has no circular dependencies
19
+ validatePluginDependencyGraph(availablePlugins);
17
20
  const pluginData = z
18
21
  .object({
19
22
  plugins: z.array(basePluginDefinitionSchema).optional(),
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/parser/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgBxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,oCAAoC,EAAE,MAAM,iDAAiD,CAAC;AACvG,OAAO,EACL,mCAAmC,EACnC,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AAIlF;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACnC,WAAwB,EACxB,iBAA0B;IAE1B,MAAM,EAAE,gBAAgB,EAAE,WAAW,EAAE,GAAG,WAAW,CAAC;IACtD,MAAM,UAAU,GAAG,CAAC;SACjB,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,QAAQ,EAAE;KACxD,CAAC;SACD,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC5B,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,UAAU,CAAC;IACpC,qBAAqB;IACrB,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAyB,EAAE;QAClE,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAClC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CACf,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW,CACrE,CAAC;QACF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAChC,GAAG,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE;YAC7D,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG;YAC9B,MAAM,EAAE,CAAC,CAAC,MAAM;SACjB,CAAC,CAAC,CAAC;IACN,CAAC,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxE,OAAO,iBAAiB,CAAC,CAAC,GAAG,cAAc,EAAE,GAAG,WAAW,CAAC,EAAE,UAAU,CAAC,CAAC;AAC5E,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,6CAA6C,CAC3D,WAAwB,EACxB,OAAkC,EAClC,iBAAoC;IAEpC,MAAM,oBAAoB,GAAsB;QAC9C,GAAG,iBAAiB;QACpB,OAAO,EAAE;YACP,GAAG,CAAC,iBAAiB,CAAC,OAAO,IAAI,EAAE,CAAC;YACpC,GAAG,OAAO;iBACP,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAC9B,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CACpD,CACJ;iBACA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACX,EAAE,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;gBACrC,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,MAAM,EAAE,SAAS;aAClB,CAAC,CAAC;SACN;KACF,CAAC;IACF,OAAO,qBAAqB,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC;AAClE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wCAAwC,CACtD,iBAA0B,EAC1B,OAA4B;IAE5B,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAChC,MAAM,eAAe,GAAG,qBAAqB,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;IAC9E,MAAM,iBAAiB,GAAG,mCAAmC,CAAC;QAC5D,OAAO,EAAE,eAAe;KACzB,CAAC,CAAC;IACH,OAAO,6BAA6B,CAAC,iBAAiB,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,iBAA0B,EAC1B,OAA4B;IAE5B,MAAM,MAAM,GAAG,wCAAwC,CACrD,iBAAiB,EACjB,OAAO,CACR,CAAC;IACF,OAAO,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;AACzC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oCAAoC,CAClD,iBAA0B,EAC1B,OAA4B;IAK5B,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAChC,MAAM,eAAe,GAAG,qBAAqB,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;IAC9E,MAAM,iBAAiB,GAAG,mCAAmC,CAAC;QAC5D,OAAO,EAAE,eAAe;KACzB,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,6BAA6B,CAAC,iBAAiB,CAAC,CAAC;IAChE,MAAM,UAAU,GAAG,oCAAoC,CACrD,MAAM,EACN,iBAAiB,CAClB,CAAC;IACF,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;AACtD,CAAC"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/parser/parser.ts"],"names":[],"mappings":"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"}
@@ -50,7 +50,7 @@ function transformNode(schema, data, path, transform) {
50
50
  const result = { ...obj };
51
51
  for (const [key, value] of entries) {
52
52
  if (value === undefined) {
53
- // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
53
+ // oxlint-disable-next-line typescript/no-dynamic-delete
54
54
  delete result[key];
55
55
  }
56
56
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"transform-data-with-schema.js","sourceRoot":"","sources":["../../src/parser/transform-data-with-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transform-data-with-schema.js","sourceRoot":"","sources":["../../src/parser/transform-data-with-schema.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export { initializePlugins } from './loader.js';
2
2
  export * from './types.js';
3
3
  export * from './utils.js';
4
+ export * from './validate-plugin-dependencies.js';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/imports/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/imports/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,mCAAmC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export { initializePlugins } from './loader.js';
2
2
  export * from './types.js';
3
3
  export * from './utils.js';
4
+ export * from './validate-plugin-dependencies.js';
4
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/imports/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/imports/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,mCAAmC,CAAC"}
@@ -0,0 +1,42 @@
1
+ import type { BasePluginDefinition } from '#src/schema/plugins/definition.js';
2
+ import type { PluginMetadataWithPaths } from '../metadata/types.js';
3
+ import type { PluginStore } from './types.js';
4
+ /**
5
+ * Builds a set of fullyQualifiedNames for all enabled plugins in a definition.
6
+ *
7
+ * @param pluginStore The plugin store containing all available plugins
8
+ * @param enabledPlugins The enabled plugin definitions from the project definition
9
+ * @returns Set of fullyQualifiedNames for enabled plugins
10
+ */
11
+ export declare function buildEnabledPluginFqnSet(pluginStore: PluginStore, enabledPlugins: BasePluginDefinition[]): Set<string>;
12
+ /**
13
+ * Validates that the plugin dependency graph has no circular dependencies.
14
+ *
15
+ * Uses topological sort to detect cycles. Dependencies referencing plugins
16
+ * not in `availablePlugins` are silently skipped (they may be uninstalled).
17
+ *
18
+ * @throws ToposortCyclicalDependencyError if a circular dependency is detected
19
+ */
20
+ export declare function validatePluginDependencyGraph(availablePlugins: PluginStore['availablePlugins']): void;
21
+ export interface ResolvedPluginDependency {
22
+ metadata: PluginMetadataWithPaths;
23
+ optional: boolean;
24
+ }
25
+ /**
26
+ * Resolves a plugin's declared dependencies to their metadata objects.
27
+ *
28
+ * @param pluginStore The plugin store containing all available plugins
29
+ * @param pluginKey The key of the plugin whose dependencies to resolve
30
+ * @returns Array of resolved dependencies with metadata and optional flag
31
+ */
32
+ export declare function getPluginDependencies(pluginStore: PluginStore, pluginKey: string): ResolvedPluginDependency[];
33
+ /**
34
+ * Returns the required (non-optional) plugin dependencies that are not currently enabled.
35
+ *
36
+ * @param pluginStore The plugin store containing all available plugins
37
+ * @param pluginKey The key of the plugin to check
38
+ * @param enabledPluginFqns Set of fullyQualifiedNames for currently enabled plugins
39
+ * @returns Array of unmet required dependencies with metadata
40
+ */
41
+ export declare function getUnmetPluginDependencies(pluginStore: PluginStore, pluginKey: string, enabledPluginFqns: Set<string>): PluginMetadataWithPaths[];
42
+ //# sourceMappingURL=validate-plugin-dependencies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-plugin-dependencies.d.ts","sourceRoot":"","sources":["../../../src/plugins/imports/validate-plugin-dependencies.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAI9E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI9C;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,oBAAoB,EAAE,GACrC,GAAG,CAAC,MAAM,CAAC,CAUb;AAED;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAC3C,gBAAgB,EAAE,WAAW,CAAC,kBAAkB,CAAC,GAChD,IAAI,CAkBN;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,uBAAuB,CAAC;IAClC,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,GAChB,wBAAwB,EAAE,CAmB5B;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,GAC7B,uBAAuB,EAAE,CAU3B"}
@@ -0,0 +1,80 @@
1
+ import { toposort } from '@baseplate-dev/utils';
2
+ import { pluginEntityType } from '#src/schema/plugins/entity-types.js';
3
+ import { getPluginMetadataByKey } from './utils.js';
4
+ /**
5
+ * Builds a set of fullyQualifiedNames for all enabled plugins in a definition.
6
+ *
7
+ * @param pluginStore The plugin store containing all available plugins
8
+ * @param enabledPlugins The enabled plugin definitions from the project definition
9
+ * @returns Set of fullyQualifiedNames for enabled plugins
10
+ */
11
+ export function buildEnabledPluginFqnSet(pluginStore, enabledPlugins) {
12
+ const fqns = new Set();
13
+ for (const plugin of enabledPlugins) {
14
+ const key = pluginEntityType.keyFromId(plugin.id);
15
+ const metadata = getPluginMetadataByKey(pluginStore, key);
16
+ if (metadata) {
17
+ fqns.add(metadata.fullyQualifiedName);
18
+ }
19
+ }
20
+ return fqns;
21
+ }
22
+ /**
23
+ * Validates that the plugin dependency graph has no circular dependencies.
24
+ *
25
+ * Uses topological sort to detect cycles. Dependencies referencing plugins
26
+ * not in `availablePlugins` are silently skipped (they may be uninstalled).
27
+ *
28
+ * @throws ToposortCyclicalDependencyError if a circular dependency is detected
29
+ */
30
+ export function validatePluginDependencyGraph(availablePlugins) {
31
+ const allNames = new Set(availablePlugins.map((p) => p.metadata.fullyQualifiedName));
32
+ const nodes = [...allNames];
33
+ const edges = [];
34
+ for (const { metadata } of availablePlugins) {
35
+ for (const dep of metadata.pluginDependencies ?? []) {
36
+ if (allNames.has(dep.plugin)) {
37
+ edges.push([metadata.fullyQualifiedName, dep.plugin]);
38
+ }
39
+ }
40
+ }
41
+ // toposort throws ToposortCyclicalDependencyError on cycles
42
+ toposort(nodes, edges);
43
+ }
44
+ /**
45
+ * Resolves a plugin's declared dependencies to their metadata objects.
46
+ *
47
+ * @param pluginStore The plugin store containing all available plugins
48
+ * @param pluginKey The key of the plugin whose dependencies to resolve
49
+ * @returns Array of resolved dependencies with metadata and optional flag
50
+ */
51
+ export function getPluginDependencies(pluginStore, pluginKey) {
52
+ const plugin = pluginStore.availablePlugins.find((p) => p.metadata.key === pluginKey);
53
+ if (!plugin) {
54
+ return [];
55
+ }
56
+ const deps = plugin.metadata.pluginDependencies ?? [];
57
+ return deps.flatMap((dep) => {
58
+ const target = pluginStore.availablePlugins.find((p) => p.metadata.fullyQualifiedName === dep.plugin);
59
+ if (!target) {
60
+ return [];
61
+ }
62
+ return [{ metadata: target.metadata, optional: dep.optional ?? false }];
63
+ });
64
+ }
65
+ /**
66
+ * Returns the required (non-optional) plugin dependencies that are not currently enabled.
67
+ *
68
+ * @param pluginStore The plugin store containing all available plugins
69
+ * @param pluginKey The key of the plugin to check
70
+ * @param enabledPluginFqns Set of fullyQualifiedNames for currently enabled plugins
71
+ * @returns Array of unmet required dependencies with metadata
72
+ */
73
+ export function getUnmetPluginDependencies(pluginStore, pluginKey, enabledPluginFqns) {
74
+ const deps = getPluginDependencies(pluginStore, pluginKey);
75
+ return deps
76
+ .filter((dep) => !dep.optional &&
77
+ !enabledPluginFqns.has(dep.metadata.fullyQualifiedName))
78
+ .map((dep) => dep.metadata);
79
+ }
80
+ //# sourceMappingURL=validate-plugin-dependencies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-plugin-dependencies.js","sourceRoot":"","sources":["../../../src/plugins/imports/validate-plugin-dependencies.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,15 @@ export declare const pluginSpecDependencySchema: z.ZodObject<{
9
9
  version: z.ZodString;
10
10
  }, z.core.$strip>;
11
11
  export type PluginSpecDependency = z.infer<typeof pluginSpecDependencySchema>;
12
+ /**
13
+ * Schema for a plugin-level dependency declaration.
14
+ * Declares that a plugin requires (or optionally suggests) another plugin to be enabled.
15
+ */
16
+ export declare const pluginDependencySchema: z.ZodObject<{
17
+ plugin: z.ZodString;
18
+ optional: z.ZodOptional<z.ZodBoolean>;
19
+ }, z.core.$strip>;
20
+ export type PluginDependency = z.infer<typeof pluginDependencySchema>;
12
21
  /**
13
22
  * Schema for the plugin's metadata (plugin.json)
14
23
  */
@@ -30,6 +39,10 @@ export declare const pluginMetadataSchema: z.ZodObject<{
30
39
  version: z.ZodString;
31
40
  }, z.core.$strip>>>;
32
41
  }, z.core.$strip>>;
42
+ pluginDependencies: z.ZodOptional<z.ZodArray<z.ZodObject<{
43
+ plugin: z.ZodString;
44
+ optional: z.ZodOptional<z.ZodBoolean>;
45
+ }, z.core.$strip>>>;
33
46
  hidden: z.ZodOptional<z.ZodBoolean>;
34
47
  }, z.core.$strip>;
35
48
  export type PluginMetadata = z.infer<typeof pluginMetadataSchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/plugins/metadata/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,uBAAuB;;;iBAGlC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,0BAA0B;;;iBAGrC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;iBAyD/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,MAAM,WAAW,uBAAwB,SAAQ,cAAc;IAC7D;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B;;OAEG;IACH,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/plugins/metadata/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,uBAAuB;;;iBAGlC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,0BAA0B;;;iBAGrC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;iBAKjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;iBA8D/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,MAAM,WAAW,uBAAwB,SAAQ,cAAc;IAC7D;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B;;OAEG;IACH,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B"}
@@ -9,6 +9,16 @@ export const pluginSpecDependencySchema = z.object({
9
9
  spec: z.string(),
10
10
  version: z.string(),
11
11
  });
12
+ /**
13
+ * Schema for a plugin-level dependency declaration.
14
+ * Declares that a plugin requires (or optionally suggests) another plugin to be enabled.
15
+ */
16
+ export const pluginDependencySchema = z.object({
17
+ /** Fully qualified plugin name, e.g. "@baseplate-dev/plugin-auth:auth" */
18
+ plugin: z.string().min(1),
19
+ /** Whether this dependency is optional (suggested but not required). Defaults to false. */
20
+ optional: z.boolean().optional(),
21
+ });
12
22
  /**
13
23
  * Schema for the plugin's metadata (plugin.json)
14
24
  */
@@ -63,6 +73,11 @@ export const pluginMetadataSchema = z.object({
63
73
  dependencies: z.array(pluginSpecDependencySchema).optional(),
64
74
  })
65
75
  .optional(),
76
+ /**
77
+ * Plugin-level dependencies that declare which other plugins must (or should) be enabled
78
+ * for this plugin to function correctly. References plugins by fully qualified name.
79
+ */
80
+ pluginDependencies: z.array(pluginDependencySchema).optional(),
66
81
  /**
67
82
  * Whether the plugin should be hidden in the project builder UI
68
83
  *
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/plugins/metadata/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,iBAAiB;AACjB,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;AAE5D,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC3B,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;CACpB,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C;;OAEG;IACH,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,KAAK,CAAC,cAAc,CAAC;IACxB;;OAEG;IACH,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACjD;;OAEG;IACH,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B;;OAEG;IACH,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B;;OAEG;IACH,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB;;;;;;OAMG;IACH,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC;;OAEG;IACH,OAAO,EAAE,aAAa;IACtB;;OAEG;IACH,KAAK,EAAE,CAAC;SACL,MAAM,CAAC;QACN;;WAEG;QACH,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,QAAQ,EAAE;QACpD;;WAEG;QACH,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,QAAQ,EAAE;KAC7D,CAAC;SACD,QAAQ,EAAE;IACb;;;;OAIG;IACH,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/plugins/metadata/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,iBAAiB;AACjB,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;AAE5D,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC3B,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;CACpB,CAAC,CAAC;AAIH;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,0EAA0E;IAC1E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,2FAA2F;IAC3F,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C;;OAEG;IACH,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,KAAK,CAAC,cAAc,CAAC;IACxB;;OAEG;IACH,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACjD;;OAEG;IACH,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B;;OAEG;IACH,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B;;OAEG;IACH,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB;;;;;;OAMG;IACH,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC;;OAEG;IACH,OAAO,EAAE,aAAa;IACtB;;OAEG;IACH,KAAK,EAAE,CAAC;SACL,MAAM,CAAC;QACN;;WAEG;QACH,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,QAAQ,EAAE;QACpD;;WAEG;QACH,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,QAAQ,EAAE;KAC7D,CAAC;SACD,QAAQ,EAAE;IACb;;;OAGG;IACH,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,QAAQ,EAAE;IAC9D;;;;OAIG;IACH,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAC"}
@@ -4,6 +4,7 @@ export interface AuthRole {
4
4
  name: string;
5
5
  comment: string;
6
6
  builtIn: boolean;
7
+ autoAssigned: boolean;
7
8
  }
8
9
  type AuthConfigGetter = (definition: ProjectDefinition) => {
9
10
  roles: AuthRole[];
@@ -1 +1 @@
1
- {"version":3,"file":"auth-config-spec.d.ts","sourceRoot":"","sources":["../../../src/plugins/spec/auth-config-spec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAI3E,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,KAAK,gBAAgB,GAAG,CAAC,UAAU,EAAE,iBAAiB,KAAK;IACzD,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;gCASO,iBAAiB;eAf1C,QAAQ,EAAE;;uCAiBsB,iBAAiB;eAjBjD,QAAQ,EAAE;;EA0BlB,CAAC"}
1
+ {"version":3,"file":"auth-config-spec.d.ts","sourceRoot":"","sources":["../../../src/plugins/spec/auth-config-spec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAI3E,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,KAAK,gBAAgB,GAAG,CAAC,UAAU,EAAE,iBAAiB,KAAK;IACzD,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;gCASO,iBAAiB;eAf1C,QAAQ,EAAE;;uCAiBsB,iBAAiB;eAjBjD,QAAQ,EAAE;;EA0BlB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"auth-config-spec.js","sourceRoot":"","sources":["../../../src/plugins/spec/auth-config-spec.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAavE;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,kBAAkB,CAC9C,kBAAkB,EAClB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACN,aAAa,EAAE,CAAC,CAAC,MAAM,EAAoB;IAC3C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAU;CAC9B,CAAC,EACF;IACE,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,aAAa,EAAE,CAAC,UAA6B,EAAE,EAAE,CAC/C,MAAM,CAAC,aAAa,EAAE,CAAC,UAAU,CAAC;QACpC,oBAAoB,EAAE,CAAC,UAA6B,EAAE,EAAE;YACtD,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC,UAAU,CAAC,CAAC;YAClD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC3C,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC;CACH,CACF,CAAC"}
1
+ {"version":3,"file":"auth-config-spec.js","sourceRoot":"","sources":["../../../src/plugins/spec/auth-config-spec.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAcvE;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,kBAAkB,CAC9C,kBAAkB,EAClB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACN,aAAa,EAAE,CAAC,CAAC,MAAM,EAAoB;IAC3C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAU;CAC9B,CAAC,EACF;IACE,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,aAAa,EAAE,CAAC,UAA6B,EAAE,EAAE,CAC/C,MAAM,CAAC,aAAa,EAAE,CAAC,UAAU,CAAC;QACpC,oBAAoB,EAAE,CAAC,UAA6B,EAAE,EAAE;YACtD,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC,UAAU,CAAC,CAAC;YAClD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC3C,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC;CACH,CACF,CAAC"}
@@ -42,6 +42,8 @@ interface DefinitionEntityInputBase<TInput, TEntityType extends DefinitionEntity
42
42
  getNameResolver?: (value: TInput) => DefinitionEntityNameResolver<any> | string;
43
43
  /** Optional ref context slot that this entity provides. Registers this entity's path in a shared context. */
44
44
  provides?: RefContextSlot<TEntityType>;
45
+ /** When true, arrays of this entity type are sorted by name during serialization for deterministic output. */
46
+ sortByName?: boolean;
45
47
  }
46
48
  /**
47
49
  * Entity input when a parent reference is required.