@baseplate-dev/project-builder-lib 0.5.3 → 0.6.0
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 +60 -0
- package/dist/definition/index.d.ts +0 -1
- package/dist/definition/index.d.ts.map +1 -1
- package/dist/definition/index.js +0 -1
- package/dist/definition/index.js.map +1 -1
- package/dist/definition/model/model-field-utils.js +2 -2
- package/dist/definition/model/model-field-utils.js.map +1 -1
- package/dist/definition/model/model-utils.d.ts.map +1 -1
- package/dist/definition/model/model-utils.js +2 -2
- package/dist/definition/model/model-utils.js.map +1 -1
- package/dist/definition/project-definition-container.d.ts +21 -12
- package/dist/definition/project-definition-container.d.ts.map +1 -1
- package/dist/definition/project-definition-container.js +42 -23
- package/dist/definition/project-definition-container.js.map +1 -1
- 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-024-graphql-object-type-field-auth.d.ts +30 -0
- package/dist/migrations/migration-024-graphql-object-type-field-auth.d.ts.map +1 -0
- package/dist/migrations/migration-024-graphql-object-type-field-auth.js +54 -0
- package/dist/migrations/migration-024-graphql-object-type-field-auth.js.map +1 -0
- package/dist/migrations/migration-025-service-method-auth.d.ts +44 -0
- package/dist/migrations/migration-025-service-method-auth.d.ts.map +1 -0
- package/dist/migrations/migration-025-service-method-auth.js +62 -0
- package/dist/migrations/migration-025-service-method-auth.js.map +1 -0
- package/dist/migrations/migration-026-query-shared-roles.d.ts +32 -0
- package/dist/migrations/migration-026-query-shared-roles.d.ts.map +1 -0
- package/dist/migrations/migration-026-query-shared-roles.js +48 -0
- package/dist/migrations/migration-026-query-shared-roles.js.map +1 -0
- package/dist/parser/apply-definition-fixes.d.ts +13 -0
- package/dist/parser/apply-definition-fixes.d.ts.map +1 -0
- package/dist/parser/apply-definition-fixes.js +25 -0
- package/dist/parser/apply-definition-fixes.js.map +1 -0
- package/dist/parser/clean-default-values.d.ts +14 -0
- package/dist/parser/clean-default-values.d.ts.map +1 -0
- package/dist/parser/clean-default-values.js +24 -0
- package/dist/parser/clean-default-values.js.map +1 -0
- package/dist/parser/collect-definition-issues.d.ts +36 -0
- package/dist/parser/collect-definition-issues.d.ts.map +1 -0
- package/dist/parser/collect-definition-issues.js +94 -0
- package/dist/parser/collect-definition-issues.js.map +1 -0
- package/dist/parser/collect-expression-issues.d.ts +17 -0
- package/dist/parser/collect-expression-issues.d.ts.map +1 -0
- package/dist/parser/collect-expression-issues.js +33 -0
- package/dist/parser/collect-expression-issues.js.map +1 -0
- package/dist/parser/definition-issue-checkers/mutation-roles-checker.d.ts +11 -0
- package/dist/parser/definition-issue-checkers/mutation-roles-checker.d.ts.map +1 -0
- package/dist/parser/definition-issue-checkers/mutation-roles-checker.js +41 -0
- package/dist/parser/definition-issue-checkers/mutation-roles-checker.js.map +1 -0
- package/dist/parser/definition-issue-checkers/relation-type-mismatch-checker.d.ts +10 -0
- package/dist/parser/definition-issue-checkers/relation-type-mismatch-checker.d.ts.map +1 -0
- package/dist/parser/definition-issue-checkers/relation-type-mismatch-checker.js +36 -0
- package/dist/parser/definition-issue-checkers/relation-type-mismatch-checker.js.map +1 -0
- package/dist/parser/definition-issue-utils.d.ts +23 -0
- package/dist/parser/definition-issue-utils.d.ts.map +1 -0
- package/dist/parser/definition-issue-utils.js +33 -0
- package/dist/parser/definition-issue-utils.js.map +1 -0
- package/dist/parser/index.d.ts +9 -0
- package/dist/parser/index.d.ts.map +1 -1
- package/dist/parser/index.js +8 -0
- package/dist/parser/index.js.map +1 -1
- package/dist/parser/parser.d.ts.map +1 -1
- package/dist/parser/parser.js +7 -2
- package/dist/parser/parser.js.map +1 -1
- package/dist/parser/schema-structure.d.ts +53 -0
- package/dist/parser/schema-structure.d.ts.map +1 -0
- package/dist/parser/schema-structure.js +171 -0
- package/dist/parser/schema-structure.js.map +1 -0
- package/dist/parser/transform-data-with-schema.d.ts +35 -0
- package/dist/parser/transform-data-with-schema.d.ts.map +1 -0
- package/dist/parser/transform-data-with-schema.js +140 -0
- package/dist/parser/transform-data-with-schema.js.map +1 -0
- package/dist/parser/types.d.ts +6 -3
- package/dist/parser/types.d.ts.map +1 -1
- package/dist/parser/walk-data-with-schema.d.ts +46 -0
- package/dist/parser/walk-data-with-schema.d.ts.map +1 -0
- package/dist/parser/walk-data-with-schema.js +140 -0
- package/dist/parser/walk-data-with-schema.js.map +1 -0
- package/dist/parser/walk-schema-structure.d.ts +60 -0
- package/dist/parser/walk-schema-structure.d.ts.map +1 -0
- package/dist/parser/walk-schema-structure.js +163 -0
- package/dist/parser/walk-schema-structure.js.map +1 -0
- package/dist/plugins/imports/loader.d.ts +1 -1
- package/dist/plugins/imports/loader.d.ts.map +1 -1
- package/dist/plugins/imports/loader.js +2 -2
- package/dist/plugins/imports/loader.js.map +1 -1
- package/dist/plugins/imports/types.d.ts +1 -1
- package/dist/plugins/imports/types.d.ts.map +1 -1
- package/dist/plugins/metadata/types.d.ts +1 -1
- package/dist/plugins/metadata/types.js +1 -1
- package/dist/plugins/plugins.test-utils.d.ts +15 -0
- package/dist/plugins/plugins.test-utils.d.ts.map +1 -1
- package/dist/plugins/plugins.test-utils.js +24 -0
- package/dist/plugins/plugins.test-utils.js.map +1 -1
- package/dist/plugins/spec/config-spec.d.ts +1 -0
- package/dist/plugins/spec/config-spec.d.ts.map +1 -1
- package/dist/plugins/spec/config-spec.js +1 -0
- package/dist/plugins/spec/config-spec.js.map +1 -1
- package/dist/plugins/store/store.d.ts +6 -1
- package/dist/plugins/store/store.d.ts.map +1 -1
- package/dist/plugins/store/store.js +9 -1
- package/dist/plugins/store/store.js.map +1 -1
- package/dist/references/definition-ref-registry.d.ts +105 -0
- package/dist/references/definition-ref-registry.d.ts.map +1 -0
- package/dist/references/definition-ref-registry.js +40 -0
- package/dist/references/definition-ref-registry.js.map +1 -0
- package/dist/references/deserialize-schema.d.ts +4 -6
- package/dist/references/deserialize-schema.d.ts.map +1 -1
- package/dist/references/deserialize-schema.js +4 -5
- package/dist/references/deserialize-schema.js.map +1 -1
- package/dist/references/expression-types.d.ts +46 -14
- package/dist/references/expression-types.d.ts.map +1 -1
- package/dist/references/expression-types.js +17 -0
- package/dist/references/expression-types.js.map +1 -1
- package/dist/references/extend-parser-context-with-refs.d.ts +32 -2
- package/dist/references/extend-parser-context-with-refs.d.ts.map +1 -1
- package/dist/references/extend-parser-context-with-refs.js +123 -163
- package/dist/references/extend-parser-context-with-refs.js.map +1 -1
- package/dist/references/extract-definition-refs.d.ts +9 -8
- package/dist/references/extract-definition-refs.d.ts.map +1 -1
- package/dist/references/extract-definition-refs.js +110 -26
- package/dist/references/extract-definition-refs.js.map +1 -1
- package/dist/references/fix-ref-deletions.d.ts +6 -6
- package/dist/references/fix-ref-deletions.d.ts.map +1 -1
- package/dist/references/fix-ref-deletions.js +2 -2
- package/dist/references/fix-ref-deletions.js.map +1 -1
- package/dist/references/index.d.ts +3 -0
- package/dist/references/index.d.ts.map +1 -1
- package/dist/references/index.js +3 -0
- package/dist/references/index.js.map +1 -1
- package/dist/references/parse-schema-with-references.d.ts +8 -6
- package/dist/references/parse-schema-with-references.d.ts.map +1 -1
- package/dist/references/parse-schema-with-references.js +10 -12
- package/dist/references/parse-schema-with-references.js.map +1 -1
- package/dist/references/ref-schema-visitor.d.ts +33 -0
- package/dist/references/ref-schema-visitor.d.ts.map +1 -0
- package/dist/references/ref-schema-visitor.js +61 -0
- package/dist/references/ref-schema-visitor.js.map +1 -0
- package/dist/references/resolve-slots.d.ts +1 -1
- package/dist/references/resolve-slots.d.ts.map +1 -1
- package/dist/references/serialize-schema.d.ts +9 -2
- package/dist/references/serialize-schema.d.ts.map +1 -1
- package/dist/references/serialize-schema.js +20 -4
- package/dist/references/serialize-schema.js.map +1 -1
- package/dist/schema/apps/web/admin/admin.d.ts +22 -37
- package/dist/schema/apps/web/admin/admin.d.ts.map +1 -1
- package/dist/schema/apps/web/admin/sections/crud-actions/admin-crud-action.d.ts +6 -15
- 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 +3 -8
- package/dist/schema/apps/web/admin/sections/crud-actions/admin-crud-action.js.map +1 -1
- package/dist/schema/apps/web/admin/sections/crud-columns/admin-crud-column.d.ts +6 -15
- 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 +3 -8
- 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 +9 -15
- 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 +3 -8
- package/dist/schema/apps/web/admin/sections/crud-form/admin-crud-input.js.map +1 -1
- package/dist/schema/apps/web/admin/sections/crud.d.ts +6 -6
- package/dist/schema/apps/web/web-app.d.ts +32 -47
- package/dist/schema/apps/web/web-app.d.ts.map +1 -1
- package/dist/schema/creator/definition-default-registry.d.ts +22 -0
- package/dist/schema/creator/definition-default-registry.d.ts.map +1 -0
- package/dist/schema/creator/definition-default-registry.js +18 -0
- package/dist/schema/creator/definition-default-registry.js.map +1 -0
- package/dist/schema/creator/definition-fix-registry.d.ts +45 -0
- package/dist/schema/creator/definition-fix-registry.d.ts.map +1 -0
- package/dist/schema/creator/definition-fix-registry.js +41 -0
- package/dist/schema/creator/definition-fix-registry.js.map +1 -0
- package/dist/schema/creator/definition-issue-checker-spec.d.ts +37 -0
- package/dist/schema/creator/definition-issue-checker-spec.d.ts.map +1 -0
- package/dist/schema/creator/definition-issue-checker-spec.js +28 -0
- package/dist/schema/creator/definition-issue-checker-spec.js.map +1 -0
- package/dist/schema/creator/definition-issue-checkers.d.ts +16 -0
- package/dist/schema/creator/definition-issue-checkers.d.ts.map +1 -0
- package/dist/schema/creator/definition-issue-checkers.js +35 -0
- package/dist/schema/creator/definition-issue-checkers.js.map +1 -0
- package/dist/schema/creator/definition-issue-registry.d.ts +54 -0
- package/dist/schema/creator/definition-issue-registry.d.ts.map +1 -0
- package/dist/schema/creator/definition-issue-registry.js +47 -0
- package/dist/schema/creator/definition-issue-registry.js.map +1 -0
- package/dist/schema/creator/definition-issue-types.d.ts +53 -0
- package/dist/schema/creator/definition-issue-types.d.ts.map +1 -0
- package/dist/schema/creator/definition-issue-types.js +2 -0
- package/dist/schema/creator/definition-issue-types.js.map +1 -0
- package/dist/schema/creator/extend-parser-context-with-defaults.d.ts +20 -4
- package/dist/schema/creator/extend-parser-context-with-defaults.d.ts.map +1 -1
- package/dist/schema/creator/extend-parser-context-with-defaults.js +24 -42
- package/dist/schema/creator/extend-parser-context-with-defaults.js.map +1 -1
- package/dist/schema/creator/index.d.ts +6 -0
- package/dist/schema/creator/index.d.ts.map +1 -1
- package/dist/schema/creator/index.js +5 -0
- package/dist/schema/creator/index.js.map +1 -1
- package/dist/schema/creator/schema-creator.d.ts.map +1 -1
- package/dist/schema/creator/schema-creator.js +18 -4
- package/dist/schema/creator/schema-creator.js.map +1 -1
- package/dist/schema/creator/types.d.ts +3 -30
- package/dist/schema/creator/types.d.ts.map +1 -1
- package/dist/schema/models/authorizer/authorizer-expression-acorn-parser.d.ts.map +1 -1
- package/dist/schema/models/authorizer/authorizer-expression-acorn-parser.js +116 -25
- package/dist/schema/models/authorizer/authorizer-expression-acorn-parser.js.map +1 -1
- package/dist/schema/models/authorizer/authorizer-expression-ast.d.ts +82 -1
- package/dist/schema/models/authorizer/authorizer-expression-ast.d.ts.map +1 -1
- package/dist/schema/models/authorizer/authorizer-expression-ast.js.map +1 -1
- package/dist/schema/models/authorizer/authorizer-expression-parser.d.ts +8 -9
- package/dist/schema/models/authorizer/authorizer-expression-parser.d.ts.map +1 -1
- package/dist/schema/models/authorizer/authorizer-expression-parser.js +28 -35
- package/dist/schema/models/authorizer/authorizer-expression-parser.js.map +1 -1
- package/dist/schema/models/authorizer/authorizer-expression-validator.d.ts +42 -4
- package/dist/schema/models/authorizer/authorizer-expression-validator.d.ts.map +1 -1
- package/dist/schema/models/authorizer/authorizer-expression-validator.js +119 -18
- package/dist/schema/models/authorizer/authorizer-expression-validator.js.map +1 -1
- package/dist/schema/models/graphql.d.ts +42 -111
- package/dist/schema/models/graphql.d.ts.map +1 -1
- package/dist/schema/models/graphql.js +59 -19
- package/dist/schema/models/graphql.js.map +1 -1
- package/dist/schema/models/models.d.ts +1134 -343
- package/dist/schema/models/models.d.ts.map +1 -1
- package/dist/schema/models/models.js +258 -86
- package/dist/schema/models/models.js.map +1 -1
- package/dist/schema/plugins/definition.d.ts +2 -30
- package/dist/schema/plugins/definition.d.ts.map +1 -1
- package/dist/schema/plugins/definition.js +26 -15
- package/dist/schema/plugins/definition.js.map +1 -1
- package/dist/schema/project-definition.d.ts +532 -186
- package/dist/schema/project-definition.d.ts.map +1 -1
- package/dist/schema/project-definition.js +15 -3
- package/dist/schema/project-definition.js.map +1 -1
- package/dist/schema/settings/general.d.ts +1 -1
- package/dist/schema/settings/general.d.ts.map +1 -1
- package/dist/schema/settings/general.js +4 -1
- package/dist/schema/settings/general.js.map +1 -1
- package/dist/schema/settings/settings.d.ts +3 -3
- package/dist/schema/settings/theme.d.ts +3 -3
- package/dist/testing/definition-helpers.test-helper.d.ts +12 -0
- package/dist/testing/definition-helpers.test-helper.d.ts.map +1 -0
- package/dist/testing/definition-helpers.test-helper.js +77 -0
- package/dist/testing/definition-helpers.test-helper.js.map +1 -0
- package/dist/testing/expression-stub-parser.test-helper.d.ts +59 -0
- package/dist/testing/expression-stub-parser.test-helper.d.ts.map +1 -0
- package/dist/testing/expression-stub-parser.test-helper.js +79 -0
- package/dist/testing/expression-stub-parser.test-helper.js.map +1 -0
- package/dist/testing/expression-warning-parser.test-helper.d.ts +39 -0
- package/dist/testing/expression-warning-parser.test-helper.d.ts.map +1 -0
- package/dist/testing/expression-warning-parser.test-helper.js +62 -0
- package/dist/testing/expression-warning-parser.test-helper.js.map +1 -0
- package/dist/testing/index.d.ts +5 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +5 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/parser-context.test-helper.d.ts +8 -0
- package/dist/testing/parser-context.test-helper.d.ts.map +1 -0
- package/dist/testing/parser-context.test-helper.js +16 -0
- package/dist/testing/parser-context.test-helper.js.map +1 -0
- package/dist/{definition/project-definition-container.test-utils.d.ts → testing/project-definition-container.test-helper.d.ts} +4 -2
- package/dist/testing/project-definition-container.test-helper.d.ts.map +1 -0
- package/dist/{definition/project-definition-container.test-utils.js → testing/project-definition-container.test-helper.js} +11 -5
- package/dist/testing/project-definition-container.test-helper.js.map +1 -0
- package/dist/tools/assign-entity-ids.d.ts +17 -0
- package/dist/tools/assign-entity-ids.d.ts.map +1 -0
- package/dist/tools/assign-entity-ids.js +34 -0
- package/dist/tools/assign-entity-ids.js.map +1 -0
- package/dist/tools/entity-service/entity-navigation.d.ts +13 -0
- package/dist/tools/entity-service/entity-navigation.d.ts.map +1 -0
- package/dist/tools/entity-service/entity-navigation.js +84 -0
- package/dist/tools/entity-service/entity-navigation.js.map +1 -0
- package/dist/tools/entity-service/entity-read.d.ts +38 -0
- package/dist/tools/entity-service/entity-read.d.ts.map +1 -0
- package/dist/tools/entity-service/entity-read.js +56 -0
- package/dist/tools/entity-service/entity-read.js.map +1 -0
- package/dist/tools/entity-service/entity-type-map.d.ts +18 -0
- package/dist/tools/entity-service/entity-type-map.d.ts.map +1 -0
- package/dist/tools/entity-service/entity-type-map.js +75 -0
- package/dist/tools/entity-service/entity-type-map.js.map +1 -0
- package/dist/tools/entity-service/entity-write.d.ts +39 -0
- package/dist/tools/entity-service/entity-write.d.ts.map +1 -0
- package/dist/tools/entity-service/entity-write.js +99 -0
- package/dist/tools/entity-service/entity-write.js.map +1 -0
- package/dist/tools/entity-service/index.d.ts +5 -0
- package/dist/tools/entity-service/index.d.ts.map +1 -0
- package/dist/tools/entity-service/index.js +4 -0
- package/dist/tools/entity-service/index.js.map +1 -0
- package/dist/tools/entity-service/types.d.ts +41 -0
- package/dist/tools/entity-service/types.d.ts.map +1 -0
- package/dist/tools/entity-service/types.js +2 -0
- package/dist/tools/entity-service/types.js.map +1 -0
- package/dist/tools/index.d.ts +2 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +2 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/merge-schema/diff-definition.d.ts +74 -0
- package/dist/tools/merge-schema/diff-definition.d.ts.map +1 -0
- package/dist/tools/merge-schema/diff-definition.js +163 -0
- package/dist/tools/merge-schema/diff-definition.js.map +1 -0
- package/dist/tools/merge-schema/entity-utils.d.ts +18 -0
- package/dist/tools/merge-schema/entity-utils.d.ts.map +1 -0
- package/dist/tools/merge-schema/entity-utils.js +42 -0
- package/dist/tools/merge-schema/entity-utils.js.map +1 -0
- package/dist/tools/merge-schema/index.d.ts +10 -0
- package/dist/tools/merge-schema/index.d.ts.map +1 -0
- package/dist/tools/merge-schema/index.js +7 -0
- package/dist/tools/merge-schema/index.js.map +1 -0
- package/dist/tools/merge-schema/merge-data-with-schema.d.ts +21 -0
- package/dist/tools/merge-schema/merge-data-with-schema.d.ts.map +1 -0
- package/dist/tools/merge-schema/merge-data-with-schema.js +168 -0
- package/dist/tools/merge-schema/merge-data-with-schema.js.map +1 -0
- package/dist/tools/merge-schema/merge-definition.d.ts +42 -0
- package/dist/tools/merge-schema/merge-definition.d.ts.map +1 -0
- package/dist/tools/merge-schema/merge-definition.js +53 -0
- package/dist/tools/merge-schema/merge-definition.js.map +1 -0
- package/dist/tools/merge-schema/merge-rule-registry.d.ts +47 -0
- package/dist/tools/merge-schema/merge-rule-registry.d.ts.map +1 -0
- package/dist/tools/merge-schema/merge-rule-registry.js +53 -0
- package/dist/tools/merge-schema/merge-rule-registry.js.map +1 -0
- package/dist/tools/merge-schema/walk-schema.d.ts +26 -0
- package/dist/tools/merge-schema/walk-schema.d.ts.map +1 -0
- package/dist/tools/merge-schema/walk-schema.js +94 -0
- package/dist/tools/merge-schema/walk-schema.js.map +1 -0
- package/dist/utils/definition-diff/definition-diff.js.map +1 -1
- package/dist/web/components/definition-diff-alert.d.ts +9 -0
- package/dist/web/components/definition-diff-alert.d.ts.map +1 -0
- package/dist/web/components/definition-diff-alert.js +17 -0
- package/dist/web/components/definition-diff-alert.js.map +1 -0
- package/dist/web/components/index.d.ts +1 -1
- package/dist/web/components/index.d.ts.map +1 -1
- package/dist/web/components/index.js +1 -1
- package/dist/web/components/index.js.map +1 -1
- package/dist/web/hooks/use-project-definition.d.ts +10 -2
- package/dist/web/hooks/use-project-definition.d.ts.map +1 -1
- package/dist/web/hooks/use-project-definition.js.map +1 -1
- package/dist/web/specs/entity-type-url-web-spec.d.ts +68 -0
- package/dist/web/specs/entity-type-url-web-spec.d.ts.map +1 -0
- package/dist/web/specs/entity-type-url-web-spec.js +27 -0
- package/dist/web/specs/entity-type-url-web-spec.js.map +1 -0
- package/dist/web/specs/index.d.ts +1 -0
- package/dist/web/specs/index.d.ts.map +1 -1
- package/dist/web/specs/index.js +1 -0
- package/dist/web/specs/index.js.map +1 -1
- package/package.json +12 -11
- package/dist/definition/project-definition-container.test-utils.d.ts.map +0 -1
- package/dist/definition/project-definition-container.test-utils.js.map +0 -1
- package/dist/references/collect-refs.d.ts +0 -24
- package/dist/references/collect-refs.d.ts.map +0 -1
- package/dist/references/collect-refs.js +0 -86
- package/dist/references/collect-refs.js.map +0 -1
- package/dist/references/markers.d.ts +0 -59
- package/dist/references/markers.d.ts.map +0 -1
- package/dist/references/markers.js +0 -29
- package/dist/references/markers.js.map +0 -1
- package/dist/references/strip-ref-markers.d.ts +0 -7
- package/dist/references/strip-ref-markers.d.ts.map +0 -1
- package/dist/references/strip-ref-markers.js +0 -25
- package/dist/references/strip-ref-markers.js.map +0 -1
- package/dist/schema/models/mocks.d.ts +0 -6
- package/dist/schema/models/mocks.d.ts.map +0 -1
- package/dist/schema/models/mocks.js +0 -55
- package/dist/schema/models/mocks.js.map +0 -1
- package/dist/tools/model-merger/index.d.ts +0 -2
- package/dist/tools/model-merger/index.d.ts.map +0 -1
- package/dist/tools/model-merger/index.js +0 -2
- package/dist/tools/model-merger/index.js.map +0 -1
- package/dist/tools/model-merger/model-merger.d.ts +0 -569
- package/dist/tools/model-merger/model-merger.d.ts.map +0 -1
- package/dist/tools/model-merger/model-merger.js +0 -319
- package/dist/tools/model-merger/model-merger.js.map +0 -1
- package/dist/web/components/model-merger-result-alert.d.ts +0 -8
- package/dist/web/components/model-merger-result-alert.d.ts.map +0 -1
- package/dist/web/components/model-merger-result-alert.js +0 -20
- package/dist/web/components/model-merger-result-alert.js.map +0 -1
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { z } from 'zod';
|
|
2
|
+
import type { PartialProjectDefinitionInput, ProjectDefinition, ProjectDefinitionInput } from '#src/schema/index.js';
|
|
3
|
+
import { ProjectDefinitionContainer } from '#src/definition/project-definition-container.js';
|
|
4
|
+
/**
|
|
5
|
+
* Merges a partial serialized definition into a project definition,
|
|
6
|
+
* returning the merged serialized definition (input form with names, not IDs).
|
|
7
|
+
*
|
|
8
|
+
* Uses a schema-driven merge:
|
|
9
|
+
* 1. Serialize the current definition (IDs → names)
|
|
10
|
+
* 2. Merge the partial definition into the serialized definition using `mergeDataWithSchema`
|
|
11
|
+
*
|
|
12
|
+
* Entity arrays (models, fields, relations, etc.) are auto-merged by name.
|
|
13
|
+
* Non-entity arrays use `withMergeRule` annotations or default to full-replace.
|
|
14
|
+
* Undefined fields in `partialDef` are untouched (partial patch semantics).
|
|
15
|
+
*
|
|
16
|
+
* @param schema - The project definition Zod schema
|
|
17
|
+
* @param definition - The current parsed project definition (with IDs)
|
|
18
|
+
* @param partialDef - A partial serialized definition to merge in (uses entity names, not IDs)
|
|
19
|
+
* @returns The merged serialized definition (input form)
|
|
20
|
+
*/
|
|
21
|
+
export declare function mergeDefinition(schema: z.ZodType, definition: ProjectDefinition, partialDef: PartialProjectDefinitionInput): ProjectDefinitionInput;
|
|
22
|
+
/**
|
|
23
|
+
* Merges a partial serialized definition and returns a new ProjectDefinitionContainer.
|
|
24
|
+
*
|
|
25
|
+
* Convenience wrapper around `mergeDefinition` that performs the full round-trip:
|
|
26
|
+
* serialize → merge → deserialize (names → IDs).
|
|
27
|
+
*
|
|
28
|
+
* @param container - The current project definition container
|
|
29
|
+
* @param partialDef - A partial serialized definition to merge in (uses entity names, not IDs)
|
|
30
|
+
* @returns A new ProjectDefinitionContainer with the merged definition
|
|
31
|
+
*/
|
|
32
|
+
export declare function mergeDefinitionContainer(container: ProjectDefinitionContainer, partialDef: PartialProjectDefinitionInput): ProjectDefinitionContainer;
|
|
33
|
+
/**
|
|
34
|
+
* Creates a function that applies a partial definition merge to a draft config.
|
|
35
|
+
* Use with `saveDefinitionWithFeedback`.
|
|
36
|
+
*
|
|
37
|
+
* @param container - The current project definition container
|
|
38
|
+
* @param partialDef - A partial serialized definition to merge in
|
|
39
|
+
* @returns A setter function that replaces the draft config with the merged definition
|
|
40
|
+
*/
|
|
41
|
+
export declare function applyMergedDefinition(container: ProjectDefinitionContainer, partialDef: PartialProjectDefinitionInput): (draftConfig: ProjectDefinition) => void;
|
|
42
|
+
//# sourceMappingURL=merge-definition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-definition.d.ts","sourceRoot":"","sources":["../../../src/tools/merge-schema/merge-definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EACV,6BAA6B,EAC7B,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAK7F;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,CAAC,CAAC,OAAO,EACjB,UAAU,EAAE,iBAAiB,EAC7B,UAAU,EAAE,6BAA6B,GACxC,sBAAsB,CAOxB;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,0BAA0B,EACrC,UAAU,EAAE,6BAA6B,GACxC,0BAA0B,CAU5B;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,0BAA0B,EACrC,UAAU,EAAE,6BAA6B,GACxC,CAAC,WAAW,EAAE,iBAAiB,KAAK,IAAI,CAK1C"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { ProjectDefinitionContainer } from '#src/definition/project-definition-container.js';
|
|
2
|
+
import { serializeSchema } from '#src/references/serialize-schema.js';
|
|
3
|
+
import { mergeDataWithSchema } from './merge-data-with-schema.js';
|
|
4
|
+
/**
|
|
5
|
+
* Merges a partial serialized definition into a project definition,
|
|
6
|
+
* returning the merged serialized definition (input form with names, not IDs).
|
|
7
|
+
*
|
|
8
|
+
* Uses a schema-driven merge:
|
|
9
|
+
* 1. Serialize the current definition (IDs → names)
|
|
10
|
+
* 2. Merge the partial definition into the serialized definition using `mergeDataWithSchema`
|
|
11
|
+
*
|
|
12
|
+
* Entity arrays (models, fields, relations, etc.) are auto-merged by name.
|
|
13
|
+
* Non-entity arrays use `withMergeRule` annotations or default to full-replace.
|
|
14
|
+
* Undefined fields in `partialDef` are untouched (partial patch semantics).
|
|
15
|
+
*
|
|
16
|
+
* @param schema - The project definition Zod schema
|
|
17
|
+
* @param definition - The current parsed project definition (with IDs)
|
|
18
|
+
* @param partialDef - A partial serialized definition to merge in (uses entity names, not IDs)
|
|
19
|
+
* @returns The merged serialized definition (input form)
|
|
20
|
+
*/
|
|
21
|
+
export function mergeDefinition(schema, definition, partialDef) {
|
|
22
|
+
const serializedDef = serializeSchema(schema, definition);
|
|
23
|
+
return mergeDataWithSchema(schema, serializedDef, partialDef);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Merges a partial serialized definition and returns a new ProjectDefinitionContainer.
|
|
27
|
+
*
|
|
28
|
+
* Convenience wrapper around `mergeDefinition` that performs the full round-trip:
|
|
29
|
+
* serialize → merge → deserialize (names → IDs).
|
|
30
|
+
*
|
|
31
|
+
* @param container - The current project definition container
|
|
32
|
+
* @param partialDef - A partial serialized definition to merge in (uses entity names, not IDs)
|
|
33
|
+
* @returns A new ProjectDefinitionContainer with the merged definition
|
|
34
|
+
*/
|
|
35
|
+
export function mergeDefinitionContainer(container, partialDef) {
|
|
36
|
+
const merged = mergeDefinition(container.schema, container.definition, partialDef);
|
|
37
|
+
return ProjectDefinitionContainer.fromSerializedConfig(merged, container.parserContext);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Creates a function that applies a partial definition merge to a draft config.
|
|
41
|
+
* Use with `saveDefinitionWithFeedback`.
|
|
42
|
+
*
|
|
43
|
+
* @param container - The current project definition container
|
|
44
|
+
* @param partialDef - A partial serialized definition to merge in
|
|
45
|
+
* @returns A setter function that replaces the draft config with the merged definition
|
|
46
|
+
*/
|
|
47
|
+
export function applyMergedDefinition(container, partialDef) {
|
|
48
|
+
const mergedContainer = mergeDefinitionContainer(container, partialDef);
|
|
49
|
+
return (draftConfig) => {
|
|
50
|
+
Object.assign(draftConfig, mergedContainer.definition);
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=merge-definition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-definition.js","sourceRoot":"","sources":["../../../src/tools/merge-schema/merge-definition.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAEtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAiB,EACjB,UAA6B,EAC7B,UAAyC;IAEzC,MAAM,aAAa,GAAG,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC1D,OAAO,mBAAmB,CACxB,MAAM,EACN,aAAa,EACb,UAAmB,CACM,CAAC;AAC9B,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,wBAAwB,CACtC,SAAqC,EACrC,UAAyC;IAEzC,MAAM,MAAM,GAAG,eAAe,CAC5B,SAAS,CAAC,MAAM,EAChB,SAAS,CAAC,UAAU,EACpB,UAAU,CACX,CAAC;IACF,OAAO,0BAA0B,CAAC,oBAAoB,CACpD,MAAM,EACN,SAAS,CAAC,aAAa,CACxB,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACnC,SAAqC,EACrC,UAAyC;IAEzC,MAAM,eAAe,GAAG,wBAAwB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACxE,OAAO,CAAC,WAAW,EAAE,EAAE;QACrB,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC;IACzD,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { z, ZodArray } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* A merge rule attached to a Zod schema node via `withMergeRule`.
|
|
4
|
+
* Controls how `mergeDataWithSchema` combines current and desired values at that node.
|
|
5
|
+
*
|
|
6
|
+
* - `replace`: Always replace current with desired (same as default leaf behavior)
|
|
7
|
+
* - `by-key`: Merge array items by key — items in current not present in desired are kept
|
|
8
|
+
*/
|
|
9
|
+
export type MergeRule = {
|
|
10
|
+
readonly kind: 'replace';
|
|
11
|
+
} | {
|
|
12
|
+
readonly kind: 'by-key';
|
|
13
|
+
readonly getKey: (item: unknown) => string;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Retrieves the merge rule attached to a schema node, if any.
|
|
17
|
+
*/
|
|
18
|
+
export declare function getMergeRule(schema: z.ZodType): MergeRule | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* Creates a schema decorator that registers a merge rule on the schema node.
|
|
21
|
+
*
|
|
22
|
+
* ```typescript
|
|
23
|
+
* z.object({ ... }).apply(withMergeRule({ kind: 'replace' }))
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* @param rule - The merge rule to attach
|
|
27
|
+
* @returns A function that decorates a schema with the rule
|
|
28
|
+
*/
|
|
29
|
+
export declare function withMergeRule(rule: MergeRule): <T extends z.ZodType>(schema: T) => T;
|
|
30
|
+
/**
|
|
31
|
+
* Creates a schema decorator that registers a `by-key` merge rule on an array schema.
|
|
32
|
+
*
|
|
33
|
+
* Infers the element type from the array schema so `getKey` is strongly typed.
|
|
34
|
+
*
|
|
35
|
+
* ```typescript
|
|
36
|
+
* z
|
|
37
|
+
* .array(z.object({ ref: z.string(), value: z.number() }))
|
|
38
|
+
* .apply(withByKeyMergeRule({ getKey: (item) => item.ref }))
|
|
39
|
+
* ```
|
|
40
|
+
*
|
|
41
|
+
* @param options - Options with a typed `getKey` function
|
|
42
|
+
* @returns A schema decorator that annotates the array node with a by-key merge rule
|
|
43
|
+
*/
|
|
44
|
+
export declare function withByKeyMergeRule<T extends ZodArray>(options: {
|
|
45
|
+
getKey: (item: z.output<T>[number]) => string;
|
|
46
|
+
}): (schema: T) => T;
|
|
47
|
+
//# sourceMappingURL=merge-rule-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-rule-registry.d.ts","sourceRoot":"","sources":["../../../src/tools/merge-schema/merge-rule-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAEvC;;;;;;GAMG;AACH,MAAM,MAAM,SAAS,GACjB;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC5B;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,MAAM,CAAC;CAC5C,CAAC;AAUN;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,GAAG,SAAS,GAAG,SAAS,CAErE;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,SAAS,GACd,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,CAKvC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,QAAQ,EAAE,OAAO,EAAE;IAC9D,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC;CAC/C,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAQnB"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Registry that stores merge rule metadata on Zod schema instances.
|
|
3
|
+
*
|
|
4
|
+
* Uses a WeakMap to avoid interfering with Zod's type system.
|
|
5
|
+
* Annotated by `withMergeRule()`; read by `mergeDataWithSchema()`.
|
|
6
|
+
*/
|
|
7
|
+
const mergeRuleRegistry = new WeakMap();
|
|
8
|
+
/**
|
|
9
|
+
* Retrieves the merge rule attached to a schema node, if any.
|
|
10
|
+
*/
|
|
11
|
+
export function getMergeRule(schema) {
|
|
12
|
+
return mergeRuleRegistry.get(schema);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Creates a schema decorator that registers a merge rule on the schema node.
|
|
16
|
+
*
|
|
17
|
+
* ```typescript
|
|
18
|
+
* z.object({ ... }).apply(withMergeRule({ kind: 'replace' }))
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* @param rule - The merge rule to attach
|
|
22
|
+
* @returns A function that decorates a schema with the rule
|
|
23
|
+
*/
|
|
24
|
+
export function withMergeRule(rule) {
|
|
25
|
+
return (schema) => {
|
|
26
|
+
mergeRuleRegistry.set(schema, rule);
|
|
27
|
+
return schema;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Creates a schema decorator that registers a `by-key` merge rule on an array schema.
|
|
32
|
+
*
|
|
33
|
+
* Infers the element type from the array schema so `getKey` is strongly typed.
|
|
34
|
+
*
|
|
35
|
+
* ```typescript
|
|
36
|
+
* z
|
|
37
|
+
* .array(z.object({ ref: z.string(), value: z.number() }))
|
|
38
|
+
* .apply(withByKeyMergeRule({ getKey: (item) => item.ref }))
|
|
39
|
+
* ```
|
|
40
|
+
*
|
|
41
|
+
* @param options - Options with a typed `getKey` function
|
|
42
|
+
* @returns A schema decorator that annotates the array node with a by-key merge rule
|
|
43
|
+
*/
|
|
44
|
+
export function withByKeyMergeRule(options) {
|
|
45
|
+
return (schema) => {
|
|
46
|
+
mergeRuleRegistry.set(schema, {
|
|
47
|
+
kind: 'by-key',
|
|
48
|
+
getKey: options.getKey,
|
|
49
|
+
});
|
|
50
|
+
return schema;
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=merge-rule-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-rule-registry.js","sourceRoot":"","sources":["../../../src/tools/merge-schema/merge-rule-registry.ts"],"names":[],"mappings":"AAgBA;;;;;GAKG;AACH,MAAM,iBAAiB,GAAG,IAAI,OAAO,EAAwB,CAAC;AAE9D;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,MAAiB;IAC5C,OAAO,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACvC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAe;IAEf,OAAO,CAAsB,MAAS,EAAK,EAAE;QAC3C,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACpC,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,kBAAkB,CAAqB,OAEtD;IACC,OAAO,CAAC,MAAS,EAAE,EAAE;QACnB,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE;YAC5B,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,OAAO,CAAC,MAAmC;SACpD,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { z } from 'zod';
|
|
2
|
+
import type { EntitySchemaMeta } from '#src/references/definition-ref-registry.js';
|
|
3
|
+
/**
|
|
4
|
+
* Information about an entity array found during schema walking.
|
|
5
|
+
*/
|
|
6
|
+
export interface EntityArrayInfo {
|
|
7
|
+
/** Dot-separated path to the array in the definition (e.g., "models", "models.*.model.fields") */
|
|
8
|
+
path: string;
|
|
9
|
+
/** The entity metadata registered on the array element schema */
|
|
10
|
+
entityMeta: EntitySchemaMeta;
|
|
11
|
+
/** The Zod schema for the array element */
|
|
12
|
+
elementSchema: z.ZodType;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Recursively walks a Zod schema (without data) and collects all entity arrays.
|
|
16
|
+
*
|
|
17
|
+
* Unlike `walkDataWithSchema`, this operates on the schema structure alone.
|
|
18
|
+
* For discriminated unions, it walks all branches (since there's no data to
|
|
19
|
+
* pick a specific branch). Entity arrays are detected via `definitionRefRegistry`
|
|
20
|
+
* entity metadata on array element schemas.
|
|
21
|
+
*
|
|
22
|
+
* @param schema - The root Zod schema to walk
|
|
23
|
+
* @returns All entity arrays found, with their paths and metadata
|
|
24
|
+
*/
|
|
25
|
+
export declare function collectEntityArrays(schema: z.ZodType): EntityArrayInfo[];
|
|
26
|
+
//# sourceMappingURL=walk-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"walk-schema.d.ts","sourceRoot":"","sources":["../../../src/tools/merge-schema/walk-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAyB,MAAM,KAAK,CAAC;AAEpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAMnF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,kGAAkG;IAClG,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,UAAU,EAAE,gBAAgB,CAAC;IAC7B,2CAA2C;IAC3C,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC;CAC1B;AAcD;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,GAAG,eAAe,EAAE,CAIxE"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { getSchemaChildren } from '#src/parser/schema-structure.js';
|
|
2
|
+
import { getEntityMeta } from './entity-utils.js';
|
|
3
|
+
/**
|
|
4
|
+
* Unwraps wrapper schemas (optional, nullable, default, prefault, readonly)
|
|
5
|
+
* to reach the underlying structural schema.
|
|
6
|
+
*/
|
|
7
|
+
function unwrapSchema(schema) {
|
|
8
|
+
const children = getSchemaChildren(schema, undefined, []);
|
|
9
|
+
if (children.kind === 'wrapper') {
|
|
10
|
+
return unwrapSchema(children.innerSchema);
|
|
11
|
+
}
|
|
12
|
+
return schema;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Recursively walks a Zod schema (without data) and collects all entity arrays.
|
|
16
|
+
*
|
|
17
|
+
* Unlike `walkDataWithSchema`, this operates on the schema structure alone.
|
|
18
|
+
* For discriminated unions, it walks all branches (since there's no data to
|
|
19
|
+
* pick a specific branch). Entity arrays are detected via `definitionRefRegistry`
|
|
20
|
+
* entity metadata on array element schemas.
|
|
21
|
+
*
|
|
22
|
+
* @param schema - The root Zod schema to walk
|
|
23
|
+
* @returns All entity arrays found, with their paths and metadata
|
|
24
|
+
*/
|
|
25
|
+
export function collectEntityArrays(schema) {
|
|
26
|
+
const result = [];
|
|
27
|
+
walkSchemaNode(schema, [], result, new Set());
|
|
28
|
+
return result;
|
|
29
|
+
}
|
|
30
|
+
function walkSchemaNode(schema, pathParts, result, visited) {
|
|
31
|
+
// Guard against circular references
|
|
32
|
+
if (visited.has(schema)) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
visited.add(schema);
|
|
36
|
+
const children = getSchemaChildren(schema, undefined, []);
|
|
37
|
+
switch (children.kind) {
|
|
38
|
+
case 'leaf':
|
|
39
|
+
case 'leaf-union': {
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
case 'wrapper': {
|
|
43
|
+
walkSchemaNode(children.innerSchema, pathParts, result, visited);
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
case 'object': {
|
|
47
|
+
for (const [key, fieldSchema] of children.entries) {
|
|
48
|
+
walkSchemaNode(fieldSchema, [...pathParts, key], result, visited);
|
|
49
|
+
}
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
case 'array': {
|
|
53
|
+
const entityMeta = getEntityMeta(children.elementSchema);
|
|
54
|
+
if (entityMeta) {
|
|
55
|
+
result.push({
|
|
56
|
+
path: pathParts.join('.'),
|
|
57
|
+
entityMeta,
|
|
58
|
+
elementSchema: children.elementSchema,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
// Continue walking inside array elements using `*` as path segment
|
|
62
|
+
walkSchemaNode(children.elementSchema, [...pathParts, '*'], result, visited);
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
case 'discriminated-union': {
|
|
66
|
+
// Walk all branches since we don't have data to pick one
|
|
67
|
+
const unwrapped = unwrapSchema(schema);
|
|
68
|
+
for (const option of unwrapped.options) {
|
|
69
|
+
walkSchemaNode(option, pathParts, result, visited);
|
|
70
|
+
}
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
case 'tuple': {
|
|
74
|
+
for (const [i, itemSchema] of children.items.entries()) {
|
|
75
|
+
walkSchemaNode(itemSchema, [...pathParts, String(i)], result, visited);
|
|
76
|
+
}
|
|
77
|
+
if (children.rest) {
|
|
78
|
+
walkSchemaNode(children.rest, [...pathParts, '*'], result, visited);
|
|
79
|
+
}
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
case 'record': {
|
|
83
|
+
walkSchemaNode(children.valueSchema, [...pathParts, '*'], result, visited);
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
case 'intersection': {
|
|
87
|
+
walkSchemaNode(children.left, pathParts, result, visited);
|
|
88
|
+
walkSchemaNode(children.right, pathParts, result, visited);
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
visited.delete(schema);
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=walk-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"walk-schema.js","sourceRoot":"","sources":["../../../src/tools/merge-schema/walk-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition-diff.js","sourceRoot":"","sources":["../../../src/utils/definition-diff/definition-diff.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"definition-diff.js","sourceRoot":"","sources":["../../../src/utils/definition-diff/definition-diff.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ReactElement } from 'react';
|
|
2
|
+
import type { DefinitionDiff } from '#src/tools/index.js';
|
|
3
|
+
interface DefinitionDiffAlertProps {
|
|
4
|
+
diff: DefinitionDiff;
|
|
5
|
+
upToDateMessage?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function DefinitionDiffAlert({ diff, upToDateMessage, }: DefinitionDiffAlertProps): ReactElement;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=definition-diff-alert.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition-diff-alert.d.ts","sourceRoot":"","sources":["../../../src/web/components/definition-diff-alert.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAgB1C,OAAO,KAAK,EAAE,cAAc,EAAuB,MAAM,qBAAqB,CAAC;AAyD/E,UAAU,wBAAwB;IAChC,IAAI,EAAE,cAAc,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,mBAAmB,CAAC,EAClC,IAAI,EACJ,eAAkE,GACnE,EAAE,wBAAwB,GAAG,YAAY,CA4BzC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Alert, AlertDescription, AlertTitle, Badge, Button, Dialog, DialogContent, DialogHeader, DialogTitle, DialogTrigger, JsonDiffViewer, } from '@baseplate-dev/ui-components';
|
|
3
|
+
const CHANGE_TYPE_BADGE_VARIANT = {
|
|
4
|
+
added: 'default',
|
|
5
|
+
updated: 'secondary',
|
|
6
|
+
removed: 'destructive',
|
|
7
|
+
};
|
|
8
|
+
function DefinitionDiffEntryRow({ entry, }) {
|
|
9
|
+
return (_jsxs("div", { className: "flex w-full items-center justify-between rounded-md px-3 py-2 text-sm", children: [_jsx("span", { className: "font-medium", children: entry.label }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Badge, { variant: CHANGE_TYPE_BADGE_VARIANT[entry.type], children: entry.type }), _jsxs(Dialog, { children: [_jsx(DialogTrigger, { asChild: true, children: _jsx(Button, { variant: "ghost", size: "sm", children: "Details" }) }), _jsxs(DialogContent, { width: "xl", children: [_jsx(DialogHeader, { children: _jsxs(DialogTitle, { children: [entry.label, " \u2014 ", entry.type] }) }), _jsx("div", { className: "max-h-[60vh] overflow-auto", children: entry.type === 'added' ? (_jsx("pre", { className: "whitespace-pre-wrap text-xs", children: JSON.stringify(entry.merged, null, 2) })) : entry.type === 'removed' ? (_jsx("pre", { className: "whitespace-pre-wrap text-xs", children: JSON.stringify(entry.current, null, 2) })) : (_jsx(JsonDiffViewer, { oldValue: entry.current, newValue: entry.merged })) })] })] })] })] }));
|
|
10
|
+
}
|
|
11
|
+
export function DefinitionDiffAlert({ diff, upToDateMessage = 'All changes are up to date. No changes needed.', }) {
|
|
12
|
+
if (!diff.hasChanges) {
|
|
13
|
+
return (_jsxs(Alert, { variant: "default", children: [_jsx(AlertTitle, { children: "Up to Date" }), _jsx(AlertDescription, { children: upToDateMessage })] }));
|
|
14
|
+
}
|
|
15
|
+
return (_jsxs("div", { className: "space-y-4", children: [_jsxs(Alert, { variant: "warning", children: [_jsx(AlertTitle, { children: "Pending Changes" }), _jsx(AlertDescription, { children: "The following changes will be applied when you save:" })] }), _jsx("div", { className: "space-y-1", children: diff.entries.map((entry) => (_jsx(DefinitionDiffEntryRow, { entry: entry }, `${entry.path}-${entry.label}`))) })] }));
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=definition-diff-alert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition-diff-alert.js","sourceRoot":"","sources":["../../../src/web/components/definition-diff-alert.tsx"],"names":[],"mappings":";AAEA,OAAO,EACL,KAAK,EACL,gBAAgB,EAChB,UAAU,EACV,KAAK,EACL,MAAM,EACN,MAAM,EACN,aAAa,EACb,YAAY,EACZ,WAAW,EACX,aAAa,EACb,cAAc,GACf,MAAM,8BAA8B,CAAC;AAItC,MAAM,yBAAyB,GAAG;IAChC,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE,WAAW;IACpB,OAAO,EAAE,aAAa;CACd,CAAC;AAMX,SAAS,sBAAsB,CAAC,EAC9B,KAAK,GACuB;IAC5B,OAAO,CACL,eAAK,SAAS,EAAC,uEAAuE,aACpF,eAAM,SAAS,EAAC,aAAa,YAAE,KAAK,CAAC,KAAK,GAAQ,EAClD,eAAK,SAAS,EAAC,yBAAyB,aACtC,KAAC,KAAK,IAAC,OAAO,EAAE,yBAAyB,CAAC,KAAK,CAAC,IAAI,CAAC,YAClD,KAAK,CAAC,IAAI,GACL,EACR,MAAC,MAAM,eACL,KAAC,aAAa,IAAC,OAAO,kBACpB,KAAC,MAAM,IAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,wBAExB,GACK,EAChB,MAAC,aAAa,IAAC,KAAK,EAAC,IAAI,aACvB,KAAC,YAAY,cACX,MAAC,WAAW,eACT,KAAK,CAAC,KAAK,cAAK,KAAK,CAAC,IAAI,IACf,GACD,EACf,cAAK,SAAS,EAAC,4BAA4B,YACxC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CACxB,cAAK,SAAS,EAAC,6BAA6B,YACzC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAClC,CACP,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAC7B,cAAK,SAAS,EAAC,6BAA6B,YACzC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,GACnC,CACP,CAAC,CAAC,CAAC,CACF,KAAC,cAAc,IACb,QAAQ,EAAE,KAAK,CAAC,OAAO,EACvB,QAAQ,EAAE,KAAK,CAAC,MAAM,GACtB,CACH,GACG,IACQ,IACT,IACL,IACF,CACP,CAAC;AACJ,CAAC;AAOD,MAAM,UAAU,mBAAmB,CAAC,EAClC,IAAI,EACJ,eAAe,GAAG,gDAAgD,GACzC;IACzB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACrB,OAAO,CACL,MAAC,KAAK,IAAC,OAAO,EAAC,SAAS,aACtB,KAAC,UAAU,6BAAwB,EACnC,KAAC,gBAAgB,cAAE,eAAe,GAAoB,IAChD,CACT,CAAC;IACJ,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAC,WAAW,aACxB,MAAC,KAAK,IAAC,OAAO,EAAC,SAAS,aACtB,KAAC,UAAU,kCAA6B,EACxC,KAAC,gBAAgB,uEAEE,IACb,EACR,cAAK,SAAS,EAAC,WAAW,YACvB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC3B,KAAC,sBAAsB,IAErB,KAAK,EAAE,KAAK,IADP,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAEnC,CACH,CAAC,GACE,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/web/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/web/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/web/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/web/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC"}
|
|
@@ -2,6 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import type { ProjectDefinitionContainer } from '#src/definition/project-definition-container.js';
|
|
3
3
|
import type { SchemaParserContext } from '#src/parser/types.js';
|
|
4
4
|
import type { PluginSpecStore } from '#src/plugins/index.js';
|
|
5
|
+
import type { DefinitionIssue } from '#src/schema/creator/definition-issue-types.js';
|
|
5
6
|
import type { DefinitionSchemaParserContext } from '#src/schema/index.js';
|
|
6
7
|
import type { ProjectDefinition } from '#src/schema/project-definition.js';
|
|
7
8
|
/**
|
|
@@ -16,6 +17,9 @@ export interface SaveDefinitionWithFeedbackOptions {
|
|
|
16
17
|
successMessage?: string;
|
|
17
18
|
onSuccess?: () => void;
|
|
18
19
|
}
|
|
20
|
+
export interface SaveDefinitionResult {
|
|
21
|
+
warnings: DefinitionIssue[];
|
|
22
|
+
}
|
|
19
23
|
/**
|
|
20
24
|
* The result of the `useProjectDefinition` hook.
|
|
21
25
|
*/
|
|
@@ -33,9 +37,9 @@ export interface UseProjectDefinitionResult {
|
|
|
33
37
|
*/
|
|
34
38
|
updatedExternally: boolean;
|
|
35
39
|
/**
|
|
36
|
-
* Save the project definition.
|
|
40
|
+
* Save the project definition. Returns the number of warnings encountered.
|
|
37
41
|
*/
|
|
38
|
-
saveDefinition: (definition: ProjectDefinitionSetter) => Promise<
|
|
42
|
+
saveDefinition: (definition: ProjectDefinitionSetter) => Promise<SaveDefinitionResult>;
|
|
39
43
|
/**
|
|
40
44
|
* Save the project definition with feedback showing a toast
|
|
41
45
|
* when there are errors or a success message when the definition is saved.
|
|
@@ -64,6 +68,10 @@ export interface UseProjectDefinitionResult {
|
|
|
64
68
|
* The definition schema parser context.
|
|
65
69
|
*/
|
|
66
70
|
definitionSchemaParserContext: DefinitionSchemaParserContext;
|
|
71
|
+
/**
|
|
72
|
+
* Warning-severity definition issues that allow saving but should be shown before syncing.
|
|
73
|
+
*/
|
|
74
|
+
definitionWarnings: DefinitionIssue[];
|
|
67
75
|
}
|
|
68
76
|
export declare const ProjectDefinitionContext: React.Context<UseProjectDefinitionResult | null>;
|
|
69
77
|
export declare function useProjectDefinition(): UseProjectDefinitionResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-project-definition.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/use-project-definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAClG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAE3E;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,WAAW,EAAE,iBAAiB,KAAK,IAAI,CAAC;AAE/E,MAAM,WAAW,iCAAiC;IAChD,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,UAAU,EAAE,iBAAiB,CAAC;IAC9B;;OAEG;IACH,mBAAmB,EAAE,0BAA0B,CAAC;IAChD;;OAEG;IACH,iBAAiB,EAAE,OAAO,CAAC;IAC3B;;OAEG;IACH,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"use-project-definition.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/use-project-definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAClG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAC;AACrF,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAE3E;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,WAAW,EAAE,iBAAiB,KAAK,IAAI,CAAC;AAE/E,MAAM,WAAW,iCAAiC;IAChD,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,UAAU,EAAE,iBAAiB,CAAC;IAC9B;;OAEG;IACH,mBAAmB,EAAE,0BAA0B,CAAC;IAChD;;OAEG;IACH,iBAAiB,EAAE,OAAO,CAAC;IAC3B;;OAEG;IACH,cAAc,EAAE,CACd,UAAU,EAAE,uBAAuB,KAChC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACnC;;;OAGG;IACH,0BAA0B,EAAE,CAC1B,UAAU,EAAE,uBAAuB,EACnC,OAAO,CAAC,EAAE,iCAAiC,KACxC,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACnC;;;OAGG;IACH,8BAA8B,EAAE,CAC9B,UAAU,EAAE,uBAAuB,EACnC,OAAO,CAAC,EAAE,iCAAiC,KACxC,IAAI,CAAC;IACV;;OAEG;IACH,kBAAkB,EAAE,OAAO,CAAC;IAC5B;;OAEG;IACH,eAAe,EAAE,eAAe,CAAC;IACjC;;OAEG;IACH,mBAAmB,EAAE,mBAAmB,CAAC;IACzC;;OAEG;IACH,6BAA6B,EAAE,6BAA6B,CAAC;IAC7D;;OAEG;IACH,kBAAkB,EAAE,eAAe,EAAE,CAAC;CACvC;AAED,eAAO,MAAM,wBAAwB,kDACyB,CAAC;AAE/D,wBAAgB,oBAAoB,IAAI,0BAA0B,CAQjE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-project-definition.js","sourceRoot":"","sources":["../../../src/web/hooks/use-project-definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"use-project-definition.js","sourceRoot":"","sources":["../../../src/web/hooks/use-project-definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAuF1B,MAAM,CAAC,MAAM,wBAAwB,GACnC,KAAK,CAAC,aAAa,CAAoC,IAAI,CAAC,CAAC;AAE/D,MAAM,UAAU,oBAAoB;IAClC,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC;IAC1D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,wEAAwE,CACzE,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { DefinitionEntityType } from '#src/references/types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Parameters passed to an entity type nav builder, conditioned on whether the
|
|
4
|
+
* entity type has a parent. If THasParent is true, parentId/parentKey are required
|
|
5
|
+
* strings. If false, they are undefined. grandparentId/grandparentKey follow the
|
|
6
|
+
* same pattern based on whether the parent type itself has a parent.
|
|
7
|
+
*/
|
|
8
|
+
export interface EntityTypeUrlParams<THasParent extends boolean = boolean> {
|
|
9
|
+
entityId: string;
|
|
10
|
+
entityKey: string;
|
|
11
|
+
parentId: THasParent extends true ? string : undefined;
|
|
12
|
+
parentKey: THasParent extends true ? string : undefined;
|
|
13
|
+
grandparentId: string | undefined;
|
|
14
|
+
grandparentKey: string | undefined;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Discriminated union of all navigable entity pages.
|
|
18
|
+
* This is router-agnostic — the web layer maps these to concrete navigate options.
|
|
19
|
+
*
|
|
20
|
+
* Plugins returning an EntityNavTarget do not need to know about TanStack routes.
|
|
21
|
+
*/
|
|
22
|
+
export type EntityNavTarget = {
|
|
23
|
+
page: 'model';
|
|
24
|
+
key: string;
|
|
25
|
+
} | {
|
|
26
|
+
page: 'model';
|
|
27
|
+
key: string;
|
|
28
|
+
subpath: 'service' | 'authorization' | 'graphql';
|
|
29
|
+
} | {
|
|
30
|
+
page: 'enum';
|
|
31
|
+
key: string;
|
|
32
|
+
} | {
|
|
33
|
+
page: 'plugin';
|
|
34
|
+
key: string;
|
|
35
|
+
} | {
|
|
36
|
+
page: 'app';
|
|
37
|
+
key: string;
|
|
38
|
+
} | {
|
|
39
|
+
page: 'lib';
|
|
40
|
+
key: string;
|
|
41
|
+
} | {
|
|
42
|
+
page: 'admin-section';
|
|
43
|
+
appKey: string;
|
|
44
|
+
sectionKey: string;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Builder function type conditioned on whether the entity has a parent.
|
|
48
|
+
* If THasParent is true, parentId and parentKey are required strings.
|
|
49
|
+
* If false, they are undefined. grandparentId/grandparentKey are always
|
|
50
|
+
* string | undefined since the parent's parent may or may not exist.
|
|
51
|
+
*/
|
|
52
|
+
export type EntityTypeNavBuilder<THasParent extends boolean = boolean> = (params: EntityTypeUrlParams<THasParent>) => EntityNavTarget | undefined;
|
|
53
|
+
/**
|
|
54
|
+
* Spec for registering navigation builder functions for definition entity types.
|
|
55
|
+
*
|
|
56
|
+
* Use `register(entityType, builder)` during initialization. If the entity type
|
|
57
|
+
* has a parent (THasParent = true), parentId and parentKey are required strings
|
|
58
|
+
* in the builder's params. grandparentId/grandparentKey are always optional and
|
|
59
|
+
* available for grandchild entity types.
|
|
60
|
+
*
|
|
61
|
+
* After initialization, use `getNavBuilder(entityType)` to retrieve the builder.
|
|
62
|
+
*/
|
|
63
|
+
export declare const entityTypeUrlWebSpec: import("#src/plugins/spec/types.js").PluginSpec<{
|
|
64
|
+
register: <THasParent extends boolean>(entityType: DefinitionEntityType<THasParent>, builder: EntityTypeNavBuilder<THasParent>) => void;
|
|
65
|
+
}, {
|
|
66
|
+
getNavBuilder: (entityType: DefinitionEntityType) => EntityTypeNavBuilder | undefined;
|
|
67
|
+
}>;
|
|
68
|
+
//# sourceMappingURL=entity-type-url-web-spec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-type-url-web-spec.d.ts","sourceRoot":"","sources":["../../../src/web/specs/entity-type-url-web-spec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAIrE;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB,CAAC,UAAU,SAAS,OAAO,GAAG,OAAO;IACvE,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,UAAU,SAAS,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;IACvD,SAAS,EAAE,UAAU,SAAS,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;IACxD,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAED;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC9B;IACE,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,SAAS,GAAG,eAAe,GAAG,SAAS,CAAC;CAClD,GACD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC5B;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC5B;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAElE;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,CAAC,UAAU,SAAS,OAAO,GAAG,OAAO,IAAI,CACvE,MAAM,EAAE,mBAAmB,CAAC,UAAU,CAAC,KACpC,eAAe,GAAG,SAAS,CAAC;AAEjC;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB;eAOZ,UAAU,SAAS,OAAO,cACvB,oBAAoB,CAAC,UAAU,CAAC,WACnC,oBAAoB,CAAC,UAAU,CAAC,KACxC,IAAI;;gCAMO,oBAAoB,KAC/B,oBAAoB,GAAG,SAAS;EAK5C,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { createPluginSpec } from '#src/plugins/spec/types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Spec for registering navigation builder functions for definition entity types.
|
|
4
|
+
*
|
|
5
|
+
* Use `register(entityType, builder)` during initialization. If the entity type
|
|
6
|
+
* has a parent (THasParent = true), parentId and parentKey are required strings
|
|
7
|
+
* in the builder's params. grandparentId/grandparentKey are always optional and
|
|
8
|
+
* available for grandchild entity types.
|
|
9
|
+
*
|
|
10
|
+
* After initialization, use `getNavBuilder(entityType)` to retrieve the builder.
|
|
11
|
+
*/
|
|
12
|
+
export const entityTypeUrlWebSpec = createPluginSpec('core/entity-type-url-web', {
|
|
13
|
+
initializer: () => {
|
|
14
|
+
const builders = new Map();
|
|
15
|
+
return {
|
|
16
|
+
init: {
|
|
17
|
+
register: (entityType, builder) => {
|
|
18
|
+
builders.set(entityType.name, builder);
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
use: () => ({
|
|
22
|
+
getNavBuilder: (entityType) => builders.get(entityType.name),
|
|
23
|
+
}),
|
|
24
|
+
};
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
//# sourceMappingURL=entity-type-url-web-spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-type-url-web-spec.js","sourceRoot":"","sources":["../../../src/web/specs/entity-type-url-web-spec.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AA8C9D;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,gBAAgB,CAClD,0BAA0B,EAC1B;IACE,WAAW,EAAE,GAAG,EAAE;QAChB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAgC,CAAC;QACzD,OAAO;YACL,IAAI,EAAE;gBACJ,QAAQ,EAAE,CACR,UAA4C,EAC5C,OAAyC,EACnC,EAAE;oBACR,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,OAA+B,CAAC,CAAC;gBACjE,CAAC;aACF;YACD,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;gBACV,aAAa,EAAE,CACb,UAAgC,EACE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;aACrE,CAAC;SACH,CAAC;IACJ,CAAC;CACF,CACF,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from './admin-crud-action-web-spec.js';
|
|
2
2
|
export * from './admin-crud-column-web-spec.js';
|
|
3
3
|
export * from './admin-crud-input-web-spec.js';
|
|
4
|
+
export * from './entity-type-url-web-spec.js';
|
|
4
5
|
export * from './model-transformer-web-spec.js';
|
|
5
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/web/specs/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/web/specs/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC"}
|
package/dist/web/specs/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from './admin-crud-action-web-spec.js';
|
|
2
2
|
export * from './admin-crud-column-web-spec.js';
|
|
3
3
|
export * from './admin-crud-input-web-spec.js';
|
|
4
|
+
export * from './entity-type-url-web-spec.js';
|
|
4
5
|
export * from './model-transformer-web-spec.js';
|
|
5
6
|
//# sourceMappingURL=index.js.map
|