@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.
- package/CHANGELOG.md +54 -0
- package/dist/compiler/admin-crud-action-compiler.js +1 -1
- package/dist/compiler/admin-crud-action-compiler.js.map +1 -1
- package/dist/compiler/admin-crud-column-compiler-spec.js +1 -1
- package/dist/compiler/admin-crud-column-compiler-spec.js.map +1 -1
- package/dist/compiler/admin-crud-input-spec.js +1 -1
- package/dist/compiler/admin-crud-input-spec.js.map +1 -1
- package/dist/compiler/app-compiler-spec.js +1 -1
- package/dist/compiler/app-compiler-spec.js.map +1 -1
- package/dist/compiler/index.d.ts +1 -0
- package/dist/compiler/index.d.ts.map +1 -1
- package/dist/compiler/index.js +1 -0
- package/dist/compiler/index.js.map +1 -1
- package/dist/compiler/model-transformer-compiler-spec.js +1 -1
- package/dist/compiler/model-transformer-compiler-spec.js.map +1 -1
- package/dist/compiler/root-compiler-spec.d.ts +25 -0
- package/dist/compiler/root-compiler-spec.d.ts.map +1 -0
- package/dist/compiler/root-compiler-spec.js +23 -0
- package/dist/compiler/root-compiler-spec.js.map +1 -0
- package/dist/constants/theme-colors.d.ts +0 -48
- package/dist/constants/theme-colors.d.ts.map +1 -1
- package/dist/constants/theme-colors.js +0 -32
- package/dist/constants/theme-colors.js.map +1 -1
- package/dist/definition/feature/feature-utils.d.ts +9 -3
- package/dist/definition/feature/feature-utils.d.ts.map +1 -1
- package/dist/definition/feature/feature-utils.js +30 -2
- package/dist/definition/feature/feature-utils.js.map +1 -1
- package/dist/definition/plugins/plugin-utils.d.ts +15 -0
- package/dist/definition/plugins/plugin-utils.d.ts.map +1 -1
- package/dist/definition/plugins/plugin-utils.js +50 -1
- package/dist/definition/plugins/plugin-utils.js.map +1 -1
- package/dist/definition/project-definition-container.d.ts.map +1 -1
- package/dist/definition/project-definition-container.js +3 -1
- package/dist/definition/project-definition-container.js.map +1 -1
- package/dist/{schema/models → expression-parsers}/authorizer/authorizer-expression-acorn-parser.d.ts +2 -0
- package/dist/expression-parsers/authorizer/authorizer-expression-acorn-parser.d.ts.map +1 -0
- package/dist/{schema/models → expression-parsers}/authorizer/authorizer-expression-acorn-parser.js +107 -52
- package/dist/expression-parsers/authorizer/authorizer-expression-acorn-parser.js.map +1 -0
- package/dist/{schema/models → expression-parsers}/authorizer/authorizer-expression-ast.d.ts +69 -1
- package/dist/expression-parsers/authorizer/authorizer-expression-ast.d.ts.map +1 -0
- package/dist/{schema/models → expression-parsers}/authorizer/authorizer-expression-ast.js +2 -0
- package/dist/expression-parsers/authorizer/authorizer-expression-ast.js.map +1 -0
- package/dist/{schema/models → expression-parsers}/authorizer/authorizer-expression-parser.d.ts +13 -14
- package/dist/expression-parsers/authorizer/authorizer-expression-parser.d.ts.map +1 -0
- package/dist/expression-parsers/authorizer/authorizer-expression-parser.js +292 -0
- package/dist/expression-parsers/authorizer/authorizer-expression-parser.js.map +1 -0
- package/dist/{schema/models → expression-parsers}/authorizer/authorizer-expression-validator.d.ts +37 -17
- package/dist/expression-parsers/authorizer/authorizer-expression-validator.d.ts.map +1 -0
- package/dist/expression-parsers/authorizer/authorizer-expression-validator.js +379 -0
- package/dist/expression-parsers/authorizer/authorizer-expression-validator.js.map +1 -0
- package/dist/expression-parsers/authorizer/authorizer-expression-visitor.d.ts +54 -0
- package/dist/expression-parsers/authorizer/authorizer-expression-visitor.d.ts.map +1 -0
- package/dist/expression-parsers/authorizer/authorizer-expression-visitor.js +52 -0
- package/dist/expression-parsers/authorizer/authorizer-expression-visitor.js.map +1 -0
- package/dist/expression-parsers/authorizer/index.d.ts +6 -0
- package/dist/expression-parsers/authorizer/index.d.ts.map +1 -0
- package/dist/expression-parsers/authorizer/index.js +6 -0
- package/dist/expression-parsers/authorizer/index.js.map +1 -0
- package/dist/expression-parsers/register-core-module.d.ts +6 -0
- package/dist/expression-parsers/register-core-module.d.ts.map +1 -0
- package/dist/expression-parsers/register-core-module.js +29 -0
- package/dist/expression-parsers/register-core-module.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/migrations/index.d.ts.map +1 -1
- package/dist/migrations/index.js +6 -0
- package/dist/migrations/index.js.map +1 -1
- package/dist/migrations/migration-029-admin-role-and-auto-assigned.d.ts +25 -0
- package/dist/migrations/migration-029-admin-role-and-auto-assigned.d.ts.map +1 -0
- package/dist/migrations/migration-029-admin-role-and-auto-assigned.js +72 -0
- package/dist/migrations/migration-029-admin-role-and-auto-assigned.js.map +1 -0
- package/dist/migrations/migration-030-remove-theme-hover-colors.d.ts +17 -0
- package/dist/migrations/migration-030-remove-theme-hover-colors.d.ts.map +1 -0
- package/dist/migrations/migration-030-remove-theme-hover-colors.js +41 -0
- package/dist/migrations/migration-030-remove-theme-hover-colors.js.map +1 -0
- package/dist/migrations/migration-031-uuid-default-generation.d.ts +24 -0
- package/dist/migrations/migration-031-uuid-default-generation.d.ts.map +1 -0
- package/dist/migrations/migration-031-uuid-default-generation.js +40 -0
- package/dist/migrations/migration-031-uuid-default-generation.js.map +1 -0
- package/dist/migrations/transform-json-path.d.ts.map +1 -1
- package/dist/migrations/transform-json-path.js +2 -3
- package/dist/migrations/transform-json-path.js.map +1 -1
- package/dist/parser/collect-definition-issues.d.ts.map +1 -1
- package/dist/parser/collect-definition-issues.js +10 -2
- package/dist/parser/collect-definition-issues.js.map +1 -1
- package/dist/parser/collect-expression-issues.d.ts +17 -9
- package/dist/parser/collect-expression-issues.d.ts.map +1 -1
- package/dist/parser/collect-expression-issues.js +21 -15
- package/dist/parser/collect-expression-issues.js.map +1 -1
- package/dist/parser/definition-issue-checkers/plugin-dependency-checker.d.ts +11 -0
- package/dist/parser/definition-issue-checkers/plugin-dependency-checker.d.ts.map +1 -0
- package/dist/parser/definition-issue-checkers/plugin-dependency-checker.js +41 -0
- package/dist/parser/definition-issue-checkers/plugin-dependency-checker.js.map +1 -0
- package/dist/parser/definition-issue-checkers/plugin-implementation-checker.d.ts +16 -0
- package/dist/parser/definition-issue-checkers/plugin-implementation-checker.d.ts.map +1 -0
- package/dist/parser/definition-issue-checkers/plugin-implementation-checker.js +69 -0
- package/dist/parser/definition-issue-checkers/plugin-implementation-checker.js.map +1 -0
- package/dist/parser/definition-issue-utils.d.ts +28 -1
- package/dist/parser/definition-issue-utils.d.ts.map +1 -1
- package/dist/parser/definition-issue-utils.js +59 -0
- package/dist/parser/definition-issue-utils.js.map +1 -1
- package/dist/parser/find-orphaned-union-items.d.ts +30 -0
- package/dist/parser/find-orphaned-union-items.d.ts.map +1 -0
- package/dist/parser/find-orphaned-union-items.js +47 -0
- package/dist/parser/find-orphaned-union-items.js.map +1 -0
- package/dist/parser/index.d.ts +3 -1
- package/dist/parser/index.d.ts.map +1 -1
- package/dist/parser/index.js +3 -1
- package/dist/parser/index.js.map +1 -1
- package/dist/parser/parser.d.ts.map +1 -1
- package/dist/parser/parser.js +3 -0
- package/dist/parser/parser.js.map +1 -1
- package/dist/parser/transform-data-with-schema.js +1 -1
- package/dist/parser/transform-data-with-schema.js.map +1 -1
- package/dist/plugins/imports/index.d.ts +1 -0
- package/dist/plugins/imports/index.d.ts.map +1 -1
- package/dist/plugins/imports/index.js +1 -0
- package/dist/plugins/imports/index.js.map +1 -1
- package/dist/plugins/imports/validate-plugin-dependencies.d.ts +42 -0
- package/dist/plugins/imports/validate-plugin-dependencies.d.ts.map +1 -0
- package/dist/plugins/imports/validate-plugin-dependencies.js +80 -0
- package/dist/plugins/imports/validate-plugin-dependencies.js.map +1 -0
- package/dist/plugins/metadata/types.d.ts +13 -0
- package/dist/plugins/metadata/types.d.ts.map +1 -1
- package/dist/plugins/metadata/types.js +15 -0
- package/dist/plugins/metadata/types.js.map +1 -1
- package/dist/plugins/spec/auth-config-spec.d.ts +1 -0
- package/dist/plugins/spec/auth-config-spec.d.ts.map +1 -1
- package/dist/plugins/spec/auth-config-spec.js.map +1 -1
- package/dist/references/definition-ref-builder.d.ts +2 -0
- package/dist/references/definition-ref-builder.d.ts.map +1 -1
- package/dist/references/definition-ref-registry.d.ts +2 -0
- package/dist/references/definition-ref-registry.d.ts.map +1 -1
- package/dist/references/definition-ref-registry.js.map +1 -1
- package/dist/references/expression-parser-ref.d.ts +51 -0
- package/dist/references/expression-parser-ref.d.ts.map +1 -0
- package/dist/references/expression-parser-ref.js +14 -0
- package/dist/references/expression-parser-ref.js.map +1 -0
- package/dist/references/expression-parser-spec.d.ts +29 -0
- package/dist/references/expression-parser-spec.d.ts.map +1 -0
- package/dist/references/expression-parser-spec.js +29 -0
- package/dist/references/expression-parser-spec.js.map +1 -0
- package/dist/references/expression-types.d.ts +20 -22
- package/dist/references/expression-types.d.ts.map +1 -1
- package/dist/references/expression-types.js +1 -2
- package/dist/references/expression-types.js.map +1 -1
- package/dist/references/extend-parser-context-with-refs.d.ts +7 -2
- package/dist/references/extend-parser-context-with-refs.d.ts.map +1 -1
- package/dist/references/extend-parser-context-with-refs.js +42 -12
- package/dist/references/extend-parser-context-with-refs.js.map +1 -1
- package/dist/references/extract-definition-refs.js +1 -1
- package/dist/references/extract-definition-refs.js.map +1 -1
- package/dist/references/fix-definition-refs.d.ts +22 -0
- package/dist/references/fix-definition-refs.d.ts.map +1 -0
- package/dist/references/fix-definition-refs.js +29 -0
- package/dist/references/fix-definition-refs.js.map +1 -0
- package/dist/references/fix-expression-renames.d.ts +20 -0
- package/dist/references/fix-expression-renames.d.ts.map +1 -0
- package/dist/references/fix-expression-renames.js +87 -0
- package/dist/references/fix-expression-renames.js.map +1 -0
- package/dist/references/index.d.ts +4 -0
- package/dist/references/index.d.ts.map +1 -1
- package/dist/references/index.js +4 -0
- package/dist/references/index.js.map +1 -1
- package/dist/references/parse-schema-with-references.d.ts +2 -1
- package/dist/references/parse-schema-with-references.d.ts.map +1 -1
- package/dist/references/parse-schema-with-references.js.map +1 -1
- package/dist/schema/apps/web/admin/sections/crud.d.ts.map +1 -1
- package/dist/schema/apps/web/admin/sections/crud.js +3 -2
- package/dist/schema/apps/web/admin/sections/crud.js.map +1 -1
- package/dist/schema/creator/definition-issue-checkers.d.ts +15 -0
- package/dist/schema/creator/definition-issue-checkers.d.ts.map +1 -1
- package/dist/schema/creator/definition-issue-checkers.js +33 -0
- package/dist/schema/creator/definition-issue-checkers.js.map +1 -1
- package/dist/schema/creator/schema-creator.js +1 -1
- package/dist/schema/creator/schema-creator.js.map +1 -1
- package/dist/schema/features/feature.js +1 -1
- package/dist/schema/features/feature.js.map +1 -1
- package/dist/schema/libraries/library.d.ts.map +1 -1
- package/dist/schema/libraries/library.js +1 -0
- package/dist/schema/libraries/library.js.map +1 -1
- package/dist/schema/models/authorizer/authorizer-expression-ref.d.ts +11 -0
- package/dist/schema/models/authorizer/authorizer-expression-ref.d.ts.map +1 -0
- package/dist/schema/models/authorizer/authorizer-expression-ref.js +10 -0
- package/dist/schema/models/authorizer/authorizer-expression-ref.js.map +1 -0
- package/dist/schema/models/authorizer/authorizer.js +2 -2
- package/dist/schema/models/authorizer/authorizer.js.map +1 -1
- package/dist/schema/models/authorizer/index.d.ts +1 -4
- package/dist/schema/models/authorizer/index.d.ts.map +1 -1
- package/dist/schema/models/authorizer/index.js +1 -4
- package/dist/schema/models/authorizer/index.js.map +1 -1
- package/dist/schema/models/enums.d.ts +12 -0
- package/dist/schema/models/enums.d.ts.map +1 -1
- package/dist/schema/models/enums.js +5 -2
- package/dist/schema/models/enums.js.map +1 -1
- package/dist/schema/models/graphql.js +3 -3
- package/dist/schema/models/graphql.js.map +1 -1
- package/dist/schema/models/models.d.ts +24 -36
- package/dist/schema/models/models.d.ts.map +1 -1
- package/dist/schema/models/models.js +7 -5
- package/dist/schema/models/models.js.map +1 -1
- package/dist/schema/plugins/definition.d.ts.map +1 -1
- package/dist/schema/plugins/definition.js +2 -0
- package/dist/schema/plugins/definition.js.map +1 -1
- package/dist/schema/project-definition.d.ts +14 -22
- package/dist/schema/project-definition.d.ts.map +1 -1
- package/dist/schema/project-definition.js +5 -1
- package/dist/schema/project-definition.js.map +1 -1
- package/dist/schema/settings/settings.d.ts +2 -10
- package/dist/schema/settings/settings.d.ts.map +1 -1
- package/dist/schema/settings/theme.d.ts +3 -15
- package/dist/schema/settings/theme.d.ts.map +1 -1
- package/dist/schema/utils/validation.d.ts.map +1 -1
- package/dist/schema/utils/validation.js +16 -3
- package/dist/schema/utils/validation.js.map +1 -1
- package/dist/specs/packages/library-type-spec.d.ts +4 -0
- package/dist/specs/packages/library-type-spec.d.ts.map +1 -1
- package/dist/specs/packages/library-type-spec.js +2 -2
- package/dist/specs/packages/library-type-spec.js.map +1 -1
- package/dist/testing/definition-helpers.test-helper.js +2 -2
- package/dist/testing/definition-helpers.test-helper.js.map +1 -1
- package/dist/testing/expression-stub-parser.test-helper.d.ts +2 -4
- package/dist/testing/expression-stub-parser.test-helper.d.ts.map +1 -1
- package/dist/testing/expression-stub-parser.test-helper.js +2 -10
- package/dist/testing/expression-stub-parser.test-helper.js.map +1 -1
- package/dist/testing/expression-warning-parser.test-helper.d.ts +2 -4
- package/dist/testing/expression-warning-parser.test-helper.d.ts.map +1 -1
- package/dist/testing/expression-warning-parser.test-helper.js +2 -8
- package/dist/testing/expression-warning-parser.test-helper.js.map +1 -1
- package/dist/testing/index.d.ts +1 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +1 -0
- package/dist/testing/index.js.map +1 -1
- package/dist/testing/parser-context.test-helper.d.ts.map +1 -1
- package/dist/testing/parser-context.test-helper.js +2 -1
- package/dist/testing/parser-context.test-helper.js.map +1 -1
- package/dist/testing/plugin-store.test-helper.d.ts +11 -0
- package/dist/testing/plugin-store.test-helper.d.ts.map +1 -0
- package/dist/testing/plugin-store.test-helper.js +32 -0
- package/dist/testing/plugin-store.test-helper.js.map +1 -0
- package/dist/testing/project-definition-container.test-helper.d.ts.map +1 -1
- package/dist/testing/project-definition-container.test-helper.js +2 -1
- package/dist/testing/project-definition-container.test-helper.js.map +1 -1
- package/dist/tools/index.d.ts +2 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +2 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/sort-entity-arrays.d.ts +15 -0
- package/dist/tools/sort-entity-arrays.d.ts.map +1 -0
- package/dist/tools/sort-entity-arrays.js +31 -0
- package/dist/tools/sort-entity-arrays.js.map +1 -0
- package/dist/utils/color-conversions.d.ts +12 -0
- package/dist/utils/color-conversions.d.ts.map +1 -1
- package/dist/utils/color-conversions.js +17 -1
- package/dist/utils/color-conversions.js.map +1 -1
- package/dist/utils/color-names.d.ts.map +1 -1
- package/dist/utils/color-names.js +6 -5
- package/dist/utils/color-names.js.map +1 -1
- package/dist/utils/definition-diff/definition-diff.js +2 -2
- package/dist/utils/definition-diff/definition-diff.js.map +1 -1
- package/dist/utils/theme.d.ts +1 -0
- package/dist/utils/theme.d.ts.map +1 -1
- package/dist/utils/theme.js +18 -10
- package/dist/utils/theme.js.map +1 -1
- package/dist/web/components/definition-diff-alert.js +2 -2
- package/dist/web/components/definition-diff-alert.js.map +1 -1
- package/dist/web/components/feature-combobox-field.d.ts.map +1 -1
- package/dist/web/components/feature-combobox-field.js +5 -3
- package/dist/web/components/feature-combobox-field.js.map +1 -1
- package/dist/web/specs/admin-crud-action-web-spec.js +1 -1
- package/dist/web/specs/admin-crud-action-web-spec.js.map +1 -1
- package/dist/web/specs/admin-crud-column-web-spec.js +1 -1
- package/dist/web/specs/admin-crud-column-web-spec.js.map +1 -1
- package/dist/web/specs/admin-crud-input-web-spec.js +1 -1
- package/dist/web/specs/admin-crud-input-web-spec.js.map +1 -1
- package/dist/web/specs/model-transformer-web-spec.d.ts +19 -2
- package/dist/web/specs/model-transformer-web-spec.d.ts.map +1 -1
- package/dist/web/specs/model-transformer-web-spec.js +1 -1
- package/dist/web/specs/model-transformer-web-spec.js.map +1 -1
- package/package.json +8 -8
- package/dist/schema/models/authorizer/authorizer-expression-acorn-parser.d.ts.map +0 -1
- package/dist/schema/models/authorizer/authorizer-expression-acorn-parser.js.map +0 -1
- package/dist/schema/models/authorizer/authorizer-expression-ast.d.ts.map +0 -1
- package/dist/schema/models/authorizer/authorizer-expression-ast.js.map +0 -1
- package/dist/schema/models/authorizer/authorizer-expression-parser.d.ts.map +0 -1
- package/dist/schema/models/authorizer/authorizer-expression-parser.js +0 -145
- package/dist/schema/models/authorizer/authorizer-expression-parser.js.map +0 -1
- package/dist/schema/models/authorizer/authorizer-expression-validator.d.ts.map +0 -1
- package/dist/schema/models/authorizer/authorizer-expression-validator.js +0 -284
- 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":"
|
|
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;
|
|
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"}
|
package/dist/parser/index.d.ts
CHANGED
|
@@ -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"}
|
package/dist/parser/index.js
CHANGED
|
@@ -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
|
package/dist/parser/index.js.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/parser/parser.js
CHANGED
|
@@ -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;
|
|
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
|
-
//
|
|
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":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAyB1D;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,uBAAuB,CACrC,MAAiB,EACjB,IAAO,EACP,SAA4B;IAE5B,OAAO,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,CAAM,CAAC;AACzD,CAAC;AAED,SAAS,aAAa,CACpB,MAAiB,EACjB,IAAa,EACb,IAAmB,EACnB,SAA4B;IAE5B,wEAAwE;IACxE,IAAI,WAAW,GAAY,IAAI,CAAC;IAEhC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACvD,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM;QACR,CAAC;QACD,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,MAAM;QACR,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,IAAI,QAAQ,CAAC,aAAa,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,CAAC;gBACjE,MAAM;YACR,WAAW,GAAG,aAAa,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YACzE,MAAM;QACR,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ;gBACjE,MAAM;YACR,MAAM,GAAG,GAAG,IAA+B,CAAC;YAC5C,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,MAAM,OAAO,GAAwB,EAAE,CAAC;YAExC,KAAK,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBAClD,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC1B,MAAM,WAAW,GAAG,aAAa,CAC/B,WAAW,EACX,QAAQ,EACR,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EACd,SAAS,CACV,CAAC;gBACF,IAAI,WAAW,KAAK,QAAQ;oBAAE,OAAO,GAAG,IAAI,CAAC;gBAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;YACnC,CAAC;YAED,IAAI,OAAO,EAAE,CAAC;gBACZ,8DAA8D;gBAC9D,oCAAoC;gBACpC,MAAM,MAAM,GAA4B,EAAE,GAAG,GAAG,EAAE,CAAC;gBACnD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;oBACnC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;wBACxB,
|
|
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 +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 +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
|
|
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"}
|
|
@@ -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;
|
|
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;
|
|
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.
|