@baseplate-dev/project-builder-lib 0.5.0 → 0.5.2
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 +464 -0
- package/dist/compiler/admin-crud-action-compiler.d.ts +18 -0
- package/dist/compiler/admin-crud-action-compiler.d.ts.map +1 -0
- package/dist/compiler/admin-crud-action-compiler.js +6 -0
- package/dist/compiler/admin-crud-action-compiler.js.map +1 -0
- package/dist/compiler/admin-crud-column-compiler-spec.d.ts +6 -12
- package/dist/compiler/admin-crud-column-compiler-spec.d.ts.map +1 -1
- package/dist/compiler/admin-crud-column-compiler-spec.js +6 -29
- package/dist/compiler/admin-crud-column-compiler-spec.js.map +1 -1
- package/dist/compiler/admin-crud-input-spec.d.ts +6 -11
- package/dist/compiler/admin-crud-input-spec.d.ts.map +1 -1
- package/dist/compiler/admin-crud-input-spec.js +6 -26
- package/dist/compiler/admin-crud-input-spec.js.map +1 -1
- package/dist/compiler/app-compiler-spec.d.ts +8 -12
- package/dist/compiler/app-compiler-spec.d.ts.map +1 -1
- package/dist/compiler/app-compiler-spec.js +11 -18
- package/dist/compiler/app-compiler-spec.js.map +1 -1
- package/dist/compiler/index.d.ts +1 -1
- package/dist/compiler/index.d.ts.map +1 -1
- package/dist/compiler/index.js +1 -1
- package/dist/compiler/index.js.map +1 -1
- package/dist/compiler/model-transformer-compiler-spec.d.ts +6 -11
- package/dist/compiler/model-transformer-compiler-spec.d.ts.map +1 -1
- package/dist/compiler/model-transformer-compiler-spec.js +6 -26
- package/dist/compiler/model-transformer-compiler-spec.js.map +1 -1
- package/dist/definition/model/model-field-utils.js +4 -4
- package/dist/definition/model/model-field-utils.js.map +1 -1
- package/dist/definition/model/model-transformer-utils.d.ts +4 -6
- package/dist/definition/model/model-transformer-utils.d.ts.map +1 -1
- package/dist/definition/model/model-transformer-utils.js +8 -10
- package/dist/definition/model/model-transformer-utils.js.map +1 -1
- package/dist/definition/model/model-utils.js +3 -3
- package/dist/definition/model/model-utils.js.map +1 -1
- package/dist/definition/packages/package-utils.d.ts +11 -9
- package/dist/definition/packages/package-utils.d.ts.map +1 -1
- package/dist/definition/packages/package-utils.js +22 -11
- package/dist/definition/packages/package-utils.js.map +1 -1
- package/dist/definition/plugins/plugin-utils.d.ts.map +1 -1
- package/dist/definition/plugins/plugin-utils.js +2 -2
- package/dist/definition/plugins/plugin-utils.js.map +1 -1
- package/dist/definition/project-definition-container.d.ts +3 -3
- package/dist/definition/project-definition-container.d.ts.map +1 -1
- package/dist/definition/project-definition-container.js +2 -2
- package/dist/definition/project-definition-container.js.map +1 -1
- package/dist/definition/project-definition-container.test-utils.d.ts.map +1 -1
- package/dist/definition/project-definition-container.test-utils.js +8 -5
- package/dist/definition/project-definition-container.test-utils.js.map +1 -1
- 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 +5 -1
- package/dist/migrations/index.js.map +1 -1
- package/dist/migrations/migration-007-model-graphql.js +1 -1
- package/dist/migrations/migration-007-model-graphql.js.map +1 -1
- package/dist/migrations/migration-020-move-redis-to-infrastructure.js +1 -1
- package/dist/migrations/migration-020-move-redis-to-infrastructure.js.map +1 -1
- package/dist/migrations/migration-021-migrate-bullmq-to-plugin.js +1 -1
- package/dist/migrations/migration-021-migrate-bullmq-to-plugin.js.map +1 -1
- package/dist/migrations/migration-022-rename-packages-to-libraries.d.ts +37 -0
- package/dist/migrations/migration-022-rename-packages-to-libraries.d.ts.map +1 -0
- package/dist/migrations/migration-022-rename-packages-to-libraries.js +45 -0
- package/dist/migrations/migration-022-rename-packages-to-libraries.js.map +1 -0
- package/dist/migrations/migration-023-assign-app-ports.d.ts +34 -0
- package/dist/migrations/migration-023-assign-app-ports.d.ts.map +1 -0
- package/dist/migrations/migration-023-assign-app-ports.js +49 -0
- package/dist/migrations/migration-023-assign-app-ports.js.map +1 -0
- package/dist/parser/parser.d.ts +4 -4
- package/dist/parser/parser.d.ts.map +1 -1
- package/dist/parser/parser.js +17 -42
- package/dist/parser/parser.js.map +1 -1
- package/dist/plugins/context/index.d.ts +2 -0
- package/dist/plugins/context/index.d.ts.map +1 -0
- package/dist/plugins/context/index.js +2 -0
- package/dist/plugins/context/index.js.map +1 -0
- package/dist/plugins/context/plugin-context.d.ts +30 -0
- package/dist/plugins/context/plugin-context.d.ts.map +1 -0
- package/dist/plugins/context/plugin-context.js +38 -0
- package/dist/plugins/context/plugin-context.js.map +1 -0
- package/dist/plugins/imports/loader.d.ts +11 -20
- package/dist/plugins/imports/loader.d.ts.map +1 -1
- package/dist/plugins/imports/loader.js +28 -69
- package/dist/plugins/imports/loader.js.map +1 -1
- package/dist/plugins/imports/types.d.ts +72 -13
- package/dist/plugins/imports/types.d.ts.map +1 -1
- package/dist/plugins/imports/types.js +17 -1
- package/dist/plugins/imports/types.js.map +1 -1
- package/dist/plugins/index.d.ts +3 -1
- package/dist/plugins/index.d.ts.map +1 -1
- package/dist/plugins/index.js +3 -1
- package/dist/plugins/index.js.map +1 -1
- package/dist/plugins/migrations/run-migrations.d.ts +2 -2
- package/dist/plugins/migrations/run-migrations.d.ts.map +1 -1
- package/dist/plugins/migrations/run-migrations.js +2 -2
- package/dist/plugins/migrations/run-migrations.js.map +1 -1
- package/dist/plugins/spec/auth-config-spec.d.ts +13 -9
- package/dist/plugins/spec/auth-config-spec.d.ts.map +1 -1
- package/dist/plugins/spec/auth-config-spec.js +16 -3
- package/dist/plugins/spec/auth-config-spec.js.map +1 -1
- package/dist/plugins/spec/auth-models-spec.d.ts +16 -0
- package/dist/plugins/spec/auth-models-spec.d.ts.map +1 -0
- package/dist/plugins/spec/auth-models-spec.js +16 -0
- package/dist/plugins/spec/auth-models-spec.js.map +1 -0
- package/dist/plugins/spec/config-spec.d.ts +8 -13
- package/dist/plugins/spec/config-spec.d.ts.map +1 -1
- package/dist/plugins/spec/config-spec.js +21 -36
- package/dist/plugins/spec/config-spec.js.map +1 -1
- package/dist/plugins/spec/index.d.ts +1 -1
- package/dist/plugins/spec/index.d.ts.map +1 -1
- package/dist/plugins/spec/index.js +1 -1
- package/dist/plugins/spec/index.js.map +1 -1
- package/dist/plugins/spec/types.d.ts +66 -25
- package/dist/plugins/spec/types.d.ts.map +1 -1
- package/dist/plugins/spec/types.js +27 -10
- package/dist/plugins/spec/types.js.map +1 -1
- package/dist/plugins/spec/web-config-spec.d.ts +7 -10
- package/dist/plugins/spec/web-config-spec.d.ts.map +1 -1
- package/dist/plugins/spec/web-config-spec.js +6 -19
- package/dist/plugins/spec/web-config-spec.js.map +1 -1
- package/dist/plugins/store/index.d.ts.map +1 -0
- package/dist/plugins/store/index.js.map +1 -0
- package/dist/plugins/store/store.d.ts +23 -0
- package/dist/plugins/store/store.d.ts.map +1 -0
- package/dist/plugins/store/store.js +36 -0
- package/dist/plugins/store/store.js.map +1 -0
- package/dist/plugins/utils/create-field-map-spec.d.ts +17 -0
- package/dist/plugins/utils/create-field-map-spec.d.ts.map +1 -0
- package/dist/plugins/utils/create-field-map-spec.js +27 -0
- package/dist/plugins/utils/create-field-map-spec.js.map +1 -0
- package/dist/plugins/utils/create-plugin-field-map.d.ts +24 -0
- package/dist/plugins/utils/create-plugin-field-map.d.ts.map +1 -0
- package/dist/plugins/utils/create-plugin-field-map.js +29 -0
- package/dist/plugins/utils/create-plugin-field-map.js.map +1 -0
- package/dist/plugins/utils/index.d.ts +3 -0
- package/dist/plugins/utils/index.d.ts.map +1 -0
- package/dist/plugins/utils/index.js +3 -0
- package/dist/plugins/utils/index.js.map +1 -0
- package/dist/references/collect-refs.d.ts +5 -1
- package/dist/references/collect-refs.d.ts.map +1 -1
- package/dist/references/collect-refs.js +20 -1
- package/dist/references/collect-refs.js.map +1 -1
- package/dist/references/definition-ref-builder.d.ts.map +1 -1
- package/dist/references/expression-types.d.ts +152 -0
- package/dist/references/expression-types.d.ts.map +1 -0
- package/dist/references/expression-types.js +46 -0
- package/dist/references/expression-types.js.map +1 -0
- package/dist/references/extend-parser-context-with-refs.d.ts +13 -0
- package/dist/references/extend-parser-context-with-refs.d.ts.map +1 -1
- package/dist/references/extend-parser-context-with-refs.js +39 -1
- package/dist/references/extend-parser-context-with-refs.js.map +1 -1
- package/dist/references/extract-definition-refs.d.ts +6 -3
- package/dist/references/extract-definition-refs.d.ts.map +1 -1
- package/dist/references/extract-definition-refs.js +25 -4
- package/dist/references/extract-definition-refs.js.map +1 -1
- package/dist/references/index.d.ts +1 -0
- package/dist/references/index.d.ts.map +1 -1
- package/dist/references/index.js +1 -0
- package/dist/references/index.js.map +1 -1
- package/dist/references/markers.d.ts +23 -0
- package/dist/references/markers.d.ts.map +1 -1
- package/dist/references/markers.js +16 -0
- package/dist/references/markers.js.map +1 -1
- package/dist/references/resolve-zod-ref-payload-names.d.ts.map +1 -1
- package/dist/references/resolve-zod-ref-payload-names.js +1 -0
- package/dist/references/resolve-zod-ref-payload-names.js.map +1 -1
- package/dist/references/strip-ref-markers.d.ts +3 -3
- package/dist/references/strip-ref-markers.d.ts.map +1 -1
- package/dist/references/strip-ref-markers.js +7 -4
- package/dist/references/strip-ref-markers.js.map +1 -1
- package/dist/references/types.d.ts +5 -0
- package/dist/references/types.d.ts.map +1 -1
- package/dist/references/types.js.map +1 -1
- package/dist/schema/apps/backend/index.d.ts +2 -2
- package/dist/schema/apps/backend/index.js +1 -1
- package/dist/schema/apps/backend/index.js.map +1 -1
- package/dist/schema/apps/base.d.ts +2 -0
- package/dist/schema/apps/base.d.ts.map +1 -1
- package/dist/schema/apps/base.js +1 -0
- package/dist/schema/apps/base.js.map +1 -1
- package/dist/schema/apps/web/admin/sections/crud-actions/admin-action-spec.d.ts +6 -13
- package/dist/schema/apps/web/admin/sections/crud-actions/admin-action-spec.d.ts.map +1 -1
- package/dist/schema/apps/web/admin/sections/crud-actions/admin-action-spec.js +5 -26
- package/dist/schema/apps/web/admin/sections/crud-actions/admin-action-spec.js.map +1 -1
- package/dist/schema/apps/web/admin/sections/crud-actions/admin-crud-action.d.ts.map +1 -1
- package/dist/schema/apps/web/admin/sections/crud-actions/admin-crud-action.js +1 -3
- package/dist/schema/apps/web/admin/sections/crud-actions/admin-crud-action.js.map +1 -1
- package/dist/schema/apps/web/admin/sections/crud-actions/types.d.ts.map +1 -1
- package/dist/schema/apps/web/admin/sections/crud-columns/admin-column-spec.d.ts +6 -12
- package/dist/schema/apps/web/admin/sections/crud-columns/admin-column-spec.d.ts.map +1 -1
- package/dist/schema/apps/web/admin/sections/crud-columns/admin-column-spec.js +5 -26
- package/dist/schema/apps/web/admin/sections/crud-columns/admin-column-spec.js.map +1 -1
- package/dist/schema/apps/web/admin/sections/crud-columns/admin-crud-column.d.ts.map +1 -1
- package/dist/schema/apps/web/admin/sections/crud-columns/admin-crud-column.js +1 -3
- package/dist/schema/apps/web/admin/sections/crud-columns/admin-crud-column.js.map +1 -1
- package/dist/schema/apps/web/admin/sections/crud-form/admin-crud-input.d.ts.map +1 -1
- package/dist/schema/apps/web/admin/sections/crud-form/admin-crud-input.js +1 -3
- package/dist/schema/apps/web/admin/sections/crud-form/admin-crud-input.js.map +1 -1
- package/dist/schema/apps/web/admin/sections/crud-form/admin-input-spec.d.ts +7 -13
- package/dist/schema/apps/web/admin/sections/crud-form/admin-input-spec.d.ts.map +1 -1
- package/dist/schema/apps/web/admin/sections/crud-form/admin-input-spec.js +5 -26
- package/dist/schema/apps/web/admin/sections/crud-form/admin-input-spec.js.map +1 -1
- package/dist/schema/apps/web/web-app.d.ts +2 -0
- package/dist/schema/apps/web/web-app.d.ts.map +1 -1
- package/dist/schema/apps/web/web-app.js +1 -0
- package/dist/schema/apps/web/web-app.js.map +1 -1
- package/dist/schema/creator/types.d.ts +9 -4
- package/dist/schema/creator/types.d.ts.map +1 -1
- package/dist/schema/index.d.ts +1 -1
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +1 -1
- package/dist/schema/index.js.map +1 -1
- package/dist/schema/{packages → libraries}/base.d.ts +3 -3
- package/dist/schema/libraries/base.d.ts.map +1 -0
- package/dist/schema/libraries/base.js +10 -0
- package/dist/schema/libraries/base.js.map +1 -0
- package/dist/schema/libraries/index.d.ts +3 -0
- package/dist/schema/libraries/index.d.ts.map +1 -0
- package/dist/schema/libraries/index.js +3 -0
- package/dist/schema/libraries/index.js.map +1 -0
- package/dist/schema/libraries/library.d.ts +19 -0
- package/dist/schema/libraries/library.d.ts.map +1 -0
- package/dist/schema/libraries/library.js +13 -0
- package/dist/schema/libraries/library.js.map +1 -0
- package/dist/schema/libraries/types.d.ts +2 -0
- package/dist/schema/libraries/types.d.ts.map +1 -0
- package/dist/schema/libraries/types.js +3 -0
- package/dist/schema/libraries/types.js.map +1 -0
- package/dist/schema/models/authorizer/authorizer-expression-acorn-parser.d.ts +30 -0
- package/dist/schema/models/authorizer/authorizer-expression-acorn-parser.d.ts.map +1 -0
- package/dist/schema/models/authorizer/authorizer-expression-acorn-parser.js +291 -0
- package/dist/schema/models/authorizer/authorizer-expression-acorn-parser.js.map +1 -0
- package/dist/schema/models/authorizer/authorizer-expression-ast.d.ts +159 -0
- package/dist/schema/models/authorizer/authorizer-expression-ast.d.ts.map +1 -0
- package/dist/schema/models/authorizer/authorizer-expression-ast.js +31 -0
- package/dist/schema/models/authorizer/authorizer-expression-ast.js.map +1 -0
- package/dist/schema/models/authorizer/authorizer-expression-parser.d.ts +77 -0
- package/dist/schema/models/authorizer/authorizer-expression-parser.d.ts.map +1 -0
- package/dist/schema/models/authorizer/authorizer-expression-parser.js +147 -0
- package/dist/schema/models/authorizer/authorizer-expression-parser.js.map +1 -0
- package/dist/schema/models/authorizer/authorizer-expression-validator.d.ts +51 -0
- package/dist/schema/models/authorizer/authorizer-expression-validator.d.ts.map +1 -0
- package/dist/schema/models/authorizer/authorizer-expression-validator.js +125 -0
- package/dist/schema/models/authorizer/authorizer-expression-validator.js.map +1 -0
- package/dist/schema/models/authorizer/authorizer.d.ts +59 -0
- package/dist/schema/models/authorizer/authorizer.d.ts.map +1 -0
- package/dist/schema/models/authorizer/authorizer.js +56 -0
- package/dist/schema/models/authorizer/authorizer.js.map +1 -0
- package/dist/schema/models/authorizer/index.d.ts +7 -0
- package/dist/schema/models/authorizer/index.d.ts.map +1 -0
- package/dist/schema/models/authorizer/index.js +7 -0
- package/dist/schema/models/authorizer/index.js.map +1 -0
- package/dist/schema/models/authorizer/types.d.ts +6 -0
- package/dist/schema/models/authorizer/types.d.ts.map +1 -0
- package/dist/schema/models/authorizer/types.js +8 -0
- package/dist/schema/models/authorizer/types.js.map +1 -0
- package/dist/schema/models/index.d.ts +2 -860
- package/dist/schema/models/index.d.ts.map +1 -1
- package/dist/schema/models/index.js +2 -222
- package/dist/schema/models/index.js.map +1 -1
- package/dist/schema/models/models.d.ts +914 -0
- package/dist/schema/models/models.d.ts.map +1 -0
- package/dist/schema/models/models.js +225 -0
- package/dist/schema/models/models.js.map +1 -0
- package/dist/schema/models/transformers/model-transformer-spec.d.ts +5 -11
- package/dist/schema/models/transformers/model-transformer-spec.d.ts.map +1 -1
- package/dist/schema/models/transformers/model-transformer-spec.js +5 -30
- package/dist/schema/models/transformers/model-transformer-spec.js.map +1 -1
- package/dist/schema/models/transformers/transformers.d.ts.map +1 -1
- package/dist/schema/models/transformers/transformers.js +2 -4
- package/dist/schema/models/transformers/transformers.js.map +1 -1
- package/dist/schema/plugins/definition.js +1 -1
- package/dist/schema/plugins/definition.js.map +1 -1
- package/dist/schema/project-definition.d.ts +52 -34
- package/dist/schema/project-definition.d.ts.map +1 -1
- package/dist/schema/project-definition.js +2 -10
- package/dist/schema/project-definition.js.map +1 -1
- package/dist/schema/settings/monorepo.d.ts +2 -2
- package/dist/schema/settings/monorepo.js +8 -8
- package/dist/schema/settings/monorepo.js.map +1 -1
- package/dist/schema/settings/settings.d.ts +3 -3
- package/dist/schema/settings/theme.d.ts +3 -3
- package/dist/specs/index.d.ts +2 -0
- package/dist/specs/index.d.ts.map +1 -0
- package/dist/specs/index.js +2 -0
- package/dist/specs/index.js.map +1 -0
- package/dist/specs/packages/index.d.ts +3 -0
- package/dist/specs/packages/index.d.ts.map +1 -0
- package/dist/specs/packages/index.js +3 -0
- package/dist/specs/packages/index.js.map +1 -0
- package/dist/specs/packages/library-type-spec.d.ts +76 -0
- package/dist/specs/packages/library-type-spec.d.ts.map +1 -0
- package/dist/specs/packages/library-type-spec.js +31 -0
- package/dist/specs/packages/library-type-spec.js.map +1 -0
- package/dist/specs/packages/package-compiler-types.d.ts +111 -0
- package/dist/specs/packages/package-compiler-types.d.ts.map +1 -0
- package/dist/specs/packages/package-compiler-types.js +85 -0
- package/dist/specs/packages/package-compiler-types.js.map +1 -0
- package/dist/tools/model-merger/model-merger.js +1 -1
- package/dist/tools/model-merger/model-merger.js.map +1 -1
- package/dist/utils/color-conversions.js +1 -1
- package/dist/utils/color-conversions.js.map +1 -1
- package/dist/web/components/feature-combobox-field.d.ts.map +1 -1
- package/dist/web/components/feature-combobox-field.js +1 -1
- package/dist/web/components/feature-combobox-field.js.map +1 -1
- package/dist/web/components/model-combobox-field.d.ts.map +1 -1
- package/dist/web/components/model-combobox-field.js +1 -1
- package/dist/web/components/model-combobox-field.js.map +1 -1
- package/dist/web/hooks/use-project-definition.d.ts +2 -2
- package/dist/web/hooks/use-project-definition.d.ts.map +1 -1
- package/dist/web/specs/admin-crud-action-web-spec.d.ts +6 -12
- package/dist/web/specs/admin-crud-action-web-spec.d.ts.map +1 -1
- package/dist/web/specs/admin-crud-action-web-spec.js +6 -29
- package/dist/web/specs/admin-crud-action-web-spec.js.map +1 -1
- package/dist/web/specs/admin-crud-column-web-spec.d.ts +6 -12
- package/dist/web/specs/admin-crud-column-web-spec.d.ts.map +1 -1
- package/dist/web/specs/admin-crud-column-web-spec.js +6 -29
- package/dist/web/specs/admin-crud-column-web-spec.js.map +1 -1
- package/dist/web/specs/admin-crud-input-web-spec.d.ts +6 -12
- package/dist/web/specs/admin-crud-input-web-spec.d.ts.map +1 -1
- package/dist/web/specs/admin-crud-input-web-spec.js +6 -29
- package/dist/web/specs/admin-crud-input-web-spec.js.map +1 -1
- package/dist/web/specs/model-transformer-web-spec.d.ts +8 -13
- package/dist/web/specs/model-transformer-web-spec.d.ts.map +1 -1
- package/dist/web/specs/model-transformer-web-spec.js +16 -28
- package/dist/web/specs/model-transformer-web-spec.js.map +1 -1
- package/package.json +10 -9
- package/dist/compiler/admin-crud-action-spec.d.ts +0 -26
- package/dist/compiler/admin-crud-action-spec.d.ts.map +0 -1
- package/dist/compiler/admin-crud-action-spec.js +0 -29
- package/dist/compiler/admin-crud-action-spec.js.map +0 -1
- package/dist/plugins/schema/index.d.ts.map +0 -1
- package/dist/plugins/schema/index.js.map +0 -1
- package/dist/plugins/schema/store.d.ts +0 -8
- package/dist/plugins/schema/store.d.ts.map +0 -1
- package/dist/plugins/schema/store.js +0 -17
- package/dist/plugins/schema/store.js.map +0 -1
- package/dist/plugins/spec/auth-model-config-spec.d.ts +0 -14
- package/dist/plugins/spec/auth-model-config-spec.d.ts.map +0 -1
- package/dist/plugins/spec/auth-model-config-spec.js +0 -6
- package/dist/plugins/spec/auth-model-config-spec.js.map +0 -1
- package/dist/schema/packages/base.d.ts.map +0 -1
- package/dist/schema/packages/base.js +0 -10
- package/dist/schema/packages/base.js.map +0 -1
- package/dist/schema/packages/index.d.ts +0 -4
- package/dist/schema/packages/index.d.ts.map +0 -1
- package/dist/schema/packages/index.js +0 -4
- package/dist/schema/packages/index.js.map +0 -1
- package/dist/schema/packages/node-library/index.d.ts +0 -16
- package/dist/schema/packages/node-library/index.d.ts.map +0 -1
- package/dist/schema/packages/node-library/index.js +0 -10
- package/dist/schema/packages/node-library/index.js.map +0 -1
- package/dist/schema/packages/types.d.ts +0 -6
- package/dist/schema/packages/types.d.ts.map +0 -1
- package/dist/schema/packages/types.js +0 -6
- package/dist/schema/packages/types.js.map +0 -1
- /package/dist/plugins/{schema → store}/index.d.ts +0 -0
- /package/dist/plugins/{schema → store}/index.js +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DefinitionReferenceMarker, REF_ANNOTATIONS_MARKER_SYMBOL, } from './markers.js';
|
|
1
|
+
import { DefinitionExpressionMarker, DefinitionReferenceMarker, REF_ANNOTATIONS_MARKER_SYMBOL, } from './markers.js';
|
|
2
2
|
function collectRefAnnotationsRecursive(pathPrefix, value) {
|
|
3
3
|
if (value === undefined || value === null)
|
|
4
4
|
return undefined;
|
|
@@ -9,12 +9,28 @@ function collectRefAnnotationsRecursive(pathPrefix, value) {
|
|
|
9
9
|
{ ...value.reference, path: [...pathPrefix, ...value.reference.path] },
|
|
10
10
|
],
|
|
11
11
|
slots: [],
|
|
12
|
+
expressions: [],
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
if (value instanceof DefinitionExpressionMarker) {
|
|
16
|
+
return {
|
|
17
|
+
entities: [],
|
|
18
|
+
references: [],
|
|
19
|
+
slots: [],
|
|
20
|
+
expressions: [
|
|
21
|
+
{
|
|
22
|
+
...value.expression,
|
|
23
|
+
value: value.value,
|
|
24
|
+
path: [...pathPrefix, ...value.expression.path],
|
|
25
|
+
},
|
|
26
|
+
],
|
|
12
27
|
};
|
|
13
28
|
}
|
|
14
29
|
const collected = {
|
|
15
30
|
entities: [],
|
|
16
31
|
references: [],
|
|
17
32
|
slots: [],
|
|
33
|
+
expressions: [],
|
|
18
34
|
};
|
|
19
35
|
if (Array.isArray(value)) {
|
|
20
36
|
for (const [i, element] of value.entries()) {
|
|
@@ -23,6 +39,7 @@ function collectRefAnnotationsRecursive(pathPrefix, value) {
|
|
|
23
39
|
collected.entities.push(...childCollected.entities);
|
|
24
40
|
collected.references.push(...childCollected.references);
|
|
25
41
|
collected.slots.push(...childCollected.slots);
|
|
42
|
+
collected.expressions.push(...childCollected.expressions);
|
|
26
43
|
}
|
|
27
44
|
}
|
|
28
45
|
return collected;
|
|
@@ -51,6 +68,7 @@ function collectRefAnnotationsRecursive(pathPrefix, value) {
|
|
|
51
68
|
collected.entities.push(...childCollected.entities);
|
|
52
69
|
collected.references.push(...childCollected.references);
|
|
53
70
|
collected.slots.push(...childCollected.slots);
|
|
71
|
+
collected.expressions.push(...childCollected.expressions);
|
|
54
72
|
}
|
|
55
73
|
}
|
|
56
74
|
return collected;
|
|
@@ -62,6 +80,7 @@ export function collectRefs(value) {
|
|
|
62
80
|
entities: [],
|
|
63
81
|
references: [],
|
|
64
82
|
slots: [],
|
|
83
|
+
expressions: [],
|
|
65
84
|
});
|
|
66
85
|
}
|
|
67
86
|
//# sourceMappingURL=collect-refs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collect-refs.js","sourceRoot":"","sources":["../../src/references/collect-refs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"collect-refs.js","sourceRoot":"","sources":["../../src/references/collect-refs.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;CACxC;AAED;;GAEG;AACH,UAAU,+BAA+B,CACvC,MAAM,EACN,WAAW,SAAS,oBAAoB,EACxC,OAAO,SAAS,UAAU,CAAC,MAAM,CAAC,GAAG,SAAS,GAAG,SAAS,CAC1D,SAAQ,yBAAyB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC;IAC/D,6DAA6D;IAC7D,UAAU,EAAE,cAAc,CAAC,WAAW,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;CACpE;AAED;;GAEG;AACH,UAAU,kCAAkC,CAC1C,MAAM,EACN,WAAW,SAAS,oBAAoB,EACxC,OAAO,SAAS,UAAU,CAAC,MAAM,CAAC,GAAG,SAAS,GAAG,SAAS,CAC1D,SAAQ,yBAAyB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC;IAC/D,UAAU,CAAC,EAAE,KAAK,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,MAAM,qBAAqB,CAC/B,MAAM,EACN,WAAW,SAAS,oBAAoB,EACxC,OAAO,SAAS,UAAU,CAAC,MAAM,CAAC,GAAG,SAAS,GAAG,SAAS,IACxD,WAAW,CAAC,YAAY,CAAC,SAAS,SAAS,GAC3C,kCAAkC,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,GAChE,+BAA+B,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;AAElE;;;;GAIG;AACH,UAAU,4BAA4B,
|
|
1
|
+
{"version":3,"file":"definition-ref-builder.d.ts","sourceRoot":"","sources":["../../src/references/definition-ref-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import type { z } from 'zod';
|
|
2
|
+
import type { RefContextSlot } from './ref-context-slot.js';
|
|
3
|
+
import type { DefinitionEntityType, ReferencePath } from './types.js';
|
|
4
|
+
/**
|
|
5
|
+
* A warning from validating a ref expression.
|
|
6
|
+
* Warnings are non-blocking - they don't prevent loading the project definition.
|
|
7
|
+
*/
|
|
8
|
+
export interface RefExpressionWarning {
|
|
9
|
+
/** Warning message */
|
|
10
|
+
message: string;
|
|
11
|
+
/** Path within the expression where the warning occurred */
|
|
12
|
+
expressionPath?: string;
|
|
13
|
+
/** Start position in the expression for inline highlighting */
|
|
14
|
+
start?: number;
|
|
15
|
+
/** End position in the expression for inline highlighting */
|
|
16
|
+
end?: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* A dependency found in a ref expression.
|
|
20
|
+
* Used for tracking which entities the expression references,
|
|
21
|
+
* enabling rename handling.
|
|
22
|
+
*/
|
|
23
|
+
export interface RefExpressionDependency {
|
|
24
|
+
/** The type of entity being referenced */
|
|
25
|
+
entityType: DefinitionEntityType;
|
|
26
|
+
/** The ID of the entity being referenced */
|
|
27
|
+
entityId: string;
|
|
28
|
+
/** Position in the expression for rename updates */
|
|
29
|
+
start?: number;
|
|
30
|
+
end?: number;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Slot map type for expressions - maps slot keys to RefContextSlot instances.
|
|
34
|
+
* Similar to RefContextSlotMap but used for expression parser slots.
|
|
35
|
+
*/
|
|
36
|
+
export type ExpressionSlotMap<T extends Record<string, DefinitionEntityType> = Record<string, never>> = {
|
|
37
|
+
[K in keyof T]: RefContextSlot<T[K]>;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Resolved slot paths after slot resolution.
|
|
41
|
+
* Maps slot keys to their resolved paths in the definition.
|
|
42
|
+
*/
|
|
43
|
+
export type ResolvedExpressionSlots<T extends Record<string, DefinitionEntityType> = Record<string, never>> = {
|
|
44
|
+
[K in keyof T]: ReferencePath;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* A pluggable parser for ref expressions.
|
|
48
|
+
*
|
|
49
|
+
* The parser is format-agnostic - the core references system
|
|
50
|
+
* doesn't know or care what format the expressions are in. The parser
|
|
51
|
+
* handles all parsing, validation, and rename handling.
|
|
52
|
+
*
|
|
53
|
+
* Parsers can declare required slots via the TRequiredSlots generic parameter.
|
|
54
|
+
* When a parser requires slots, TypeScript enforces that they are provided
|
|
55
|
+
* when calling `withExpression()`.
|
|
56
|
+
*
|
|
57
|
+
* @typeParam TValue - The type of the raw expression value (e.g., string for TS expressions)
|
|
58
|
+
* @typeParam TParseResult - The type of the parsed result (e.g., AST for TS expressions)
|
|
59
|
+
* @typeParam TRequiredSlots - Record of required slot names to entity types
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```typescript
|
|
63
|
+
* // A simple parser with no required slots
|
|
64
|
+
* class StubParser extends RefExpressionParser<string, undefined> {
|
|
65
|
+
* readonly name = 'stub';
|
|
66
|
+
* parse(): undefined { return undefined; }
|
|
67
|
+
* getWarnings(): [] { return []; }
|
|
68
|
+
* getDependencies(): [] { return []; }
|
|
69
|
+
* updateForRename(value: string): string { return value; }
|
|
70
|
+
* }
|
|
71
|
+
*
|
|
72
|
+
* // A parser that requires a model slot
|
|
73
|
+
* class AuthorizerParser extends RefExpressionParser<
|
|
74
|
+
* string,
|
|
75
|
+
* TsAst,
|
|
76
|
+
* { model: typeof modelEntityType }
|
|
77
|
+
* > {
|
|
78
|
+
* readonly name = 'authorizer';
|
|
79
|
+
* // TypeScript enforces slot requirement in withExpression()
|
|
80
|
+
* }
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
export declare abstract class RefExpressionParser<TValue = unknown, TParseResult = unknown, TRequiredSlots extends Record<string, DefinitionEntityType> = Record<string, never>> {
|
|
84
|
+
/** Unique name for this parser type (used for serialization) */
|
|
85
|
+
abstract readonly name: string;
|
|
86
|
+
/**
|
|
87
|
+
* Zod schema for validating the expression value.
|
|
88
|
+
* This schema is used by `withExpression()` for input validation.
|
|
89
|
+
*
|
|
90
|
+
* @returns A Zod schema that validates the raw expression value
|
|
91
|
+
*/
|
|
92
|
+
abstract readonly schema: z.ZodType<TValue>;
|
|
93
|
+
/**
|
|
94
|
+
* Parse the raw value and return the parse result.
|
|
95
|
+
* The result is cached on the marker for subsequent operations.
|
|
96
|
+
*
|
|
97
|
+
* @param value - The raw expression value
|
|
98
|
+
* @param projectDef - The project definition for context (typed as unknown to avoid circular reference)
|
|
99
|
+
* @returns The parsed result (type determined by parser)
|
|
100
|
+
*/
|
|
101
|
+
abstract parse(value: TValue, projectDef: unknown): TParseResult;
|
|
102
|
+
/**
|
|
103
|
+
* Get validation warnings for the expression.
|
|
104
|
+
* Warnings are non-blocking - they don't prevent loading.
|
|
105
|
+
*
|
|
106
|
+
* @param value - The raw expression value
|
|
107
|
+
* @param parseResult - The cached parse result
|
|
108
|
+
* @param projectDef - The project definition for validation context (typed as unknown to avoid circular reference)
|
|
109
|
+
* @param resolvedSlots - The resolved slot paths for this expression
|
|
110
|
+
* @returns Array of warnings (empty if valid)
|
|
111
|
+
*/
|
|
112
|
+
abstract getWarnings(value: TValue, parseResult: TParseResult, projectDef: unknown, resolvedSlots: ResolvedExpressionSlots<TRequiredSlots>): RefExpressionWarning[];
|
|
113
|
+
/**
|
|
114
|
+
* Get entity/field dependencies from the expression.
|
|
115
|
+
* Used for tracking what the expression references for rename handling.
|
|
116
|
+
*
|
|
117
|
+
* @param value - The raw expression value
|
|
118
|
+
* @param parseResult - The cached parse result
|
|
119
|
+
* @returns Array of dependencies
|
|
120
|
+
*/
|
|
121
|
+
abstract getDependencies(value: TValue, parseResult: TParseResult): RefExpressionDependency[];
|
|
122
|
+
/**
|
|
123
|
+
* Update the expression when dependencies are renamed.
|
|
124
|
+
*
|
|
125
|
+
* @param value - The raw expression value
|
|
126
|
+
* @param parseResult - The cached parse result
|
|
127
|
+
* @param renames - Map of old entity ID to new name
|
|
128
|
+
* @returns The updated expression value
|
|
129
|
+
*/
|
|
130
|
+
abstract updateForRename(value: TValue, parseResult: TParseResult, renames: Map<string, string>): TValue;
|
|
131
|
+
/**
|
|
132
|
+
* Phantom property for TRequiredSlots type inference.
|
|
133
|
+
* This is never actually used at runtime.
|
|
134
|
+
* @internal
|
|
135
|
+
*/
|
|
136
|
+
readonly _requiredSlots?: TRequiredSlots;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Fully resolved expression - output from extractDefinitionRefs.
|
|
140
|
+
* Contains the expression value, parser instance, and resolved slot paths.
|
|
141
|
+
*/
|
|
142
|
+
export interface DefinitionExpression {
|
|
143
|
+
/** Path to the expression in the definition */
|
|
144
|
+
path: ReferencePath;
|
|
145
|
+
/** The raw expression value */
|
|
146
|
+
value: unknown;
|
|
147
|
+
/** Reference to the parser that handles this expression */
|
|
148
|
+
parser: RefExpressionParser<any, any, any>;
|
|
149
|
+
/** Resolved slot paths (slot key → resolved path in definition) */
|
|
150
|
+
resolvedSlots: Record<string, ReferencePath>;
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=expression-types.d.ts.map
|
|
@@ -0,0 +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,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEtE;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,0CAA0C;IAC1C,UAAU,EAAE,oBAAoB,CAAC;IACjC,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,MAAM,MAAM,iBAAiB,CAC3B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IACpE;KACD,CAAC,IAAI,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACrC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,uBAAuB,CACjC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IACpE;KACD,CAAC,IAAI,MAAM,CAAC,GAAG,aAAa;CAC9B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,8BAAsB,mBAAmB,CACvC,MAAM,GAAG,OAAO,EAChB,YAAY,GAAG,OAAO,EACtB,cAAc,SAAS,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,GAAG,MAAM,CAClE,MAAM,EACN,KAAK,CACN;IAED,gEAAgE;IAChE,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAE/B;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAE5C;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,YAAY;IAEhE;;;;;;;;;OASG;IACH,QAAQ,CAAC,WAAW,CAClB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,YAAY,EACzB,UAAU,EAAE,OAAO,EACnB,aAAa,EAAE,uBAAuB,CAAC,cAAc,CAAC,GACrD,oBAAoB,EAAE;IAEzB;;;;;;;OAOG;IACH,QAAQ,CAAC,eAAe,CACtB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,YAAY,GACxB,uBAAuB,EAAE;IAE5B;;;;;;;OAOG;IACH,QAAQ,CAAC,eAAe,CACtB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,YAAY,EACzB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3B,MAAM;IAET;;;;OAIG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;CAC1C;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,+CAA+C;IAC/C,IAAI,EAAE,aAAa,CAAC;IACpB,+BAA+B;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,2DAA2D;IAE3D,MAAM,EAAE,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC3C,mEAAmE;IACnE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAC9C"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A pluggable parser for ref expressions.
|
|
3
|
+
*
|
|
4
|
+
* The parser is format-agnostic - the core references system
|
|
5
|
+
* doesn't know or care what format the expressions are in. The parser
|
|
6
|
+
* handles all parsing, validation, and rename handling.
|
|
7
|
+
*
|
|
8
|
+
* Parsers can declare required slots via the TRequiredSlots generic parameter.
|
|
9
|
+
* When a parser requires slots, TypeScript enforces that they are provided
|
|
10
|
+
* when calling `withExpression()`.
|
|
11
|
+
*
|
|
12
|
+
* @typeParam TValue - The type of the raw expression value (e.g., string for TS expressions)
|
|
13
|
+
* @typeParam TParseResult - The type of the parsed result (e.g., AST for TS expressions)
|
|
14
|
+
* @typeParam TRequiredSlots - Record of required slot names to entity types
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* // A simple parser with no required slots
|
|
19
|
+
* class StubParser extends RefExpressionParser<string, undefined> {
|
|
20
|
+
* readonly name = 'stub';
|
|
21
|
+
* parse(): undefined { return undefined; }
|
|
22
|
+
* getWarnings(): [] { return []; }
|
|
23
|
+
* getDependencies(): [] { return []; }
|
|
24
|
+
* updateForRename(value: string): string { return value; }
|
|
25
|
+
* }
|
|
26
|
+
*
|
|
27
|
+
* // A parser that requires a model slot
|
|
28
|
+
* class AuthorizerParser extends RefExpressionParser<
|
|
29
|
+
* string,
|
|
30
|
+
* TsAst,
|
|
31
|
+
* { model: typeof modelEntityType }
|
|
32
|
+
* > {
|
|
33
|
+
* readonly name = 'authorizer';
|
|
34
|
+
* // TypeScript enforces slot requirement in withExpression()
|
|
35
|
+
* }
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export class RefExpressionParser {
|
|
39
|
+
/**
|
|
40
|
+
* Phantom property for TRequiredSlots type inference.
|
|
41
|
+
* This is never actually used at runtime.
|
|
42
|
+
* @internal
|
|
43
|
+
*/
|
|
44
|
+
_requiredSlots;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=expression-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expression-types.js","sourceRoot":"","sources":["../../src/references/expression-types.ts"],"names":[],"mappings":"AAuDA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,OAAgB,mBAAmB;IAyEvC;;;;OAIG;IACM,cAAc,CAAkB;CAC1C"}
|
|
@@ -3,6 +3,7 @@ import { z } from 'zod';
|
|
|
3
3
|
import type { DefinitionEntityType } from '#src/index.js';
|
|
4
4
|
import type { DefinitionSchemaCreatorOptions } from '#src/schema/index.js';
|
|
5
5
|
import type { DefinitionEntityInput, DefinitionReferenceInput } from './definition-ref-builder.js';
|
|
6
|
+
import type { ExpressionSlotMap, RefExpressionParser } from './expression-types.js';
|
|
6
7
|
import type { RefContextSlotDefinition, RefContextSlotMap } from './ref-context-slot.js';
|
|
7
8
|
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
9
|
export type WithRefType = <TEntityType extends DefinitionEntityType>(reference: DefinitionReferenceInput<TEntityType>) => z.ZodType<string, string>;
|
|
@@ -12,10 +13,22 @@ export type WithEntType = <TType extends z.ZodType, TEntityType extends Definiti
|
|
|
12
13
|
* Slots provide type-safe context for parent-child entity relationships.
|
|
13
14
|
*/
|
|
14
15
|
export type RefContextType = <TSlotDef extends RefContextSlotDefinition, TSchema extends z.ZodType>(slotDefinition: TSlotDef, schemaBuilder: (slots: RefContextSlotMap<TSlotDef>) => TSchema) => ZodTypeWithOptional<TSchema>;
|
|
16
|
+
/**
|
|
17
|
+
* Wraps a value with a ref expression parser for deferred validation.
|
|
18
|
+
* The parser handles all parsing, validation, and rename handling.
|
|
19
|
+
*
|
|
20
|
+
* If the parser declares required slots (via TRequiredSlots), they must be
|
|
21
|
+
* provided as the second argument. TypeScript enforces this at compile time.
|
|
22
|
+
*/
|
|
23
|
+
export interface WithExpressionType {
|
|
24
|
+
<TValue, TParseResult>(parser: RefExpressionParser<TValue, TParseResult>): z.ZodType<TValue, TValue>;
|
|
25
|
+
<TValue, TParseResult, TRequiredSlots extends Record<string, DefinitionEntityType>>(parser: RefExpressionParser<TValue, TParseResult, TRequiredSlots>, slots: ExpressionSlotMap<TRequiredSlots>): z.ZodType<TValue, TValue>;
|
|
26
|
+
}
|
|
15
27
|
export declare function extendParserContextWithRefs({ transformReferences, }: DefinitionSchemaCreatorOptions): {
|
|
16
28
|
withRef: WithRefType;
|
|
17
29
|
withEnt: WithEntType;
|
|
18
30
|
refContext: RefContextType;
|
|
31
|
+
withExpression: WithExpressionType;
|
|
19
32
|
};
|
|
20
33
|
export {};
|
|
21
34
|
//# sourceMappingURL=extend-parser-context-with-refs.d.ts.map
|
|
@@ -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;AAGvD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AAE3E,OAAO,KAAK,EACV,qBAAqB,EACrB,wBAAwB,EACzB,MAAM,6BAA6B,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,6 +1,6 @@
|
|
|
1
1
|
import { get } from 'es-toolkit/compat';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
-
import { DefinitionReferenceMarker, REF_ANNOTATIONS_MARKER_SYMBOL, } from './markers.js';
|
|
3
|
+
import { DefinitionExpressionMarker, DefinitionReferenceMarker, REF_ANNOTATIONS_MARKER_SYMBOL, } from './markers.js';
|
|
4
4
|
import { createRefContextSlotMap } from './ref-context-slot.js';
|
|
5
5
|
import { stripRefMarkers } from './strip-ref-markers.js';
|
|
6
6
|
export function extendParserContextWithRefs({ transformReferences, }) {
|
|
@@ -126,10 +126,48 @@ export function extendParserContextWithRefs({ transformReferences, }) {
|
|
|
126
126
|
],
|
|
127
127
|
})));
|
|
128
128
|
}
|
|
129
|
+
/**
|
|
130
|
+
* Wraps a value with a ref expression parser for deferred validation.
|
|
131
|
+
* The parser handles all parsing, validation, and rename handling.
|
|
132
|
+
*
|
|
133
|
+
* If the parser declares required slots (via TRequiredSlots), they must be
|
|
134
|
+
* provided as the second argument. TypeScript enforces this at compile time.
|
|
135
|
+
*
|
|
136
|
+
* The parser's `schema` property is used for input validation.
|
|
137
|
+
*
|
|
138
|
+
* @example
|
|
139
|
+
* ```typescript
|
|
140
|
+
* // Parser without required slots
|
|
141
|
+
* const expressionSchema = ctx.withExpression(simpleParser);
|
|
142
|
+
*
|
|
143
|
+
* // Parser with required slots (TypeScript enforces the second argument)
|
|
144
|
+
* ctx.refContext(
|
|
145
|
+
* { modelSlot: modelEntityType },
|
|
146
|
+
* ({ modelSlot }) =>
|
|
147
|
+
* z.object({
|
|
148
|
+
* condition: ctx.withExpression(authorizerParser, { model: modelSlot }),
|
|
149
|
+
* })
|
|
150
|
+
* );
|
|
151
|
+
* ```
|
|
152
|
+
*/
|
|
153
|
+
function withExpression(parser, slots) {
|
|
154
|
+
return parser.schema.transform((value) => {
|
|
155
|
+
if (transformReferences && value !== undefined) {
|
|
156
|
+
return new DefinitionExpressionMarker(value, {
|
|
157
|
+
path: [],
|
|
158
|
+
value,
|
|
159
|
+
parser,
|
|
160
|
+
slots,
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
return value;
|
|
164
|
+
});
|
|
165
|
+
}
|
|
129
166
|
return {
|
|
130
167
|
withRef,
|
|
131
168
|
withEnt,
|
|
132
169
|
refContext,
|
|
170
|
+
withExpression,
|
|
133
171
|
};
|
|
134
172
|
}
|
|
135
173
|
//# 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,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,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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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { DefinitionEntityWithNameResolver } from './definition-ref-builder.js';
|
|
2
|
+
import type { DefinitionExpression } from './expression-types.js';
|
|
2
3
|
import type { DefinitionReference } from './types.js';
|
|
3
4
|
/**
|
|
4
|
-
* Payload returned after parsing, containing the data, references, and
|
|
5
|
+
* Payload returned after parsing, containing the data, references, entities, and expressions.
|
|
5
6
|
*
|
|
6
7
|
* @template TData - The type of the parsed data.
|
|
7
8
|
*/
|
|
@@ -9,15 +10,17 @@ export interface ExtractDefinitionRefsPayload<TData> {
|
|
|
9
10
|
data: TData;
|
|
10
11
|
references: DefinitionReference[];
|
|
11
12
|
entitiesWithNameResolver: DefinitionEntityWithNameResolver[];
|
|
13
|
+
expressions: DefinitionExpression[];
|
|
12
14
|
}
|
|
13
15
|
/**
|
|
14
16
|
* Extracts definition refs from a parsed value using functional approach.
|
|
15
17
|
*
|
|
16
18
|
* Flow:
|
|
17
|
-
* 1. Collect all refs (entities, references, slots) recursively
|
|
19
|
+
* 1. Collect all refs (entities, references, slots, expressions) recursively
|
|
18
20
|
* 2. Resolve all slot references to actual paths
|
|
19
21
|
* 3. Strip ref markers from the data
|
|
20
|
-
* 4.
|
|
22
|
+
* 4. Resolve entity, reference, and expression parent/slot paths
|
|
23
|
+
* 5. Validate no duplicate IDs
|
|
21
24
|
*
|
|
22
25
|
* @param value - The parsed value from Zod schema
|
|
23
26
|
* @returns The extracted refs with clean data
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract-definition-refs.d.ts","sourceRoot":"","sources":["../../src/references/extract-definition-refs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"extract-definition-refs.d.ts","sourceRoot":"","sources":["../../src/references/extract-definition-refs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElE,OAAO,KAAK,EAAE,mBAAmB,EAAiB,MAAM,YAAY,CAAC;AAMrE;;;;GAIG;AACH,MAAM,WAAW,4BAA4B,CAAC,KAAK;IACjD,IAAI,EAAE,KAAK,CAAC;IACZ,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,wBAAwB,EAAE,gCAAgC,EAAE,CAAC;IAC7D,WAAW,EAAE,oBAAoB,EAAE,CAAC;CACrC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,KAAK,EAAE,CAAC,GACP,4BAA4B,CAAC,CAAC,CAAC,CAgGjC"}
|
|
@@ -5,10 +5,11 @@ import { stripRefMarkers } from './strip-ref-markers.js';
|
|
|
5
5
|
* Extracts definition refs from a parsed value using functional approach.
|
|
6
6
|
*
|
|
7
7
|
* Flow:
|
|
8
|
-
* 1. Collect all refs (entities, references, slots) recursively
|
|
8
|
+
* 1. Collect all refs (entities, references, slots, expressions) recursively
|
|
9
9
|
* 2. Resolve all slot references to actual paths
|
|
10
10
|
* 3. Strip ref markers from the data
|
|
11
|
-
* 4.
|
|
11
|
+
* 4. Resolve entity, reference, and expression parent/slot paths
|
|
12
|
+
* 5. Validate no duplicate IDs
|
|
12
13
|
*
|
|
13
14
|
* @param value - The parsed value from Zod schema
|
|
14
15
|
* @returns The extracted refs with clean data
|
|
@@ -20,7 +21,7 @@ export function extractDefinitionRefs(value) {
|
|
|
20
21
|
const resolvedSlots = resolveSlots(collected);
|
|
21
22
|
// Step 3: Strip markers from data
|
|
22
23
|
const cleanData = stripRefMarkers(value);
|
|
23
|
-
// Step 4: Resolve entity and
|
|
24
|
+
// Step 4: Resolve entity, reference, and expression parent/slot paths
|
|
24
25
|
function resolveParentPath(parentSlot, path) {
|
|
25
26
|
const resolvedSlot = findNearestAncestorSlot(resolvedSlots.get(parentSlot.id), path);
|
|
26
27
|
if (!resolvedSlot) {
|
|
@@ -46,7 +47,26 @@ export function extractDefinitionRefs(value) {
|
|
|
46
47
|
? resolveParentPath(reference.parentSlot, reference.path)
|
|
47
48
|
: undefined,
|
|
48
49
|
}));
|
|
49
|
-
//
|
|
50
|
+
// Resolve expression slots
|
|
51
|
+
const expressions = collected.expressions.map((expression) => {
|
|
52
|
+
const resolvedSlotPaths = {};
|
|
53
|
+
if (expression.slots) {
|
|
54
|
+
for (const [key, slot] of Object.entries(expression.slots)) {
|
|
55
|
+
const resolvedSlot = findNearestAncestorSlot(resolvedSlots.get(slot.id), expression.path);
|
|
56
|
+
if (!resolvedSlot) {
|
|
57
|
+
throw new Error(`Could not resolve expression slot "${key}" at path ${expression.path.join('.')} for slot ${slot.id.description}`);
|
|
58
|
+
}
|
|
59
|
+
resolvedSlotPaths[key] = resolvedSlot.resolvedPath;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return {
|
|
63
|
+
path: expression.path,
|
|
64
|
+
value: expression.value,
|
|
65
|
+
parser: expression.parser,
|
|
66
|
+
resolvedSlots: resolvedSlotPaths,
|
|
67
|
+
};
|
|
68
|
+
});
|
|
69
|
+
// Step 5: Validate no duplicate IDs
|
|
50
70
|
const idSet = new Set();
|
|
51
71
|
for (const entity of collected.entities) {
|
|
52
72
|
if (idSet.has(entity.id)) {
|
|
@@ -58,6 +78,7 @@ export function extractDefinitionRefs(value) {
|
|
|
58
78
|
data: cleanData,
|
|
59
79
|
references,
|
|
60
80
|
entitiesWithNameResolver,
|
|
81
|
+
expressions,
|
|
61
82
|
};
|
|
62
83
|
}
|
|
63
84
|
//# sourceMappingURL=extract-definition-refs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract-definition-refs.js","sourceRoot":"","sources":["../../src/references/extract-definition-refs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"extract-definition-refs.js","sourceRoot":"","sources":["../../src/references/extract-definition-refs.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAczD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAQ;IAER,mDAAmD;IACnD,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAErC,qCAAqC;IACrC,MAAM,aAAa,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IAE9C,kCAAkC;IAClC,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAEzC,sEAAsE;IACtE,SAAS,iBAAiB,CACxB,UAA0B,EAC1B,IAAmB;QAEnB,MAAM,YAAY,GAAG,uBAAuB,CAC1C,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,EAChC,IAAI,CACL,CAAC;QACF,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CACb,sCAAsC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,UAAU,CAAC,EAAE,CAAC,WAAW,EAAE,CAC7F,CAAC;QACJ,CAAC;QACD,OAAO,YAAY,CAAC,YAAY,CAAC;IACnC,CAAC;IAED,MAAM,wBAAwB,GAC5B,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAClC,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC3B,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC;YACnD,CAAC,CAAC,SAAS;KACd,CAAC,CAAC,CAAC;IAEN,MAAM,UAAU,GAA0B,SAAS,CAAC,UAAU,CAAC,GAAG,CAChE,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACd,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,UAAU,EAAE,SAAS,CAAC,UAAU;YAC9B,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC;YACzD,CAAC,CAAC,SAAS;KACd,CAAC,CACH,CAAC;IAEF,2BAA2B;IAC3B,MAAM,WAAW,GAA2B,SAAS,CAAC,WAAW,CAAC,GAAG,CACnE,CAAC,UAAU,EAAE,EAAE;QACb,MAAM,iBAAiB,GAAkC,EAAE,CAAC;QAE5D,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;YACrB,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CACtC,UAAU,CAAC,KAAuC,CACnD,EAAE,CAAC;gBACF,MAAM,YAAY,GAAG,uBAAuB,CAC1C,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAC1B,UAAU,CAAC,IAAI,CAChB,CAAC;gBACF,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,MAAM,IAAI,KAAK,CACb,sCAAsC,GAAG,aAAa,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAClH,CAAC;gBACJ,CAAC;gBACD,iBAAiB,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC;YACrD,CAAC;QACH,CAAC;QAED,OAAO;YACL,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,aAAa,EAAE,iBAAiB;SACjC,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,oCAAoC;IACpC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;QACxC,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,uBAAuB,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC;IAED,OAAO;QACL,IAAI,EAAE,SAAS;QACf,UAAU;QACV,wBAAwB;QACxB,WAAW;KACZ,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/references/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/references/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC"}
|
package/dist/references/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/references/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/references/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { DefinitionEntityNameResolver } from './definition-ref-builder.js';
|
|
2
|
+
import type { ExpressionSlotMap, RefExpressionParser } from './expression-types.js';
|
|
2
3
|
import type { RefContextSlot } from './ref-context-slot.js';
|
|
3
4
|
import type { DefinitionEntityType, ReferenceOnDeleteAction, ReferencePath } from './types.js';
|
|
4
5
|
export interface DefinitionEntityAnnotation {
|
|
@@ -21,12 +22,34 @@ export interface DefinitionSlotAnnotation {
|
|
|
21
22
|
path: ReferencePath;
|
|
22
23
|
slot: RefContextSlot;
|
|
23
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Annotation for an expression in a definition.
|
|
27
|
+
* Contains the path, value, parser, and optional slots for context-dependent expressions.
|
|
28
|
+
*/
|
|
29
|
+
export interface DefinitionExpressionAnnotation {
|
|
30
|
+
path: ReferencePath;
|
|
31
|
+
/** The raw expression value */
|
|
32
|
+
value: unknown;
|
|
33
|
+
parser: RefExpressionParser<any, any, any>;
|
|
34
|
+
slots?: ExpressionSlotMap<any>;
|
|
35
|
+
}
|
|
24
36
|
export declare class DefinitionReferenceMarker {
|
|
25
37
|
value: string | undefined;
|
|
26
38
|
reference: DefinitionReferenceAnnotation;
|
|
27
39
|
constructor(value: string | undefined, reference: DefinitionReferenceAnnotation);
|
|
28
40
|
toString(): string;
|
|
29
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* Marker class for expressions during schema parsing.
|
|
44
|
+
* Similar to `DefinitionReferenceMarker`, this wraps expression values
|
|
45
|
+
* during the Zod parsing phase when `transformReferences` is enabled.
|
|
46
|
+
*/
|
|
47
|
+
export declare class DefinitionExpressionMarker {
|
|
48
|
+
value: unknown;
|
|
49
|
+
expression: DefinitionExpressionAnnotation;
|
|
50
|
+
constructor(value: unknown, expression: DefinitionExpressionAnnotation);
|
|
51
|
+
toString(): string;
|
|
52
|
+
}
|
|
30
53
|
export declare const REF_ANNOTATIONS_MARKER_SYMBOL: unique symbol;
|
|
31
54
|
export interface DefinitionRefAnnotations {
|
|
32
55
|
entities: DefinitionEntityAnnotation[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markers.d.ts","sourceRoot":"","sources":["../../src/references/markers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EACV,oBAAoB,EACpB,uBAAuB,EACvB,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,aAAa,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,oBAAoB,CAAC;IAC3B,YAAY,EAAE,4BAA4B,GAAG,MAAM,CAAC;IACpD,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,oBAAoB,CAAC;IAC3B,QAAQ,EAAE,uBAAuB,CAAC;IAClC,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,cAAc,CAAC;CACtB;AAED,qBAAa,yBAAyB;IAC7B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,SAAS,EAAE,6BAA6B,CAAC;gBAG9C,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,SAAS,EAAE,6BAA6B;IAM1C,QAAQ,IAAI,MAAM;CAGnB;AAED,eAAO,MAAM,6BAA6B,eAAiC,CAAC;AAE5E,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,0BAA0B,EAAE,CAAC;IACvC,UAAU,EAAE,6BAA6B,EAAE,CAAC;IAC5C,KAAK,EAAE,wBAAwB,EAAE,CAAC;CACnC"}
|
|
1
|
+
{"version":3,"file":"markers.d.ts","sourceRoot":"","sources":["../../src/references/markers.ts"],"names":[],"mappings":"AAAA,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,0BAA0B;IACzC,IAAI,EAAE,aAAa,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,oBAAoB,CAAC;IAC3B,YAAY,EAAE,4BAA4B,GAAG,MAAM,CAAC;IACpD,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,oBAAoB,CAAC;IAC3B,QAAQ,EAAE,uBAAuB,CAAC;IAClC,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,cAAc,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,8BAA8B;IAC7C,IAAI,EAAE,aAAa,CAAC;IACpB,+BAA+B;IAC/B,KAAK,EAAE,OAAO,CAAC;IAEf,MAAM,EAAE,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAE3C,KAAK,CAAC,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC;CAChC;AAED,qBAAa,yBAAyB;IAC7B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,SAAS,EAAE,6BAA6B,CAAC;gBAG9C,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,SAAS,EAAE,6BAA6B;IAM1C,QAAQ,IAAI,MAAM;CAGnB;AAED;;;;GAIG;AACH,qBAAa,0BAA0B;IAC9B,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,8BAA8B,CAAC;gBAEtC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,8BAA8B;IAKtE,QAAQ,IAAI,MAAM;CAGnB;AAED,eAAO,MAAM,6BAA6B,eAAiC,CAAC;AAE5E,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,0BAA0B,EAAE,CAAC;IACvC,UAAU,EAAE,6BAA6B,EAAE,CAAC;IAC5C,KAAK,EAAE,wBAAwB,EAAE,CAAC;CACnC"}
|
|
@@ -9,5 +9,21 @@ export class DefinitionReferenceMarker {
|
|
|
9
9
|
return this.value ?? '';
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
|
+
/**
|
|
13
|
+
* Marker class for expressions during schema parsing.
|
|
14
|
+
* Similar to `DefinitionReferenceMarker`, this wraps expression values
|
|
15
|
+
* during the Zod parsing phase when `transformReferences` is enabled.
|
|
16
|
+
*/
|
|
17
|
+
export class DefinitionExpressionMarker {
|
|
18
|
+
value;
|
|
19
|
+
expression;
|
|
20
|
+
constructor(value, expression) {
|
|
21
|
+
this.value = value;
|
|
22
|
+
this.expression = expression;
|
|
23
|
+
}
|
|
24
|
+
toString() {
|
|
25
|
+
return String(this.value);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
12
28
|
export const REF_ANNOTATIONS_MARKER_SYMBOL = Symbol('refAnnotationsMarker');
|
|
13
29
|
//# sourceMappingURL=markers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markers.js","sourceRoot":"","sources":["../../src/references/markers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"markers.js","sourceRoot":"","sources":["../../src/references/markers.ts"],"names":[],"mappings":"AAiDA,MAAM,OAAO,yBAAyB;IAC7B,KAAK,CAAqB;IAC1B,SAAS,CAAgC;IAEhD,YACE,KAAyB,EACzB,SAAwC;QAExC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IAC1B,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,0BAA0B;IAC9B,KAAK,CAAU;IACf,UAAU,CAAiC;IAElD,YAAY,KAAc,EAAE,UAA0C;QACpE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,QAAQ;QACN,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,CAAC,MAAM,6BAA6B,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC"}
|