@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition-ref-builder.d.ts","sourceRoot":"","sources":["../../src/references/definition-ref-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EACV,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAEpB;;;;GAIG;AACH,MAAM,WAAW,4BAA4B,CAC3C,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,MAAM,CAC3D,MAAM,EACN,MAAM,GAAG,MAAM,EAAE,CAClB;IAED;;;OAGG;IACH,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B;;;;OAIG;IACH,WAAW,EAAE,CAAC,WAAW,EAAE,UAAU,KAAK,MAAM,CAAC;CAClD;AAED;;;;GAIG;AACH,wBAAgB,kCAAkC,CAChD,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,EAEpD,kBAAkB,EAAE,4BAA4B,CAAC,UAAU,CAAC,GAC3D,4BAA4B,CAAC,UAAU,CAAC,CAE1C;AAED;;;;;;;GAOG;AACH,UAAU,yBAAyB,CACjC,MAAM,EACN,WAAW,SAAS,oBAAoB,EACxC,OAAO,SAAS,UAAU,CAAC,MAAM,CAAC,GAAG,SAAS,GAAG,SAAS;IAE1D,kCAAkC;IAClC,IAAI,EAAE,WAAW,CAAC;IAClB,uIAAuI;IACvI,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,kKAAkK;IAClK,eAAe,CAAC,EAAE,CAChB,KAAK,EAAE,MAAM,KAEV,4BAA4B,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;IAChD,6GAA6G;IAC7G,QAAQ,CAAC,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"definition-ref-builder.d.ts","sourceRoot":"","sources":["../../src/references/definition-ref-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,8 @@ export interface EntitySchemaMeta {
|
|
|
10
10
|
readonly getNameResolver?: (value: any) => DefinitionEntityNameResolver | string;
|
|
11
11
|
readonly parentSlot?: RefContextSlot;
|
|
12
12
|
readonly provides?: RefContextSlot;
|
|
13
|
+
/** When true, arrays of this entity type are sorted by name during serialization for deterministic output. */
|
|
14
|
+
readonly sortByName?: boolean;
|
|
13
15
|
}
|
|
14
16
|
export interface ReferenceSchemaMeta {
|
|
15
17
|
readonly kind: 'reference';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition-ref-registry.d.ts","sourceRoot":"","sources":["../../src/references/definition-ref-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,KAAK,EACV,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EACV,oBAAoB,EACpB,uBAAuB,EACvB,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAE/B,QAAQ,CAAC,eAAe,CAAC,EAAE,CAEzB,KAAK,EAAE,GAAG,KACP,4BAA4B,GAAG,MAAM,CAAC;IAC3C,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"definition-ref-registry.d.ts","sourceRoot":"","sources":["../../src/references/definition-ref-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition-ref-registry.js","sourceRoot":"","sources":["../../src/references/definition-ref-registry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"definition-ref-registry.js","sourceRoot":"","sources":["../../src/references/definition-ref-registry.ts"],"names":[],"mappings":"AA+HA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAI9B,CAAC,GAAG,EAAE;IACR,MAAM,GAAG,GAAG,IAAI,OAAO,EAAkC,CAAC;IAC1D,OAAO;QACL,GAAG,CAAC,MAAiB,EAAE,IAAuB;YAC5C,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACjC,IAAI,QAAQ,EAAE,CAAC;gBACb,IACE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC;oBACrD,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAClE,CAAC;oBACD,MAAM,IAAI,KAAK,CACb,2CAA2C,IAAI,CAAC,IAAI,eAAe,IAAI,CAAC,IAAI,CAAC,IAAI,iCAAiC;wBAChH,gGAAgG;wBAChG,yCAAyC,CAC5C,CAAC;gBACJ,CAAC;gBACD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,MAAM,CAAC,MAAiB;YACtB,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC/B,CAAC;QACD,GAAG,CAAC,MAAiB;YACnB,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;KACF,CAAC;AACJ,CAAC,CAAC,EAAE,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { z } from 'zod';
|
|
2
|
+
import type { DefinitionEntityType } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* A lightweight reference to an expression parser registered in the
|
|
5
|
+
* `expressionParserSpec`.
|
|
6
|
+
*
|
|
7
|
+
* Used in schema definitions instead of importing the full parser class
|
|
8
|
+
* directly. The actual parser is resolved at runtime during schema+data
|
|
9
|
+
* walking via the plugin spec store.
|
|
10
|
+
*
|
|
11
|
+
* Phantom type parameters enforce slot requirements at compile time
|
|
12
|
+
* without requiring the parser implementation to be imported.
|
|
13
|
+
*
|
|
14
|
+
* @typeParam TValue - The type of the raw expression value (e.g., string)
|
|
15
|
+
* @typeParam TRequiredSlots - Record of required slot names to entity types
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* const authorizerExpressionRef = createExpressionParserRef<
|
|
20
|
+
* string,
|
|
21
|
+
* { model: typeof modelEntityType }
|
|
22
|
+
* >(
|
|
23
|
+
* 'authorizer-expression',
|
|
24
|
+
* () => z.string().min(1, 'Expression is required'),
|
|
25
|
+
* );
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export interface ExpressionParserRef<TValue = unknown, TRequiredSlots extends Record<string, DefinitionEntityType> = Record<string, never>> {
|
|
29
|
+
/** Unique name matching the parser registered in expressionParserSpec */
|
|
30
|
+
readonly name: string;
|
|
31
|
+
/**
|
|
32
|
+
* Creates a fresh Zod schema instance for basic validation.
|
|
33
|
+
* Must return a new instance per call to avoid shared metadata conflicts
|
|
34
|
+
* when the same ref is used at multiple schema sites.
|
|
35
|
+
*/
|
|
36
|
+
readonly createSchema: () => z.ZodType<TValue, TValue>;
|
|
37
|
+
/** @internal Phantom type for slot enforcement */
|
|
38
|
+
readonly _slots?: TRequiredSlots;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Creates a typed reference to an expression parser.
|
|
42
|
+
*
|
|
43
|
+
* The ref carries a parser name and a schema factory for basic value validation.
|
|
44
|
+
* The actual parser implementation is looked up from `expressionParserSpec`
|
|
45
|
+
* at runtime.
|
|
46
|
+
*
|
|
47
|
+
* @param name - Unique name matching the registered parser
|
|
48
|
+
* @param createSchema - Factory that returns a fresh Zod schema per call site
|
|
49
|
+
*/
|
|
50
|
+
export declare function createExpressionParserRef<TValue, TRequiredSlots extends Record<string, DefinitionEntityType> = Record<string, never>>(name: string, createSchema: () => z.ZodType<TValue, TValue>): ExpressionParserRef<TValue, TRequiredSlots>;
|
|
51
|
+
//# sourceMappingURL=expression-parser-ref.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expression-parser-ref.d.ts","sourceRoot":"","sources":["../../src/references/expression-parser-ref.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,WAAW,mBAAmB,CAClC,MAAM,GAAG,OAAO,EAChB,cAAc,SAAS,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,GAAG,MAAM,CAClE,MAAM,EACN,KAAK,CACN;IAED,yEAAyE;IACzE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvD,kDAAkD;IAClD,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;CAClC;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EACN,cAAc,SAAS,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,GAAG,MAAM,CAClE,MAAM,EACN,KAAK,CACN,EAED,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5C,mBAAmB,CAAC,MAAM,EAAE,cAAc,CAAC,CAE7C"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates a typed reference to an expression parser.
|
|
3
|
+
*
|
|
4
|
+
* The ref carries a parser name and a schema factory for basic value validation.
|
|
5
|
+
* The actual parser implementation is looked up from `expressionParserSpec`
|
|
6
|
+
* at runtime.
|
|
7
|
+
*
|
|
8
|
+
* @param name - Unique name matching the registered parser
|
|
9
|
+
* @param createSchema - Factory that returns a fresh Zod schema per call site
|
|
10
|
+
*/
|
|
11
|
+
export function createExpressionParserRef(name, createSchema) {
|
|
12
|
+
return { name, createSchema };
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=expression-parser-ref.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expression-parser-ref.js","sourceRoot":"","sources":["../../src/references/expression-parser-ref.ts"],"names":[],"mappings":"AAgDA;;;;;;;;;GASG;AACH,MAAM,UAAU,yBAAyB,CAOvC,IAAY,EACZ,YAA6C;IAE7C,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { RefExpressionParser } from './expression-types.js';
|
|
2
|
+
type AnyExpressionParser = RefExpressionParser<any, any, any>;
|
|
3
|
+
/**
|
|
4
|
+
* Plugin spec for registering expression parsers.
|
|
5
|
+
*
|
|
6
|
+
* Expression parsers handle parsing, validation, and rename detection
|
|
7
|
+
* for expression fields in the project definition (e.g., authorizer
|
|
8
|
+
* role expressions).
|
|
9
|
+
*
|
|
10
|
+
* Built-in parsers (authorizer expressions) are registered by core modules.
|
|
11
|
+
* Plugins can register additional parsers during initialization.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* createPluginModule({
|
|
16
|
+
* dependencies: { expressionParsers: expressionParserSpec },
|
|
17
|
+
* initialize: ({ expressionParsers }) => {
|
|
18
|
+
* expressionParsers.parsers.set('my-expression', myParser);
|
|
19
|
+
* },
|
|
20
|
+
* });
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export declare const expressionParserSpec: import("../index.js").PluginSpec<{
|
|
24
|
+
parsers: import("@baseplate-dev/utils").MapContainer<string, AnyExpressionParser>;
|
|
25
|
+
}, {
|
|
26
|
+
getParser: (name: string) => AnyExpressionParser | undefined;
|
|
27
|
+
}>;
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=expression-parser-spec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expression-parser-spec.d.ts","sourceRoot":"","sources":["../../src/references/expression-parser-spec.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAGjE,KAAK,mBAAmB,GAAG,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAE9D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,oBAAoB;;;sBAOT,MAAM,KAAG,mBAAmB,GAAG,SAAS;EAI/D,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { createFieldMapSpec } from '#src/plugins/utils/create-field-map-spec.js';
|
|
2
|
+
/**
|
|
3
|
+
* Plugin spec for registering expression parsers.
|
|
4
|
+
*
|
|
5
|
+
* Expression parsers handle parsing, validation, and rename detection
|
|
6
|
+
* for expression fields in the project definition (e.g., authorizer
|
|
7
|
+
* role expressions).
|
|
8
|
+
*
|
|
9
|
+
* Built-in parsers (authorizer expressions) are registered by core modules.
|
|
10
|
+
* Plugins can register additional parsers during initialization.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* createPluginModule({
|
|
15
|
+
* dependencies: { expressionParsers: expressionParserSpec },
|
|
16
|
+
* initialize: ({ expressionParsers }) => {
|
|
17
|
+
* expressionParsers.parsers.set('my-expression', myParser);
|
|
18
|
+
* },
|
|
19
|
+
* });
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export const expressionParserSpec = createFieldMapSpec('core/expression-parsers', (t) => ({
|
|
23
|
+
parsers: t.map(),
|
|
24
|
+
}), {
|
|
25
|
+
use: (values) => ({
|
|
26
|
+
getParser: (name) => values.parsers.get(name),
|
|
27
|
+
}),
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=expression-parser-spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expression-parser-spec.js","sourceRoot":"","sources":["../../src/references/expression-parser-spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AAOjF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,kBAAkB,CACpD,yBAAyB,EACzB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,GAAG,EAA+B;CAC9C,CAAC,EACF;IACE,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAChB,SAAS,EAAE,CAAC,IAAY,EAAmC,EAAE,CAC3D,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;KAC3B,CAAC;CACH,CACF,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { z } from 'zod';
|
|
2
2
|
import type { PluginSpecStore } from '#src/plugins/index.js';
|
|
3
|
+
import type { ProjectDefinition } from '#src/schema/project-definition.js';
|
|
3
4
|
import type { RefContextSlot } from './ref-context-slot.js';
|
|
4
5
|
import type { DefinitionEntityType, ReferencePath } from './types.js';
|
|
5
6
|
/**
|
|
@@ -8,8 +9,8 @@ import type { DefinitionEntityType, ReferencePath } from './types.js';
|
|
|
8
9
|
* validating expressions against model fields, roles, etc.
|
|
9
10
|
*/
|
|
10
11
|
export interface ExpressionValidationContext {
|
|
11
|
-
/** The
|
|
12
|
-
readonly definition:
|
|
12
|
+
/** The project definition data */
|
|
13
|
+
readonly definition: ProjectDefinition;
|
|
13
14
|
/** The plugin spec store for accessing plugin-registered configuration */
|
|
14
15
|
readonly pluginStore: PluginSpecStore;
|
|
15
16
|
}
|
|
@@ -48,9 +49,10 @@ export interface RefExpressionDependency {
|
|
|
48
49
|
entityType: DefinitionEntityType;
|
|
49
50
|
/** The ID of the entity being referenced */
|
|
50
51
|
entityId: string;
|
|
51
|
-
/**
|
|
52
|
-
start
|
|
53
|
-
|
|
52
|
+
/** Start position (inclusive) in the expression text to replace on rename */
|
|
53
|
+
start: number;
|
|
54
|
+
/** End position (exclusive) in the expression text to replace on rename */
|
|
55
|
+
end: number;
|
|
54
56
|
}
|
|
55
57
|
/**
|
|
56
58
|
* Slot map type for expressions - maps slot keys to RefContextSlot instances.
|
|
@@ -88,8 +90,7 @@ export type ResolvedExpressionSlots<T extends Record<string, DefinitionEntityTyp
|
|
|
88
90
|
* readonly name = 'stub';
|
|
89
91
|
* parse(): undefined { return undefined; }
|
|
90
92
|
* getWarnings(): [] { return []; }
|
|
91
|
-
*
|
|
92
|
-
* updateForRename(value: string): string { return value; }
|
|
93
|
+
* getReferencedEntities(): [] { return []; }
|
|
93
94
|
* }
|
|
94
95
|
*
|
|
95
96
|
* // A parser that requires a model slot
|
|
@@ -117,10 +118,10 @@ export declare abstract class RefExpressionParser<TValue = unknown, TParseResult
|
|
|
117
118
|
* The result is cached on the marker for subsequent operations.
|
|
118
119
|
*
|
|
119
120
|
* @param value - The raw expression value
|
|
120
|
-
* @param projectDef - The project definition for context
|
|
121
|
+
* @param projectDef - The project definition for context
|
|
121
122
|
* @returns Success with parsed value, or failure with error message
|
|
122
123
|
*/
|
|
123
|
-
abstract parse(value: TValue, projectDef:
|
|
124
|
+
abstract parse(value: TValue, projectDef: ProjectDefinition): RefExpressionParseResult<TParseResult>;
|
|
124
125
|
/**
|
|
125
126
|
* Get validation warnings for a successfully parsed expression.
|
|
126
127
|
* Only called when parse() succeeds. Parse failures are handled by validate().
|
|
@@ -132,23 +133,20 @@ export declare abstract class RefExpressionParser<TValue = unknown, TParseResult
|
|
|
132
133
|
*/
|
|
133
134
|
abstract getWarnings(parseResult: TParseResult, context: ExpressionValidationContext, resolvedSlots: ResolvedExpressionSlots<TRequiredSlots>): RefExpressionWarning[];
|
|
134
135
|
/**
|
|
135
|
-
* Get entity
|
|
136
|
-
* Used for tracking what the expression references for rename handling.
|
|
136
|
+
* Get entity references from the expression with their positions.
|
|
137
137
|
*
|
|
138
|
-
*
|
|
139
|
-
*
|
|
140
|
-
*
|
|
141
|
-
|
|
142
|
-
abstract getDependencies(value: TValue, parseResult: RefExpressionParseResult<TParseResult>): RefExpressionDependency[];
|
|
143
|
-
/**
|
|
144
|
-
* Update the expression when dependencies are renamed.
|
|
138
|
+
* Used by the generic rename system to detect and apply renames.
|
|
139
|
+
* Each returned dependency identifies an entity by ID and marks the
|
|
140
|
+
* position in the expression text that should be replaced with the
|
|
141
|
+
* entity's new name if it is renamed.
|
|
145
142
|
*
|
|
146
143
|
* @param value - The raw expression value
|
|
147
144
|
* @param parseResult - The cached parse result
|
|
148
|
-
* @param
|
|
149
|
-
* @
|
|
145
|
+
* @param definition - The project definition
|
|
146
|
+
* @param resolvedSlots - The resolved slot paths for this expression
|
|
147
|
+
* @returns Array of entity references with positions for rename
|
|
150
148
|
*/
|
|
151
|
-
abstract
|
|
149
|
+
abstract getReferencedEntities(value: TValue, parseResult: RefExpressionParseResult<TParseResult>, definition: ProjectDefinition, resolvedSlots: ResolvedExpressionSlots<TRequiredSlots>): RefExpressionDependency[];
|
|
152
150
|
/**
|
|
153
151
|
* Convenience method that combines parse() and getWarnings() into a single call.
|
|
154
152
|
* Parses the expression and returns all validation warnings (including parse errors).
|
|
@@ -159,7 +157,7 @@ export declare abstract class RefExpressionParser<TValue = unknown, TParseResult
|
|
|
159
157
|
* @param resolvedSlots - The resolved slot paths for this expression
|
|
160
158
|
* @returns Array of warnings (empty if valid)
|
|
161
159
|
*/
|
|
162
|
-
validate(value: TValue, projectDef:
|
|
160
|
+
validate(value: TValue, projectDef: ProjectDefinition, context: ExpressionValidationContext, resolvedSlots: ResolvedExpressionSlots<TRequiredSlots>): RefExpressionWarning[];
|
|
163
161
|
/**
|
|
164
162
|
* Phantom property for TRequiredSlots type inference.
|
|
165
163
|
* This is never actually used at runtime.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expression-types.d.ts","sourceRoot":"","sources":["../../src/references/expression-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"expression-types.d.ts","sourceRoot":"","sources":["../../src/references/expression-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,8 +20,7 @@
|
|
|
20
20
|
* readonly name = 'stub';
|
|
21
21
|
* parse(): undefined { return undefined; }
|
|
22
22
|
* getWarnings(): [] { return []; }
|
|
23
|
-
*
|
|
24
|
-
* updateForRename(value: string): string { return value; }
|
|
23
|
+
* getReferencedEntities(): [] { return []; }
|
|
25
24
|
* }
|
|
26
25
|
*
|
|
27
26
|
* // A parser that requires a model slot
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expression-types.js","sourceRoot":"","sources":["../../src/references/expression-types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"expression-types.js","sourceRoot":"","sources":["../../src/references/expression-types.ts"],"names":[],"mappings":"AA+EA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,OAAgB,mBAAmB;IAmEvC;;;;;;;;;OASG;IACH,QAAQ,CACN,KAAa,EACb,UAA6B,EAC7B,OAAoC,EACpC,aAAsD;QAEtD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YACzB,OAAO,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;IACrE,CAAC;IAED;;;;OAIG;IACM,cAAc,CAAkB;CAC1C"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import type { TuplePaths } from '@baseplate-dev/utils';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import type { DefinitionEntityType } from '#src/index.js';
|
|
4
|
+
import type { PluginSpecStore } from '#src/plugins/index.js';
|
|
4
5
|
import type { DefinitionEntityInput, DefinitionReferenceInput } from './definition-ref-builder.js';
|
|
5
|
-
import type {
|
|
6
|
+
import type { ExpressionParserRef } from './expression-parser-ref.js';
|
|
7
|
+
import type { ExpressionSlotMap } from './expression-types.js';
|
|
6
8
|
import type { RefContextSlotDefinition, RefContextSlotMap } from './ref-context-slot.js';
|
|
9
|
+
import { RefExpressionParser } from './expression-types.js';
|
|
7
10
|
type ZodTypeWithOptional<T extends z.ZodType> = T extends z.ZodOptional ? z.ZodOptional<z.ZodType<z.output<T>, z.input<T>>> : T extends z.ZodDefault ? z.ZodDefault<z.ZodType<z.output<T>, z.input<T>>> : T extends z.ZodPrefault ? z.ZodPrefault<z.ZodType<z.output<T>, z.input<T>>> : z.ZodType<z.output<T>, z.input<T>>;
|
|
8
11
|
export type WithRefType = <TEntityType extends DefinitionEntityType>(reference: DefinitionReferenceInput<TEntityType>) => z.ZodType<string, string>;
|
|
9
12
|
export type WithEntType = <TType extends z.ZodType, TEntityType extends DefinitionEntityType, TIdPath extends TuplePaths<z.output<TType>> | undefined = undefined>(schema: TType, entity: DefinitionEntityInput<z.output<TType>, TEntityType, TIdPath>) => ZodTypeWithOptional<TType>;
|
|
@@ -22,6 +25,8 @@ export type RefContextType = <TSlotDef extends RefContextSlotDefinition, TSchema
|
|
|
22
25
|
export interface WithExpressionType {
|
|
23
26
|
<TValue, TParseResult>(parser: RefExpressionParser<TValue, TParseResult>): z.ZodType<TValue, TValue>;
|
|
24
27
|
<TValue, TParseResult, TRequiredSlots extends Record<string, DefinitionEntityType>>(parser: RefExpressionParser<TValue, TParseResult, TRequiredSlots>, slots: ExpressionSlotMap<TRequiredSlots>): z.ZodType<TValue, TValue>;
|
|
28
|
+
<TValue>(parserRef: ExpressionParserRef<TValue>): z.ZodType<TValue, TValue>;
|
|
29
|
+
<TValue, TRequiredSlots extends Record<string, DefinitionEntityType>>(parserRef: ExpressionParserRef<TValue, TRequiredSlots>, slots: ExpressionSlotMap<TRequiredSlots>): z.ZodType<TValue, TValue>;
|
|
25
30
|
}
|
|
26
31
|
/**
|
|
27
32
|
* Creates a string schema annotated as a reference to another entity.
|
|
@@ -54,7 +59,7 @@ export declare function withRef<TEntityType extends DefinitionEntityType>(refere
|
|
|
54
59
|
* @returns A function that decorates a schema with entity metadata
|
|
55
60
|
*/
|
|
56
61
|
export declare function withEnt<TEntityType extends DefinitionEntityType>(entity: DefinitionEntityInput<unknown, TEntityType>): <TType extends z.ZodType>(schema: TType) => ZodTypeWithOptional<TType>;
|
|
57
|
-
export declare function extendParserContextWithRefs(): {
|
|
62
|
+
export declare function extendParserContextWithRefs(plugins?: PluginSpecStore): {
|
|
58
63
|
withRef: WithRefType;
|
|
59
64
|
withEnt: WithEntType;
|
|
60
65
|
refContext: RefContextType;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extend-parser-context-with-refs.d.ts","sourceRoot":"","sources":["../../src/references/extend-parser-context-with-refs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"extend-parser-context-with-refs.d.ts","sourceRoot":"","sources":["../../src/references/extend-parser-context-with-refs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { definitionRefRegistry } from './definition-ref-registry.js';
|
|
3
|
+
import { expressionParserSpec } from './expression-parser-spec.js';
|
|
4
|
+
import { RefExpressionParser } from './expression-types.js';
|
|
3
5
|
import { createRefContextSlotMap } from './ref-context-slot.js';
|
|
4
6
|
/**
|
|
5
7
|
* Creates a string schema annotated as a reference to another entity.
|
|
@@ -51,6 +53,7 @@ export function withEnt(entity) {
|
|
|
51
53
|
getNameResolver: entity.getNameResolver,
|
|
52
54
|
parentSlot: entity.parentSlot,
|
|
53
55
|
provides: entity.provides,
|
|
56
|
+
sortByName: entity.sortByName,
|
|
54
57
|
});
|
|
55
58
|
return schema;
|
|
56
59
|
};
|
|
@@ -106,18 +109,45 @@ function refContext(slotDefinition, schemaBuilder) {
|
|
|
106
109
|
* );
|
|
107
110
|
* ```
|
|
108
111
|
*/
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
112
|
+
/**
|
|
113
|
+
* Creates a `withExpression` function that resolves parser refs eagerly
|
|
114
|
+
* from the plugin spec store at schema construction time.
|
|
115
|
+
*/
|
|
116
|
+
function createWithExpression(plugins) {
|
|
117
|
+
// Implementation
|
|
118
|
+
function withExpression(parserOrRef,
|
|
119
|
+
// oxlint-disable-next-line typescript/no-explicit-any
|
|
120
|
+
slots) {
|
|
121
|
+
// oxlint-disable-next-line typescript/no-explicit-any
|
|
122
|
+
let parser;
|
|
123
|
+
if (parserOrRef instanceof RefExpressionParser) {
|
|
124
|
+
parser = parserOrRef;
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
// Resolve parser ref from plugin spec store
|
|
128
|
+
if (!plugins) {
|
|
129
|
+
throw new Error(`PluginSpecStore is required to resolve expression parser ref "${parserOrRef.name}". ` +
|
|
130
|
+
`Ensure plugins are provided to createDefinitionSchemaParserContext.`);
|
|
131
|
+
}
|
|
132
|
+
const specUse = plugins.use(expressionParserSpec);
|
|
133
|
+
const resolved = specUse.getParser(parserOrRef.name);
|
|
134
|
+
if (!resolved) {
|
|
135
|
+
throw new Error(`Expression parser "${parserOrRef.name}" not found in expressionParserSpec. ` +
|
|
136
|
+
`Ensure it is registered via a core module or plugin.`);
|
|
137
|
+
}
|
|
138
|
+
parser = resolved;
|
|
139
|
+
}
|
|
140
|
+
const schema = parser.createSchema();
|
|
141
|
+
definitionRefRegistry.add(schema, {
|
|
142
|
+
kind: 'expression',
|
|
143
|
+
parser,
|
|
144
|
+
slots,
|
|
145
|
+
});
|
|
146
|
+
return schema;
|
|
147
|
+
}
|
|
148
|
+
return withExpression;
|
|
119
149
|
}
|
|
120
|
-
export function extendParserContextWithRefs() {
|
|
150
|
+
export function extendParserContextWithRefs(plugins) {
|
|
121
151
|
return {
|
|
122
152
|
withRef,
|
|
123
153
|
// Legacy 2-arg API that delegates to the standalone withEnt decorator.
|
|
@@ -127,7 +157,7 @@ export function extendParserContextWithRefs() {
|
|
|
127
157
|
return schema.apply(withEnt(entity));
|
|
128
158
|
},
|
|
129
159
|
refContext,
|
|
130
|
-
withExpression,
|
|
160
|
+
withExpression: createWithExpression(plugins),
|
|
131
161
|
};
|
|
132
162
|
}
|
|
133
163
|
//# sourceMappingURL=extend-parser-context-with-refs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extend-parser-context-with-refs.js","sourceRoot":"","sources":["../../src/references/extend-parser-context-with-refs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"extend-parser-context-with-refs.js","sourceRoot":"","sources":["../../src/references/extend-parser-context-with-refs.ts"],"names":[],"mappings":"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"}
|
|
@@ -79,7 +79,7 @@ export function extractDefinitionRefs(schema, value) {
|
|
|
79
79
|
}
|
|
80
80
|
},
|
|
81
81
|
});
|
|
82
|
-
// Expression collector: records expression annotations
|
|
82
|
+
// Expression collector: records expression annotations (direct parsers)
|
|
83
83
|
const expressionCollector = createRefSchemaCollector({
|
|
84
84
|
kind: 'expression',
|
|
85
85
|
visit(meta, data, context) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract-definition-refs.js","sourceRoot":"","sources":["../../src/references/extract-definition-refs.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"extract-definition-refs.js","sourceRoot":"","sources":["../../src/references/extract-definition-refs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { z } from 'zod';
|
|
2
|
+
import type { FixRefDeletionResult } from './fix-ref-deletions.js';
|
|
3
|
+
import type { ResolvedZodRefPayload } from './types.js';
|
|
4
|
+
export interface FixDefinitionRefsOptions {
|
|
5
|
+
/** Ref payload from the previous definition version, for detecting expression renames. */
|
|
6
|
+
oldRefPayload?: ResolvedZodRefPayload<unknown>;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Fixes expression renames and dangling references in a single pass.
|
|
10
|
+
*
|
|
11
|
+
* Expression renames use the OLD definition (via `oldRefPayload`) to resolve
|
|
12
|
+
* entity references — expressions still contain old names like `model.title`,
|
|
13
|
+
* which can only be resolved against the definition where those names exist.
|
|
14
|
+
* The new entity names are then used to detect what was renamed.
|
|
15
|
+
*
|
|
16
|
+
* @param schema - The project definition Zod schema
|
|
17
|
+
* @param value - The definition after auto-fixes
|
|
18
|
+
* @param options - Optional old ref payload for rename detection
|
|
19
|
+
* @returns The fixed definition with ref payload
|
|
20
|
+
*/
|
|
21
|
+
export declare function fixDefinitionRefs<T extends z.ZodType>(schema: T, value: unknown, options?: FixDefinitionRefsOptions): FixRefDeletionResult<z.output<T>>;
|
|
22
|
+
//# sourceMappingURL=fix-definition-refs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fix-definition-refs.d.ts","sourceRoot":"","sources":["../../src/references/fix-definition-refs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAMxD,MAAM,WAAW,wBAAwB;IACvC,0FAA0F;IAC1F,aAAa,CAAC,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAC;CAChD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EACnD,MAAM,EAAE,CAAC,EACT,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,wBAAwB,GACjC,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAkBnC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { applyExpressionRenames } from './fix-expression-renames.js';
|
|
2
|
+
import { fixRefDeletions } from './fix-ref-deletions.js';
|
|
3
|
+
import { parseSchemaWithTransformedReferences } from './parse-schema-with-references.js';
|
|
4
|
+
/**
|
|
5
|
+
* Fixes expression renames and dangling references in a single pass.
|
|
6
|
+
*
|
|
7
|
+
* Expression renames use the OLD definition (via `oldRefPayload`) to resolve
|
|
8
|
+
* entity references — expressions still contain old names like `model.title`,
|
|
9
|
+
* which can only be resolved against the definition where those names exist.
|
|
10
|
+
* The new entity names are then used to detect what was renamed.
|
|
11
|
+
*
|
|
12
|
+
* @param schema - The project definition Zod schema
|
|
13
|
+
* @param value - The definition after auto-fixes
|
|
14
|
+
* @param options - Optional old ref payload for rename detection
|
|
15
|
+
* @returns The fixed definition with ref payload
|
|
16
|
+
*/
|
|
17
|
+
export function fixDefinitionRefs(schema, value, options) {
|
|
18
|
+
if (!options?.oldRefPayload) {
|
|
19
|
+
return fixRefDeletions(schema, value);
|
|
20
|
+
}
|
|
21
|
+
// Parse the new definition to get new entities (for rename comparison)
|
|
22
|
+
const newRefPayload = parseSchemaWithTransformedReferences(schema, value, {
|
|
23
|
+
allowInvalidReferences: true,
|
|
24
|
+
});
|
|
25
|
+
const { value: renamedValue, modified } = applyExpressionRenames(newRefPayload.data, newRefPayload.entities, options.oldRefPayload);
|
|
26
|
+
// Run fixRefDeletions on the (possibly renamed) definition
|
|
27
|
+
return fixRefDeletions(schema, modified ? renamedValue : newRefPayload.data);
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=fix-definition-refs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fix-definition-refs.js","sourceRoot":"","sources":["../../src/references/fix-definition-refs.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,oCAAoC,EAAE,MAAM,mCAAmC,CAAC;AAOzF;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAS,EACT,KAAc,EACd,OAAkC;IAElC,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,CAAC;QAC5B,OAAO,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;IAED,uEAAuE;IACvE,MAAM,aAAa,GAAG,oCAAoC,CAAC,MAAM,EAAE,KAAK,EAAE;QACxE,sBAAsB,EAAE,IAAI;KAC7B,CAAC,CAAC;IAEH,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,sBAAsB,CAC9D,aAAa,CAAC,IAAI,EAClB,aAAa,CAAC,QAAQ,EACtB,OAAO,CAAC,aAAa,CACtB,CAAC;IAEF,2DAA2D;IAC3D,OAAO,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAC/E,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { DefinitionEntity, ResolvedZodRefPayload } from './types.js';
|
|
2
|
+
export interface ApplyExpressionRenamesResult<T> {
|
|
3
|
+
value: T;
|
|
4
|
+
modified: boolean;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Detects renamed entities and updates expression strings accordingly.
|
|
8
|
+
*
|
|
9
|
+
* Uses the OLD definition/refPayload to resolve entity references (since
|
|
10
|
+
* expressions still contain old names like `model.title`), then compares
|
|
11
|
+
* old vs new entity names to detect renames and apply position-based
|
|
12
|
+
* string replacements on the NEW definition.
|
|
13
|
+
*
|
|
14
|
+
* @param newDefinition - The new definition value (where expressions will be updated)
|
|
15
|
+
* @param newEntities - Entities from the new definition (with new names)
|
|
16
|
+
* @param oldRefPayload - The ref payload from the old definition (has old expressions, entities, and definition)
|
|
17
|
+
* @returns The (possibly modified) definition and whether any renames were applied
|
|
18
|
+
*/
|
|
19
|
+
export declare function applyExpressionRenames<T>(newDefinition: T, newEntities: readonly DefinitionEntity[], oldRefPayload: ResolvedZodRefPayload<unknown>): ApplyExpressionRenamesResult<T>;
|
|
20
|
+
//# sourceMappingURL=fix-expression-renames.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fix-expression-renames.d.ts","sourceRoot":"","sources":["../../src/references/fix-expression-renames.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,gBAAgB,EAEhB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,4BAA4B,CAAC,CAAC;IAC7C,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EACtC,aAAa,EAAE,CAAC,EAChB,WAAW,EAAE,SAAS,gBAAgB,EAAE,EACxC,aAAa,EAAE,qBAAqB,CAAC,OAAO,CAAC,GAC5C,4BAA4B,CAAC,CAAC,CAAC,CA8FjC"}
|