@vibesdotdev/config 0.0.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/README.md +85 -0
- package/SPEC.md +71 -0
- package/dist/adapters/cli/flags.d.ts +75 -0
- package/dist/adapters/cli/flags.d.ts.map +1 -0
- package/dist/adapters/cli/flags.js +221 -0
- package/dist/adapters/cli/flags.js.map +1 -0
- package/dist/adapters/cli/index.d.ts +12 -0
- package/dist/adapters/cli/index.d.ts.map +1 -0
- package/dist/adapters/cli/index.js +9 -0
- package/dist/adapters/cli/index.js.map +1 -0
- package/dist/adapters/cli/mappings.d.ts +17 -0
- package/dist/adapters/cli/mappings.d.ts.map +1 -0
- package/dist/adapters/cli/mappings.js +32 -0
- package/dist/adapters/cli/mappings.js.map +1 -0
- package/dist/adapters/cli/prompts.d.ts +28 -0
- package/dist/adapters/cli/prompts.d.ts.map +1 -0
- package/dist/adapters/cli/prompts.js +55 -0
- package/dist/adapters/cli/prompts.js.map +1 -0
- package/dist/adapters/cli/schemas/flags.schema.d.ts +8 -0
- package/dist/adapters/cli/schemas/flags.schema.d.ts.map +1 -0
- package/dist/adapters/cli/schemas/flags.schema.js +2 -0
- package/dist/adapters/cli/schemas/flags.schema.js.map +1 -0
- package/dist/adapters/cli/schemas/mappings.schema.d.ts +2 -0
- package/dist/adapters/cli/schemas/mappings.schema.d.ts.map +1 -0
- package/dist/adapters/cli/schemas/mappings.schema.js +2 -0
- package/dist/adapters/cli/schemas/mappings.schema.js.map +1 -0
- package/dist/adapters/cli/schemas/prompts.schema.d.ts +5 -0
- package/dist/adapters/cli/schemas/prompts.schema.d.ts.map +1 -0
- package/dist/adapters/cli/schemas/prompts.schema.js +2 -0
- package/dist/adapters/cli/schemas/prompts.schema.js.map +1 -0
- package/dist/adapters/cli/schemas/wizard.schema.d.ts +19 -0
- package/dist/adapters/cli/schemas/wizard.schema.d.ts.map +1 -0
- package/dist/adapters/cli/schemas/wizard.schema.js +2 -0
- package/dist/adapters/cli/schemas/wizard.schema.js.map +1 -0
- package/dist/adapters/cli/wizard.d.ts +33 -0
- package/dist/adapters/cli/wizard.d.ts.map +1 -0
- package/dist/adapters/cli/wizard.js +77 -0
- package/dist/adapters/cli/wizard.js.map +1 -0
- package/dist/browser/index.d.ts +7 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +4 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/cli/settings.descriptor.d.ts +9 -0
- package/dist/cli/settings.descriptor.d.ts.map +1 -0
- package/dist/cli/settings.descriptor.js +18 -0
- package/dist/cli/settings.descriptor.js.map +1 -0
- package/dist/cli/types.d.ts +57 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +9 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/client/index.d.ts +19 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +145 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/storage.d.ts +48 -0
- package/dist/client/storage.d.ts.map +1 -0
- package/dist/client/storage.js +46 -0
- package/dist/client/storage.js.map +1 -0
- package/dist/collection/collection.d.ts +46 -0
- package/dist/collection/collection.d.ts.map +1 -0
- package/dist/collection/collection.js +93 -0
- package/dist/collection/collection.js.map +1 -0
- package/dist/collection/index.d.ts +6 -0
- package/dist/collection/index.d.ts.map +1 -0
- package/dist/collection/index.js +5 -0
- package/dist/collection/index.js.map +1 -0
- package/dist/common/index.d.ts +7 -0
- package/dist/common/index.d.ts.map +1 -0
- package/dist/common/index.js +4 -0
- package/dist/common/index.js.map +1 -0
- package/dist/config.context.descriptor.d.ts +21 -0
- package/dist/config.context.descriptor.d.ts.map +1 -0
- package/dist/config.context.descriptor.js +11 -0
- package/dist/config.context.descriptor.js.map +1 -0
- package/dist/config.plugin.d.ts +15 -0
- package/dist/config.plugin.d.ts.map +1 -0
- package/dist/config.plugin.js +166 -0
- package/dist/config.plugin.js.map +1 -0
- package/dist/crud/base-types.d.ts +10 -0
- package/dist/crud/base-types.d.ts.map +1 -0
- package/dist/crud/base-types.js +10 -0
- package/dist/crud/base-types.js.map +1 -0
- package/dist/crud/index.d.ts +4 -0
- package/dist/crud/index.d.ts.map +1 -0
- package/dist/crud/index.js +2 -0
- package/dist/crud/index.js.map +1 -0
- package/dist/crud/schemas/base-types.schema.d.ts +19 -0
- package/dist/crud/schemas/base-types.schema.d.ts.map +1 -0
- package/dist/crud/schemas/base-types.schema.js +2 -0
- package/dist/crud/schemas/base-types.schema.js.map +1 -0
- package/dist/crud/schemas/shared.schema.d.ts +13 -0
- package/dist/crud/schemas/shared.schema.d.ts.map +1 -0
- package/dist/crud/schemas/shared.schema.js +2 -0
- package/dist/crud/schemas/shared.schema.js.map +1 -0
- package/dist/crud/shared.d.ts +8 -0
- package/dist/crud/shared.d.ts.map +1 -0
- package/dist/crud/shared.js +8 -0
- package/dist/crud/shared.js.map +1 -0
- package/dist/crud/types.d.ts +250 -0
- package/dist/crud/types.d.ts.map +1 -0
- package/dist/crud/types.js +22 -0
- package/dist/crud/types.js.map +1 -0
- package/dist/docs/environment.docs.descriptor.d.ts +4 -0
- package/dist/docs/environment.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/environment.docs.descriptor.js +383 -0
- package/dist/docs/environment.docs.descriptor.js.map +1 -0
- package/dist/docs/manifests.docs.descriptor.d.ts +4 -0
- package/dist/docs/manifests.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/manifests.docs.descriptor.js +503 -0
- package/dist/docs/manifests.docs.descriptor.js.map +1 -0
- package/dist/docs/validation.docs.descriptor.d.ts +4 -0
- package/dist/docs/validation.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/validation.docs.descriptor.js +441 -0
- package/dist/docs/validation.docs.descriptor.js.map +1 -0
- package/dist/doctor.d.ts +42 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/doctor.js +119 -0
- package/dist/doctor.js.map +1 -0
- package/dist/env.d.ts +28 -0
- package/dist/env.d.ts.map +1 -0
- package/dist/env.js +75 -0
- package/dist/env.js.map +1 -0
- package/dist/env.runtime.d.ts +19 -0
- package/dist/env.runtime.d.ts.map +1 -0
- package/dist/env.runtime.js +37 -0
- package/dist/env.runtime.js.map +1 -0
- package/dist/environment/current.d.ts +32 -0
- package/dist/environment/current.d.ts.map +1 -0
- package/dist/environment/current.js +91 -0
- package/dist/environment/current.js.map +1 -0
- package/dist/environment/environment.config.descriptor.d.ts +11 -0
- package/dist/environment/environment.config.descriptor.d.ts.map +1 -0
- package/dist/environment/environment.config.descriptor.js +51 -0
- package/dist/environment/environment.config.descriptor.js.map +1 -0
- package/dist/environment/environment.config.schema.d.ts +47 -0
- package/dist/environment/environment.config.schema.d.ts.map +1 -0
- package/dist/environment/environment.config.schema.js +19 -0
- package/dist/environment/environment.config.schema.js.map +1 -0
- package/dist/environment/environment.local.descriptor.d.ts +11 -0
- package/dist/environment/environment.local.descriptor.d.ts.map +1 -0
- package/dist/environment/environment.local.descriptor.js +42 -0
- package/dist/environment/environment.local.descriptor.js.map +1 -0
- package/dist/environment/environment.plugin.d.ts +9 -0
- package/dist/environment/environment.plugin.d.ts.map +1 -0
- package/dist/environment/environment.plugin.js +27 -0
- package/dist/environment/environment.plugin.js.map +1 -0
- package/dist/environment/environment.production.descriptor.d.ts +10 -0
- package/dist/environment/environment.production.descriptor.d.ts.map +1 -0
- package/dist/environment/environment.production.descriptor.js +37 -0
- package/dist/environment/environment.production.descriptor.js.map +1 -0
- package/dist/environment/environment.staging.descriptor.d.ts +11 -0
- package/dist/environment/environment.staging.descriptor.d.ts.map +1 -0
- package/dist/environment/environment.staging.descriptor.js +22 -0
- package/dist/environment/environment.staging.descriptor.js.map +1 -0
- package/dist/environment/index.d.ts +8 -0
- package/dist/environment/index.d.ts.map +1 -0
- package/dist/environment/index.js +9 -0
- package/dist/environment/index.js.map +1 -0
- package/dist/environment/kinds/environment.default.d.ts +23 -0
- package/dist/environment/kinds/environment.default.d.ts.map +1 -0
- package/dist/environment/kinds/environment.default.js +49 -0
- package/dist/environment/kinds/environment.default.js.map +1 -0
- package/dist/environment/kinds/environment.interface.d.ts +7 -0
- package/dist/environment/kinds/environment.interface.d.ts.map +1 -0
- package/dist/environment/kinds/environment.interface.js +7 -0
- package/dist/environment/kinds/environment.interface.js.map +1 -0
- package/dist/environment/kinds/environment.kind.d.ts +10 -0
- package/dist/environment/kinds/environment.kind.d.ts.map +1 -0
- package/dist/environment/kinds/environment.kind.js +57 -0
- package/dist/environment/kinds/environment.kind.js.map +1 -0
- package/dist/environment/kinds/environment.schema.d.ts +34 -0
- package/dist/environment/kinds/environment.schema.d.ts.map +1 -0
- package/dist/environment/kinds/environment.schema.js +46 -0
- package/dist/environment/kinds/environment.schema.js.map +1 -0
- package/dist/environment/kinds/index.d.ts +8 -0
- package/dist/environment/kinds/index.d.ts.map +1 -0
- package/dist/environment/kinds/index.js +7 -0
- package/dist/environment/kinds/index.js.map +1 -0
- package/dist/environment/kinds/schemas/environment.interface.schema.d.ts +11 -0
- package/dist/environment/kinds/schemas/environment.interface.schema.d.ts.map +1 -0
- package/dist/environment/kinds/schemas/environment.interface.schema.js +2 -0
- package/dist/environment/kinds/schemas/environment.interface.schema.js.map +1 -0
- package/dist/environment/kinds/schemas/environment.schema.d.ts +30 -0
- package/dist/environment/kinds/schemas/environment.schema.d.ts.map +1 -0
- package/dist/environment/kinds/schemas/environment.schema.js +2 -0
- package/dist/environment/kinds/schemas/environment.schema.js.map +1 -0
- package/dist/environment/schemas/current.schema.d.ts +20 -0
- package/dist/environment/schemas/current.schema.d.ts.map +1 -0
- package/dist/environment/schemas/current.schema.js +2 -0
- package/dist/environment/schemas/current.schema.js.map +1 -0
- package/dist/environment/schemas/environment.config.schema.d.ts +4 -0
- package/dist/environment/schemas/environment.config.schema.d.ts.map +1 -0
- package/dist/environment/schemas/environment.config.schema.js +2 -0
- package/dist/environment/schemas/environment.config.schema.js.map +1 -0
- package/dist/extensions/index.d.ts +8 -0
- package/dist/extensions/index.d.ts.map +1 -0
- package/dist/extensions/index.js +8 -0
- package/dist/extensions/index.js.map +1 -0
- package/dist/extensions/registry.d.ts +41 -0
- package/dist/extensions/registry.d.ts.map +1 -0
- package/dist/extensions/registry.js +142 -0
- package/dist/extensions/registry.js.map +1 -0
- package/dist/extensions/types.d.ts +101 -0
- package/dist/extensions/types.d.ts.map +1 -0
- package/dist/extensions/types.js +8 -0
- package/dist/extensions/types.js.map +1 -0
- package/dist/form/core/field-resolver.d.ts +42 -0
- package/dist/form/core/field-resolver.d.ts.map +1 -0
- package/dist/form/core/field-resolver.js +293 -0
- package/dist/form/core/field-resolver.js.map +1 -0
- package/dist/form/core/groups.d.ts +20 -0
- package/dist/form/core/groups.d.ts.map +1 -0
- package/dist/form/core/groups.js +69 -0
- package/dist/form/core/groups.js.map +1 -0
- package/dist/form/core/index.d.ts +8 -0
- package/dist/form/core/index.d.ts.map +1 -0
- package/dist/form/core/index.js +6 -0
- package/dist/form/core/index.js.map +1 -0
- package/dist/form/core/nested-utils.d.ts +40 -0
- package/dist/form/core/nested-utils.d.ts.map +1 -0
- package/dist/form/core/nested-utils.js +98 -0
- package/dist/form/core/nested-utils.js.map +1 -0
- package/dist/form/core/schemas/validation.schema.d.ts +9 -0
- package/dist/form/core/schemas/validation.schema.d.ts.map +1 -0
- package/dist/form/core/schemas/validation.schema.js +2 -0
- package/dist/form/core/schemas/validation.schema.js.map +1 -0
- package/dist/form/core/types.d.ts +103 -0
- package/dist/form/core/types.d.ts.map +1 -0
- package/dist/form/core/types.js +2 -0
- package/dist/form/core/types.js.map +1 -0
- package/dist/form/core/validation.d.ts +23 -0
- package/dist/form/core/validation.d.ts.map +1 -0
- package/dist/form/core/validation.js +103 -0
- package/dist/form/core/validation.js.map +1 -0
- package/dist/form/core/visibility.d.ts +37 -0
- package/dist/form/core/visibility.d.ts.map +1 -0
- package/dist/form/core/visibility.js +128 -0
- package/dist/form/core/visibility.js.map +1 -0
- package/dist/form/index.d.ts +8 -0
- package/dist/form/index.d.ts.map +1 -0
- package/dist/form/index.js +2 -0
- package/dist/form/index.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/loader/cli/index.d.ts +61 -0
- package/dist/loader/cli/index.d.ts.map +1 -0
- package/dist/loader/cli/index.js +263 -0
- package/dist/loader/cli/index.js.map +1 -0
- package/dist/loader/cli/loaders.d.ts +13 -0
- package/dist/loader/cli/loaders.d.ts.map +1 -0
- package/dist/loader/cli/loaders.js +132 -0
- package/dist/loader/cli/loaders.js.map +1 -0
- package/dist/loader/cli/types.d.ts +152 -0
- package/dist/loader/cli/types.d.ts.map +1 -0
- package/dist/loader/cli/types.js +5 -0
- package/dist/loader/cli/types.js.map +1 -0
- package/dist/loader/cli/utils.d.ts +53 -0
- package/dist/loader/cli/utils.d.ts.map +1 -0
- package/dist/loader/cli/utils.js +198 -0
- package/dist/loader/cli/utils.js.map +1 -0
- package/dist/loader/client.d.ts +18 -0
- package/dist/loader/client.d.ts.map +1 -0
- package/dist/loader/client.js +109 -0
- package/dist/loader/client.js.map +1 -0
- package/dist/loader/discovery.d.ts +48 -0
- package/dist/loader/discovery.d.ts.map +1 -0
- package/dist/loader/discovery.js +253 -0
- package/dist/loader/discovery.js.map +1 -0
- package/dist/loader/file-loader.d.ts +17 -0
- package/dist/loader/file-loader.d.ts.map +1 -0
- package/dist/loader/file-loader.js +237 -0
- package/dist/loader/file-loader.js.map +1 -0
- package/dist/loader/index.d.ts +9 -0
- package/dist/loader/index.d.ts.map +1 -0
- package/dist/loader/index.js +8 -0
- package/dist/loader/index.js.map +1 -0
- package/dist/loader/index.server.d.ts +66 -0
- package/dist/loader/index.server.d.ts.map +1 -0
- package/dist/loader/index.server.js +256 -0
- package/dist/loader/index.server.js.map +1 -0
- package/dist/loader/merge.d.ts +88 -0
- package/dist/loader/merge.d.ts.map +1 -0
- package/dist/loader/merge.js +301 -0
- package/dist/loader/merge.js.map +1 -0
- package/dist/loader/schemas/merge.schema.d.ts +8 -0
- package/dist/loader/schemas/merge.schema.d.ts.map +1 -0
- package/dist/loader/schemas/merge.schema.js +2 -0
- package/dist/loader/schemas/merge.schema.js.map +1 -0
- package/dist/loader/schemas/validation.schema.d.ts +17 -0
- package/dist/loader/schemas/validation.schema.d.ts.map +1 -0
- package/dist/loader/schemas/validation.schema.js +2 -0
- package/dist/loader/schemas/validation.schema.js.map +1 -0
- package/dist/loader/server.d.ts +3 -0
- package/dist/loader/server.d.ts.map +1 -0
- package/dist/loader/server.js +2 -0
- package/dist/loader/server.js.map +1 -0
- package/dist/loader/types.d.ts +136 -0
- package/dist/loader/types.d.ts.map +1 -0
- package/dist/loader/types.js +24 -0
- package/dist/loader/types.js.map +1 -0
- package/dist/loader/validation.d.ts +59 -0
- package/dist/loader/validation.d.ts.map +1 -0
- package/dist/loader/validation.js +218 -0
- package/dist/loader/validation.js.map +1 -0
- package/dist/manifest/builder.d.ts +172 -0
- package/dist/manifest/builder.d.ts.map +1 -0
- package/dist/manifest/builder.js +336 -0
- package/dist/manifest/builder.js.map +1 -0
- package/dist/manifest/config-manifest.d.ts +199 -0
- package/dist/manifest/config-manifest.d.ts.map +1 -0
- package/dist/manifest/config-manifest.js +388 -0
- package/dist/manifest/config-manifest.js.map +1 -0
- package/dist/manifest/index.d.ts +10 -0
- package/dist/manifest/index.d.ts.map +1 -0
- package/dist/manifest/index.js +20 -0
- package/dist/manifest/index.js.map +1 -0
- package/dist/manifest/schema.d.ts +460 -0
- package/dist/manifest/schema.d.ts.map +1 -0
- package/dist/manifest/schema.js +187 -0
- package/dist/manifest/schema.js.map +1 -0
- package/dist/manifest/schemas/builder.schema.d.ts +20 -0
- package/dist/manifest/schemas/builder.schema.d.ts.map +1 -0
- package/dist/manifest/schemas/builder.schema.js +2 -0
- package/dist/manifest/schemas/builder.schema.js.map +1 -0
- package/dist/manifest/schemas/config-manifest.schema.d.ts +2 -0
- package/dist/manifest/schemas/config-manifest.schema.d.ts.map +1 -0
- package/dist/manifest/schemas/config-manifest.schema.js +2 -0
- package/dist/manifest/schemas/config-manifest.schema.js.map +1 -0
- package/dist/manifest/schemas/schema.schema.d.ts +83 -0
- package/dist/manifest/schemas/schema.schema.d.ts.map +1 -0
- package/dist/manifest/schemas/schema.schema.js +2 -0
- package/dist/manifest/schemas/schema.schema.js.map +1 -0
- package/dist/manifest/types.d.ts +563 -0
- package/dist/manifest/types.d.ts.map +1 -0
- package/dist/manifest/types.js +9 -0
- package/dist/manifest/types.js.map +1 -0
- package/dist/routing/index.d.ts +29 -0
- package/dist/routing/index.d.ts.map +1 -0
- package/dist/routing/index.js +35 -0
- package/dist/routing/index.js.map +1 -0
- package/dist/routing/merge.d.ts +164 -0
- package/dist/routing/merge.d.ts.map +1 -0
- package/dist/routing/merge.js +460 -0
- package/dist/routing/merge.js.map +1 -0
- package/dist/routing/registry.d.ts +145 -0
- package/dist/routing/registry.d.ts.map +1 -0
- package/dist/routing/registry.js +459 -0
- package/dist/routing/registry.js.map +1 -0
- package/dist/routing/schemas/merge.schema.d.ts +5 -0
- package/dist/routing/schemas/merge.schema.d.ts.map +1 -0
- package/dist/routing/schemas/merge.schema.js +2 -0
- package/dist/routing/schemas/merge.schema.js.map +1 -0
- package/dist/routing/types.d.ts +358 -0
- package/dist/routing/types.d.ts.map +1 -0
- package/dist/routing/types.js +89 -0
- package/dist/routing/types.js.map +1 -0
- package/dist/schema/extend-zod.d.ts +137 -0
- package/dist/schema/extend-zod.d.ts.map +1 -0
- package/dist/schema/extend-zod.js +243 -0
- package/dist/schema/extend-zod.js.map +1 -0
- package/dist/schema/index.d.ts +9 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +10 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/references.d.ts +9 -0
- package/dist/schema/references.d.ts.map +1 -0
- package/dist/schema/references.js +9 -0
- package/dist/schema/references.js.map +1 -0
- package/dist/schema/resolver.d.ts +45 -0
- package/dist/schema/resolver.d.ts.map +1 -0
- package/dist/schema/resolver.js +267 -0
- package/dist/schema/resolver.js.map +1 -0
- package/dist/schema/schemas/extend-zod.schema.d.ts +16 -0
- package/dist/schema/schemas/extend-zod.schema.d.ts.map +1 -0
- package/dist/schema/schemas/extend-zod.schema.js +2 -0
- package/dist/schema/schemas/extend-zod.schema.js.map +1 -0
- package/dist/schema/schemas/references.schema.d.ts +70 -0
- package/dist/schema/schemas/references.schema.d.ts.map +1 -0
- package/dist/schema/schemas/references.schema.js +2 -0
- package/dist/schema/schemas/references.schema.js.map +1 -0
- package/dist/schemas/collection.d.ts +31 -0
- package/dist/schemas/collection.d.ts.map +1 -0
- package/dist/schemas/collection.js +22 -0
- package/dist/schemas/collection.js.map +1 -0
- package/dist/schemas/config-manifest-descriptor.d.ts +495 -0
- package/dist/schemas/config-manifest-descriptor.d.ts.map +1 -0
- package/dist/schemas/config-manifest-descriptor.js +210 -0
- package/dist/schemas/config-manifest-descriptor.js.map +1 -0
- package/dist/schemas/config-registry-state.d.ts +8 -0
- package/dist/schemas/config-registry-state.d.ts.map +1 -0
- package/dist/schemas/config-registry-state.js +6 -0
- package/dist/schemas/config-registry-state.js.map +1 -0
- package/dist/schemas/doctor.schema.d.ts +25 -0
- package/dist/schemas/doctor.schema.d.ts.map +1 -0
- package/dist/schemas/doctor.schema.js +2 -0
- package/dist/schemas/doctor.schema.js.map +1 -0
- package/dist/schemas/index.d.ts +8 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +21 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/server/index.d.ts +5 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +4 -0
- package/dist/server/index.js.map +1 -0
- package/dist/services/config-accessor.d.ts +40 -0
- package/dist/services/config-accessor.d.ts.map +1 -0
- package/dist/services/config-accessor.js +180 -0
- package/dist/services/config-accessor.js.map +1 -0
- package/dist/services/config-storage/index.d.ts +8 -0
- package/dist/services/config-storage/index.d.ts.map +1 -0
- package/dist/services/config-storage/index.js +7 -0
- package/dist/services/config-storage/index.js.map +1 -0
- package/dist/services/config-storage/service.d.ts +63 -0
- package/dist/services/config-storage/service.d.ts.map +1 -0
- package/dist/services/config-storage/service.js +234 -0
- package/dist/services/config-storage/service.js.map +1 -0
- package/dist/services/config.d.ts +3 -0
- package/dist/services/config.d.ts.map +1 -0
- package/dist/services/config.js +30 -0
- package/dist/services/config.js.map +1 -0
- package/dist/services/encryption.d.ts +114 -0
- package/dist/services/encryption.d.ts.map +1 -0
- package/dist/services/encryption.js +232 -0
- package/dist/services/encryption.js.map +1 -0
- package/dist/services/index.d.ts +12 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +16 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/loader/loader.descriptor.d.ts +103 -0
- package/dist/services/loader/loader.descriptor.d.ts.map +1 -0
- package/dist/services/loader/loader.descriptor.js +60 -0
- package/dist/services/loader/loader.descriptor.js.map +1 -0
- package/dist/services/loader/loader.impl.cloud.d.ts +55 -0
- package/dist/services/loader/loader.impl.cloud.d.ts.map +1 -0
- package/dist/services/loader/loader.impl.cloud.js +182 -0
- package/dist/services/loader/loader.impl.cloud.js.map +1 -0
- package/dist/services/loader/loader.impl.consumer.d.ts +48 -0
- package/dist/services/loader/loader.impl.consumer.d.ts.map +1 -0
- package/dist/services/loader/loader.impl.consumer.js +175 -0
- package/dist/services/loader/loader.impl.consumer.js.map +1 -0
- package/dist/services/loader/loader.impl.consumer.local-first.d.ts +59 -0
- package/dist/services/loader/loader.impl.consumer.local-first.d.ts.map +1 -0
- package/dist/services/loader/loader.impl.consumer.local-first.js +347 -0
- package/dist/services/loader/loader.impl.consumer.local-first.js.map +1 -0
- package/dist/services/manifest-utils.d.ts +47 -0
- package/dist/services/manifest-utils.d.ts.map +1 -0
- package/dist/services/manifest-utils.js +105 -0
- package/dist/services/manifest-utils.js.map +1 -0
- package/dist/services/schemas/config-accessor.schema.d.ts +10 -0
- package/dist/services/schemas/config-accessor.schema.d.ts.map +1 -0
- package/dist/services/schemas/config-accessor.schema.js +2 -0
- package/dist/services/schemas/config-accessor.schema.js.map +1 -0
- package/dist/services/schemas/encryption.schema.d.ts +22 -0
- package/dist/services/schemas/encryption.schema.d.ts.map +1 -0
- package/dist/services/schemas/encryption.schema.js +2 -0
- package/dist/services/schemas/encryption.schema.js.map +1 -0
- package/dist/services/schemas/manifest-utils.schema.d.ts +4 -0
- package/dist/services/schemas/manifest-utils.schema.d.ts.map +1 -0
- package/dist/services/schemas/manifest-utils.schema.js +2 -0
- package/dist/services/schemas/manifest-utils.schema.js.map +1 -0
- package/dist/settings/assemble.d.ts +28 -0
- package/dist/settings/assemble.d.ts.map +1 -0
- package/dist/settings/assemble.js +30 -0
- package/dist/settings/assemble.js.map +1 -0
- package/dist/settings/index.d.ts +10 -0
- package/dist/settings/index.d.ts.map +1 -0
- package/dist/settings/index.js +10 -0
- package/dist/settings/index.js.map +1 -0
- package/dist/settings/settings-section.schema.d.ts +49 -0
- package/dist/settings/settings-section.schema.d.ts.map +1 -0
- package/dist/settings/settings-section.schema.js +70 -0
- package/dist/settings/settings-section.schema.js.map +1 -0
- package/dist/storage/adapter.d.ts +11 -0
- package/dist/storage/adapter.d.ts.map +1 -0
- package/dist/storage/adapter.js +8 -0
- package/dist/storage/adapter.js.map +1 -0
- package/dist/storage/index.d.ts +8 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +8 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/schemas.d.ts +257 -0
- package/dist/storage/schemas.d.ts.map +1 -0
- package/dist/storage/schemas.js +179 -0
- package/dist/storage/schemas.js.map +1 -0
- package/dist/storage/types.d.ts +74 -0
- package/dist/storage/types.d.ts.map +1 -0
- package/dist/storage/types.js +7 -0
- package/dist/storage/types.js.map +1 -0
- package/dist/system-constants.d.ts +95 -0
- package/dist/system-constants.d.ts.map +1 -0
- package/dist/system-constants.js +110 -0
- package/dist/system-constants.js.map +1 -0
- package/package.json +417 -0
- package/src/adapters/cli/flags.ts +260 -0
- package/src/adapters/cli/index.ts +24 -0
- package/src/adapters/cli/mappings.ts +43 -0
- package/src/adapters/cli/prompts.ts +70 -0
- package/src/adapters/cli/schemas/flags.schema.ts +8 -0
- package/src/adapters/cli/schemas/mappings.schema.ts +3 -0
- package/src/adapters/cli/schemas/prompts.schema.ts +4 -0
- package/src/adapters/cli/schemas/wizard.schema.ts +21 -0
- package/src/adapters/cli/wizard.ts +106 -0
- package/src/adapters/web/components/ManifestForm.svelte +817 -0
- package/src/browser/index.ts +86 -0
- package/src/cli/settings.descriptor.ts +23 -0
- package/src/cli/types.ts +59 -0
- package/src/client/index.ts +169 -0
- package/src/client/storage.ts +76 -0
- package/src/collection/collection.ts +121 -0
- package/src/collection/index.ts +6 -0
- package/src/common/index.ts +86 -0
- package/src/config.context.descriptor.ts +12 -0
- package/src/config.plugin.ts +214 -0
- package/src/crud/base-types.ts +10 -0
- package/src/crud/index.ts +15 -0
- package/src/crud/schemas/base-types.schema.ts +20 -0
- package/src/crud/schemas/shared.schema.ts +14 -0
- package/src/crud/shared.ts +8 -0
- package/src/crud/types.ts +299 -0
- package/src/docs/environment.docs.descriptor.ts +385 -0
- package/src/docs/manifests.docs.descriptor.ts +505 -0
- package/src/docs/validation.docs.descriptor.ts +443 -0
- package/src/doctor.ts +143 -0
- package/src/env.runtime.ts +49 -0
- package/src/env.ts +91 -0
- package/src/environment/current.ts +108 -0
- package/src/environment/environment.config.descriptor.ts +60 -0
- package/src/environment/environment.config.schema.ts +24 -0
- package/src/environment/environment.local.descriptor.ts +45 -0
- package/src/environment/environment.plugin.ts +31 -0
- package/src/environment/environment.production.descriptor.ts +40 -0
- package/src/environment/environment.staging.descriptor.ts +25 -0
- package/src/environment/index.ts +22 -0
- package/src/environment/kinds/environment.default.ts +57 -0
- package/src/environment/kinds/environment.interface.ts +10 -0
- package/src/environment/kinds/environment.kind.ts +69 -0
- package/src/environment/kinds/environment.schema.ts +57 -0
- package/src/environment/kinds/index.ts +8 -0
- package/src/environment/kinds/schemas/environment.interface.schema.ts +11 -0
- package/src/environment/kinds/schemas/environment.schema.ts +24 -0
- package/src/environment/schemas/current.schema.ts +21 -0
- package/src/environment/schemas/environment.config.schema.ts +3 -0
- package/src/extensions/index.ts +26 -0
- package/src/extensions/registry.ts +179 -0
- package/src/extensions/types.ts +123 -0
- package/src/form/core/field-resolver.ts +380 -0
- package/src/form/core/groups.ts +96 -0
- package/src/form/core/index.ts +41 -0
- package/src/form/core/nested-utils.ts +115 -0
- package/src/form/core/schemas/validation.schema.ts +9 -0
- package/src/form/core/types.ts +115 -0
- package/src/form/core/validation.ts +137 -0
- package/src/form/core/visibility.ts +172 -0
- package/src/form/index.ts +36 -0
- package/src/index.ts +69 -0
- package/src/js-yaml.d.ts +4 -0
- package/src/loader/cli/index.ts +386 -0
- package/src/loader/cli/loaders.ts +153 -0
- package/src/loader/cli/types.ts +181 -0
- package/src/loader/cli/utils.ts +236 -0
- package/src/loader/client.ts +140 -0
- package/src/loader/discovery.ts +291 -0
- package/src/loader/file-loader.ts +262 -0
- package/src/loader/index.server.ts +389 -0
- package/src/loader/index.ts +18 -0
- package/src/loader/merge.ts +366 -0
- package/src/loader/schemas/merge.schema.ts +8 -0
- package/src/loader/schemas/validation.schema.ts +18 -0
- package/src/loader/server.ts +15 -0
- package/src/loader/types.ts +142 -0
- package/src/loader/validation.ts +261 -0
- package/src/manifest/builder.ts +452 -0
- package/src/manifest/config-manifest.ts +482 -0
- package/src/manifest/index.ts +92 -0
- package/src/manifest/schema.ts +249 -0
- package/src/manifest/schemas/builder.schema.ts +33 -0
- package/src/manifest/schemas/config-manifest.schema.ts +1 -0
- package/src/manifest/schemas/schema.schema.ts +99 -0
- package/src/manifest/types.ts +726 -0
- package/src/routing/index.ts +105 -0
- package/src/routing/merge.ts +589 -0
- package/src/routing/registry.ts +595 -0
- package/src/routing/schemas/merge.schema.ts +6 -0
- package/src/routing/types.ts +470 -0
- package/src/schema/extend-zod.ts +289 -0
- package/src/schema/index.ts +44 -0
- package/src/schema/references.ts +21 -0
- package/src/schema/resolver.ts +343 -0
- package/src/schema/schemas/extend-zod.schema.ts +16 -0
- package/src/schema/schemas/references.schema.ts +86 -0
- package/src/schemas/collection.ts +38 -0
- package/src/schemas/config-manifest-descriptor.ts +259 -0
- package/src/schemas/config-registry-state.ts +13 -0
- package/src/schemas/doctor.schema.ts +27 -0
- package/src/schemas/index.ts +53 -0
- package/src/server/index.ts +4 -0
- package/src/services/config-accessor.ts +218 -0
- package/src/services/config-storage/index.ts +8 -0
- package/src/services/config-storage/service.ts +355 -0
- package/src/services/config.ts +37 -0
- package/src/services/encryption.ts +260 -0
- package/src/services/index.ts +34 -0
- package/src/services/loader/loader.descriptor.ts +96 -0
- package/src/services/loader/loader.impl.cloud.ts +214 -0
- package/src/services/loader/loader.impl.consumer.local-first.ts +417 -0
- package/src/services/loader/loader.impl.consumer.ts +213 -0
- package/src/services/manifest-utils.ts +119 -0
- package/src/services/schemas/config-accessor.schema.ts +11 -0
- package/src/services/schemas/encryption.schema.ts +23 -0
- package/src/services/schemas/manifest-utils.schema.ts +4 -0
- package/src/settings/assemble.ts +46 -0
- package/src/settings/index.ts +19 -0
- package/src/settings/settings-section.schema.ts +84 -0
- package/src/storage/adapter.ts +12 -0
- package/src/storage/index.ts +48 -0
- package/src/storage/schemas.ts +215 -0
- package/src/storage/types.ts +88 -0
- package/src/system-constants.ts +121 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder.schema.d.ts","sourceRoot":"","sources":["../../../src/manifest/schemas/builder.schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAGX,UAAU,EACV,eAAe,EACf,eAAe,EAQf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAiB,MAAM,aAAa,CAAC;AAErF,MAAM,WAAW,qBAAqB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU;IAC5D,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,CAAC,CAAC;IACV,OAAO,EAAE,eAAe,CAAC;IACzB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,MAAM,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACrC,aAAa,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;CACnD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder.schema.js","sourceRoot":"","sources":["../../../src/manifest/schemas/builder.schema.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-manifest.schema.d.ts","sourceRoot":"","sources":["../../../src/manifest/schemas/config-manifest.schema.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-manifest.schema.js","sourceRoot":"","sources":["../../../src/manifest/schemas/config-manifest.schema.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
export type ConfigTier = 'system' | 'user' | 'internal';
|
|
2
|
+
export type StorageAdapter = 'auto' | 'json' | 'localdb' | 'cloud' | 'database' | 'env' | 'encrypted' | 'memory';
|
|
3
|
+
export type StorageScope = 'global' | 'project' | 'auto';
|
|
4
|
+
export type ConfigSurface = 'tui' | 'cli' | 'web' | 'bridge';
|
|
5
|
+
export type HardwareContext = 'cloud' | 'consumer' | 'gpu' | 'cpu-only';
|
|
6
|
+
export type EnvironmentContext = 'development' | 'staging' | 'production';
|
|
7
|
+
export type FieldComponent = 'input' | 'textarea' | 'number' | 'select' | 'multi-select' | 'radio-group' | 'checkbox' | 'switch' | 'slider' | 'color' | 'date' | 'datetime' | 'file' | 'password' | 'secret' | 'json' | 'code' | 'custom';
|
|
8
|
+
export type FieldWidth = 'full' | 'half' | 'third' | 'quarter';
|
|
9
|
+
export interface FieldUI {
|
|
10
|
+
label: string;
|
|
11
|
+
description?: string;
|
|
12
|
+
helpText?: string;
|
|
13
|
+
placeholder?: string;
|
|
14
|
+
icon?: string;
|
|
15
|
+
component?: FieldComponent;
|
|
16
|
+
customComponent?: string;
|
|
17
|
+
order?: number;
|
|
18
|
+
group?: string;
|
|
19
|
+
width?: FieldWidth;
|
|
20
|
+
hideLabel?: boolean;
|
|
21
|
+
className?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface FieldOption<T extends string = string> {
|
|
24
|
+
value: T;
|
|
25
|
+
label: string;
|
|
26
|
+
description?: string;
|
|
27
|
+
icon?: string;
|
|
28
|
+
disabledWhen?: unknown;
|
|
29
|
+
hiddenWhen?: unknown;
|
|
30
|
+
}
|
|
31
|
+
export interface FieldAccess {
|
|
32
|
+
isPublic?: boolean;
|
|
33
|
+
isEditable?: boolean;
|
|
34
|
+
requiredRole?: string;
|
|
35
|
+
surfaces?: ConfigSurface[];
|
|
36
|
+
}
|
|
37
|
+
export interface FieldRules {
|
|
38
|
+
visibleWhen?: unknown;
|
|
39
|
+
disabledWhen?: unknown;
|
|
40
|
+
requiredWhen?: unknown;
|
|
41
|
+
warnWhen?: unknown;
|
|
42
|
+
warnMessage?: string;
|
|
43
|
+
}
|
|
44
|
+
export interface FieldDefaults<T = unknown> {
|
|
45
|
+
base: T;
|
|
46
|
+
byHardware?: Partial<Record<HardwareContext, T>>;
|
|
47
|
+
byEnvironment?: Partial<Record<EnvironmentContext, T>>;
|
|
48
|
+
bySurface?: Partial<Record<ConfigSurface, T>>;
|
|
49
|
+
}
|
|
50
|
+
export interface ConfigFieldMeta {
|
|
51
|
+
ui: FieldUI;
|
|
52
|
+
rules?: FieldRules;
|
|
53
|
+
defaults?: FieldDefaults;
|
|
54
|
+
options?: FieldOption[];
|
|
55
|
+
access?: FieldAccess;
|
|
56
|
+
dependsOn?: string[];
|
|
57
|
+
tags?: string[];
|
|
58
|
+
}
|
|
59
|
+
export interface ConfigFieldGroup {
|
|
60
|
+
id: string;
|
|
61
|
+
label: string;
|
|
62
|
+
description?: string;
|
|
63
|
+
icon?: string;
|
|
64
|
+
order?: number;
|
|
65
|
+
collapsible?: boolean;
|
|
66
|
+
defaultCollapsed?: boolean;
|
|
67
|
+
visibleWhen?: unknown;
|
|
68
|
+
}
|
|
69
|
+
export interface ManifestStorage {
|
|
70
|
+
adapter: StorageAdapter;
|
|
71
|
+
scope?: StorageScope;
|
|
72
|
+
namespace: string;
|
|
73
|
+
encryptSensitive?: boolean;
|
|
74
|
+
sensitiveFields?: string[];
|
|
75
|
+
version?: number;
|
|
76
|
+
}
|
|
77
|
+
export interface ManifestContext {
|
|
78
|
+
hardware?: HardwareContext[];
|
|
79
|
+
environment?: EnvironmentContext[];
|
|
80
|
+
surfaces?: ConfigSurface[];
|
|
81
|
+
requiredFeatures?: string[];
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=schema.schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.schema.d.ts","sourceRoot":"","sources":["../../../src/manifest/schemas/schema.schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.schema.js","sourceRoot":"","sources":["../../../src/manifest/schemas/schema.schema.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,563 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration Manifest Types
|
|
3
|
+
*
|
|
4
|
+
* Core type definitions for the universal configuration system.
|
|
5
|
+
* Manifests define configuration schemas with UI hints, context rules,
|
|
6
|
+
* and storage configuration.
|
|
7
|
+
*/
|
|
8
|
+
import type { z } from 'zod/v4';
|
|
9
|
+
/**
|
|
10
|
+
* Configuration tiers determine storage location, visibility, and access patterns
|
|
11
|
+
*
|
|
12
|
+
* - system: Platform-level settings (database-backed, admin-only)
|
|
13
|
+
* - user: User-facing configuration (JSON for CLI/TUI, database for web)
|
|
14
|
+
* - internal: Developer/tooling configuration (env vars, constants)
|
|
15
|
+
*/
|
|
16
|
+
export type ConfigTier = 'system' | 'user' | 'internal';
|
|
17
|
+
/**
|
|
18
|
+
* Storage adapter types
|
|
19
|
+
*
|
|
20
|
+
* - auto: Automatically resolve based on tier and surface
|
|
21
|
+
* - json: JSON file storage (CLI/TUI)
|
|
22
|
+
* - localdb: LocalDB SQLite storage (unified with CLI config system)
|
|
23
|
+
* - cloud: Cloud settings API (Web/Bridge)
|
|
24
|
+
* - database: Database storage (system settings)
|
|
25
|
+
* - encrypted: Encrypted JSON storage
|
|
26
|
+
* - memory: In-memory storage (testing)
|
|
27
|
+
* - env: Environment variables (internal config)
|
|
28
|
+
*/
|
|
29
|
+
export type StorageAdapterType = 'auto' | 'json' | 'localdb' | 'cloud' | 'database' | 'env' | 'encrypted' | 'memory';
|
|
30
|
+
/**
|
|
31
|
+
* Storage scope for file-based adapters
|
|
32
|
+
*/
|
|
33
|
+
export type StorageScope = 'global' | 'project' | 'auto';
|
|
34
|
+
/**
|
|
35
|
+
* UI surfaces that can render configuration forms
|
|
36
|
+
*/
|
|
37
|
+
export type ConfigSurface = 'tui' | 'cli' | 'web' | 'bridge';
|
|
38
|
+
/**
|
|
39
|
+
* Hardware context for context-aware defaults
|
|
40
|
+
*/
|
|
41
|
+
export type HardwareContext = 'cloud' | 'consumer' | 'gpu' | 'cpu-only';
|
|
42
|
+
/**
|
|
43
|
+
* Environment context
|
|
44
|
+
*/
|
|
45
|
+
export type EnvironmentContext = 'development' | 'staging' | 'production';
|
|
46
|
+
/**
|
|
47
|
+
* Predefined pages in the application
|
|
48
|
+
* Can be extended with string for custom pages
|
|
49
|
+
*/
|
|
50
|
+
export type NavigationPage = 'settings' | 'settings/account' | 'settings/storage' | 'ai' | 'knowledge' | 'session' | string | null;
|
|
51
|
+
/**
|
|
52
|
+
* Predefined sections within pages
|
|
53
|
+
*/
|
|
54
|
+
export type NavigationSection = 'general' | 'account' | 'preferences' | 'appearance' | 'privacy' | 'advanced' | 'admin' | string;
|
|
55
|
+
/**
|
|
56
|
+
* Navigation configuration for a manifest
|
|
57
|
+
*/
|
|
58
|
+
export interface ManifestNavigation {
|
|
59
|
+
/**
|
|
60
|
+
* Page/route where this manifest appears
|
|
61
|
+
* - null = Don't show in any navigation (accessed programmatically only)
|
|
62
|
+
* - 'settings' = Global settings page
|
|
63
|
+
* - 'ai' = AI configuration page (/ai)
|
|
64
|
+
*/
|
|
65
|
+
page: NavigationPage;
|
|
66
|
+
/**
|
|
67
|
+
* Section within the page for grouping multiple manifests
|
|
68
|
+
* Sections become tabs or collapsible groups in the UI
|
|
69
|
+
*/
|
|
70
|
+
section?: NavigationSection;
|
|
71
|
+
/**
|
|
72
|
+
* Display order within the section (lower = first)
|
|
73
|
+
* @default 100
|
|
74
|
+
*/
|
|
75
|
+
order?: number;
|
|
76
|
+
/**
|
|
77
|
+
* Whether to include in global settings page
|
|
78
|
+
* Set false for domain-specific configs (AI, Knowledge, etc.)
|
|
79
|
+
* @default true (unless page is domain-specific)
|
|
80
|
+
*/
|
|
81
|
+
showInGlobalSettings?: boolean;
|
|
82
|
+
/**
|
|
83
|
+
* Parent manifest ID for hierarchical organization
|
|
84
|
+
* Child manifests appear nested under parent
|
|
85
|
+
*/
|
|
86
|
+
parent?: string;
|
|
87
|
+
/**
|
|
88
|
+
* Custom navigation label (defaults to manifest.name)
|
|
89
|
+
*/
|
|
90
|
+
label?: string;
|
|
91
|
+
/**
|
|
92
|
+
* Icon for navigation (overrides manifest.icon for nav only)
|
|
93
|
+
*/
|
|
94
|
+
icon?: string;
|
|
95
|
+
/**
|
|
96
|
+
* Tags for custom filtering beyond page/section
|
|
97
|
+
*/
|
|
98
|
+
tags?: string[];
|
|
99
|
+
/**
|
|
100
|
+
* Additional route parameters or query strings
|
|
101
|
+
*/
|
|
102
|
+
params?: Record<string, string>;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Runtime context available for conditional logic in manifests
|
|
106
|
+
*/
|
|
107
|
+
export interface ConfigContext {
|
|
108
|
+
/** Current hardware target */
|
|
109
|
+
hardware: HardwareContext;
|
|
110
|
+
/** Current environment */
|
|
111
|
+
environment: EnvironmentContext;
|
|
112
|
+
/** Current UI surface */
|
|
113
|
+
surface: ConfigSurface;
|
|
114
|
+
/** Whether user is authenticated */
|
|
115
|
+
isAuthenticated: boolean;
|
|
116
|
+
/** User's role (if authenticated) */
|
|
117
|
+
userRole?: string;
|
|
118
|
+
/** Feature flags that are enabled */
|
|
119
|
+
enabledFeatures: Set<string>;
|
|
120
|
+
/** Get a config value from another field or manifest */
|
|
121
|
+
get: <T = unknown>(path: string) => T | undefined;
|
|
122
|
+
/** Custom context values */
|
|
123
|
+
custom: Record<string, unknown>;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Rule for conditional visibility, disabled state, or requirements
|
|
127
|
+
*/
|
|
128
|
+
export type ConfigRule = ConfigFieldRule | ConfigContextRule | ConfigAndRule | ConfigOrRule | ConfigNotRule | ConfigFunctionRule;
|
|
129
|
+
/** Rule based on another field's value */
|
|
130
|
+
export interface ConfigFieldRule {
|
|
131
|
+
field: string;
|
|
132
|
+
operator: 'equals' | 'notEquals' | 'in' | 'notIn' | 'exists' | 'isEmpty';
|
|
133
|
+
value?: unknown;
|
|
134
|
+
}
|
|
135
|
+
/** Rule based on context */
|
|
136
|
+
export interface ConfigContextRule {
|
|
137
|
+
context: keyof Omit<ConfigContext, 'get' | 'custom'> | `custom.${string}`;
|
|
138
|
+
operator: 'equals' | 'notEquals' | 'in' | 'notIn' | 'exists';
|
|
139
|
+
value?: unknown;
|
|
140
|
+
}
|
|
141
|
+
/** Combine rules with AND */
|
|
142
|
+
export interface ConfigAndRule {
|
|
143
|
+
and: ConfigRule[];
|
|
144
|
+
}
|
|
145
|
+
/** Combine rules with OR */
|
|
146
|
+
export interface ConfigOrRule {
|
|
147
|
+
or: ConfigRule[];
|
|
148
|
+
}
|
|
149
|
+
/** Negate a rule */
|
|
150
|
+
export interface ConfigNotRule {
|
|
151
|
+
not: ConfigRule;
|
|
152
|
+
}
|
|
153
|
+
/** Custom function rule (for complex logic) */
|
|
154
|
+
export interface ConfigFunctionRule {
|
|
155
|
+
fn: (ctx: ConfigContext, allValues: Record<string, unknown>) => boolean;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* UI component types for rendering fields
|
|
159
|
+
*/
|
|
160
|
+
export type FieldComponent = 'input' | 'textarea' | 'number' | 'select' | 'multi-select' | 'radio-group' | 'checkbox' | 'switch' | 'slider' | 'color' | 'date' | 'datetime' | 'file' | 'password' | 'secret' | 'json' | 'code' | 'reference' | 'multi-reference' | 'custom';
|
|
161
|
+
/**
|
|
162
|
+
* Field width in form layout
|
|
163
|
+
*/
|
|
164
|
+
export type FieldWidth = 'full' | 'half' | 'third' | 'quarter';
|
|
165
|
+
/**
|
|
166
|
+
* UI configuration for a field
|
|
167
|
+
*/
|
|
168
|
+
export interface FieldUI {
|
|
169
|
+
/** Display label */
|
|
170
|
+
label: string;
|
|
171
|
+
/** Short description (shown near field) */
|
|
172
|
+
description?: string;
|
|
173
|
+
/** Longer help text (shown on hover/focus) */
|
|
174
|
+
helpText?: string;
|
|
175
|
+
/** Placeholder text for inputs */
|
|
176
|
+
placeholder?: string;
|
|
177
|
+
/** Icon (emoji or icon name) */
|
|
178
|
+
icon?: string;
|
|
179
|
+
/** Component to render */
|
|
180
|
+
component?: FieldComponent;
|
|
181
|
+
/** Custom component reference (when component is 'custom') */
|
|
182
|
+
customComponent?: string;
|
|
183
|
+
/** Display order within group */
|
|
184
|
+
order?: number;
|
|
185
|
+
/** Group this field belongs to */
|
|
186
|
+
group?: string;
|
|
187
|
+
/** Field width in form layout */
|
|
188
|
+
width?: FieldWidth;
|
|
189
|
+
/** Whether to hide the label */
|
|
190
|
+
hideLabel?: boolean;
|
|
191
|
+
/** Additional CSS classes */
|
|
192
|
+
className?: string;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Option for enum/select fields
|
|
196
|
+
*/
|
|
197
|
+
export interface FieldOption<T = string> {
|
|
198
|
+
/** Option value */
|
|
199
|
+
value: T;
|
|
200
|
+
/** Display label */
|
|
201
|
+
label: string;
|
|
202
|
+
/** Optional description */
|
|
203
|
+
description?: string;
|
|
204
|
+
/** Optional icon */
|
|
205
|
+
icon?: string;
|
|
206
|
+
/** When this option should be disabled */
|
|
207
|
+
disabledWhen?: ConfigRule;
|
|
208
|
+
/** When this option should be hidden */
|
|
209
|
+
hiddenWhen?: ConfigRule;
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Access control for system-tier fields
|
|
213
|
+
*/
|
|
214
|
+
export interface FieldAccess {
|
|
215
|
+
/** Whether this setting is visible to non-admin users */
|
|
216
|
+
isPublic?: boolean;
|
|
217
|
+
/** Whether this setting can be modified (vs read-only) */
|
|
218
|
+
isEditable?: boolean;
|
|
219
|
+
/** Required role to view/edit */
|
|
220
|
+
requiredRole?: string;
|
|
221
|
+
/** Surfaces where this field is available */
|
|
222
|
+
surfaces?: ConfigSurface[];
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Conditional rules for field behavior
|
|
226
|
+
*/
|
|
227
|
+
export interface FieldRules {
|
|
228
|
+
/** When this field should be visible */
|
|
229
|
+
visibleWhen?: ConfigRule;
|
|
230
|
+
/** When this field should be disabled */
|
|
231
|
+
disabledWhen?: ConfigRule;
|
|
232
|
+
/** When this field is required (beyond schema) */
|
|
233
|
+
requiredWhen?: ConfigRule;
|
|
234
|
+
/** When to show a warning */
|
|
235
|
+
warnWhen?: ConfigRule;
|
|
236
|
+
/** Warning message */
|
|
237
|
+
warnMessage?: string;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Context-aware default values
|
|
241
|
+
*/
|
|
242
|
+
export interface FieldDefaults<T = unknown> {
|
|
243
|
+
/** Base default value (from schema or override) */
|
|
244
|
+
base: T;
|
|
245
|
+
/** Override defaults by hardware context */
|
|
246
|
+
byHardware?: Partial<Record<HardwareContext, T>>;
|
|
247
|
+
/** Override defaults by environment */
|
|
248
|
+
byEnvironment?: Partial<Record<EnvironmentContext, T>>;
|
|
249
|
+
/** Override defaults by surface */
|
|
250
|
+
bySurface?: Partial<Record<ConfigSurface, T>>;
|
|
251
|
+
/** Custom default resolver */
|
|
252
|
+
resolver?: (ctx: ConfigContext) => T;
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Reference field configuration for entity lookups
|
|
256
|
+
*/
|
|
257
|
+
export interface ReferenceConfig {
|
|
258
|
+
/**
|
|
259
|
+
* Entity type to reference (e.g., 'model', 'provider', 'tool', 'prompt')
|
|
260
|
+
*/
|
|
261
|
+
entity: string;
|
|
262
|
+
/**
|
|
263
|
+
* Field to use as the value (default: 'id')
|
|
264
|
+
*/
|
|
265
|
+
valueField?: string;
|
|
266
|
+
/**
|
|
267
|
+
* Field to use as the display label (default: 'name')
|
|
268
|
+
*/
|
|
269
|
+
labelField?: string;
|
|
270
|
+
/**
|
|
271
|
+
* Optional description field for richer display
|
|
272
|
+
*/
|
|
273
|
+
descriptionField?: string;
|
|
274
|
+
/**
|
|
275
|
+
* API endpoint to fetch options (if not using default entity resolution)
|
|
276
|
+
*/
|
|
277
|
+
endpoint?: string;
|
|
278
|
+
/**
|
|
279
|
+
* Static filter to apply when fetching options
|
|
280
|
+
*/
|
|
281
|
+
filter?: Record<string, unknown>;
|
|
282
|
+
/**
|
|
283
|
+
* Dynamic filter based on other field values
|
|
284
|
+
* Key = filter param, Value = field path to get value from
|
|
285
|
+
*/
|
|
286
|
+
dynamicFilter?: Record<string, string>;
|
|
287
|
+
/**
|
|
288
|
+
* Whether to allow creating new entities inline
|
|
289
|
+
*/
|
|
290
|
+
allowCreate?: boolean;
|
|
291
|
+
/**
|
|
292
|
+
* For multi-reference: whether ordering matters (enables drag/drop)
|
|
293
|
+
*/
|
|
294
|
+
orderable?: boolean;
|
|
295
|
+
/**
|
|
296
|
+
* Maximum number of selections (for multi-reference)
|
|
297
|
+
*/
|
|
298
|
+
maxItems?: number;
|
|
299
|
+
/**
|
|
300
|
+
* Minimum number of selections (for multi-reference)
|
|
301
|
+
*/
|
|
302
|
+
minItems?: number;
|
|
303
|
+
/**
|
|
304
|
+
* Custom component name for specialized rendering
|
|
305
|
+
* e.g., 'ModelAndProviderSelect', 'ToolSelector'
|
|
306
|
+
*/
|
|
307
|
+
customRenderer?: string;
|
|
308
|
+
/**
|
|
309
|
+
* Additional props to pass to the custom renderer
|
|
310
|
+
*/
|
|
311
|
+
customRendererProps?: Record<string, unknown>;
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Complete field metadata
|
|
315
|
+
*/
|
|
316
|
+
export interface ConfigFieldMeta<T = unknown> {
|
|
317
|
+
/** UI configuration */
|
|
318
|
+
ui: FieldUI;
|
|
319
|
+
/** Conditional behavior rules */
|
|
320
|
+
rules?: FieldRules;
|
|
321
|
+
/** Context-aware defaults */
|
|
322
|
+
defaults?: FieldDefaults<T>;
|
|
323
|
+
/** Options for enum/select fields */
|
|
324
|
+
options?: FieldOption<T extends string ? T : string>[];
|
|
325
|
+
/** Reference configuration for entity lookup fields */
|
|
326
|
+
reference?: ReferenceConfig;
|
|
327
|
+
/** Access control (for system tier) */
|
|
328
|
+
access?: FieldAccess;
|
|
329
|
+
/** Dependencies on other fields (for validation/updates) */
|
|
330
|
+
dependsOn?: string[];
|
|
331
|
+
/** Tags for categorization/filtering */
|
|
332
|
+
tags?: string[];
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* Group of related fields for UI organization
|
|
336
|
+
*/
|
|
337
|
+
export interface ConfigFieldGroup {
|
|
338
|
+
/** Group identifier */
|
|
339
|
+
id: string;
|
|
340
|
+
/** Display label */
|
|
341
|
+
label: string;
|
|
342
|
+
/** Optional description */
|
|
343
|
+
description?: string;
|
|
344
|
+
/** Optional icon */
|
|
345
|
+
icon?: string;
|
|
346
|
+
/** Display order */
|
|
347
|
+
order?: number;
|
|
348
|
+
/** Whether group is collapsible */
|
|
349
|
+
collapsible?: boolean;
|
|
350
|
+
/** Whether group starts collapsed */
|
|
351
|
+
defaultCollapsed?: boolean;
|
|
352
|
+
/** When this group should be visible */
|
|
353
|
+
visibleWhen?: ConfigRule;
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* Storage source with priority for config loading
|
|
357
|
+
* Configs are loaded from all sources and merged by priority (higher = wins)
|
|
358
|
+
*/
|
|
359
|
+
export interface StorageSource {
|
|
360
|
+
/** Source type */
|
|
361
|
+
type: 'cwd-file' | 'user-file' | 'cwd-db' | 'user-db' | 'cloud';
|
|
362
|
+
/** Priority for merging (higher wins conflicts) */
|
|
363
|
+
priority: number;
|
|
364
|
+
/** Whether this source is read-only */
|
|
365
|
+
readonly?: boolean;
|
|
366
|
+
/** Adapter to use for this source */
|
|
367
|
+
adapter?: StorageAdapterType;
|
|
368
|
+
}
|
|
369
|
+
/**
|
|
370
|
+
* Storage configuration for a manifest
|
|
371
|
+
*/
|
|
372
|
+
export interface ManifestStorage {
|
|
373
|
+
/** Storage adapter to use (default: 'auto') */
|
|
374
|
+
adapter?: StorageAdapterType;
|
|
375
|
+
/** Scope for file-based adapters */
|
|
376
|
+
scope?: StorageScope;
|
|
377
|
+
/** Namespace/table/key prefix */
|
|
378
|
+
namespace: string;
|
|
379
|
+
/** Whether to encrypt sensitive fields */
|
|
380
|
+
encryptSensitive?: boolean;
|
|
381
|
+
/** Fields that should be encrypted */
|
|
382
|
+
sensitiveFields?: string[];
|
|
383
|
+
/** Migration version for schema changes */
|
|
384
|
+
version?: number;
|
|
385
|
+
/**
|
|
386
|
+
* Multi-source configuration (optional)
|
|
387
|
+
* When specified, config is loaded from all sources and merged by priority
|
|
388
|
+
* Default priority: cwd-file(1) < user-file(2) < cwd-db(3) < user-db(4) < cloud(5)
|
|
389
|
+
*/
|
|
390
|
+
sources?: StorageSource[];
|
|
391
|
+
/**
|
|
392
|
+
* Where new values are saved by default
|
|
393
|
+
* @default 'user-file' for user tier, 'cwd-db' for system tier
|
|
394
|
+
*/
|
|
395
|
+
defaultSaveTarget?: StorageSource['type'];
|
|
396
|
+
}
|
|
397
|
+
/**
|
|
398
|
+
* Lazy-loaded component override
|
|
399
|
+
* Uses dynamic import for code-splitting
|
|
400
|
+
*/
|
|
401
|
+
export type ComponentLoader<T = any> = () => Promise<{
|
|
402
|
+
default: T;
|
|
403
|
+
}>;
|
|
404
|
+
/**
|
|
405
|
+
* CRUD component overrides per surface
|
|
406
|
+
*/
|
|
407
|
+
export interface CRUDComponentOverrides {
|
|
408
|
+
/** Custom list/table view component */
|
|
409
|
+
list?: ComponentLoader;
|
|
410
|
+
/** Custom create form component */
|
|
411
|
+
create?: ComponentLoader;
|
|
412
|
+
/** Custom edit form component */
|
|
413
|
+
edit?: ComponentLoader;
|
|
414
|
+
/** Custom detail/read view component */
|
|
415
|
+
detail?: ComponentLoader;
|
|
416
|
+
/** Custom delete confirmation component */
|
|
417
|
+
delete?: ComponentLoader;
|
|
418
|
+
}
|
|
419
|
+
/**
|
|
420
|
+
* Component overrides for different surfaces
|
|
421
|
+
*/
|
|
422
|
+
export interface ManifestComponents {
|
|
423
|
+
/** TUI (terminal) component overrides */
|
|
424
|
+
tui?: {
|
|
425
|
+
/** Main page component for this manifest */
|
|
426
|
+
page?: ComponentLoader;
|
|
427
|
+
/** CRUD component overrides */
|
|
428
|
+
crud?: CRUDComponentOverrides;
|
|
429
|
+
};
|
|
430
|
+
/** Web (Svelte) component overrides */
|
|
431
|
+
web?: {
|
|
432
|
+
/** Main page component for this manifest */
|
|
433
|
+
page?: ComponentLoader;
|
|
434
|
+
/** CRUD component overrides */
|
|
435
|
+
crud?: CRUDComponentOverrides;
|
|
436
|
+
};
|
|
437
|
+
/** CLI (non-interactive) component overrides */
|
|
438
|
+
cli?: {
|
|
439
|
+
/** Main page component for this manifest */
|
|
440
|
+
page?: ComponentLoader;
|
|
441
|
+
};
|
|
442
|
+
}
|
|
443
|
+
/**
|
|
444
|
+
* Constraints on when a manifest applies
|
|
445
|
+
*/
|
|
446
|
+
export interface ManifestContext {
|
|
447
|
+
/** Hardware contexts where this manifest applies */
|
|
448
|
+
hardware?: HardwareContext[];
|
|
449
|
+
/** Environments where this manifest applies */
|
|
450
|
+
environment?: EnvironmentContext[];
|
|
451
|
+
/** Surfaces where this manifest applies */
|
|
452
|
+
surfaces?: ConfigSurface[];
|
|
453
|
+
/** Feature flags required for this manifest */
|
|
454
|
+
requiredFeatures?: string[];
|
|
455
|
+
}
|
|
456
|
+
/**
|
|
457
|
+
* Configuration for loading config from TypeScript/JavaScript files.
|
|
458
|
+
* Allows manifests to specify optional config file patterns like 'vibes.example.ts'.
|
|
459
|
+
*/
|
|
460
|
+
export interface ConfigFileLocation {
|
|
461
|
+
/**
|
|
462
|
+
* File pattern to look for in project root.
|
|
463
|
+
* Examples: 'vibes.example.ts', 'vibes.config.ts'
|
|
464
|
+
*/
|
|
465
|
+
pattern: string;
|
|
466
|
+
/**
|
|
467
|
+
* Named export to look for in the file.
|
|
468
|
+
* - 'default' = use default export
|
|
469
|
+
* - string = use named export (e.g., 'exampleConfig')
|
|
470
|
+
* - undefined = try default, then try export matching manifest id
|
|
471
|
+
*/
|
|
472
|
+
exportName?: string;
|
|
473
|
+
/**
|
|
474
|
+
* For record-type manifests, a 'configs' export can contain multiple named configs.
|
|
475
|
+
* This specifies the property name within that export.
|
|
476
|
+
* Example: vibes.autoloop.ts exports { configs: { simple: {...}, full: {...} } }
|
|
477
|
+
*/
|
|
478
|
+
configsExport?: string;
|
|
479
|
+
/**
|
|
480
|
+
* Priority relative to other sources (higher wins in merge).
|
|
481
|
+
* @default 3 (above localdb at 2, below CLI overrides at 4)
|
|
482
|
+
*/
|
|
483
|
+
priority?: number;
|
|
484
|
+
/**
|
|
485
|
+
* Whether this file is required (error if missing) or optional.
|
|
486
|
+
* @default false
|
|
487
|
+
*/
|
|
488
|
+
required?: boolean;
|
|
489
|
+
/**
|
|
490
|
+
* Additional file patterns to search (e.g., for legacy names).
|
|
491
|
+
* Searched in order, first match wins.
|
|
492
|
+
*/
|
|
493
|
+
fallbackPatterns?: string[];
|
|
494
|
+
}
|
|
495
|
+
/**
|
|
496
|
+
* Complete configuration manifest
|
|
497
|
+
*
|
|
498
|
+
* Defines a configuration namespace with its schema, field metadata,
|
|
499
|
+
* storage configuration, and context constraints.
|
|
500
|
+
*
|
|
501
|
+
* @template T - Zod schema type for the configuration
|
|
502
|
+
*/
|
|
503
|
+
export interface ConfigManifest<T extends z.ZodTypeAny = z.ZodTypeAny> {
|
|
504
|
+
/** Unique identifier (e.g., 'ai', 'storage', 'system.settings') */
|
|
505
|
+
id: string;
|
|
506
|
+
/** Display name */
|
|
507
|
+
name: string;
|
|
508
|
+
/** Description */
|
|
509
|
+
description?: string;
|
|
510
|
+
/** Icon (emoji or icon name) */
|
|
511
|
+
icon?: string;
|
|
512
|
+
/** Schema version for migrations */
|
|
513
|
+
version?: number;
|
|
514
|
+
/** Configuration tier */
|
|
515
|
+
tier: ConfigTier;
|
|
516
|
+
/** Category within the tier (for organization) */
|
|
517
|
+
category?: string;
|
|
518
|
+
/** Zod schema (source of truth for validation) */
|
|
519
|
+
schema: T;
|
|
520
|
+
/** Field metadata keyed by field path */
|
|
521
|
+
fields: Record<string, ConfigFieldMeta>;
|
|
522
|
+
/** Field groups for UI organization */
|
|
523
|
+
groups?: ConfigFieldGroup[];
|
|
524
|
+
/** Storage configuration */
|
|
525
|
+
storage: ManifestStorage;
|
|
526
|
+
/**
|
|
527
|
+
* Optional config file location(s) for loading config from project files.
|
|
528
|
+
* Config loaded from files is merged with storage-based config.
|
|
529
|
+
* Multiple locations are searched in order; all matching files are merged.
|
|
530
|
+
*/
|
|
531
|
+
configFiles?: ConfigFileLocation | ConfigFileLocation[];
|
|
532
|
+
/** Context constraints for when this manifest applies */
|
|
533
|
+
context?: ManifestContext;
|
|
534
|
+
/**
|
|
535
|
+
* Navigation and UI placement configuration
|
|
536
|
+
* Determines where this manifest appears in the UI hierarchy
|
|
537
|
+
* If omitted, manifest won't appear in any navigation
|
|
538
|
+
*/
|
|
539
|
+
navigation?: ManifestNavigation;
|
|
540
|
+
/**
|
|
541
|
+
* Component overrides for different surfaces
|
|
542
|
+
* Allows customizing how this manifest renders in TUI, Web, CLI
|
|
543
|
+
* Uses lazy loading for code-splitting
|
|
544
|
+
*/
|
|
545
|
+
components?: ManifestComponents;
|
|
546
|
+
/** Called after config is loaded */
|
|
547
|
+
onLoad?: (config: z.infer<T>, ctx: ConfigContext) => z.infer<T> | Promise<z.infer<T>>;
|
|
548
|
+
/** Called before config is saved */
|
|
549
|
+
onSave?: (config: z.infer<T>, ctx: ConfigContext) => z.infer<T> | Promise<z.infer<T>>;
|
|
550
|
+
/** Called when a field changes */
|
|
551
|
+
onFieldChange?: (field: string, value: unknown, allValues: Record<string, unknown>, ctx: ConfigContext) => Record<string, unknown> | void;
|
|
552
|
+
}
|
|
553
|
+
/**
|
|
554
|
+
* Extract the config type from a manifest
|
|
555
|
+
*/
|
|
556
|
+
export type InferConfigType<M extends ConfigManifest> = M extends ConfigManifest<infer T> ? z.infer<T> : never;
|
|
557
|
+
/**
|
|
558
|
+
* Extract field paths from a Zod schema
|
|
559
|
+
*/
|
|
560
|
+
export type FieldPaths<T> = T extends z.ZodObject<infer Shape> ? {
|
|
561
|
+
[K in keyof Shape]: Shape[K] extends z.ZodObject<any> ? `${K & string}` | `${K & string}.${FieldPaths<Shape[K]>}` : K & string;
|
|
562
|
+
}[keyof Shape] : never;
|
|
563
|
+
//# sourceMappingURL=types.d.ts.map
|