@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,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config Merge Utilities
|
|
3
|
+
*
|
|
4
|
+
* Deep merge configs with priority handling.
|
|
5
|
+
* Higher priority sources override lower priority ones.
|
|
6
|
+
*
|
|
7
|
+
* Supports graceful validation where invalid fields are discarded
|
|
8
|
+
* per-source, allowing valid fields from lower-priority sources
|
|
9
|
+
* to fill in gaps.
|
|
10
|
+
*/
|
|
11
|
+
import type { z } from 'zod/v4';
|
|
12
|
+
import { type LoadedConfigSource } from './types.ts';
|
|
13
|
+
/**
|
|
14
|
+
* Deep merge two objects
|
|
15
|
+
* Source values override target values.
|
|
16
|
+
* Both plain objects are merged recursively.
|
|
17
|
+
* Arrays are replaced, not merged.
|
|
18
|
+
*/
|
|
19
|
+
export declare function deepMerge<T extends Record<string, unknown>>(target: T, source: Partial<T>): T;
|
|
20
|
+
/**
|
|
21
|
+
* Merge multiple config sources in priority order
|
|
22
|
+
*
|
|
23
|
+
* Sources with lower priority are merged first, so higher priority
|
|
24
|
+
* sources override them.
|
|
25
|
+
*
|
|
26
|
+
* @param sources - Array of loaded config sources
|
|
27
|
+
* @returns Merged config object
|
|
28
|
+
*/
|
|
29
|
+
export declare function mergeConfigSources<T extends Record<string, unknown>>(sources: LoadedConfigSource<T>[]): T;
|
|
30
|
+
/**
|
|
31
|
+
* Merge configs for record-type manifests
|
|
32
|
+
*
|
|
33
|
+
* For record manifests, we merge by record ID.
|
|
34
|
+
* Later sources can override or add records.
|
|
35
|
+
*/
|
|
36
|
+
export declare function mergeRecordConfigs<T extends {
|
|
37
|
+
id: string;
|
|
38
|
+
}>(sources: LoadedConfigSource<Record<string, T> | T[]>[]): Record<string, T>;
|
|
39
|
+
/**
|
|
40
|
+
* Create a defaults source from schema defaults or provided defaults
|
|
41
|
+
* Accepts Partial<T> since defaults don't need to be complete
|
|
42
|
+
*/
|
|
43
|
+
export declare function createDefaultsSource<T>(defaults: Partial<T>): LoadedConfigSource<T>;
|
|
44
|
+
/**
|
|
45
|
+
* Create a storage source from adapter data
|
|
46
|
+
*/
|
|
47
|
+
export declare function createStorageSource<T>(data: T | null): LoadedConfigSource<T> | null;
|
|
48
|
+
import type { ValidatedMergeResult } from './schemas/merge.schema.ts';
|
|
49
|
+
export type { ValidatedMergeResult } from './schemas/merge.schema.ts';
|
|
50
|
+
/**
|
|
51
|
+
* Merge config sources with per-field validation.
|
|
52
|
+
*
|
|
53
|
+
* Each source's data is validated field-by-field against the schema.
|
|
54
|
+
* Invalid fields are discarded, allowing valid fields from lower-priority
|
|
55
|
+
* sources to be used instead.
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```ts
|
|
59
|
+
* // Project config has invalid toolApprovalMode
|
|
60
|
+
* const projectSource = { data: { name: 'Dev', toolApprovalMode: 'invalid' }, priority: 3 };
|
|
61
|
+
* // User config has valid toolApprovalMode
|
|
62
|
+
* const userSource = { data: { toolApprovalMode: 'auto-approve-safe' }, priority: 1 };
|
|
63
|
+
*
|
|
64
|
+
* const result = mergeConfigSourcesWithValidation([projectSource, userSource], schema);
|
|
65
|
+
* // result.data = { name: 'Dev', toolApprovalMode: 'auto-approve-safe' }
|
|
66
|
+
* // result.issues = Map { 'project' => [{ path: ['toolApprovalMode'], ... }] }
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
export declare function mergeConfigSourcesWithValidation<T extends Record<string, unknown>>(sources: LoadedConfigSource<T>[], schema: z.ZodType<T>, options?: {
|
|
70
|
+
/** Whether to log validation issues */
|
|
71
|
+
logIssues?: boolean;
|
|
72
|
+
/** Custom logger */
|
|
73
|
+
logger?: (message: string) => void;
|
|
74
|
+
}): ValidatedMergeResult<T>;
|
|
75
|
+
/**
|
|
76
|
+
* Merge record configs with per-record, per-field validation.
|
|
77
|
+
*
|
|
78
|
+
* Each record in each source is validated field-by-field.
|
|
79
|
+
* Invalid fields are discarded, allowing valid fields from
|
|
80
|
+
* lower-priority sources to fill in.
|
|
81
|
+
*/
|
|
82
|
+
export declare function mergeRecordConfigsWithValidation<T extends {
|
|
83
|
+
id: string;
|
|
84
|
+
}>(sources: LoadedConfigSource<Record<string, T> | T[]>[], recordSchema: z.ZodType<T>, options?: {
|
|
85
|
+
logIssues?: boolean;
|
|
86
|
+
logger?: (message: string) => void;
|
|
87
|
+
}): ValidatedMergeResult<Record<string, T>>;
|
|
88
|
+
//# sourceMappingURL=merge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../src/loader/merge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,KAAK,kBAAkB,EAAqB,MAAM,YAAY,CAAC;AAmBxE;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAwB7F;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,GAC9B,CAAC,CAsBH;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAC1D,OAAO,EAAE,kBAAkB,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GACpD,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAsCnB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAQnF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,kBAAkB,CAAC,CAAC,CAAC,GAAG,IAAI,CAYnF;AAID,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,YAAY,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,gCAAgC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjF,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,EAChC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE;IACT,uCAAuC;IACvC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oBAAoB;IACpB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,GACC,oBAAoB,CAAC,CAAC,CAAC,CA8DzB;AAED;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EACxE,OAAO,EAAE,kBAAkB,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EACtD,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAC1B,OAAO,CAAC,EAAE;IACT,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,GACC,oBAAoB,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CA4EzC"}
|
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config Merge Utilities
|
|
3
|
+
*
|
|
4
|
+
* Deep merge configs with priority handling.
|
|
5
|
+
* Higher priority sources override lower priority ones.
|
|
6
|
+
*
|
|
7
|
+
* Supports graceful validation where invalid fields are discarded
|
|
8
|
+
* per-source, allowing valid fields from lower-priority sources
|
|
9
|
+
* to fill in gaps.
|
|
10
|
+
*/
|
|
11
|
+
import { CONFIG_PRIORITIES } from "./types.js";
|
|
12
|
+
import { validateGracefully, formatValidationIssues } from "./validation.js";
|
|
13
|
+
/**
|
|
14
|
+
* Check if value is a plain object (not array, null, Date, etc.)
|
|
15
|
+
*/
|
|
16
|
+
function isPlainObject(value) {
|
|
17
|
+
if (typeof value !== 'object' || value === null)
|
|
18
|
+
return false;
|
|
19
|
+
if (Array.isArray(value))
|
|
20
|
+
return false;
|
|
21
|
+
if (value instanceof Date)
|
|
22
|
+
return false;
|
|
23
|
+
if (value instanceof RegExp)
|
|
24
|
+
return false;
|
|
25
|
+
if (value instanceof Map || value instanceof Set)
|
|
26
|
+
return false;
|
|
27
|
+
return Object.getPrototypeOf(value) === Object.prototype;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Deep merge two objects
|
|
31
|
+
* Source values override target values.
|
|
32
|
+
* Both plain objects are merged recursively.
|
|
33
|
+
* Arrays are replaced, not merged.
|
|
34
|
+
*/
|
|
35
|
+
export function deepMerge(target, source) {
|
|
36
|
+
const result = { ...target };
|
|
37
|
+
for (const key in source) {
|
|
38
|
+
const sourceValue = source[key];
|
|
39
|
+
const targetValue = result[key];
|
|
40
|
+
if (sourceValue === undefined) {
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
// Both are plain objects - merge recursively
|
|
44
|
+
if (isPlainObject(sourceValue) && isPlainObject(targetValue)) {
|
|
45
|
+
result[key] = deepMerge(targetValue, sourceValue);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
// Override with source value
|
|
49
|
+
result[key] = sourceValue;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return result;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Merge multiple config sources in priority order
|
|
56
|
+
*
|
|
57
|
+
* Sources with lower priority are merged first, so higher priority
|
|
58
|
+
* sources override them.
|
|
59
|
+
*
|
|
60
|
+
* @param sources - Array of loaded config sources
|
|
61
|
+
* @returns Merged config object
|
|
62
|
+
*/
|
|
63
|
+
export function mergeConfigSources(sources) {
|
|
64
|
+
// Sort by priority (lowest first)
|
|
65
|
+
const sorted = [...sources]
|
|
66
|
+
.filter((s) => s.loaded && s.data !== null && s.data !== undefined)
|
|
67
|
+
.sort((a, b) => a.priority - b.priority);
|
|
68
|
+
if (sorted.length === 0) {
|
|
69
|
+
return {};
|
|
70
|
+
}
|
|
71
|
+
// Start with empty object and merge each source
|
|
72
|
+
let result = {};
|
|
73
|
+
for (const source of sorted) {
|
|
74
|
+
if (isPlainObject(source.data)) {
|
|
75
|
+
result = deepMerge(result, source.data);
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
// Non-object data - just use it directly
|
|
79
|
+
result = source.data;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return result;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Merge configs for record-type manifests
|
|
86
|
+
*
|
|
87
|
+
* For record manifests, we merge by record ID.
|
|
88
|
+
* Later sources can override or add records.
|
|
89
|
+
*/
|
|
90
|
+
export function mergeRecordConfigs(sources) {
|
|
91
|
+
const sorted = [...sources]
|
|
92
|
+
.filter((s) => s.loaded && s.data !== null && s.data !== undefined)
|
|
93
|
+
.sort((a, b) => a.priority - b.priority);
|
|
94
|
+
const result = {};
|
|
95
|
+
for (const source of sorted) {
|
|
96
|
+
const data = source.data;
|
|
97
|
+
if (Array.isArray(data)) {
|
|
98
|
+
// Array of records - merge by ID
|
|
99
|
+
for (const record of data) {
|
|
100
|
+
if (record && typeof record === 'object' && 'id' in record) {
|
|
101
|
+
const existing = result[record.id];
|
|
102
|
+
if (existing && isPlainObject(existing) && isPlainObject(record)) {
|
|
103
|
+
result[record.id] = deepMerge(existing, record);
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
result[record.id] = record;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
else if (isPlainObject(data)) {
|
|
112
|
+
// Object keyed by ID
|
|
113
|
+
for (const [id, record] of Object.entries(data)) {
|
|
114
|
+
if (record && typeof record === 'object') {
|
|
115
|
+
const existing = result[id];
|
|
116
|
+
if (existing && isPlainObject(existing) && isPlainObject(record)) {
|
|
117
|
+
result[id] = deepMerge(existing, record);
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
result[id] = { ...record, id };
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return result;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Create a defaults source from schema defaults or provided defaults
|
|
130
|
+
* Accepts Partial<T> since defaults don't need to be complete
|
|
131
|
+
*/
|
|
132
|
+
export function createDefaultsSource(defaults) {
|
|
133
|
+
return {
|
|
134
|
+
source: 'defaults',
|
|
135
|
+
scope: 'defaults',
|
|
136
|
+
priority: CONFIG_PRIORITIES.DEFAULTS,
|
|
137
|
+
data: defaults, // Defaults are merged with other sources
|
|
138
|
+
loaded: true
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Create a storage source from adapter data
|
|
143
|
+
*/
|
|
144
|
+
export function createStorageSource(data) {
|
|
145
|
+
if (data === null || data === undefined) {
|
|
146
|
+
return null;
|
|
147
|
+
}
|
|
148
|
+
return {
|
|
149
|
+
source: 'storage',
|
|
150
|
+
scope: 'storage',
|
|
151
|
+
priority: CONFIG_PRIORITIES.STORAGE,
|
|
152
|
+
data,
|
|
153
|
+
loaded: true
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Merge config sources with per-field validation.
|
|
158
|
+
*
|
|
159
|
+
* Each source's data is validated field-by-field against the schema.
|
|
160
|
+
* Invalid fields are discarded, allowing valid fields from lower-priority
|
|
161
|
+
* sources to be used instead.
|
|
162
|
+
*
|
|
163
|
+
* @example
|
|
164
|
+
* ```ts
|
|
165
|
+
* // Project config has invalid toolApprovalMode
|
|
166
|
+
* const projectSource = { data: { name: 'Dev', toolApprovalMode: 'invalid' }, priority: 3 };
|
|
167
|
+
* // User config has valid toolApprovalMode
|
|
168
|
+
* const userSource = { data: { toolApprovalMode: 'auto-approve-safe' }, priority: 1 };
|
|
169
|
+
*
|
|
170
|
+
* const result = mergeConfigSourcesWithValidation([projectSource, userSource], schema);
|
|
171
|
+
* // result.data = { name: 'Dev', toolApprovalMode: 'auto-approve-safe' }
|
|
172
|
+
* // result.issues = Map { 'project' => [{ path: ['toolApprovalMode'], ... }] }
|
|
173
|
+
* ```
|
|
174
|
+
*/
|
|
175
|
+
export function mergeConfigSourcesWithValidation(sources, schema, options) {
|
|
176
|
+
const { logIssues = false, logger = console.warn } = options ?? {};
|
|
177
|
+
// Sort by priority (lowest first - will be overridden by higher)
|
|
178
|
+
const sorted = [...sources]
|
|
179
|
+
.filter((s) => s.loaded && s.data !== null && s.data !== undefined)
|
|
180
|
+
.sort((a, b) => a.priority - b.priority);
|
|
181
|
+
if (sorted.length === 0) {
|
|
182
|
+
return {
|
|
183
|
+
data: {},
|
|
184
|
+
issues: new Map(),
|
|
185
|
+
hasIssues: false,
|
|
186
|
+
contributingSources: []
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
const allIssues = new Map();
|
|
190
|
+
const contributingSources = [];
|
|
191
|
+
// Validate and merge each source
|
|
192
|
+
let result = {};
|
|
193
|
+
for (const source of sorted) {
|
|
194
|
+
if (!isPlainObject(source.data)) {
|
|
195
|
+
// Non-object data - validate whole thing
|
|
196
|
+
const validation = validateGracefully(schema, source.data);
|
|
197
|
+
if (validation.hasIssues) {
|
|
198
|
+
allIssues.set(source.source, validation.issues);
|
|
199
|
+
if (logIssues) {
|
|
200
|
+
logger(formatValidationIssues(validation.issues, source.source));
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
if (Object.keys(validation.valid).length > 0) {
|
|
204
|
+
result = validation.valid;
|
|
205
|
+
contributingSources.push(source.source);
|
|
206
|
+
}
|
|
207
|
+
continue;
|
|
208
|
+
}
|
|
209
|
+
// Validate per-field
|
|
210
|
+
const validation = validateGracefully(schema, source.data);
|
|
211
|
+
if (validation.hasIssues) {
|
|
212
|
+
allIssues.set(source.source, validation.issues);
|
|
213
|
+
if (logIssues) {
|
|
214
|
+
logger(formatValidationIssues(validation.issues, source.source));
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
// Merge valid fields (higher priority overrides lower)
|
|
218
|
+
if (Object.keys(validation.valid).length > 0) {
|
|
219
|
+
result = deepMerge(result, validation.valid);
|
|
220
|
+
contributingSources.push(source.source);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
return {
|
|
224
|
+
data: result,
|
|
225
|
+
issues: allIssues,
|
|
226
|
+
hasIssues: allIssues.size > 0,
|
|
227
|
+
contributingSources
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Merge record configs with per-record, per-field validation.
|
|
232
|
+
*
|
|
233
|
+
* Each record in each source is validated field-by-field.
|
|
234
|
+
* Invalid fields are discarded, allowing valid fields from
|
|
235
|
+
* lower-priority sources to fill in.
|
|
236
|
+
*/
|
|
237
|
+
export function mergeRecordConfigsWithValidation(sources, recordSchema, options) {
|
|
238
|
+
const { logIssues = false, logger = console.warn } = options ?? {};
|
|
239
|
+
const sorted = [...sources]
|
|
240
|
+
.filter((s) => s.loaded && s.data !== null && s.data !== undefined)
|
|
241
|
+
.sort((a, b) => a.priority - b.priority);
|
|
242
|
+
const result = {};
|
|
243
|
+
const allIssues = new Map();
|
|
244
|
+
const contributingSources = [];
|
|
245
|
+
for (const source of sorted) {
|
|
246
|
+
const data = source.data;
|
|
247
|
+
const sourceIssues = [];
|
|
248
|
+
let contributed = false;
|
|
249
|
+
// Normalize to record format
|
|
250
|
+
let records;
|
|
251
|
+
if (Array.isArray(data)) {
|
|
252
|
+
records = {};
|
|
253
|
+
for (const item of data) {
|
|
254
|
+
if (item && typeof item === 'object' && 'id' in item) {
|
|
255
|
+
records[item.id] = item;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
else if (isPlainObject(data)) {
|
|
260
|
+
records = data;
|
|
261
|
+
}
|
|
262
|
+
else {
|
|
263
|
+
continue;
|
|
264
|
+
}
|
|
265
|
+
// Validate and merge each record
|
|
266
|
+
for (const [id, record] of Object.entries(records)) {
|
|
267
|
+
if (!record || typeof record !== 'object')
|
|
268
|
+
continue;
|
|
269
|
+
const validation = validateGracefully(recordSchema, record);
|
|
270
|
+
if (validation.hasIssues) {
|
|
271
|
+
// Prefix issues with record ID
|
|
272
|
+
sourceIssues.push(...validation.issues.map((issue) => ({
|
|
273
|
+
...issue,
|
|
274
|
+
path: [id, ...issue.path]
|
|
275
|
+
})));
|
|
276
|
+
}
|
|
277
|
+
// Merge valid fields into this record
|
|
278
|
+
if (Object.keys(validation.valid).length > 0) {
|
|
279
|
+
const existing = result[id] ?? {};
|
|
280
|
+
result[id] = deepMerge(existing, { ...validation.valid, id });
|
|
281
|
+
contributed = true;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
if (sourceIssues.length > 0) {
|
|
285
|
+
allIssues.set(source.source, sourceIssues);
|
|
286
|
+
if (logIssues) {
|
|
287
|
+
logger(formatValidationIssues(sourceIssues, source.source));
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
if (contributed) {
|
|
291
|
+
contributingSources.push(source.source);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
return {
|
|
295
|
+
data: result,
|
|
296
|
+
issues: allIssues,
|
|
297
|
+
hasIssues: allIssues.size > 0,
|
|
298
|
+
contributingSources
|
|
299
|
+
};
|
|
300
|
+
}
|
|
301
|
+
//# sourceMappingURL=merge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../src/loader/merge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { FieldValidationIssue } from './validation.schema.ts';
|
|
2
|
+
export interface ValidatedMergeResult<T> {
|
|
3
|
+
data: T;
|
|
4
|
+
issues: Map<string, FieldValidationIssue[]>;
|
|
5
|
+
hasIssues: boolean;
|
|
6
|
+
contributingSources: string[];
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=merge.schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge.schema.d.ts","sourceRoot":"","sources":["../../../src/loader/schemas/merge.schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,MAAM,WAAW,oBAAoB,CAAC,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;IAC5C,SAAS,EAAE,OAAO,CAAC;IACnB,mBAAmB,EAAE,MAAM,EAAE,CAAC;CAC9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge.schema.js","sourceRoot":"","sources":["../../../src/loader/schemas/merge.schema.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface FieldValidationIssue {
|
|
2
|
+
path: (string | number)[];
|
|
3
|
+
message: string;
|
|
4
|
+
invalidValue?: unknown;
|
|
5
|
+
expected?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface FieldValidationResult<T> {
|
|
8
|
+
valid: Partial<T>;
|
|
9
|
+
issues: FieldValidationIssue[];
|
|
10
|
+
hasIssues: boolean;
|
|
11
|
+
}
|
|
12
|
+
export interface RecordValidationResult<T> {
|
|
13
|
+
valid: Record<string, Partial<T>>;
|
|
14
|
+
issues: Map<string, FieldValidationIssue[]>;
|
|
15
|
+
hasIssues: boolean;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=validation.schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.schema.d.ts","sourceRoot":"","sources":["../../../src/loader/schemas/validation.schema.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACpC,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACvC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAClB,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC/B,SAAS,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB,CAAC,CAAC;IACxC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;IAC5C,SAAS,EAAE,OAAO,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.schema.js","sourceRoot":"","sources":["../../../src/loader/schemas/validation.schema.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export type { ConfigLoadResult as ServerConfigLoadResult, DiscoveredConfigFile, DiscoveryOptions, LoadOptions as ServerLoadOptions, LoadedConfigSource as ServerLoadedConfigSource } from './index.server.ts';
|
|
2
|
+
export { loadConfigFromManifest as serverLoadConfigFromManifest, loadRecordConfigFromManifest as serverLoadRecordConfigFromManifest, hasConfigFiles, getConfigLoadDebugInfo, discoverConfigFiles, loadConfigFromPath } from './index.server.ts';
|
|
3
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/loader/server.ts"],"names":[],"mappings":"AAAA,YAAY,EACX,gBAAgB,IAAI,sBAAsB,EAC1C,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,IAAI,iBAAiB,EAChC,kBAAkB,IAAI,wBAAwB,EAC9C,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACN,sBAAsB,IAAI,4BAA4B,EACtD,4BAA4B,IAAI,kCAAkC,EAClE,cAAc,EACd,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/loader/server.ts"],"names":[],"mappings":"AAOA,OAAO,EACN,sBAAsB,IAAI,4BAA4B,EACtD,4BAA4B,IAAI,kCAAkC,EAClE,cAAc,EACd,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config File Loader Types
|
|
3
|
+
*
|
|
4
|
+
* Types for the multi-source config file loading system.
|
|
5
|
+
*/
|
|
6
|
+
import type { ConfigManifest } from '../manifest/types.ts';
|
|
7
|
+
/**
|
|
8
|
+
* Supported config file formats
|
|
9
|
+
*/
|
|
10
|
+
export type ConfigFileFormat = 'ts' | 'js' | 'json' | 'jsonc' | 'yaml';
|
|
11
|
+
/**
|
|
12
|
+
* Config file scope (determines search paths)
|
|
13
|
+
*/
|
|
14
|
+
export type ConfigFileScope = 'global' | 'local' | 'project';
|
|
15
|
+
/**
|
|
16
|
+
* Priority levels for config sources
|
|
17
|
+
* Higher number = higher priority (wins in merge)
|
|
18
|
+
*/
|
|
19
|
+
export declare const CONFIG_PRIORITIES: {
|
|
20
|
+
/** Schema defaults */
|
|
21
|
+
readonly DEFAULTS: 0;
|
|
22
|
+
/** Global: ~/.vibes/{namespace}.* */
|
|
23
|
+
readonly GLOBAL: 1;
|
|
24
|
+
/** Local: ./.vibes/{namespace}.* */
|
|
25
|
+
readonly LOCAL: 2;
|
|
26
|
+
/** Project: ./vibes.{namespace}.* */
|
|
27
|
+
readonly PROJECT: 3;
|
|
28
|
+
/** Storage adapter (localdb/json) - user edits */
|
|
29
|
+
readonly STORAGE: 4;
|
|
30
|
+
/** CLI overrides */
|
|
31
|
+
readonly CLI: 5;
|
|
32
|
+
};
|
|
33
|
+
export type ConfigPriority = (typeof CONFIG_PRIORITIES)[keyof typeof CONFIG_PRIORITIES];
|
|
34
|
+
/**
|
|
35
|
+
* A discovered config file
|
|
36
|
+
*/
|
|
37
|
+
export interface DiscoveredConfigFile {
|
|
38
|
+
/** Absolute path to the file */
|
|
39
|
+
path: string;
|
|
40
|
+
/** File format */
|
|
41
|
+
format: ConfigFileFormat;
|
|
42
|
+
/** Scope this file belongs to */
|
|
43
|
+
scope: ConfigFileScope;
|
|
44
|
+
/** Priority for merging */
|
|
45
|
+
priority: ConfigPriority;
|
|
46
|
+
/** Whether the file exists */
|
|
47
|
+
exists: boolean;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* A loaded config source
|
|
51
|
+
*/
|
|
52
|
+
export interface LoadedConfigSource<T = unknown> {
|
|
53
|
+
/** Source identifier (file path or 'storage' or 'defaults') */
|
|
54
|
+
source: string;
|
|
55
|
+
/** Scope */
|
|
56
|
+
scope: ConfigFileScope | 'storage' | 'defaults';
|
|
57
|
+
/** Priority used for merging */
|
|
58
|
+
priority: ConfigPriority;
|
|
59
|
+
/** The loaded data */
|
|
60
|
+
data: T;
|
|
61
|
+
/** Format that was loaded */
|
|
62
|
+
format?: ConfigFileFormat;
|
|
63
|
+
/** Whether this source was successfully loaded */
|
|
64
|
+
loaded: boolean;
|
|
65
|
+
/** Error if loading failed */
|
|
66
|
+
error?: string;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Result of loading config from all sources
|
|
70
|
+
*/
|
|
71
|
+
export interface ConfigLoadResult<T = unknown> {
|
|
72
|
+
/** Merged configuration data */
|
|
73
|
+
data: T;
|
|
74
|
+
/** All sources that were checked/loaded */
|
|
75
|
+
sources: LoadedConfigSource<T>[];
|
|
76
|
+
/** Sources that were successfully loaded and merged */
|
|
77
|
+
mergedSources: LoadedConfigSource<T>[];
|
|
78
|
+
/** Whether any file sources were found */
|
|
79
|
+
hasFileSources: boolean;
|
|
80
|
+
/** Whether storage had data */
|
|
81
|
+
hasStorageData: boolean;
|
|
82
|
+
/** Validation issues found when using graceful validation (by source) */
|
|
83
|
+
validationIssues?: Map<string, {
|
|
84
|
+
path: (string | number)[];
|
|
85
|
+
message: string;
|
|
86
|
+
}[]>;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Options for discovering config files
|
|
90
|
+
*/
|
|
91
|
+
export interface DiscoveryOptions {
|
|
92
|
+
/** Namespace for the config (e.g., 'autoloop', 'ai', 'pm') */
|
|
93
|
+
namespace: string;
|
|
94
|
+
/** Scopes to search */
|
|
95
|
+
scopes?: ConfigFileScope[];
|
|
96
|
+
/** Custom patterns to search (in addition to defaults) */
|
|
97
|
+
patterns?: string[];
|
|
98
|
+
/** Fallback patterns if primary not found */
|
|
99
|
+
fallbackPatterns?: string[];
|
|
100
|
+
/** Working directory (defaults to process.cwd()) */
|
|
101
|
+
cwd?: string;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Options for loading config
|
|
105
|
+
*/
|
|
106
|
+
export interface LoadOptions<T = unknown> {
|
|
107
|
+
/** The manifest to load config for */
|
|
108
|
+
manifest: ConfigManifest;
|
|
109
|
+
/** Working directory */
|
|
110
|
+
cwd?: string;
|
|
111
|
+
/** Whether to include storage adapter data */
|
|
112
|
+
includeStorage?: boolean;
|
|
113
|
+
/** Whether to include defaults */
|
|
114
|
+
includeDefaults?: boolean;
|
|
115
|
+
/** Custom default values */
|
|
116
|
+
defaults?: Partial<T>;
|
|
117
|
+
/** Storage adapter to use (if not using manifest's storage config) */
|
|
118
|
+
storageAdapter?: {
|
|
119
|
+
load(): Promise<T | null>;
|
|
120
|
+
};
|
|
121
|
+
/**
|
|
122
|
+
* Enable graceful per-field validation.
|
|
123
|
+
* Invalid fields are discarded instead of failing the entire load.
|
|
124
|
+
* This allows valid fields from lower-priority sources to fill in.
|
|
125
|
+
*/
|
|
126
|
+
validateGracefully?: boolean;
|
|
127
|
+
/**
|
|
128
|
+
* Callback when validation issues are found.
|
|
129
|
+
* Called with the source name and list of issues.
|
|
130
|
+
*/
|
|
131
|
+
onValidationIssues?: (source: string, issues: {
|
|
132
|
+
path: (string | number)[];
|
|
133
|
+
message: string;
|
|
134
|
+
}[]) => void;
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/loader/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config File Loader Types
|
|
3
|
+
*
|
|
4
|
+
* Types for the multi-source config file loading system.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Priority levels for config sources
|
|
8
|
+
* Higher number = higher priority (wins in merge)
|
|
9
|
+
*/
|
|
10
|
+
export const CONFIG_PRIORITIES = {
|
|
11
|
+
/** Schema defaults */
|
|
12
|
+
DEFAULTS: 0,
|
|
13
|
+
/** Global: ~/.vibes/{namespace}.* */
|
|
14
|
+
GLOBAL: 1,
|
|
15
|
+
/** Local: ./.vibes/{namespace}.* */
|
|
16
|
+
LOCAL: 2,
|
|
17
|
+
/** Project: ./vibes.{namespace}.* */
|
|
18
|
+
PROJECT: 3,
|
|
19
|
+
/** Storage adapter (localdb/json) - user edits */
|
|
20
|
+
STORAGE: 4,
|
|
21
|
+
/** CLI overrides */
|
|
22
|
+
CLI: 5
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/loader/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAcH;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAChC,sBAAsB;IACtB,QAAQ,EAAE,CAAC;IACX,qCAAqC;IACrC,MAAM,EAAE,CAAC;IACT,oCAAoC;IACpC,KAAK,EAAE,CAAC;IACR,qCAAqC;IACrC,OAAO,EAAE,CAAC;IACV,kDAAkD;IAClD,OAAO,EAAE,CAAC;IACV,oBAAoB;IACpB,GAAG,EAAE,CAAC;CACG,CAAC"}
|