@baseplate-dev/project-builder-lib 0.1.1
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/LICENSE +390 -0
- package/dist/compiler/admin-crud-input-spec.d.ts +26 -0
- package/dist/compiler/admin-crud-input-spec.d.ts.map +1 -0
- package/dist/compiler/admin-crud-input-spec.js +29 -0
- package/dist/compiler/admin-crud-input-spec.js.map +1 -0
- package/dist/compiler/app-compiler-spec.d.ts +36 -0
- package/dist/compiler/app-compiler-spec.d.ts.map +1 -0
- package/dist/compiler/app-compiler-spec.js +42 -0
- package/dist/compiler/app-compiler-spec.js.map +1 -0
- package/dist/compiler/index.d.ts +5 -0
- package/dist/compiler/index.d.ts.map +1 -0
- package/dist/compiler/index.js +4 -0
- package/dist/compiler/index.js.map +1 -0
- package/dist/compiler/model-transformer-compiler-spec.d.ts +25 -0
- package/dist/compiler/model-transformer-compiler-spec.d.ts.map +1 -0
- package/dist/compiler/model-transformer-compiler-spec.js +29 -0
- package/dist/compiler/model-transformer-compiler-spec.js.map +1 -0
- package/dist/compiler/types.d.ts +2 -0
- package/dist/compiler/types.d.ts.map +1 -0
- package/dist/compiler/types.js +2 -0
- package/dist/compiler/types.js.map +1 -0
- package/dist/constants/colors.d.ts +294 -0
- package/dist/constants/colors.d.ts.map +1 -0
- package/dist/constants/colors.js +307 -0
- package/dist/constants/colors.js.map +1 -0
- package/dist/constants/index.d.ts +3 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js +3 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/constants/theme-colors.d.ts +397 -0
- package/dist/constants/theme-colors.d.ts.map +1 -0
- package/dist/constants/theme-colors.js +247 -0
- package/dist/constants/theme-colors.js.map +1 -0
- package/dist/definition/apps/app-utils.d.ts +11 -0
- package/dist/definition/apps/app-utils.d.ts.map +1 -0
- package/dist/definition/apps/app-utils.js +30 -0
- package/dist/definition/apps/app-utils.js.map +1 -0
- package/dist/definition/feature/feature-utils.d.ts +27 -0
- package/dist/definition/feature/feature-utils.d.ts.map +1 -0
- package/dist/definition/feature/feature-utils.js +81 -0
- package/dist/definition/feature/feature-utils.js.map +1 -0
- package/dist/definition/index.d.ts +10 -0
- package/dist/definition/index.d.ts.map +1 -0
- package/dist/definition/index.js +10 -0
- package/dist/definition/index.js.map +1 -0
- package/dist/definition/model/enum-utils.d.ts +9 -0
- package/dist/definition/model/enum-utils.d.ts.map +1 -0
- package/dist/definition/model/enum-utils.js +15 -0
- package/dist/definition/model/enum-utils.js.map +1 -0
- package/dist/definition/model/model-field-utils.d.ts +17 -0
- package/dist/definition/model/model-field-utils.d.ts.map +1 -0
- package/dist/definition/model/model-field-utils.js +85 -0
- package/dist/definition/model/model-field-utils.js.map +1 -0
- package/dist/definition/model/model-transformer-utils.d.ts +11 -0
- package/dist/definition/model/model-transformer-utils.d.ts.map +1 -0
- package/dist/definition/model/model-transformer-utils.js +13 -0
- package/dist/definition/model/model-transformer-utils.js.map +1 -0
- package/dist/definition/model/model-utils.d.ts +32 -0
- package/dist/definition/model/model-utils.d.ts.map +1 -0
- package/dist/definition/model/model-utils.js +59 -0
- package/dist/definition/model/model-utils.js.map +1 -0
- package/dist/definition/plugins/index.d.ts +2 -0
- package/dist/definition/plugins/index.d.ts.map +1 -0
- package/dist/definition/plugins/index.js +2 -0
- package/dist/definition/plugins/index.js.map +1 -0
- package/dist/definition/plugins/plugin-utils.d.ts +14 -0
- package/dist/definition/plugins/plugin-utils.d.ts.map +1 -0
- package/dist/definition/plugins/plugin-utils.js +44 -0
- package/dist/definition/plugins/plugin-utils.js.map +1 -0
- package/dist/definition/project-definition-container.d.ts +65 -0
- package/dist/definition/project-definition-container.d.ts.map +1 -0
- package/dist/definition/project-definition-container.js +118 -0
- package/dist/definition/project-definition-container.js.map +1 -0
- package/dist/definition/project-definition-container.test-helper.d.ts +5 -0
- package/dist/definition/project-definition-container.test-helper.d.ts.map +1 -0
- package/dist/definition/project-definition-container.test-helper.js +36 -0
- package/dist/definition/project-definition-container.test-helper.js.map +1 -0
- package/dist/feature-flags/flags.d.ts +3 -0
- package/dist/feature-flags/flags.d.ts.map +1 -0
- package/dist/feature-flags/flags.js +2 -0
- package/dist/feature-flags/flags.js.map +1 -0
- package/dist/feature-flags/index.d.ts +2 -0
- package/dist/feature-flags/index.d.ts.map +1 -0
- package/dist/feature-flags/index.js +2 -0
- package/dist/feature-flags/index.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/migrations/index.d.ts +15 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/migrations/index.js +68 -0
- package/dist/migrations/index.js.map +1 -0
- package/dist/migrations/migration-005-primaryUniqueRefs.d.ts +37 -0
- package/dist/migrations/migration-005-primaryUniqueRefs.d.ts.map +1 -0
- package/dist/migrations/migration-005-primaryUniqueRefs.js +40 -0
- package/dist/migrations/migration-005-primaryUniqueRefs.js.map +1 -0
- package/dist/migrations/migration-006-individual-service-controllers.d.ts +42 -0
- package/dist/migrations/migration-006-individual-service-controllers.d.ts.map +1 -0
- package/dist/migrations/migration-006-individual-service-controllers.js +31 -0
- package/dist/migrations/migration-006-individual-service-controllers.js.map +1 -0
- package/dist/migrations/migration-007-model-graphql.d.ts +59 -0
- package/dist/migrations/migration-007-model-graphql.d.ts.map +1 -0
- package/dist/migrations/migration-007-model-graphql.js +62 -0
- package/dist/migrations/migration-007-model-graphql.js.map +1 -0
- package/dist/migrations/migration-008-anonymous-public-role.d.ts +22 -0
- package/dist/migrations/migration-008-anonymous-public-role.d.ts.map +1 -0
- package/dist/migrations/migration-008-anonymous-public-role.js +52 -0
- package/dist/migrations/migration-008-anonymous-public-role.js.map +1 -0
- package/dist/migrations/migration-009-rename-refs.d.ts +2 -0
- package/dist/migrations/migration-009-rename-refs.d.ts.map +1 -0
- package/dist/migrations/migration-009-rename-refs.js +59 -0
- package/dist/migrations/migration-009-rename-refs.js.map +1 -0
- package/dist/migrations/migration-010-hex-to-oklch.d.ts +2 -0
- package/dist/migrations/migration-010-hex-to-oklch.d.ts.map +1 -0
- package/dist/migrations/migration-010-hex-to-oklch.js +24 -0
- package/dist/migrations/migration-010-hex-to-oklch.js.map +1 -0
- package/dist/migrations/migration-011-plugin-id.d.ts +2 -0
- package/dist/migrations/migration-011-plugin-id.d.ts.map +1 -0
- package/dist/migrations/migration-011-plugin-id.js +10 -0
- package/dist/migrations/migration-011-plugin-id.js.map +1 -0
- package/dist/migrations/migration-012-migrate-auth-config.d.ts +36 -0
- package/dist/migrations/migration-012-migrate-auth-config.d.ts.map +1 -0
- package/dist/migrations/migration-012-migrate-auth-config.js +48 -0
- package/dist/migrations/migration-012-migrate-auth-config.js.map +1 -0
- package/dist/migrations/migration-013-move-general-settings.d.ts +38 -0
- package/dist/migrations/migration-013-move-general-settings.d.ts.map +1 -0
- package/dist/migrations/migration-013-move-general-settings.js +22 -0
- package/dist/migrations/migration-013-move-general-settings.js.map +1 -0
- package/dist/migrations/migration-014-migrate-plugin-ids.d.ts +21 -0
- package/dist/migrations/migration-014-migrate-plugin-ids.d.ts.map +1 -0
- package/dist/migrations/migration-014-migrate-plugin-ids.js +32 -0
- package/dist/migrations/migration-014-migrate-plugin-ids.js.map +1 -0
- package/dist/migrations/transform-json-path.d.ts +13 -0
- package/dist/migrations/transform-json-path.d.ts.map +1 -0
- package/dist/migrations/transform-json-path.js +66 -0
- package/dist/migrations/transform-json-path.js.map +1 -0
- package/dist/migrations/types.d.ts +29 -0
- package/dist/migrations/types.d.ts.map +1 -0
- package/dist/migrations/types.js +4 -0
- package/dist/migrations/types.js.map +1 -0
- package/dist/migrations/utils.d.ts +3 -0
- package/dist/migrations/utils.d.ts.map +1 -0
- package/dist/migrations/utils.js +10 -0
- package/dist/migrations/utils.js.map +1 -0
- package/dist/parser/index.d.ts +3 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/index.js +2 -0
- package/dist/parser/index.js.map +1 -0
- package/dist/parser/parser.d.ts +35 -0
- package/dist/parser/parser.d.ts.map +1 -0
- package/dist/parser/parser.js +84 -0
- package/dist/parser/parser.js.map +1 -0
- package/dist/parser/types.d.ts +8 -0
- package/dist/parser/types.d.ts.map +1 -0
- package/dist/parser/types.js +2 -0
- package/dist/parser/types.js.map +1 -0
- package/dist/plugin-tools/index.d.ts +2 -0
- package/dist/plugin-tools/index.d.ts.map +1 -0
- package/dist/plugin-tools/index.js +2 -0
- package/dist/plugin-tools/index.js.map +1 -0
- package/dist/plugin-tools/plugin-loader.d.ts +16 -0
- package/dist/plugin-tools/plugin-loader.d.ts.map +1 -0
- package/dist/plugin-tools/plugin-loader.js +166 -0
- package/dist/plugin-tools/plugin-loader.js.map +1 -0
- package/dist/plugins/imports/index.d.ts +3 -0
- package/dist/plugins/imports/index.d.ts.map +1 -0
- package/dist/plugins/imports/index.js +3 -0
- package/dist/plugins/imports/index.js.map +1 -0
- package/dist/plugins/imports/loader.d.ts +23 -0
- package/dist/plugins/imports/loader.d.ts.map +1 -0
- package/dist/plugins/imports/loader.js +81 -0
- package/dist/plugins/imports/loader.js.map +1 -0
- package/dist/plugins/imports/types.d.ts +27 -0
- package/dist/plugins/imports/types.d.ts.map +1 -0
- package/dist/plugins/imports/types.js +4 -0
- package/dist/plugins/imports/types.js.map +1 -0
- package/dist/plugins/index.d.ts +7 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +7 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/manifest/manifest.d.ts +13 -0
- package/dist/plugins/manifest/manifest.d.ts.map +1 -0
- package/dist/plugins/manifest/manifest.js +6 -0
- package/dist/plugins/manifest/manifest.js.map +1 -0
- package/dist/plugins/metadata/index.d.ts +2 -0
- package/dist/plugins/metadata/index.d.ts.map +1 -0
- package/dist/plugins/metadata/index.js +2 -0
- package/dist/plugins/metadata/index.js.map +1 -0
- package/dist/plugins/metadata/types.d.ts +163 -0
- package/dist/plugins/metadata/types.d.ts.map +1 -0
- package/dist/plugins/metadata/types.js +59 -0
- package/dist/plugins/metadata/types.js.map +1 -0
- package/dist/plugins/migrations/index.d.ts +2 -0
- package/dist/plugins/migrations/index.d.ts.map +1 -0
- package/dist/plugins/migrations/index.js +2 -0
- package/dist/plugins/migrations/index.js.map +1 -0
- package/dist/plugins/migrations/run-migrations.d.ts +4 -0
- package/dist/plugins/migrations/run-migrations.d.ts.map +1 -0
- package/dist/plugins/migrations/run-migrations.js +30 -0
- package/dist/plugins/migrations/run-migrations.js.map +1 -0
- package/dist/plugins/schema/common.d.ts +6 -0
- package/dist/plugins/schema/common.d.ts.map +1 -0
- package/dist/plugins/schema/common.js +2 -0
- package/dist/plugins/schema/common.js.map +1 -0
- package/dist/plugins/schema/index.d.ts +4 -0
- package/dist/plugins/schema/index.d.ts.map +1 -0
- package/dist/plugins/schema/index.js +4 -0
- package/dist/plugins/schema/index.js.map +1 -0
- package/dist/plugins/schema/parser.d.ts +19 -0
- package/dist/plugins/schema/parser.d.ts.map +1 -0
- package/dist/plugins/schema/parser.js +41 -0
- package/dist/plugins/schema/parser.js.map +1 -0
- package/dist/plugins/schema/store.d.ts +8 -0
- package/dist/plugins/schema/store.d.ts.map +1 -0
- package/dist/plugins/schema/store.js +21 -0
- package/dist/plugins/schema/store.js.map +1 -0
- package/dist/plugins/schema/zod-with-plugins.d.ts +12 -0
- package/dist/plugins/schema/zod-with-plugins.d.ts.map +1 -0
- package/dist/plugins/schema/zod-with-plugins.js +26 -0
- package/dist/plugins/schema/zod-with-plugins.js.map +1 -0
- package/dist/plugins/spec/auth-config-spec.d.ts +21 -0
- package/dist/plugins/spec/auth-config-spec.d.ts.map +1 -0
- package/dist/plugins/spec/auth-config-spec.js +6 -0
- package/dist/plugins/spec/auth-config-spec.js.map +1 -0
- package/dist/plugins/spec/config-spec.d.ts +31 -0
- package/dist/plugins/spec/config-spec.d.ts.map +1 -0
- package/dist/plugins/spec/config-spec.js +58 -0
- package/dist/plugins/spec/config-spec.js.map +1 -0
- package/dist/plugins/spec/index.d.ts +5 -0
- package/dist/plugins/spec/index.d.ts.map +1 -0
- package/dist/plugins/spec/index.js +5 -0
- package/dist/plugins/spec/index.js.map +1 -0
- package/dist/plugins/spec/types.d.ts +29 -0
- package/dist/plugins/spec/types.d.ts.map +1 -0
- package/dist/plugins/spec/types.js +17 -0
- package/dist/plugins/spec/types.js.map +1 -0
- package/dist/plugins/spec/web-config-spec.d.ts +22 -0
- package/dist/plugins/spec/web-config-spec.d.ts.map +1 -0
- package/dist/plugins/spec/web-config-spec.js +23 -0
- package/dist/plugins/spec/web-config-spec.js.map +1 -0
- package/dist/references/deserialize-schema.d.ts +4 -0
- package/dist/references/deserialize-schema.d.ts.map +1 -0
- package/dist/references/deserialize-schema.js +68 -0
- package/dist/references/deserialize-schema.js.map +1 -0
- package/dist/references/fix-ref-deletions.d.ts +22 -0
- package/dist/references/fix-ref-deletions.d.ts.map +1 -0
- package/dist/references/fix-ref-deletions.js +99 -0
- package/dist/references/fix-ref-deletions.js.map +1 -0
- package/dist/references/index.d.ts +6 -0
- package/dist/references/index.d.ts.map +1 -0
- package/dist/references/index.js +6 -0
- package/dist/references/index.js.map +1 -0
- package/dist/references/parse-schema-with-references.d.ts +14 -0
- package/dist/references/parse-schema-with-references.d.ts.map +1 -0
- package/dist/references/parse-schema-with-references.js +16 -0
- package/dist/references/parse-schema-with-references.js.map +1 -0
- package/dist/references/ref-builder.d.ts +346 -0
- package/dist/references/ref-builder.d.ts.map +1 -0
- package/dist/references/ref-builder.js +494 -0
- package/dist/references/ref-builder.js.map +1 -0
- package/dist/references/resolve-zod-ref-payload-names.d.ts +26 -0
- package/dist/references/resolve-zod-ref-payload-names.d.ts.map +1 -0
- package/dist/references/resolve-zod-ref-payload-names.js +52 -0
- package/dist/references/resolve-zod-ref-payload-names.js.map +1 -0
- package/dist/references/serialize-schema.d.ts +5 -0
- package/dist/references/serialize-schema.d.ts.map +1 -0
- package/dist/references/serialize-schema.js +22 -0
- package/dist/references/serialize-schema.js.map +1 -0
- package/dist/references/types.d.ts +126 -0
- package/dist/references/types.d.ts.map +1 -0
- package/dist/references/types.js +59 -0
- package/dist/references/types.js.map +1 -0
- package/dist/schema/apps/admin/app.d.ts +1144 -0
- package/dist/schema/apps/admin/app.d.ts.map +1 -0
- package/dist/schema/apps/admin/app.js +27 -0
- package/dist/schema/apps/admin/app.js.map +1 -0
- package/dist/schema/apps/admin/index.d.ts +3 -0
- package/dist/schema/apps/admin/index.d.ts.map +1 -0
- package/dist/schema/apps/admin/index.js +3 -0
- package/dist/schema/apps/admin/index.js.map +1 -0
- package/dist/schema/apps/admin/sections/base.d.ts +9 -0
- package/dist/schema/apps/admin/sections/base.d.ts.map +1 -0
- package/dist/schema/apps/admin/sections/base.js +15 -0
- package/dist/schema/apps/admin/sections/base.js.map +1 -0
- package/dist/schema/apps/admin/sections/crud-form/admin-crud-input.d.ts +11 -0
- package/dist/schema/apps/admin/sections/crud-form/admin-crud-input.d.ts.map +1 -0
- package/dist/schema/apps/admin/sections/crud-form/admin-crud-input.js +11 -0
- package/dist/schema/apps/admin/sections/crud-form/admin-crud-input.js.map +1 -0
- package/dist/schema/apps/admin/sections/crud-form/admin-input-spec.d.ts +17 -0
- package/dist/schema/apps/admin/sections/crud-form/admin-input-spec.d.ts.map +1 -0
- package/dist/schema/apps/admin/sections/crud-form/admin-input-spec.js +30 -0
- package/dist/schema/apps/admin/sections/crud-form/admin-input-spec.js.map +1 -0
- package/dist/schema/apps/admin/sections/crud-form/built-in-input.d.ts +138 -0
- package/dist/schema/apps/admin/sections/crud-form/built-in-input.d.ts.map +1 -0
- package/dist/schema/apps/admin/sections/crud-form/built-in-input.js +101 -0
- package/dist/schema/apps/admin/sections/crud-form/built-in-input.js.map +1 -0
- package/dist/schema/apps/admin/sections/crud-form/index.d.ts +5 -0
- package/dist/schema/apps/admin/sections/crud-form/index.d.ts.map +1 -0
- package/dist/schema/apps/admin/sections/crud-form/index.js +5 -0
- package/dist/schema/apps/admin/sections/crud-form/index.js.map +1 -0
- package/dist/schema/apps/admin/sections/crud-form/types.d.ts +19 -0
- package/dist/schema/apps/admin/sections/crud-form/types.d.ts.map +1 -0
- package/dist/schema/apps/admin/sections/crud-form/types.js +14 -0
- package/dist/schema/apps/admin/sections/crud-form/types.js.map +1 -0
- package/dist/schema/apps/admin/sections/crud.d.ts +988 -0
- package/dist/schema/apps/admin/sections/crud.d.ts.map +1 -0
- package/dist/schema/apps/admin/sections/crud.js +101 -0
- package/dist/schema/apps/admin/sections/crud.js.map +1 -0
- package/dist/schema/apps/admin/sections/index.d.ts +5 -0
- package/dist/schema/apps/admin/sections/index.d.ts.map +1 -0
- package/dist/schema/apps/admin/sections/index.js +5 -0
- package/dist/schema/apps/admin/sections/index.js.map +1 -0
- package/dist/schema/apps/admin/sections/types.d.ts +2 -0
- package/dist/schema/apps/admin/sections/types.d.ts.map +1 -0
- package/dist/schema/apps/admin/sections/types.js +6 -0
- package/dist/schema/apps/admin/sections/types.js.map +1 -0
- package/dist/schema/apps/backend/index.d.ts +49 -0
- package/dist/schema/apps/backend/index.d.ts.map +1 -0
- package/dist/schema/apps/backend/index.js +15 -0
- package/dist/schema/apps/backend/index.js.map +1 -0
- package/dist/schema/apps/base.d.ts +25 -0
- package/dist/schema/apps/base.d.ts.map +1 -0
- package/dist/schema/apps/base.js +16 -0
- package/dist/schema/apps/base.js.map +1 -0
- package/dist/schema/apps/index.d.ts +6 -0
- package/dist/schema/apps/index.d.ts.map +1 -0
- package/dist/schema/apps/index.js +6 -0
- package/dist/schema/apps/index.js.map +1 -0
- package/dist/schema/apps/types.d.ts +6 -0
- package/dist/schema/apps/types.d.ts.map +1 -0
- package/dist/schema/apps/types.js +6 -0
- package/dist/schema/apps/types.js.map +1 -0
- package/dist/schema/apps/web/index.d.ts +49 -0
- package/dist/schema/apps/web/index.d.ts.map +1 -0
- package/dist/schema/apps/web/index.js +22 -0
- package/dist/schema/apps/web/index.js.map +1 -0
- package/dist/schema/auth/index.d.ts +2 -0
- package/dist/schema/auth/index.d.ts.map +1 -0
- package/dist/schema/auth/index.js +3 -0
- package/dist/schema/auth/index.js.map +1 -0
- package/dist/schema/creator/index.d.ts +2 -0
- package/dist/schema/creator/index.d.ts.map +1 -0
- package/dist/schema/creator/index.js +2 -0
- package/dist/schema/creator/index.js.map +1 -0
- package/dist/schema/creator/schema-creator.d.ts +4 -0
- package/dist/schema/creator/schema-creator.d.ts.map +1 -0
- package/dist/schema/creator/schema-creator.js +4 -0
- package/dist/schema/creator/schema-creator.js.map +1 -0
- package/dist/schema/creator/types.d.ts +14 -0
- package/dist/schema/creator/types.d.ts.map +1 -0
- package/dist/schema/creator/types.js +2 -0
- package/dist/schema/creator/types.js.map +1 -0
- package/dist/schema/features/feature.d.ts +33 -0
- package/dist/schema/features/feature.d.ts.map +1 -0
- package/dist/schema/features/feature.js +21 -0
- package/dist/schema/features/feature.js.map +1 -0
- package/dist/schema/features/index.d.ts +3 -0
- package/dist/schema/features/index.d.ts.map +1 -0
- package/dist/schema/features/index.js +3 -0
- package/dist/schema/features/index.js.map +1 -0
- package/dist/schema/features/theme.d.ts +208 -0
- package/dist/schema/features/theme.d.ts.map +1 -0
- package/dist/schema/features/theme.js +34 -0
- package/dist/schema/features/theme.js.map +1 -0
- package/dist/schema/index.d.ts +11 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +11 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/models/enums.d.ts +97 -0
- package/dist/schema/models/enums.d.ts.map +1 -0
- package/dist/schema/models/enums.js +25 -0
- package/dist/schema/models/enums.js.map +1 -0
- package/dist/schema/models/graphql.d.ts +181 -0
- package/dist/schema/models/graphql.d.ts.map +1 -0
- package/dist/schema/models/graphql.js +96 -0
- package/dist/schema/models/graphql.js.map +1 -0
- package/dist/schema/models/index.d.ts +1692 -0
- package/dist/schema/models/index.d.ts.map +1 -0
- package/dist/schema/models/index.js +220 -0
- package/dist/schema/models/index.js.map +1 -0
- package/dist/schema/models/mocks.d.ts +6 -0
- package/dist/schema/models/mocks.d.ts.map +1 -0
- package/dist/schema/models/mocks.js +55 -0
- package/dist/schema/models/mocks.js.map +1 -0
- package/dist/schema/models/transformers/built-in-transformers.d.ts +71 -0
- package/dist/schema/models/transformers/built-in-transformers.d.ts.map +1 -0
- package/dist/schema/models/transformers/built-in-transformers.js +59 -0
- package/dist/schema/models/transformers/built-in-transformers.js.map +1 -0
- package/dist/schema/models/transformers/index.d.ts +5 -0
- package/dist/schema/models/transformers/index.d.ts.map +1 -0
- package/dist/schema/models/transformers/index.js +5 -0
- package/dist/schema/models/transformers/index.js.map +1 -0
- package/dist/schema/models/transformers/model-transformer-spec.d.ts +17 -0
- package/dist/schema/models/transformers/model-transformer-spec.d.ts.map +1 -0
- package/dist/schema/models/transformers/model-transformer-spec.js +40 -0
- package/dist/schema/models/transformers/model-transformer-spec.js.map +1 -0
- package/dist/schema/models/transformers/transformers.d.ts +11 -0
- package/dist/schema/models/transformers/transformers.d.ts.map +1 -0
- package/dist/schema/models/transformers/transformers.js +11 -0
- package/dist/schema/models/transformers/transformers.js.map +1 -0
- package/dist/schema/models/transformers/types.d.ts +23 -0
- package/dist/schema/models/transformers/types.d.ts.map +1 -0
- package/dist/schema/models/transformers/types.js +12 -0
- package/dist/schema/models/transformers/types.js.map +1 -0
- package/dist/schema/models/types.d.ts +9 -0
- package/dist/schema/models/types.d.ts.map +1 -0
- package/dist/schema/models/types.js +14 -0
- package/dist/schema/models/types.js.map +1 -0
- package/dist/schema/plugins/definition.d.ts +128 -0
- package/dist/schema/plugins/definition.d.ts.map +1 -0
- package/dist/schema/plugins/definition.js +28 -0
- package/dist/schema/plugins/definition.js.map +1 -0
- package/dist/schema/plugins/entity-types.d.ts +2 -0
- package/dist/schema/plugins/entity-types.d.ts.map +1 -0
- package/dist/schema/plugins/entity-types.js +3 -0
- package/dist/schema/plugins/entity-types.js.map +1 -0
- package/dist/schema/plugins/index.d.ts +3 -0
- package/dist/schema/plugins/index.d.ts.map +1 -0
- package/dist/schema/plugins/index.js +3 -0
- package/dist/schema/plugins/index.js.map +1 -0
- package/dist/schema/project-definition.d.ts +2877 -0
- package/dist/schema/project-definition.d.ts.map +1 -0
- package/dist/schema/project-definition.js +34 -0
- package/dist/schema/project-definition.js.map +1 -0
- package/dist/schema/settings.d.ts +228 -0
- package/dist/schema/settings.d.ts.map +1 -0
- package/dist/schema/settings.js +32 -0
- package/dist/schema/settings.js.map +1 -0
- package/dist/schema/template-extractor/index.d.ts +25 -0
- package/dist/schema/template-extractor/index.d.ts.map +1 -0
- package/dist/schema/template-extractor/index.js +18 -0
- package/dist/schema/template-extractor/index.js.map +1 -0
- package/dist/schema/utils/validation.d.ts +8 -0
- package/dist/schema/utils/validation.d.ts.map +1 -0
- package/dist/schema/utils/validation.js +18 -0
- package/dist/schema/utils/validation.js.map +1 -0
- package/dist/tools/index.d.ts +2 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +2 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/model-merger/index.d.ts +2 -0
- package/dist/tools/model-merger/index.d.ts.map +1 -0
- package/dist/tools/model-merger/index.js +2 -0
- package/dist/tools/model-merger/index.js.map +1 -0
- package/dist/tools/model-merger/model-merger.d.ts +376 -0
- package/dist/tools/model-merger/model-merger.d.ts.map +1 -0
- package/dist/tools/model-merger/model-merger.js +229 -0
- package/dist/tools/model-merger/model-merger.js.map +1 -0
- package/dist/types/field-types.d.ts +3 -0
- package/dist/types/field-types.d.ts.map +1 -0
- package/dist/types/field-types.js +13 -0
- package/dist/types/field-types.js.map +1 -0
- package/dist/types/files.d.ts +8 -0
- package/dist/types/files.d.ts.map +1 -0
- package/dist/types/files.js +2 -0
- package/dist/types/files.js.map +1 -0
- package/dist/utils/color-conversions.d.ts +20 -0
- package/dist/utils/color-conversions.d.ts.map +1 -0
- package/dist/utils/color-conversions.js +38 -0
- package/dist/utils/color-conversions.js.map +1 -0
- package/dist/utils/color-names.d.ts +18 -0
- package/dist/utils/color-names.d.ts.map +1 -0
- package/dist/utils/color-names.js +54 -0
- package/dist/utils/color-names.js.map +1 -0
- package/dist/utils/definition-diff/definition-diff.d.ts +68 -0
- package/dist/utils/definition-diff/definition-diff.d.ts.map +1 -0
- package/dist/utils/definition-diff/definition-diff.js +149 -0
- package/dist/utils/definition-diff/definition-diff.js.map +1 -0
- package/dist/utils/definition-diff/index.d.ts +2 -0
- package/dist/utils/definition-diff/index.d.ts.map +1 -0
- package/dist/utils/definition-diff/index.js +2 -0
- package/dist/utils/definition-diff/index.js.map +1 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +6 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/path.d.ts +5 -0
- package/dist/utils/path.d.ts.map +1 -0
- package/dist/utils/path.js +27 -0
- package/dist/utils/path.js.map +1 -0
- package/dist/utils/strip.d.ts +18 -0
- package/dist/utils/strip.d.ts.map +1 -0
- package/dist/utils/strip.js +37 -0
- package/dist/utils/strip.js.map +1 -0
- package/dist/utils/theme.d.ts +10 -0
- package/dist/utils/theme.d.ts.map +1 -0
- package/dist/utils/theme.js +58 -0
- package/dist/utils/theme.js.map +1 -0
- package/dist/web/components/FeatureComboboxField.d.ts +17 -0
- package/dist/web/components/FeatureComboboxField.d.ts.map +1 -0
- package/dist/web/components/FeatureComboboxField.js +38 -0
- package/dist/web/components/FeatureComboboxField.js.map +1 -0
- package/dist/web/components/ModelComboboxField.d.ts +17 -0
- package/dist/web/components/ModelComboboxField.d.ts.map +1 -0
- package/dist/web/components/ModelComboboxField.js +38 -0
- package/dist/web/components/ModelComboboxField.js.map +1 -0
- package/dist/web/components/ModelMergerResultAlert.d.ts +8 -0
- package/dist/web/components/ModelMergerResultAlert.d.ts.map +1 -0
- package/dist/web/components/ModelMergerResultAlert.js +10 -0
- package/dist/web/components/ModelMergerResultAlert.js.map +1 -0
- package/dist/web/components/index.d.ts +4 -0
- package/dist/web/components/index.d.ts.map +1 -0
- package/dist/web/components/index.js +4 -0
- package/dist/web/components/index.js.map +1 -0
- package/dist/web/contexts/error-handler.d.ts +7 -0
- package/dist/web/contexts/error-handler.d.ts.map +1 -0
- package/dist/web/contexts/error-handler.js +3 -0
- package/dist/web/contexts/error-handler.js.map +1 -0
- package/dist/web/contexts/index.d.ts +2 -0
- package/dist/web/contexts/index.d.ts.map +1 -0
- package/dist/web/contexts/index.js +2 -0
- package/dist/web/contexts/index.js.map +1 -0
- package/dist/web/hooks/index.d.ts +8 -0
- package/dist/web/hooks/index.d.ts.map +1 -0
- package/dist/web/hooks/index.js +8 -0
- package/dist/web/hooks/index.js.map +1 -0
- package/dist/web/hooks/useBlockDirtyFormNavigate.d.ts +3 -0
- package/dist/web/hooks/useBlockDirtyFormNavigate.d.ts.map +1 -0
- package/dist/web/hooks/useBlockDirtyFormNavigate.js +14 -0
- package/dist/web/hooks/useBlockDirtyFormNavigate.js.map +1 -0
- package/dist/web/hooks/useBlockUnsavedChangesNavigate.d.ts +7 -0
- package/dist/web/hooks/useBlockUnsavedChangesNavigate.d.ts.map +1 -0
- package/dist/web/hooks/useBlockUnsavedChangesNavigate.js +47 -0
- package/dist/web/hooks/useBlockUnsavedChangesNavigate.js.map +1 -0
- package/dist/web/hooks/useBlockerDialog.d.ts +44 -0
- package/dist/web/hooks/useBlockerDialog.d.ts.map +1 -0
- package/dist/web/hooks/useBlockerDialog.js +77 -0
- package/dist/web/hooks/useBlockerDialog.js.map +1 -0
- package/dist/web/hooks/useErrorHandler.d.ts +3 -0
- package/dist/web/hooks/useErrorHandler.d.ts.map +1 -0
- package/dist/web/hooks/useErrorHandler.js +10 -0
- package/dist/web/hooks/useErrorHandler.js.map +1 -0
- package/dist/web/hooks/usePluginEnhancedSchema.d.ts +4 -0
- package/dist/web/hooks/usePluginEnhancedSchema.d.ts.map +1 -0
- package/dist/web/hooks/usePluginEnhancedSchema.js +8 -0
- package/dist/web/hooks/usePluginEnhancedSchema.js.map +1 -0
- package/dist/web/hooks/useProjectDefinition.d.ts +65 -0
- package/dist/web/hooks/useProjectDefinition.d.ts.map +1 -0
- package/dist/web/hooks/useProjectDefinition.js +10 -0
- package/dist/web/hooks/useProjectDefinition.js.map +1 -0
- package/dist/web/hooks/useResettableForm.d.ts +3 -0
- package/dist/web/hooks/useResettableForm.d.ts.map +1 -0
- package/dist/web/hooks/useResettableForm.js +29 -0
- package/dist/web/hooks/useResettableForm.js.map +1 -0
- package/dist/web/index.d.ts +6 -0
- package/dist/web/index.d.ts.map +1 -0
- package/dist/web/index.js +6 -0
- package/dist/web/index.js.map +1 -0
- package/dist/web/specs/admin-crud-input-web-spec.d.ts +36 -0
- package/dist/web/specs/admin-crud-input-web-spec.d.ts.map +1 -0
- package/dist/web/specs/admin-crud-input-web-spec.js +35 -0
- package/dist/web/specs/admin-crud-input-web-spec.js.map +1 -0
- package/dist/web/specs/index.d.ts +3 -0
- package/dist/web/specs/index.d.ts.map +1 -0
- package/dist/web/specs/index.js +3 -0
- package/dist/web/specs/index.js.map +1 -0
- package/dist/web/specs/model-transformer-web-spec.d.ts +40 -0
- package/dist/web/specs/model-transformer-web-spec.d.ts.map +1 -0
- package/dist/web/specs/model-transformer-web-spec.js +35 -0
- package/dist/web/specs/model-transformer-web-spec.js.map +1 -0
- package/dist/web/utils/form.d.ts +2 -0
- package/dist/web/utils/form.d.ts.map +1 -0
- package/dist/web/utils/form.js +6 -0
- package/dist/web/utils/form.js.map +1 -0
- package/dist/web/utils/index.d.ts +2 -0
- package/dist/web/utils/index.d.ts.map +1 -0
- package/dist/web/utils/index.js +2 -0
- package/dist/web/utils/index.js.map +1 -0
- package/package.json +78 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { z } from 'zod';
|
|
2
|
+
import type { PluginSpecImplementation } from './types.js';
|
|
3
|
+
export interface PluginConfigMigration {
|
|
4
|
+
version: number;
|
|
5
|
+
name: string;
|
|
6
|
+
migrate: (config: unknown) => unknown;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Spec for registering plugin config schema
|
|
10
|
+
*/
|
|
11
|
+
export interface PluginConfigSpec extends PluginSpecImplementation {
|
|
12
|
+
registerSchema: (pluginId: string, schema: z.ZodTypeAny) => void;
|
|
13
|
+
registerMigrations: (pluginId: string, migrations: PluginConfigMigration[]) => void;
|
|
14
|
+
getSchema(pluginId: string): z.ZodTypeAny | undefined;
|
|
15
|
+
getMigrations(pluginId: string): PluginConfigMigration[] | undefined;
|
|
16
|
+
getLastMigrationVersion(pluginId: string): number | undefined;
|
|
17
|
+
}
|
|
18
|
+
export declare function createPluginConfigImplementation(): PluginConfigSpec;
|
|
19
|
+
/**
|
|
20
|
+
* Spec for adding config for the plugin in the core plugin e.g.
|
|
21
|
+
* {
|
|
22
|
+
* "plugins": [{
|
|
23
|
+
* "id": "...",
|
|
24
|
+
* "config": {
|
|
25
|
+
* ...PluginConfig schema
|
|
26
|
+
* }
|
|
27
|
+
* }]
|
|
28
|
+
* }
|
|
29
|
+
*/
|
|
30
|
+
export declare const pluginConfigSpec: import("./types.js").PluginSpecWithInitializer<PluginConfigSpec>;
|
|
31
|
+
//# sourceMappingURL=config-spec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-spec.d.ts","sourceRoot":"","sources":["../../../src/plugins/spec/config-spec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAI3D,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,wBAAwB;IAChE,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC;IACjE,kBAAkB,EAAE,CAClB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,qBAAqB,EAAE,KAChC,IAAI,CAAC;IACV,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,CAAC,UAAU,GAAG,SAAS,CAAC;IACtD,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,qBAAqB,EAAE,GAAG,SAAS,CAAC;IACrE,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CAC/D;AAoBD,wBAAgB,gCAAgC,IAAI,gBAAgB,CA+BnE;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB,kEAE3B,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { createPluginSpec } from './types.js';
|
|
2
|
+
function sortAndValidateMigrations(migrations) {
|
|
3
|
+
// make sure migrations are sorted by version and they are all unique
|
|
4
|
+
const sortedMigrations = [...migrations].sort((a, b) => a.version - b.version);
|
|
5
|
+
if (sortedMigrations.some((m) => m.version <= 0)) {
|
|
6
|
+
throw new Error(`Migration version must be a positive integer`);
|
|
7
|
+
}
|
|
8
|
+
for (let i = 0; i < sortedMigrations.length - 1; i++) {
|
|
9
|
+
if (sortedMigrations[i].version === sortedMigrations[i + 1].version) {
|
|
10
|
+
throw new Error(`Migration versions must be unique`);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
return sortedMigrations;
|
|
14
|
+
}
|
|
15
|
+
export function createPluginConfigImplementation() {
|
|
16
|
+
const schemas = new Map();
|
|
17
|
+
const migrationsMap = new Map();
|
|
18
|
+
return {
|
|
19
|
+
registerSchema(pluginId, schema) {
|
|
20
|
+
if (schemas.has(pluginId)) {
|
|
21
|
+
throw new Error(`Schema for plugin ${pluginId} is already registered`);
|
|
22
|
+
}
|
|
23
|
+
schemas.set(pluginId, schema);
|
|
24
|
+
},
|
|
25
|
+
registerMigrations(pluginId, migrations) {
|
|
26
|
+
if (migrationsMap.has(pluginId)) {
|
|
27
|
+
throw new Error(`Migrations for plugin ${pluginId} are already registered`);
|
|
28
|
+
}
|
|
29
|
+
const sortedMigrations = sortAndValidateMigrations(migrations);
|
|
30
|
+
migrationsMap.set(pluginId, sortedMigrations);
|
|
31
|
+
},
|
|
32
|
+
getSchema(pluginId) {
|
|
33
|
+
return schemas.get(pluginId);
|
|
34
|
+
},
|
|
35
|
+
getMigrations(pluginId) {
|
|
36
|
+
return migrationsMap.get(pluginId);
|
|
37
|
+
},
|
|
38
|
+
getLastMigrationVersion(pluginId) {
|
|
39
|
+
const migrations = migrationsMap.get(pluginId);
|
|
40
|
+
return migrations?.[migrations.length - 1]?.version;
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Spec for adding config for the plugin in the core plugin e.g.
|
|
46
|
+
* {
|
|
47
|
+
* "plugins": [{
|
|
48
|
+
* "id": "...",
|
|
49
|
+
* "config": {
|
|
50
|
+
* ...PluginConfig schema
|
|
51
|
+
* }
|
|
52
|
+
* }]
|
|
53
|
+
* }
|
|
54
|
+
*/
|
|
55
|
+
export const pluginConfigSpec = createPluginSpec('core/plugin-config', {
|
|
56
|
+
defaultInitializer: createPluginConfigImplementation,
|
|
57
|
+
});
|
|
58
|
+
//# sourceMappingURL=config-spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-spec.js","sourceRoot":"","sources":["../../../src/plugins/spec/config-spec.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAsB9C,SAAS,yBAAyB,CAChC,UAAmC;IAEnC,qEAAqE;IACrE,MAAM,gBAAgB,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAC3C,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAChC,CAAC;IACF,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACrD,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YACpE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IACD,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,gCAAgC;IAC9C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAwB,CAAC;IAChD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAmC,CAAC;IAEjE,OAAO;QACL,cAAc,CAAC,QAAQ,EAAE,MAAM;YAC7B,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,wBAAwB,CAAC,CAAC;YACzE,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAChC,CAAC;QACD,kBAAkB,CAAC,QAAQ,EAAE,UAAU;YACrC,IAAI,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CACb,yBAAyB,QAAQ,yBAAyB,CAC3D,CAAC;YACJ,CAAC;YACD,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC;YAC/D,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QAChD,CAAC;QACD,SAAS,CAAC,QAAQ;YAChB,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;QACD,aAAa,CAAC,QAAQ;YACpB,OAAO,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC;QACD,uBAAuB,CAAC,QAAQ;YAC9B,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC/C,OAAO,UAAU,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC;QACtD,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,oBAAoB,EAAE;IACrE,kBAAkB,EAAE,gCAAgC;CACrD,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/spec/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/spec/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
type PluginSpecPlatform = 'web' | 'node';
|
|
2
|
+
export type PluginSpecImplementation = Record<string, unknown>;
|
|
3
|
+
export interface PluginSpec<T = PluginSpecImplementation> {
|
|
4
|
+
readonly type: 'plugin-spec';
|
|
5
|
+
readonly name: string;
|
|
6
|
+
readonly platforms?: PluginSpecPlatform[];
|
|
7
|
+
readonly placeholderType?: T;
|
|
8
|
+
readonly isOptional: boolean;
|
|
9
|
+
optional(): PluginSpec<T | undefined>;
|
|
10
|
+
defaultInitializer?: () => T;
|
|
11
|
+
}
|
|
12
|
+
export interface PluginSpecWithInitializer<T = PluginSpecImplementation> extends PluginSpec<T> {
|
|
13
|
+
defaultInitializer: () => T;
|
|
14
|
+
}
|
|
15
|
+
export interface InitializedPluginSpec<T = PluginSpecImplementation> {
|
|
16
|
+
spec: PluginSpec<T>;
|
|
17
|
+
implementation: T;
|
|
18
|
+
}
|
|
19
|
+
export declare function createInitializedPluginSpec<T = PluginSpecImplementation>(spec: PluginSpec<T>, implementation: T): InitializedPluginSpec<T>;
|
|
20
|
+
export type PluginSpecImplementationFromSpec<T extends PluginSpec> = T extends PluginSpec<infer TImplementation> ? TImplementation : never;
|
|
21
|
+
export declare function createPluginSpec<T = PluginSpecImplementation>(name: string, options: {
|
|
22
|
+
platforms?: PluginSpecPlatform | PluginSpecPlatform[];
|
|
23
|
+
defaultInitializer: () => T;
|
|
24
|
+
}): PluginSpecWithInitializer<T>;
|
|
25
|
+
export declare function createPluginSpec<T = PluginSpecImplementation>(name: string, options?: {
|
|
26
|
+
platforms?: PluginSpecPlatform | PluginSpecPlatform[];
|
|
27
|
+
}): PluginSpec<T>;
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/plugins/spec/types.ts"],"names":[],"mappings":"AAAA,KAAK,kBAAkB,GAAG,KAAK,GAAG,MAAM,CAAC;AAEzC,MAAM,MAAM,wBAAwB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE/D,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,wBAAwB;IACtD,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,SAAS,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAE1C,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAE7B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAE7B,QAAQ,IAAI,UAAU,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAEtC,kBAAkB,CAAC,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,yBAAyB,CAAC,CAAC,GAAG,wBAAwB,CACrE,SAAQ,UAAU,CAAC,CAAC,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC,GAAG,wBAAwB;IACjE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACpB,cAAc,EAAE,CAAC,CAAC;CACnB;AAED,wBAAgB,2BAA2B,CAAC,CAAC,GAAG,wBAAwB,EACtE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EACnB,cAAc,EAAE,CAAC,GAChB,qBAAqB,CAAC,CAAC,CAAC,CAE1B;AAED,MAAM,MAAM,gCAAgC,CAAC,CAAC,SAAS,UAAU,IAC/D,CAAC,SAAS,UAAU,CAAC,MAAM,eAAe,CAAC,GAAG,eAAe,GAAG,KAAK,CAAC;AAExE,wBAAgB,gBAAgB,CAAC,CAAC,GAAG,wBAAwB,EAC3D,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;IACP,SAAS,CAAC,EAAE,kBAAkB,GAAG,kBAAkB,EAAE,CAAC;IACtD,kBAAkB,EAAE,MAAM,CAAC,CAAC;CAC7B,GACA,yBAAyB,CAAC,CAAC,CAAC,CAAC;AAChC,wBAAgB,gBAAgB,CAAC,CAAC,GAAG,wBAAwB,EAC3D,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IACR,SAAS,CAAC,EAAE,kBAAkB,GAAG,kBAAkB,EAAE,CAAC;CACvD,GACA,UAAU,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export function createInitializedPluginSpec(spec, implementation) {
|
|
2
|
+
return { spec, implementation };
|
|
3
|
+
}
|
|
4
|
+
export function createPluginSpec(name, options) {
|
|
5
|
+
const { platforms, defaultInitializer } = options ?? {};
|
|
6
|
+
return {
|
|
7
|
+
type: 'plugin-spec',
|
|
8
|
+
name,
|
|
9
|
+
platforms: platforms && (Array.isArray(platforms) ? platforms : [platforms]),
|
|
10
|
+
isOptional: false,
|
|
11
|
+
optional() {
|
|
12
|
+
return { ...this, isOptional: true };
|
|
13
|
+
},
|
|
14
|
+
defaultInitializer,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/plugins/spec/types.ts"],"names":[],"mappings":"AA6BA,MAAM,UAAU,2BAA2B,CACzC,IAAmB,EACnB,cAAiB;IAEjB,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;AAClC,CAAC;AAkBD,MAAM,UAAU,gBAAgB,CAC9B,IAAY,EACZ,OAGC;IAED,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IACxD,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,IAAI;QACJ,SAAS,EACP,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACnE,UAAU,EAAE,KAAK;QACjB,QAAQ;YACN,OAAO,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QACvC,CAAC;QACD,kBAAkB;KACnB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
import type { BasePluginDefinition } from '#src/schema/index.js';
|
|
3
|
+
import type { PluginMetadataWithPaths } from '../metadata/types.js';
|
|
4
|
+
import type { PluginSpecImplementation } from './types.js';
|
|
5
|
+
export interface WebConfigProps {
|
|
6
|
+
definition: BasePluginDefinition | null;
|
|
7
|
+
metadata: PluginMetadataWithPaths;
|
|
8
|
+
onSave: () => void;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Spec for allowing the plugin to be configured from the plugins page
|
|
12
|
+
*/
|
|
13
|
+
export interface WebConfigSpec extends PluginSpecImplementation {
|
|
14
|
+
registerWebConfigComponent: (pluginId: string, ConfigComponent: React.FC<WebConfigProps>) => void;
|
|
15
|
+
getWebConfigComponent: (pluginId: string) => React.FC<WebConfigProps> | undefined;
|
|
16
|
+
}
|
|
17
|
+
export declare function createWebConfigImplementation(): WebConfigSpec;
|
|
18
|
+
/**
|
|
19
|
+
* Spec for adding config component for plugin
|
|
20
|
+
*/
|
|
21
|
+
export declare const webConfigSpec: import("./types.js").PluginSpecWithInitializer<WebConfigSpec>;
|
|
22
|
+
//# sourceMappingURL=web-config-spec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-config-spec.d.ts","sourceRoot":"","sources":["../../../src/plugins/spec/web-config-spec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAI3D,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACxC,QAAQ,EAAE,uBAAuB,CAAC;IAClC,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,wBAAwB;IAC7D,0BAA0B,EAAE,CAC1B,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,KACtC,IAAI,CAAC;IACV,qBAAqB,EAAE,CACrB,QAAQ,EAAE,MAAM,KACb,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;CAC3C;AAED,wBAAgB,6BAA6B,IAAI,aAAa,CAgB7D;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,+DAGxB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { createPluginSpec } from './types.js';
|
|
2
|
+
export function createWebConfigImplementation() {
|
|
3
|
+
const components = new Map();
|
|
4
|
+
return {
|
|
5
|
+
registerWebConfigComponent(pluginId, ConfigComponent) {
|
|
6
|
+
if (components.has(pluginId)) {
|
|
7
|
+
throw new Error(`Web config component for plugin ${pluginId} is already registered`);
|
|
8
|
+
}
|
|
9
|
+
components.set(pluginId, ConfigComponent);
|
|
10
|
+
},
|
|
11
|
+
getWebConfigComponent(pluginId) {
|
|
12
|
+
return components.get(pluginId);
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Spec for adding config component for plugin
|
|
18
|
+
*/
|
|
19
|
+
export const webConfigSpec = createPluginSpec('core/web-config', {
|
|
20
|
+
platforms: 'web',
|
|
21
|
+
defaultInitializer: createWebConfigImplementation,
|
|
22
|
+
});
|
|
23
|
+
//# sourceMappingURL=web-config-spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-config-spec.js","sourceRoot":"","sources":["../../../src/plugins/spec/web-config-spec.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAqB9C,MAAM,UAAU,6BAA6B;IAC3C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAoC,CAAC;IAE/D,OAAO;QACL,0BAA0B,CAAC,QAAQ,EAAE,eAAe;YAClD,IAAI,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CACb,mCAAmC,QAAQ,wBAAwB,CACpE,CAAC;YACJ,CAAC;YACD,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QAC5C,CAAC;QACD,qBAAqB,CAAC,QAAQ;YAC5B,OAAO,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,gBAAgB,CAAC,iBAAiB,EAAE;IAC/D,SAAS,EAAE,KAAK;IAChB,kBAAkB,EAAE,6BAA6B;CAClD,CAAC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { TypeOf, z } from 'zod';
|
|
2
|
+
import type { ResolvedZodRefPayload } from './types.js';
|
|
3
|
+
export declare function deserializeSchemaWithReferences<TSchema extends z.ZodType>(schema: TSchema, input: unknown): ResolvedZodRefPayload<TypeOf<TSchema>>;
|
|
4
|
+
//# sourceMappingURL=deserialize-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deserialize-schema.d.ts","sourceRoot":"","sources":["../../src/references/deserialize-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMrC,OAAO,KAAK,EAAoB,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAQ1E,wBAAgB,+BAA+B,CAAC,OAAO,SAAS,CAAC,CAAC,OAAO,EACvE,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,OAAO,GACb,qBAAqB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CA0FxC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { toposort } from '@baseplate-dev/utils';
|
|
2
|
+
import { groupBy, keyBy, uniq } from 'es-toolkit';
|
|
3
|
+
import { get, set } from 'es-toolkit/compat';
|
|
4
|
+
import { parseSchemaWithReferences } from './parse-schema-with-references.js';
|
|
5
|
+
function referenceToNameParentId(name, parentId) {
|
|
6
|
+
return JSON.stringify({ name, parentId });
|
|
7
|
+
}
|
|
8
|
+
export function deserializeSchemaWithReferences(schema, input) {
|
|
9
|
+
const payload = parseSchemaWithReferences(schema, input, {
|
|
10
|
+
skipReferenceNameResolution: true,
|
|
11
|
+
});
|
|
12
|
+
// resolve all references
|
|
13
|
+
const { references, entities, data } = payload;
|
|
14
|
+
// check we don't have more entities than IDs
|
|
15
|
+
const entitiesById = groupBy(entities, (entity) => entity.id);
|
|
16
|
+
const duplicateEntityIds = Object.values(entitiesById).filter((e) => e.length > 1);
|
|
17
|
+
if (duplicateEntityIds.length > 0) {
|
|
18
|
+
throw new Error(`Found multiple duplicate entity IDs: ${duplicateEntityIds
|
|
19
|
+
.map((ents) => `${ents[0].id} (${ents.map((e) => e.path.join('.')).join(',')})`)
|
|
20
|
+
.join(', ')}`);
|
|
21
|
+
}
|
|
22
|
+
const uniqueEntityIds = uniq(entities.map((e) => e.id));
|
|
23
|
+
if (uniqueEntityIds.length !== entities.length) {
|
|
24
|
+
throw new Error(`Found duplicate entity IDs`);
|
|
25
|
+
}
|
|
26
|
+
// collect reference entity types
|
|
27
|
+
const entityTypes = uniq(entities.map((e) => e.type));
|
|
28
|
+
const entityTypeNames = uniq(entityTypes.map((t) => t.name));
|
|
29
|
+
if (entityTypeNames.length !== entityTypes.length) {
|
|
30
|
+
throw new Error(`Found more entity types than entity type names implying duplicate entity type name`);
|
|
31
|
+
}
|
|
32
|
+
const entityTypeOrder = toposort(entityTypeNames, entityTypes
|
|
33
|
+
.filter((entityType) => !!entityType.parentType)
|
|
34
|
+
.map((entityType) => [
|
|
35
|
+
entityType.parentType?.name ?? '',
|
|
36
|
+
entityType.name,
|
|
37
|
+
]));
|
|
38
|
+
const entitiesByType = groupBy(entities, (e) => e.type.name);
|
|
39
|
+
const referencesByType = groupBy(references, (r) => r.type.name);
|
|
40
|
+
for (const name of entityTypeOrder) {
|
|
41
|
+
const entities = entitiesByType[name] ?? [];
|
|
42
|
+
const references = referencesByType[name] ?? [];
|
|
43
|
+
// resolve references to their ID
|
|
44
|
+
const entitiesByParentIdName = keyBy(entities, (e) => {
|
|
45
|
+
const { parentPath } = e;
|
|
46
|
+
const parentId = parentPath
|
|
47
|
+
? get(data, parentPath)
|
|
48
|
+
: undefined;
|
|
49
|
+
if (parentPath && typeof parentId !== 'string') {
|
|
50
|
+
throw new Error(`Could not resolve parent path: ${parentPath.join('.')}`);
|
|
51
|
+
}
|
|
52
|
+
return referenceToNameParentId(e.name, parentId);
|
|
53
|
+
});
|
|
54
|
+
for (const ref of references) {
|
|
55
|
+
const name = get(data, ref.path);
|
|
56
|
+
// parent ID should have already been resolved due to order of resolving references
|
|
57
|
+
const parentId = ref.parentPath && get(data, ref.parentPath);
|
|
58
|
+
const parentIdName = referenceToNameParentId(name, parentId);
|
|
59
|
+
const resolvedEntity = entitiesByParentIdName[parentIdName];
|
|
60
|
+
if (!resolvedEntity) {
|
|
61
|
+
throw new Error(`Unable to resolve reference: ${ref.path.join('.')} (${ref.type.name} ${parentIdName})`);
|
|
62
|
+
}
|
|
63
|
+
set(data, ref.path, resolvedEntity.id);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return payload;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=deserialize-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deserialize-schema.js","sourceRoot":"","sources":["../../src/references/deserialize-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { TypeOf, z } from 'zod';
|
|
2
|
+
import type { DefinitionReference, ResolvedZodRefPayload } from './types.js';
|
|
3
|
+
interface FixRefDeletionSuccessResult<TSchema extends z.ZodType> {
|
|
4
|
+
type: 'success';
|
|
5
|
+
value: TypeOf<TSchema>;
|
|
6
|
+
refPayload: ResolvedZodRefPayload<TypeOf<TSchema>>;
|
|
7
|
+
}
|
|
8
|
+
export interface FixRefDeletionError {
|
|
9
|
+
ref: DefinitionReference;
|
|
10
|
+
entityId: string;
|
|
11
|
+
}
|
|
12
|
+
interface FixRefDeletionFailureResult {
|
|
13
|
+
type: 'failure';
|
|
14
|
+
issues: FixRefDeletionError[];
|
|
15
|
+
}
|
|
16
|
+
export type FixRefDeletionResult<TSchema extends z.ZodType> = FixRefDeletionSuccessResult<TSchema> | FixRefDeletionFailureResult;
|
|
17
|
+
/**
|
|
18
|
+
* Fixes any reference deletions by performing the appropriate action for the reference
|
|
19
|
+
*/
|
|
20
|
+
export declare function fixRefDeletions<TSchema extends z.ZodType>(schema: TSchema, value: TypeOf<TSchema>): FixRefDeletionResult<TSchema>;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=fix-ref-deletions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fix-ref-deletions.d.ts","sourceRoot":"","sources":["../../src/references/fix-ref-deletions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKrC,OAAO,KAAK,EACV,mBAAmB,EAEnB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAIpB,UAAU,2BAA2B,CAAC,OAAO,SAAS,CAAC,CAAC,OAAO;IAC7D,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACvB,UAAU,EAAE,qBAAqB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,mBAAmB,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,2BAA2B;IACnC,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,mBAAmB,EAAE,CAAC;CAC/B;AAED,MAAM,MAAM,oBAAoB,CAAC,OAAO,SAAS,CAAC,CAAC,OAAO,IACtD,2BAA2B,CAAC,OAAO,CAAC,GACpC,2BAA2B,CAAC;AAKhC;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,SAAS,CAAC,CAAC,OAAO,EACvD,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,GACrB,oBAAoB,CAAC,OAAO,CAAC,CAuG/B"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { sortBy } from 'es-toolkit';
|
|
2
|
+
import { get, groupBy, set } from 'es-toolkit/compat';
|
|
3
|
+
import { parseSchemaWithReferences } from './parse-schema-with-references.js';
|
|
4
|
+
// sentinel ID to signify the reference has been flagged for deletion
|
|
5
|
+
const DELETED_SENTINEL_ID = 'deleted-sentinel-id';
|
|
6
|
+
/**
|
|
7
|
+
* Fixes any reference deletions by performing the appropriate action for the reference
|
|
8
|
+
*/
|
|
9
|
+
export function fixRefDeletions(schema, value) {
|
|
10
|
+
const issues = [];
|
|
11
|
+
// find all references that do not have a corresponding entity
|
|
12
|
+
let iterations;
|
|
13
|
+
let valueToEdit = value;
|
|
14
|
+
for (iterations = 0; iterations < 100; iterations++) {
|
|
15
|
+
const parseResult = parseSchemaWithReferences(schema, valueToEdit, {
|
|
16
|
+
allowInvalidReferences: true,
|
|
17
|
+
});
|
|
18
|
+
const { references, entities } = parseResult;
|
|
19
|
+
valueToEdit = parseResult.data;
|
|
20
|
+
const entitiesById = new Map(entities.map((e) => [e.id, e]));
|
|
21
|
+
const referencesMissingEntity = references.filter((r) => {
|
|
22
|
+
const id = get(valueToEdit, r.path);
|
|
23
|
+
return id !== DELETED_SENTINEL_ID && !entitiesById.has(id);
|
|
24
|
+
});
|
|
25
|
+
if (referencesMissingEntity.length === 0) {
|
|
26
|
+
if (issues.length > 0) {
|
|
27
|
+
return {
|
|
28
|
+
type: 'failure',
|
|
29
|
+
issues,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
return {
|
|
33
|
+
type: 'success',
|
|
34
|
+
value: valueToEdit,
|
|
35
|
+
refPayload: parseResult,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
const objectsToDeleteInArray = [];
|
|
39
|
+
function tryDeleteParent(path) {
|
|
40
|
+
if (path.length === 0) {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
const parentPath = path.slice(0, -1);
|
|
44
|
+
const parent = get(valueToEdit, parentPath);
|
|
45
|
+
if (!Array.isArray(parent)) {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
objectsToDeleteInArray.push({
|
|
49
|
+
path: parentPath,
|
|
50
|
+
idx: path.at(-1),
|
|
51
|
+
});
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
// attempt to fix reference
|
|
55
|
+
for (const ref of referencesMissingEntity) {
|
|
56
|
+
const id = get(valueToEdit, ref.path);
|
|
57
|
+
switch (ref.onDelete) {
|
|
58
|
+
case 'SET_NULL': {
|
|
59
|
+
set(valueToEdit, ref.path, null);
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
case 'RESTRICT': {
|
|
63
|
+
issues.push({ ref, entityId: id });
|
|
64
|
+
set(valueToEdit, ref.path, DELETED_SENTINEL_ID);
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
case 'DELETE': {
|
|
68
|
+
if (!tryDeleteParent(ref.path)) {
|
|
69
|
+
throw new Error(`Unable to find ref to cascade delete to`);
|
|
70
|
+
}
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
case 'DELETE_PARENT': {
|
|
74
|
+
if (!tryDeleteParent(ref.path.slice(0, -1))) {
|
|
75
|
+
throw new Error(`Unable to find ref to cascade delete to`);
|
|
76
|
+
}
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
default: {
|
|
80
|
+
throw new Error(`Unknown onDelete action ${ref.onDelete}`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
const objectsToDeleteByPath = groupBy(objectsToDeleteInArray, (o) => o.path.join('.'));
|
|
85
|
+
// delete objects in reverse order to avoid index shifting
|
|
86
|
+
for (const [, objects] of Object.entries(objectsToDeleteByPath)) {
|
|
87
|
+
const sortedObjects = sortBy(objects, [(o) => -o.idx]);
|
|
88
|
+
for (const o of sortedObjects) {
|
|
89
|
+
const parent = get(valueToEdit, o.path);
|
|
90
|
+
if (!Array.isArray(parent)) {
|
|
91
|
+
throw new TypeError(`Expected parent to be an array at path ${o.path.join('.')}`);
|
|
92
|
+
}
|
|
93
|
+
parent.splice(o.idx, 1);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
throw new Error(`Exceeded max iterations fixing deletions`);
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=fix-ref-deletions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fix-ref-deletions.js","sourceRoot":"","sources":["../../src/references/fix-ref-deletions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/references/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/references/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { z } from 'zod';
|
|
2
|
+
import type { ResolvedZodRefPayload } from './types.js';
|
|
3
|
+
import { type ResolveZodRefPayloadNamesOptions } from './resolve-zod-ref-payload-names.js';
|
|
4
|
+
/**
|
|
5
|
+
* Parses a schema with references.
|
|
6
|
+
*
|
|
7
|
+
* @param schema - The schema to parse.
|
|
8
|
+
* @param input - The input to parse.
|
|
9
|
+
* @param options - The options for parsing the schema.
|
|
10
|
+
*
|
|
11
|
+
* @returns The parsed data.
|
|
12
|
+
*/
|
|
13
|
+
export declare function parseSchemaWithReferences<T extends z.ZodTypeAny>(schema: T, input: unknown, options?: ResolveZodRefPayloadNamesOptions): ResolvedZodRefPayload<z.output<T>>;
|
|
14
|
+
//# sourceMappingURL=parse-schema-with-references.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-schema-with-references.d.ts","sourceRoot":"","sources":["../../src/references/parse-schema-with-references.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAGxD,OAAO,EAEL,KAAK,gCAAgC,EACtC,MAAM,oCAAoC,CAAC;AAE5C;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EAC9D,MAAM,EAAE,CAAC,EACT,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,gCAAgC,GACzC,qBAAqB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAGpC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ZodRefWrapper } from './ref-builder.js';
|
|
2
|
+
import { resolveZodRefPayloadNames, } from './resolve-zod-ref-payload-names.js';
|
|
3
|
+
/**
|
|
4
|
+
* Parses a schema with references.
|
|
5
|
+
*
|
|
6
|
+
* @param schema - The schema to parse.
|
|
7
|
+
* @param input - The input to parse.
|
|
8
|
+
* @param options - The options for parsing the schema.
|
|
9
|
+
*
|
|
10
|
+
* @returns The parsed data.
|
|
11
|
+
*/
|
|
12
|
+
export function parseSchemaWithReferences(schema, input, options) {
|
|
13
|
+
const wrapper = ZodRefWrapper.create(schema);
|
|
14
|
+
return resolveZodRefPayloadNames(wrapper.parse(input), options);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=parse-schema-with-references.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-schema-with-references.js","sourceRoot":"","sources":["../../src/references/parse-schema-with-references.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EACL,yBAAyB,GAE1B,MAAM,oCAAoC,CAAC;AAE5C;;;;;;;;GAQG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAAS,EACT,KAAc,EACd,OAA0C;IAE1C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7C,OAAO,yBAAyB,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;AAClE,CAAC"}
|