@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,250 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CRUD Metadata Types for Config Manifests
|
|
3
|
+
*
|
|
4
|
+
* Extends the manifest system with metadata for rendering
|
|
5
|
+
* list views, create/edit forms, and delete confirmations.
|
|
6
|
+
*/
|
|
7
|
+
import type { ReactNode } from 'react';
|
|
8
|
+
import type { ConfigManifest, ConfigFieldMeta } from '../manifest/types.ts';
|
|
9
|
+
import type { ExtensionSurface } from '../extensions/types.ts';
|
|
10
|
+
import type { ManifestRouting, NestedRouting } from '../routing/types.ts';
|
|
11
|
+
import type { BaseRecord, CRUDViewMode, FormStep } from './base-types.ts';
|
|
12
|
+
export type { BaseRecord, CRUDViewMode, FormStep } from './base-types.ts';
|
|
13
|
+
/**
|
|
14
|
+
* Column definition for list/table views
|
|
15
|
+
*/
|
|
16
|
+
export interface ListColumn<T = unknown> {
|
|
17
|
+
/** Field key to display (dot notation for nested) */
|
|
18
|
+
key: string;
|
|
19
|
+
/** Column header label */
|
|
20
|
+
label: string;
|
|
21
|
+
/** Column width (characters or 'auto') */
|
|
22
|
+
width?: number | 'auto';
|
|
23
|
+
/** Text alignment */
|
|
24
|
+
align?: 'left' | 'center' | 'right';
|
|
25
|
+
/** Whether column is sortable */
|
|
26
|
+
sortable?: boolean;
|
|
27
|
+
/** Custom render function */
|
|
28
|
+
render?: (value: unknown, record: T) => ReactNode;
|
|
29
|
+
/** Format preset (applies default render) */
|
|
30
|
+
format?: 'text' | 'number' | 'date' | 'boolean' | 'status' | 'badge';
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* List view configuration
|
|
34
|
+
*/
|
|
35
|
+
export interface ListViewConfig<T = unknown> {
|
|
36
|
+
/** Columns to display */
|
|
37
|
+
columns: ListColumn<T>[];
|
|
38
|
+
/** Field to use as display name in UI */
|
|
39
|
+
displayField: string;
|
|
40
|
+
/** Field to use as unique identifier */
|
|
41
|
+
idField?: string;
|
|
42
|
+
/** Default sort field */
|
|
43
|
+
defaultSort?: string;
|
|
44
|
+
/** Default sort direction */
|
|
45
|
+
defaultSortDirection?: 'asc' | 'desc';
|
|
46
|
+
/** Empty state message */
|
|
47
|
+
emptyMessage?: string;
|
|
48
|
+
/** Whether to show search/filter */
|
|
49
|
+
searchable?: boolean;
|
|
50
|
+
/** Fields to search in */
|
|
51
|
+
searchFields?: string[];
|
|
52
|
+
/** Row actions (edit, delete, custom) */
|
|
53
|
+
actions?: ListAction[];
|
|
54
|
+
/** Bulk actions */
|
|
55
|
+
bulkActions?: ListAction[];
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Action available in list view
|
|
59
|
+
*/
|
|
60
|
+
export interface ListAction {
|
|
61
|
+
id: string;
|
|
62
|
+
label: string;
|
|
63
|
+
icon?: string;
|
|
64
|
+
variant?: 'primary' | 'secondary' | 'danger' | 'ghost';
|
|
65
|
+
/** When action should be disabled */
|
|
66
|
+
disabledWhen?: (record: unknown) => boolean;
|
|
67
|
+
/** When action should be hidden */
|
|
68
|
+
hiddenWhen?: (record: unknown) => boolean;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Form view configuration (create/edit)
|
|
72
|
+
*/
|
|
73
|
+
export interface FormViewConfig {
|
|
74
|
+
/** Title for create mode */
|
|
75
|
+
createTitle?: string;
|
|
76
|
+
/** Title for edit mode */
|
|
77
|
+
editTitle?: string;
|
|
78
|
+
/** Fields to show in create mode (defaults to all) */
|
|
79
|
+
createFields?: string[];
|
|
80
|
+
/** Fields to show in edit mode (defaults to all) */
|
|
81
|
+
editFields?: string[];
|
|
82
|
+
/** Fields that are read-only in edit mode */
|
|
83
|
+
readOnlyInEdit?: string[];
|
|
84
|
+
/** Whether to show cancel button */
|
|
85
|
+
showCancel?: boolean;
|
|
86
|
+
/** Submit button label for create */
|
|
87
|
+
createSubmitLabel?: string;
|
|
88
|
+
/** Submit button label for edit */
|
|
89
|
+
editSubmitLabel?: string;
|
|
90
|
+
/** Layout mode */
|
|
91
|
+
layout?: 'vertical' | 'horizontal' | 'grid';
|
|
92
|
+
/**
|
|
93
|
+
* Optional wizard steps for multi-step forms.
|
|
94
|
+
* If provided, form renders as a stepped wizard.
|
|
95
|
+
* If omitted, form renders all fields in a single view.
|
|
96
|
+
*/
|
|
97
|
+
steps?: FormStep[];
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Detail/view configuration (read-only view of single record)
|
|
101
|
+
*/
|
|
102
|
+
export interface DetailViewConfig {
|
|
103
|
+
/** Title template (can include {field} placeholders) */
|
|
104
|
+
titleTemplate?: string;
|
|
105
|
+
/** Fields to display */
|
|
106
|
+
fields?: string[];
|
|
107
|
+
/** Whether to group fields */
|
|
108
|
+
grouped?: boolean;
|
|
109
|
+
/** Custom sections */
|
|
110
|
+
sections?: DetailSection[];
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Section in detail view
|
|
114
|
+
*/
|
|
115
|
+
export interface DetailSection {
|
|
116
|
+
id: string;
|
|
117
|
+
title: string;
|
|
118
|
+
icon?: string;
|
|
119
|
+
fields: string[];
|
|
120
|
+
collapsed?: boolean;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Delete confirmation configuration
|
|
124
|
+
*/
|
|
125
|
+
export interface DeleteConfig {
|
|
126
|
+
/** Confirmation message template */
|
|
127
|
+
confirmMessage?: string;
|
|
128
|
+
/** Whether to require typing name to confirm */
|
|
129
|
+
requireNameConfirmation?: boolean;
|
|
130
|
+
/** Warning message about consequences */
|
|
131
|
+
warningMessage?: string;
|
|
132
|
+
/** Related records that will be affected */
|
|
133
|
+
cascadeWarning?: string;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Auto-detection configuration for CRUD resources
|
|
137
|
+
* Enables scanning for local/cloud providers, agents, etc.
|
|
138
|
+
*/
|
|
139
|
+
export interface DetectionConfig<TDetected = unknown, TRecord = unknown> {
|
|
140
|
+
/** Whether detection is enabled */
|
|
141
|
+
enabled: boolean;
|
|
142
|
+
/** Function that performs detection */
|
|
143
|
+
detector: () => Promise<TDetected[]>;
|
|
144
|
+
/** Label for detection button */
|
|
145
|
+
label?: string;
|
|
146
|
+
/** Description of what will be detected */
|
|
147
|
+
description?: string;
|
|
148
|
+
/** Function to match detected item with existing record */
|
|
149
|
+
matcher: (detected: TDetected, existing: TRecord) => boolean;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Complete CRUD configuration for a record-type manifest
|
|
153
|
+
*/
|
|
154
|
+
export interface CRUDConfig<T = unknown, TDetected = unknown> {
|
|
155
|
+
/** List view configuration */
|
|
156
|
+
list: ListViewConfig<T>;
|
|
157
|
+
/** Form view configuration */
|
|
158
|
+
form?: FormViewConfig;
|
|
159
|
+
/** Detail view configuration */
|
|
160
|
+
detail?: DetailViewConfig;
|
|
161
|
+
/** Delete confirmation configuration */
|
|
162
|
+
delete?: DeleteConfig;
|
|
163
|
+
/** Auto-detection configuration */
|
|
164
|
+
detection?: DetectionConfig<TDetected, T>;
|
|
165
|
+
/** Whether records can be created */
|
|
166
|
+
canCreate?: boolean;
|
|
167
|
+
/** Whether records can be edited */
|
|
168
|
+
canEdit?: boolean;
|
|
169
|
+
/** Whether records can be deleted */
|
|
170
|
+
canDelete?: boolean;
|
|
171
|
+
/** Whether records can be duplicated */
|
|
172
|
+
canDuplicate?: boolean;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* A manifest for record-type configurations (providers, agents, etc.)
|
|
176
|
+
* Extends ConfigManifest with CRUD metadata for automatic UI generation.
|
|
177
|
+
*/
|
|
178
|
+
export interface RecordManifest<T = unknown, TDetected = unknown> extends ConfigManifest {
|
|
179
|
+
/** CRUD configuration for list/form/detail views */
|
|
180
|
+
crud: CRUDConfig<T, TDetected>;
|
|
181
|
+
/** Schema for individual records (vs the full config) */
|
|
182
|
+
recordSchema?: ConfigManifest['schema'];
|
|
183
|
+
/**
|
|
184
|
+
* Discriminated routing configuration (single discriminator).
|
|
185
|
+
* When present, a discriminator field value determines which variant
|
|
186
|
+
* fields, schema, and overrides are active.
|
|
187
|
+
*/
|
|
188
|
+
routing?: ManifestRouting;
|
|
189
|
+
/**
|
|
190
|
+
* Nested routing configurations (multiple discriminators).
|
|
191
|
+
* Used when a manifest contains multiple independent discriminated unions,
|
|
192
|
+
* each at a different path. For example, agent role configurations where
|
|
193
|
+
* each role (orchestration, development, etc.) has its own type discriminator.
|
|
194
|
+
*
|
|
195
|
+
* @example
|
|
196
|
+
* ```typescript
|
|
197
|
+
* nestedRoutings: [
|
|
198
|
+
* { path: 'agents.orchestration', discriminator: 'type', label: 'Orchestration Agent', variants: agentVariants },
|
|
199
|
+
* { path: 'agents.development', discriminator: 'type', label: 'Development Agent', variants: agentVariants },
|
|
200
|
+
* ]
|
|
201
|
+
* ```
|
|
202
|
+
*/
|
|
203
|
+
nestedRoutings?: NestedRouting[];
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Type guard to check if manifest has CRUD config
|
|
207
|
+
*/
|
|
208
|
+
export declare function isRecordManifest(manifest: ConfigManifest): manifest is RecordManifest;
|
|
209
|
+
/**
|
|
210
|
+
* Type guard to check if manifest has nested routings
|
|
211
|
+
*/
|
|
212
|
+
export declare function hasNestedRoutings(manifest: ConfigManifest): manifest is RecordManifest & {
|
|
213
|
+
nestedRoutings: NestedRouting[];
|
|
214
|
+
};
|
|
215
|
+
/**
|
|
216
|
+
* Props for the generic CRUD page component
|
|
217
|
+
*/
|
|
218
|
+
export interface CRUDPageProps<T extends BaseRecord = BaseRecord> {
|
|
219
|
+
/** The record manifest */
|
|
220
|
+
manifest: RecordManifest<T>;
|
|
221
|
+
/** Surface for loading extensions (enables extension loading when set) */
|
|
222
|
+
surface?: ExtensionSurface;
|
|
223
|
+
/** Whether component is embedded (removes padding and FocusZone) */
|
|
224
|
+
embedded?: boolean;
|
|
225
|
+
/** Initial view mode */
|
|
226
|
+
initialMode?: CRUDViewMode;
|
|
227
|
+
/** Selected record ID (for edit/view/delete modes) */
|
|
228
|
+
selectedId?: string;
|
|
229
|
+
/** Called when navigating between modes */
|
|
230
|
+
onModeChange?: (mode: CRUDViewMode, recordId?: string) => void;
|
|
231
|
+
/** Called after successful create */
|
|
232
|
+
onCreated?: (record: T) => void;
|
|
233
|
+
/** Called after successful update */
|
|
234
|
+
onUpdated?: (record: T) => void;
|
|
235
|
+
/** Called after successful delete */
|
|
236
|
+
onDeleted?: (recordId: string) => void;
|
|
237
|
+
/** Custom list row renderer */
|
|
238
|
+
renderListRow?: (record: T, defaultRender: () => ReactNode) => ReactNode;
|
|
239
|
+
/** Custom form field renderer */
|
|
240
|
+
renderFormField?: (field: ConfigFieldMeta, value: unknown, onChange: (value: unknown) => void, defaultRender: () => ReactNode) => ReactNode;
|
|
241
|
+
/** Custom detail field renderer */
|
|
242
|
+
renderDetailField?: (field: ConfigFieldMeta, value: unknown, defaultRender: () => ReactNode) => ReactNode;
|
|
243
|
+
/** Custom empty state */
|
|
244
|
+
renderEmpty?: () => ReactNode;
|
|
245
|
+
/** Custom header */
|
|
246
|
+
renderHeader?: (mode: CRUDViewMode, record?: T) => ReactNode;
|
|
247
|
+
/** Custom footer */
|
|
248
|
+
renderFooter?: (mode: CRUDViewMode, record?: T) => ReactNode;
|
|
249
|
+
}
|
|
250
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/crud/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CRUD Metadata Types for Config Manifests
|
|
3
|
+
*
|
|
4
|
+
* Extends the manifest system with metadata for rendering
|
|
5
|
+
* list views, create/edit forms, and delete confirmations.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Type guard to check if manifest has CRUD config
|
|
9
|
+
*/
|
|
10
|
+
export function isRecordManifest(manifest) {
|
|
11
|
+
return 'crud' in manifest && manifest.crud !== undefined;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Type guard to check if manifest has nested routings
|
|
15
|
+
*/
|
|
16
|
+
export function hasNestedRoutings(manifest) {
|
|
17
|
+
return (isRecordManifest(manifest) &&
|
|
18
|
+
'nestedRoutings' in manifest &&
|
|
19
|
+
Array.isArray(manifest.nestedRoutings) &&
|
|
20
|
+
manifest.nestedRoutings.length > 0);
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/crud/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAmOH;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAwB;IACxD,OAAO,MAAM,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAChC,QAAwB;IAExB,OAAO,CACN,gBAAgB,CAAC,QAAQ,CAAC;QAC1B,gBAAgB,IAAI,QAAQ;QAC5B,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;QACtC,QAAQ,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAClC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment.docs.descriptor.d.ts","sourceRoot":"","sources":["../../src/docs/environment.docs.descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,QAAA,MAAM,UAAU,EAAE,mBA4XjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,383 @@
|
|
|
1
|
+
const descriptor = {
|
|
2
|
+
kind: 'docs/topic',
|
|
3
|
+
id: 'config.environment',
|
|
4
|
+
title: 'Environment Configuration',
|
|
5
|
+
summary: 'Environment variables, secrets management, and resolution',
|
|
6
|
+
body: {
|
|
7
|
+
type: 'markdown',
|
|
8
|
+
sourceType: 'raw',
|
|
9
|
+
source: `---
|
|
10
|
+
title: Environment Configuration
|
|
11
|
+
summary: Environment variables, secrets management, and resolution
|
|
12
|
+
tags: [config, environment, variables, secrets, resolution]
|
|
13
|
+
parent: config
|
|
14
|
+
order: 2
|
|
15
|
+
surfaces: [cli, web, in-app]
|
|
16
|
+
hardware: [consumer, cloud]
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# Environment Configuration
|
|
20
|
+
|
|
21
|
+
Environment configuration manages environment variables, secrets, and runtime environment selection. The config system provides type-safe environment resolution with environment-specific overrides.
|
|
22
|
+
|
|
23
|
+
## Environment Types
|
|
24
|
+
|
|
25
|
+
### Defined Environments
|
|
26
|
+
|
|
27
|
+
\`\`\`ts
|
|
28
|
+
type Environment = 'development' | 'staging' | 'production' | 'test';
|
|
29
|
+
\`\`\`
|
|
30
|
+
|
|
31
|
+
### Environment Context
|
|
32
|
+
|
|
33
|
+
\`\`\`ts
|
|
34
|
+
interface EnvironmentContext {
|
|
35
|
+
name: Environment;
|
|
36
|
+
origin: string;
|
|
37
|
+
apiBaseUrl: string;
|
|
38
|
+
authOrigin: string;
|
|
39
|
+
features: {
|
|
40
|
+
analytics: boolean;
|
|
41
|
+
debugging: boolean;
|
|
42
|
+
experimental: boolean;
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
\`\`\`
|
|
46
|
+
|
|
47
|
+
## Loading Environment
|
|
48
|
+
|
|
49
|
+
### Current Environment
|
|
50
|
+
|
|
51
|
+
\`\`\`ts
|
|
52
|
+
import { loadCurrentEnvironmentSelection } from '@vibesdotdev/config';
|
|
53
|
+
|
|
54
|
+
const env = await loadCurrentEnvironmentSelection();
|
|
55
|
+
|
|
56
|
+
console.log(env.name); // 'development' | 'staging' | 'production'
|
|
57
|
+
console.log(env.origin); // 'http://localhost:3000'
|
|
58
|
+
\`\`\`
|
|
59
|
+
|
|
60
|
+
### Environment Catalog
|
|
61
|
+
|
|
62
|
+
\`\`\`ts
|
|
63
|
+
import { loadEnvironmentCatalog } from '@vibesdotdev/config';
|
|
64
|
+
|
|
65
|
+
const catalog = await loadEnvironmentCatalog();
|
|
66
|
+
|
|
67
|
+
console.log(catalog);
|
|
68
|
+
// {
|
|
69
|
+
// development: { origin: 'http://localhost:3000', ... },
|
|
70
|
+
// staging: { origin: 'https://staging.vibes.dev', ... },
|
|
71
|
+
// production: { origin: 'https://vibes.dev', ... }
|
|
72
|
+
// }
|
|
73
|
+
\`\`\`
|
|
74
|
+
|
|
75
|
+
## Environment Variables
|
|
76
|
+
|
|
77
|
+
### Accessing Variables
|
|
78
|
+
|
|
79
|
+
\`\`\`ts
|
|
80
|
+
import { env } from '@vibesdotdev/config';
|
|
81
|
+
|
|
82
|
+
const apiKey = env.get('ANTHROPIC_API_KEY');
|
|
83
|
+
const debug = env.get('DEBUG_MODE', 'false') === 'true';
|
|
84
|
+
const port = env.get('PORT', '3000');
|
|
85
|
+
\`\`\`
|
|
86
|
+
|
|
87
|
+
### Typed Environment Variables
|
|
88
|
+
|
|
89
|
+
\`\`\`ts
|
|
90
|
+
import { z } from 'zod';
|
|
91
|
+
import { env } from '@vibesdotdev/config';
|
|
92
|
+
|
|
93
|
+
const config = env.parse(
|
|
94
|
+
z.object({
|
|
95
|
+
ANTHROPIC_API_KEY: z.string().min(1),
|
|
96
|
+
DEBUG_MODE: z.boolean().default(false),
|
|
97
|
+
PORT: z.number().default(3000),
|
|
98
|
+
DATABASE_URL: z.string().url()
|
|
99
|
+
})
|
|
100
|
+
);
|
|
101
|
+
|
|
102
|
+
console.log(config.ANTHROPIC_API_KEY); // string
|
|
103
|
+
console.log(config.DEBUG_MODE); // boolean
|
|
104
|
+
console.log(config.PORT); // number
|
|
105
|
+
\`\`\`
|
|
106
|
+
|
|
107
|
+
## Secrets Management
|
|
108
|
+
|
|
109
|
+
### Secret Resolution
|
|
110
|
+
|
|
111
|
+
\`\`\`ts
|
|
112
|
+
import { resolveAuthApiBaseUrl } from '@vibesdotdev/auth';
|
|
113
|
+
|
|
114
|
+
const authUrl = await resolveAuthApiBaseUrl({
|
|
115
|
+
environment: 'production'
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
console.log(authUrl); // 'https://auth.vibes.dev'
|
|
119
|
+
\`\`\`
|
|
120
|
+
|
|
121
|
+
### Secret Sources
|
|
122
|
+
|
|
123
|
+
Secrets can come from multiple sources:
|
|
124
|
+
|
|
125
|
+
\`\`\`ts
|
|
126
|
+
interface SecretResolution {
|
|
127
|
+
source: 'env' | 'vault' | 'wrangler' | 'encrypted-local';
|
|
128
|
+
key: string;
|
|
129
|
+
resolved: string;
|
|
130
|
+
}
|
|
131
|
+
\`\`\`
|
|
132
|
+
|
|
133
|
+
**Priority order:**
|
|
134
|
+
1. Environment variable (process.env)
|
|
135
|
+
2. Vault secret (if configured)
|
|
136
|
+
3. Wrangler secret (Cloudflare)
|
|
137
|
+
4. Encrypted local file (~/.config/vibes/secrets)
|
|
138
|
+
|
|
139
|
+
### Credential References
|
|
140
|
+
|
|
141
|
+
Use credential references in config files:
|
|
142
|
+
|
|
143
|
+
\`\`\`jsonc
|
|
144
|
+
{
|
|
145
|
+
"configuration": {
|
|
146
|
+
// ✅ Secret store reference
|
|
147
|
+
"apiKey": { "source": "secret", "key": "ANTHROPIC_API_KEY" },
|
|
148
|
+
|
|
149
|
+
// ✅ Environment variable reference
|
|
150
|
+
"apiKey": { "source": "env", "key": "ANTHROPIC_API_KEY" },
|
|
151
|
+
|
|
152
|
+
// ❌ NEVER — bare credential strings
|
|
153
|
+
"apiKey": "<raw-api-key>"
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
\`\`\`
|
|
157
|
+
|
|
158
|
+
## Environment Resolution
|
|
159
|
+
|
|
160
|
+
### Resolution Order
|
|
161
|
+
|
|
162
|
+
1. **Explicit override** — \`--environment production\`
|
|
163
|
+
2. **Saved selection** — ~/.config/vibes/environment.json
|
|
164
|
+
3. **Environment detection** — Vercel, Cloudflare, etc.
|
|
165
|
+
4. **Default** — 'development'
|
|
166
|
+
|
|
167
|
+
### Programmatic Selection
|
|
168
|
+
|
|
169
|
+
\`\`\`ts
|
|
170
|
+
import { saveCurrentEnvironmentSelection } from '@vibesdotdev/config';
|
|
171
|
+
|
|
172
|
+
await saveCurrentEnvironmentSelection({
|
|
173
|
+
name: 'production',
|
|
174
|
+
origin: 'https://vibes.dev'
|
|
175
|
+
});
|
|
176
|
+
|
|
177
|
+
// Future loads will use production
|
|
178
|
+
const env = await loadCurrentEnvironmentSelection();
|
|
179
|
+
console.log(env.name); // 'production'
|
|
180
|
+
\`\`\`
|
|
181
|
+
|
|
182
|
+
### CLI Selection
|
|
183
|
+
|
|
184
|
+
\`\`\`bash
|
|
185
|
+
# Set environment
|
|
186
|
+
vibes config environment set production
|
|
187
|
+
|
|
188
|
+
# View current
|
|
189
|
+
vibes config environment get
|
|
190
|
+
|
|
191
|
+
# List available
|
|
192
|
+
vibes config environment list
|
|
193
|
+
\`\`\`
|
|
194
|
+
|
|
195
|
+
## Environment-Specific Configuration
|
|
196
|
+
|
|
197
|
+
### Config Overrides
|
|
198
|
+
|
|
199
|
+
\`\`\`ts
|
|
200
|
+
const aiConfigManifest = createConfigManifest({
|
|
201
|
+
id: 'ai',
|
|
202
|
+
schema: z.object({
|
|
203
|
+
baseUrl: z.string(),
|
|
204
|
+
timeout: z.number()
|
|
205
|
+
}),
|
|
206
|
+
fields: [
|
|
207
|
+
{
|
|
208
|
+
path: 'baseUrl',
|
|
209
|
+
label: 'API Base URL',
|
|
210
|
+
defaults: {
|
|
211
|
+
type: 'context',
|
|
212
|
+
rules: [
|
|
213
|
+
{
|
|
214
|
+
when: { environment: 'development' },
|
|
215
|
+
value: 'http://localhost:3000'
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
when: { environment: 'production' },
|
|
219
|
+
value: 'https://api.vibes.dev'
|
|
220
|
+
}
|
|
221
|
+
]
|
|
222
|
+
}
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
path: 'timeout',
|
|
226
|
+
label: 'Timeout',
|
|
227
|
+
defaults: {
|
|
228
|
+
type: 'context',
|
|
229
|
+
rules: [
|
|
230
|
+
{
|
|
231
|
+
when: { environment: 'development' },
|
|
232
|
+
value: 60000 // 60s for debugging
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
when: { environment: 'production' },
|
|
236
|
+
value: 10000 // 10s for performance
|
|
237
|
+
}
|
|
238
|
+
]
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
]
|
|
242
|
+
});
|
|
243
|
+
\`\`\`
|
|
244
|
+
|
|
245
|
+
### Feature Flags
|
|
246
|
+
|
|
247
|
+
\`\`\`ts
|
|
248
|
+
import { loadCurrentEnvironmentSelection } from '@vibesdotdev/config';
|
|
249
|
+
|
|
250
|
+
const env = await loadCurrentEnvironmentSelection();
|
|
251
|
+
|
|
252
|
+
if (env.features.experimental) {
|
|
253
|
+
// Enable experimental features
|
|
254
|
+
await enableExperimentalFeature('new-ui');
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
if (env.features.debugging) {
|
|
258
|
+
// Enable debug logging
|
|
259
|
+
logger.setLevel('debug');
|
|
260
|
+
}
|
|
261
|
+
\`\`\`
|
|
262
|
+
|
|
263
|
+
## Platform Detection
|
|
264
|
+
|
|
265
|
+
### Vercel
|
|
266
|
+
|
|
267
|
+
\`\`\`ts
|
|
268
|
+
// Auto-detected from VERCEL_ENV
|
|
269
|
+
if (process.env.VERCEL_ENV === 'production') {
|
|
270
|
+
environment = 'production';
|
|
271
|
+
} else if (process.env.VERCEL_ENV === 'preview') {
|
|
272
|
+
environment = 'staging';
|
|
273
|
+
}
|
|
274
|
+
\`\`\`
|
|
275
|
+
|
|
276
|
+
### Cloudflare Workers
|
|
277
|
+
|
|
278
|
+
\`\`\`ts
|
|
279
|
+
// Auto-detected from worker environment
|
|
280
|
+
if (env.CF_ENV === 'production') {
|
|
281
|
+
environment = 'production';
|
|
282
|
+
}
|
|
283
|
+
\`\`\`
|
|
284
|
+
|
|
285
|
+
### Local Development
|
|
286
|
+
|
|
287
|
+
\`\`\`ts
|
|
288
|
+
// Default when no platform detected
|
|
289
|
+
if (!process.env.VERCEL_ENV && !process.env.CF_ENV) {
|
|
290
|
+
environment = 'development';
|
|
291
|
+
}
|
|
292
|
+
\`\`\`
|
|
293
|
+
|
|
294
|
+
## E2E Environment Configuration
|
|
295
|
+
|
|
296
|
+
### E2E Origins
|
|
297
|
+
|
|
298
|
+
\`\`\`ts
|
|
299
|
+
import {
|
|
300
|
+
AUTH_E2E_LOCAL_ORIGIN,
|
|
301
|
+
AUTH_E2E_DEV_SERVER_ORIGIN,
|
|
302
|
+
resolveAuthE2EOrigin
|
|
303
|
+
} from '@vibesdotdev/auth';
|
|
304
|
+
|
|
305
|
+
const e2eOrigin = resolveAuthE2EOrigin({
|
|
306
|
+
mode: 'local' // or 'dev-server'
|
|
307
|
+
});
|
|
308
|
+
|
|
309
|
+
console.log(e2eOrigin); // 'http://localhost:3000' or dev server
|
|
310
|
+
\`\`\`
|
|
311
|
+
|
|
312
|
+
### E2E Base URL Resolution
|
|
313
|
+
|
|
314
|
+
\`\`\`ts
|
|
315
|
+
const authBaseUrl = await resolveAuthE2EBaseUrl({
|
|
316
|
+
e2eMode: 'local',
|
|
317
|
+
customOrigin: 'http://localhost:5173'
|
|
318
|
+
});
|
|
319
|
+
\`\`\`
|
|
320
|
+
|
|
321
|
+
## Environment Validation
|
|
322
|
+
|
|
323
|
+
### Schema Validation
|
|
324
|
+
|
|
325
|
+
\`\`\`ts
|
|
326
|
+
import { z } from 'zod';
|
|
327
|
+
import { env } from '@vibesdotdev/config';
|
|
328
|
+
|
|
329
|
+
const envSchema = z.object({
|
|
330
|
+
NODE_ENV: z.enum(['development', 'production', 'test']),
|
|
331
|
+
DATABASE_URL: z.string().url(),
|
|
332
|
+
API_KEY: z.string().min(1)
|
|
333
|
+
});
|
|
334
|
+
|
|
335
|
+
try {
|
|
336
|
+
const config = env.parse(envSchema);
|
|
337
|
+
} catch (error) {
|
|
338
|
+
console.error('Invalid environment configuration:', error);
|
|
339
|
+
process.exit(1);
|
|
340
|
+
}
|
|
341
|
+
\`\`\`
|
|
342
|
+
|
|
343
|
+
### Required Variables
|
|
344
|
+
|
|
345
|
+
\`\`\`ts
|
|
346
|
+
const requiredVars = [
|
|
347
|
+
'DATABASE_URL',
|
|
348
|
+
'API_KEY',
|
|
349
|
+
'AUTH_SECRET'
|
|
350
|
+
];
|
|
351
|
+
|
|
352
|
+
for (const variable of requiredVars) {
|
|
353
|
+
if (!process.env[variable]) {
|
|
354
|
+
throw new Error(\`Missing required environment variable: \${variable}\`);
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
\`\`\`
|
|
358
|
+
|
|
359
|
+
## Best Practices
|
|
360
|
+
|
|
361
|
+
1. **Use typed environment variables** — Zod schemas for validation
|
|
362
|
+
2. **Never commit secrets** — Use credential references
|
|
363
|
+
3. **Provide sensible defaults** — Especially for local development
|
|
364
|
+
4. **Validate on startup** — Fail fast on missing required vars
|
|
365
|
+
5. **Document required variables** — In README or .env.example
|
|
366
|
+
6. **Use environment-specific configs** — Different settings per environment
|
|
367
|
+
|
|
368
|
+
:::card{title="See also"}
|
|
369
|
+
- [\`config.manifests\`](config.manifests) — Configuration manifests
|
|
370
|
+
- [\`config.validation\`](config.validation) — Schema validation
|
|
371
|
+
- [\`auth.providers\`](auth.providers) — Auth provider configuration
|
|
372
|
+
:::
|
|
373
|
+
`
|
|
374
|
+
},
|
|
375
|
+
parent: 'config',
|
|
376
|
+
order: 2,
|
|
377
|
+
tags: ['config', 'environment', 'variables', 'secrets', 'resolution'],
|
|
378
|
+
surfaces: ['cli', 'web', 'in-app'],
|
|
379
|
+
hardware: ['consumer', 'cloud'],
|
|
380
|
+
enabled: true
|
|
381
|
+
};
|
|
382
|
+
export default descriptor;
|
|
383
|
+
//# sourceMappingURL=environment.docs.descriptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment.docs.descriptor.js","sourceRoot":"","sources":["../../src/docs/environment.docs.descriptor.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,GAAwB;IACvC,IAAI,EAAE,YAAY;IAClB,EAAE,EAAE,oBAAoB;IACxB,KAAK,EAAE,2BAA2B;IAClC,OAAO,EAAE,2DAA2D;IACpE,IAAI,EAAE;QACL,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4WT;KACC;IACD,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,CAAC;IACrE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC;IAClC,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC;IAC/B,OAAO,EAAE,IAAI;CACb,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifests.docs.descriptor.d.ts","sourceRoot":"","sources":["../../src/docs/manifests.docs.descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,QAAA,MAAM,UAAU,EAAE,mBAofjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|