@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,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config Storage Service
|
|
3
|
+
*
|
|
4
|
+
* Unified configuration storage using runtime-resolved storage adapter.
|
|
5
|
+
* Provides credentials and config document CRUD through SqlDatabaseHandle.
|
|
6
|
+
*/
|
|
7
|
+
export type ConfigScope = 'global' | 'local' | 'project';
|
|
8
|
+
export interface CredentialsInput {
|
|
9
|
+
environment: string;
|
|
10
|
+
apiKey?: string;
|
|
11
|
+
sessionToken?: string;
|
|
12
|
+
refreshToken?: string;
|
|
13
|
+
userId?: string;
|
|
14
|
+
email?: string;
|
|
15
|
+
name?: string;
|
|
16
|
+
expiresAt?: string;
|
|
17
|
+
metadata?: Record<string, unknown>;
|
|
18
|
+
}
|
|
19
|
+
export interface ConfigDocumentInput {
|
|
20
|
+
scope: ConfigScope;
|
|
21
|
+
content: Record<string, unknown>;
|
|
22
|
+
namespace?: string;
|
|
23
|
+
encrypted?: boolean;
|
|
24
|
+
changeReason?: string;
|
|
25
|
+
}
|
|
26
|
+
type StorageAdapter = {
|
|
27
|
+
getDatabaseConnection: () => unknown;
|
|
28
|
+
ensureReady: () => Promise<void>;
|
|
29
|
+
};
|
|
30
|
+
type Runtime = {
|
|
31
|
+
query: (kind: string) => {
|
|
32
|
+
withId: (id: string) => {
|
|
33
|
+
resolve: () => Promise<StorageAdapter>;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
export declare class ConfigStorageService {
|
|
38
|
+
private sql;
|
|
39
|
+
private initPromise;
|
|
40
|
+
private runtime;
|
|
41
|
+
constructor(runtime: Runtime);
|
|
42
|
+
private ensureInitialized;
|
|
43
|
+
private createTables;
|
|
44
|
+
getCredentials(environment: string): Promise<CredentialsInput | null>;
|
|
45
|
+
setCredentials(input: CredentialsInput): Promise<void>;
|
|
46
|
+
deleteCredentials(environment: string): Promise<void>;
|
|
47
|
+
getDocument<T = Record<string, unknown>>(scope: ConfigScope, namespace?: string | null): Promise<T | null>;
|
|
48
|
+
getDocumentMerged<T = Record<string, unknown>>(scopes: ConfigScope[], namespace?: string | null): Promise<{
|
|
49
|
+
config: T;
|
|
50
|
+
sources: Array<{
|
|
51
|
+
scope: ConfigScope;
|
|
52
|
+
version: number;
|
|
53
|
+
}>;
|
|
54
|
+
}>;
|
|
55
|
+
setDocument(input: ConfigDocumentInput): Promise<void>;
|
|
56
|
+
mergeDocument(scope: ConfigScope, content: Record<string, unknown>, namespace?: string | null, changeReason?: string): Promise<void>;
|
|
57
|
+
deleteDocument(scope: ConfigScope, namespace?: string | null): Promise<void>;
|
|
58
|
+
close(): Promise<void>;
|
|
59
|
+
}
|
|
60
|
+
export declare function getConfigStorageService(runtime: Runtime): ConfigStorageService;
|
|
61
|
+
export declare function resetConfigStorageService(): void;
|
|
62
|
+
export {};
|
|
63
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/services/config-storage/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config Storage Service
|
|
3
|
+
*
|
|
4
|
+
* Unified configuration storage using runtime-resolved storage adapter.
|
|
5
|
+
* Provides credentials and config document CRUD through SqlDatabaseHandle.
|
|
6
|
+
*/
|
|
7
|
+
import { randomUUID } from 'crypto';
|
|
8
|
+
import { join } from 'path';
|
|
9
|
+
const CONFIG_DB_PATH = join('.vibes', 'config.db');
|
|
10
|
+
const CONFIG_NAMESPACE = 'config';
|
|
11
|
+
async function createStorageAdapter(runtime) {
|
|
12
|
+
const adapter = await runtime.query('storage/adapter').withId(CONFIG_NAMESPACE).resolve();
|
|
13
|
+
await adapter.ensureReady();
|
|
14
|
+
return adapter;
|
|
15
|
+
}
|
|
16
|
+
function getSqlHandle(adapter) {
|
|
17
|
+
return adapter.getDatabaseConnection();
|
|
18
|
+
}
|
|
19
|
+
function deepMerge(target, source) {
|
|
20
|
+
const result = { ...target };
|
|
21
|
+
for (const key of Object.keys(source)) {
|
|
22
|
+
const sourceValue = source[key];
|
|
23
|
+
const targetValue = result[key];
|
|
24
|
+
if (sourceValue !== null &&
|
|
25
|
+
typeof sourceValue === 'object' &&
|
|
26
|
+
!Array.isArray(sourceValue) &&
|
|
27
|
+
targetValue !== null &&
|
|
28
|
+
typeof targetValue === 'object' &&
|
|
29
|
+
!Array.isArray(targetValue)) {
|
|
30
|
+
result[key] = deepMerge(targetValue, sourceValue);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
result[key] = sourceValue;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return result;
|
|
37
|
+
}
|
|
38
|
+
export class ConfigStorageService {
|
|
39
|
+
sql = null;
|
|
40
|
+
initPromise = null;
|
|
41
|
+
runtime;
|
|
42
|
+
constructor(runtime) {
|
|
43
|
+
this.runtime = runtime;
|
|
44
|
+
}
|
|
45
|
+
async ensureInitialized() {
|
|
46
|
+
if (this.sql)
|
|
47
|
+
return this.sql;
|
|
48
|
+
if (!this.initPromise) {
|
|
49
|
+
this.initPromise = (async () => {
|
|
50
|
+
const adapter = await createStorageAdapter(this.runtime);
|
|
51
|
+
this.sql = getSqlHandle(adapter);
|
|
52
|
+
this.createTables();
|
|
53
|
+
})();
|
|
54
|
+
}
|
|
55
|
+
await this.initPromise;
|
|
56
|
+
return this.sql;
|
|
57
|
+
}
|
|
58
|
+
createTables() {
|
|
59
|
+
if (!this.sql)
|
|
60
|
+
return;
|
|
61
|
+
this.sql.exec(`
|
|
62
|
+
CREATE TABLE IF NOT EXISTS credentials (
|
|
63
|
+
id TEXT PRIMARY KEY,
|
|
64
|
+
environment TEXT NOT NULL UNIQUE,
|
|
65
|
+
api_key TEXT,
|
|
66
|
+
session_token TEXT,
|
|
67
|
+
refresh_token TEXT,
|
|
68
|
+
user_id TEXT,
|
|
69
|
+
email TEXT,
|
|
70
|
+
name TEXT,
|
|
71
|
+
expires_at TEXT,
|
|
72
|
+
metadata TEXT,
|
|
73
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
74
|
+
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
75
|
+
);
|
|
76
|
+
CREATE INDEX IF NOT EXISTS idx_credentials_environment ON credentials(environment);
|
|
77
|
+
|
|
78
|
+
CREATE TABLE IF NOT EXISTS config_documents (
|
|
79
|
+
id TEXT PRIMARY KEY,
|
|
80
|
+
scope TEXT NOT NULL CHECK(scope IN ('global', 'local', 'project')),
|
|
81
|
+
namespace TEXT,
|
|
82
|
+
content TEXT NOT NULL DEFAULT '{}',
|
|
83
|
+
version INTEGER NOT NULL DEFAULT 1,
|
|
84
|
+
encrypted INTEGER NOT NULL DEFAULT 0,
|
|
85
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
86
|
+
updated_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
87
|
+
UNIQUE(scope, namespace)
|
|
88
|
+
);
|
|
89
|
+
CREATE INDEX IF NOT EXISTS idx_config_documents_scope ON config_documents(scope);
|
|
90
|
+
CREATE INDEX IF NOT EXISTS idx_config_documents_namespace ON config_documents(namespace);
|
|
91
|
+
`);
|
|
92
|
+
}
|
|
93
|
+
async getCredentials(environment) {
|
|
94
|
+
const sql = await this.ensureInitialized();
|
|
95
|
+
const row = sql.query('SELECT * FROM credentials WHERE environment = ?').get(environment);
|
|
96
|
+
if (!row)
|
|
97
|
+
return null;
|
|
98
|
+
return {
|
|
99
|
+
environment: row.environment,
|
|
100
|
+
apiKey: row.api_key ?? undefined,
|
|
101
|
+
sessionToken: row.session_token ?? undefined,
|
|
102
|
+
refreshToken: row.refresh_token ?? undefined,
|
|
103
|
+
userId: row.user_id ?? undefined,
|
|
104
|
+
email: row.email ?? undefined,
|
|
105
|
+
name: row.name ?? undefined,
|
|
106
|
+
expiresAt: row.expires_at ?? undefined,
|
|
107
|
+
metadata: row.metadata ? JSON.parse(row.metadata) : undefined
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
async setCredentials(input) {
|
|
111
|
+
const sql = await this.ensureInitialized();
|
|
112
|
+
const now = new Date().toISOString();
|
|
113
|
+
const existing = sql.query('SELECT id FROM credentials WHERE environment = ?').get(input.environment);
|
|
114
|
+
if (existing) {
|
|
115
|
+
sql.query(`UPDATE credentials SET
|
|
116
|
+
api_key = ?, session_token = ?, refresh_token = ?,
|
|
117
|
+
user_id = ?, email = ?, name = ?, expires_at = ?,
|
|
118
|
+
metadata = ?, updated_at = ?
|
|
119
|
+
WHERE environment = ?`).run(input.apiKey ?? null, input.sessionToken ?? null, input.refreshToken ?? null, input.userId ?? null, input.email ?? null, input.name ?? null, input.expiresAt ?? null, input.metadata ? JSON.stringify(input.metadata) : null, now, input.environment);
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
sql.query(`INSERT INTO credentials
|
|
123
|
+
(id, environment, api_key, session_token, refresh_token,
|
|
124
|
+
user_id, email, name, expires_at, metadata, created_at, updated_at)
|
|
125
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(randomUUID(), input.environment, input.apiKey ?? null, input.sessionToken ?? null, input.refreshToken ?? null, input.userId ?? null, input.email ?? null, input.name ?? null, input.expiresAt ?? null, input.metadata ? JSON.stringify(input.metadata) : null, now, now);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
async deleteCredentials(environment) {
|
|
129
|
+
const sql = await this.ensureInitialized();
|
|
130
|
+
sql.query('DELETE FROM credentials WHERE environment = ?').run(environment);
|
|
131
|
+
}
|
|
132
|
+
async getDocument(scope, namespace = null) {
|
|
133
|
+
const sql = await this.ensureInitialized();
|
|
134
|
+
let row;
|
|
135
|
+
if (namespace === null) {
|
|
136
|
+
row = sql.query('SELECT * FROM config_documents WHERE scope = ? AND namespace IS NULL').get(scope) ?? null;
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
row = sql.query('SELECT * FROM config_documents WHERE scope = ? AND namespace = ?').get(scope, namespace) ?? null;
|
|
140
|
+
}
|
|
141
|
+
if (!row)
|
|
142
|
+
return null;
|
|
143
|
+
try {
|
|
144
|
+
return JSON.parse(row.content);
|
|
145
|
+
}
|
|
146
|
+
catch {
|
|
147
|
+
return null;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
async getDocumentMerged(scopes, namespace = null) {
|
|
151
|
+
const sql = await this.ensureInitialized();
|
|
152
|
+
let merged = {};
|
|
153
|
+
const sources = [];
|
|
154
|
+
for (const scope of scopes) {
|
|
155
|
+
let row;
|
|
156
|
+
if (namespace === null) {
|
|
157
|
+
row = sql.query('SELECT * FROM config_documents WHERE scope = ? AND namespace IS NULL').get(scope) ?? null;
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
row = sql.query('SELECT * FROM config_documents WHERE scope = ? AND namespace = ?').get(scope, namespace) ?? null;
|
|
161
|
+
}
|
|
162
|
+
if (row) {
|
|
163
|
+
try {
|
|
164
|
+
const content = JSON.parse(row.content);
|
|
165
|
+
merged = deepMerge(merged, content);
|
|
166
|
+
sources.push({ scope, version: row.version });
|
|
167
|
+
}
|
|
168
|
+
catch {
|
|
169
|
+
// Skip malformed content
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
return { config: merged, sources };
|
|
174
|
+
}
|
|
175
|
+
async setDocument(input) {
|
|
176
|
+
const sql = await this.ensureInitialized();
|
|
177
|
+
const now = new Date().toISOString();
|
|
178
|
+
const namespace = input.namespace ?? null;
|
|
179
|
+
let existing;
|
|
180
|
+
if (namespace === null) {
|
|
181
|
+
existing = sql.query('SELECT * FROM config_documents WHERE scope = ? AND namespace IS NULL').get(input.scope) ?? null;
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
existing = sql.query('SELECT * FROM config_documents WHERE scope = ? AND namespace = ?').get(input.scope, namespace) ?? null;
|
|
185
|
+
}
|
|
186
|
+
const content = JSON.stringify(input.content);
|
|
187
|
+
const encrypted = input.encrypted ? 1 : 0;
|
|
188
|
+
if (existing) {
|
|
189
|
+
sql.query(`UPDATE config_documents SET
|
|
190
|
+
content = ?, version = version + 1, encrypted = ?, updated_at = ?
|
|
191
|
+
WHERE id = ?`).run(content, encrypted, now, existing.id);
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
sql.query(`INSERT INTO config_documents
|
|
195
|
+
(id, scope, namespace, content, version, encrypted, created_at, updated_at)
|
|
196
|
+
VALUES (?, ?, ?, ?, 1, ?, ?, ?)`).run(randomUUID(), input.scope, namespace, content, encrypted, now, now);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
async mergeDocument(scope, content, namespace = null, changeReason) {
|
|
200
|
+
const existing = await this.getDocument(scope, namespace);
|
|
201
|
+
const merged = deepMerge(existing || {}, content);
|
|
202
|
+
await this.setDocument({
|
|
203
|
+
scope,
|
|
204
|
+
namespace: namespace ?? undefined,
|
|
205
|
+
content: merged,
|
|
206
|
+
encrypted: false,
|
|
207
|
+
changeReason
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
async deleteDocument(scope, namespace = null) {
|
|
211
|
+
const sql = await this.ensureInitialized();
|
|
212
|
+
if (namespace === null) {
|
|
213
|
+
sql.query('DELETE FROM config_documents WHERE scope = ? AND namespace IS NULL').run(scope);
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
sql.query('DELETE FROM config_documents WHERE scope = ? AND namespace = ?').run(scope, namespace);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
async close() {
|
|
220
|
+
this.sql = null;
|
|
221
|
+
this.initPromise = null;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
let instance = null;
|
|
225
|
+
export function getConfigStorageService(runtime) {
|
|
226
|
+
if (!instance) {
|
|
227
|
+
instance = new ConfigStorageService(runtime);
|
|
228
|
+
}
|
|
229
|
+
return instance;
|
|
230
|
+
}
|
|
231
|
+
export function resetConfigStorageService() {
|
|
232
|
+
instance = null;
|
|
233
|
+
}
|
|
234
|
+
//# sourceMappingURL=service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/services/config-storage/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/services/config.ts"],"names":[],"mappings":"AAaA,wBAAsB,kBAAkB,CACvC,KAAK,EAAE,QAAQ,GAAG,SAAS,GACzB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAWlC;AAED,wBAAsB,kBAAkB,CACvC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,KAAK,EAAE,QAAQ,GAAG,SAAS,GACzB,OAAO,CAAC,IAAI,CAAC,CAKf"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs';
|
|
2
|
+
import { join } from 'path';
|
|
3
|
+
import { homedir } from 'os';
|
|
4
|
+
const VIBES_CONFIG_DIR = join(homedir(), '.config', 'vibes');
|
|
5
|
+
const GLOBAL_CONFIG_FILE = join(VIBES_CONFIG_DIR, 'config.json');
|
|
6
|
+
function ensureConfigDir() {
|
|
7
|
+
if (!existsSync(VIBES_CONFIG_DIR)) {
|
|
8
|
+
mkdirSync(VIBES_CONFIG_DIR, { recursive: true });
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export async function loadConfigForScope(scope) {
|
|
12
|
+
ensureConfigDir();
|
|
13
|
+
if (scope === 'global' && existsSync(GLOBAL_CONFIG_FILE)) {
|
|
14
|
+
try {
|
|
15
|
+
const content = readFileSync(GLOBAL_CONFIG_FILE, 'utf-8');
|
|
16
|
+
return JSON.parse(content);
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return {};
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return {};
|
|
23
|
+
}
|
|
24
|
+
export async function saveConfigForScope(config, scope) {
|
|
25
|
+
ensureConfigDir();
|
|
26
|
+
if (scope === 'global') {
|
|
27
|
+
writeFileSync(GLOBAL_CONFIG_FILE, JSON.stringify(config, null, 2), 'utf-8');
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/services/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7B,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAC7D,MAAM,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;AAEjE,SAAS,eAAe;IACvB,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACnC,SAAS,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACvC,KAA2B;IAE3B,eAAe,EAAE,CAAC;IAClB,IAAI,KAAK,KAAK,QAAQ,IAAI,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC1D,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,YAAY,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;YAC1D,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,EAAE,CAAC;QACX,CAAC;IACF,CAAC;IACD,OAAO,EAAE,CAAC;AACX,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACvC,MAA+B,EAC/B,KAA2B;IAE3B,eAAe,EAAE,CAAC;IAClB,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxB,aAAa,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC7E,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config Encryption Service
|
|
3
|
+
*
|
|
4
|
+
* Production-grade encryption for sensitive configuration values.
|
|
5
|
+
* Uses AES-256-GCM for authenticated encryption with PBKDF2 key derivation.
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - AES-256-GCM authenticated encryption
|
|
9
|
+
* - PBKDF2 key derivation (100k iterations)
|
|
10
|
+
* - Random IV and salt generation
|
|
11
|
+
* - Constant-time comparison helpers
|
|
12
|
+
* - Browser and Node.js compatible (Web Crypto API)
|
|
13
|
+
*/
|
|
14
|
+
import type { EncryptedValue, SerializedEncryptedValue, EncryptionOptions } from './schemas/encryption.schema.ts';
|
|
15
|
+
export type { EncryptedValue, SerializedEncryptedValue, EncryptionOptions } from './schemas/encryption.schema.ts';
|
|
16
|
+
/**
|
|
17
|
+
* Encrypt a string value using AES-256-GCM.
|
|
18
|
+
*
|
|
19
|
+
* @param value - The plaintext value to encrypt
|
|
20
|
+
* @param password - The encryption password/key
|
|
21
|
+
* @param options - Optional encryption parameters
|
|
22
|
+
* @returns EncryptedValue with all components needed for decryption
|
|
23
|
+
* @throws Error if encryption fails
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* const encrypted = await encrypt('my-secret-api-key', 'my-master-password');
|
|
28
|
+
* // Store encrypted object
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare function encrypt(value: string, password: string, options?: EncryptionOptions): Promise<EncryptedValue>;
|
|
32
|
+
/**
|
|
33
|
+
* Decrypt an encrypted value using AES-256-GCM.
|
|
34
|
+
*
|
|
35
|
+
* @param encrypted - The encrypted value object
|
|
36
|
+
* @param password - The encryption password/key
|
|
37
|
+
* @returns The decrypted plaintext value
|
|
38
|
+
* @throws Error if decryption fails (wrong password, corrupted data, etc.)
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* const encrypted = {
|
|
43
|
+
* ciphertext: '...',
|
|
44
|
+
* iv: '...',
|
|
45
|
+
* salt: '...',
|
|
46
|
+
* tag: '...',
|
|
47
|
+
* algorithm: 'aes-256-gcm',
|
|
48
|
+
* iterations: 100000
|
|
49
|
+
* };
|
|
50
|
+
* const decrypted = await decrypt(encrypted, 'my-master-password');
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
export declare function decrypt(encrypted: EncryptedValue, password: string): Promise<string>;
|
|
54
|
+
/**
|
|
55
|
+
* Serialize an encrypted value to a compact JSON object for storage.
|
|
56
|
+
*
|
|
57
|
+
* @param encrypted - The encrypted value
|
|
58
|
+
* @returns Compact serialized format
|
|
59
|
+
*/
|
|
60
|
+
export declare function serializeEncrypted(encrypted: EncryptedValue): SerializedEncryptedValue;
|
|
61
|
+
/**
|
|
62
|
+
* Deserialize a compact JSON object back to EncryptedValue format.
|
|
63
|
+
*
|
|
64
|
+
* @param serialized - The serialized encrypted value
|
|
65
|
+
* @returns EncryptedValue object
|
|
66
|
+
*/
|
|
67
|
+
export declare function deserializeEncrypted(serialized: SerializedEncryptedValue): EncryptedValue;
|
|
68
|
+
/**
|
|
69
|
+
* Encrypt a value and serialize it to a JSON string for storage.
|
|
70
|
+
*
|
|
71
|
+
* @param value - The plaintext value
|
|
72
|
+
* @param password - The encryption password
|
|
73
|
+
* @returns JSON string of serialized encrypted value
|
|
74
|
+
*/
|
|
75
|
+
export declare function encryptToString(value: string, password: string): Promise<string>;
|
|
76
|
+
/**
|
|
77
|
+
* Decrypt a value from its serialized JSON string format.
|
|
78
|
+
*
|
|
79
|
+
* @param encryptedString - JSON string from encryptToString
|
|
80
|
+
* @param password - The encryption password
|
|
81
|
+
* @returns The decrypted plaintext value
|
|
82
|
+
*/
|
|
83
|
+
export declare function decryptFromString(encryptedString: string, password: string): Promise<string>;
|
|
84
|
+
/**
|
|
85
|
+
* Generate a secure random password of the specified length.
|
|
86
|
+
*
|
|
87
|
+
* @param length - Password length (default: 32)
|
|
88
|
+
* @returns Base64-encoded random string
|
|
89
|
+
*/
|
|
90
|
+
export declare function generateSecurePassword(length?: number): string;
|
|
91
|
+
/**
|
|
92
|
+
* Hash a password for storage using SHA-256.
|
|
93
|
+
* This is NOT for encryption keys - use only for password verification.
|
|
94
|
+
*
|
|
95
|
+
* @param password - The password to hash
|
|
96
|
+
* @returns SHA-256 hash as hex string
|
|
97
|
+
*/
|
|
98
|
+
export declare function hashPassword(password: string): string;
|
|
99
|
+
/**
|
|
100
|
+
* Verify a password against a stored hash.
|
|
101
|
+
*
|
|
102
|
+
* @param password - The password to verify
|
|
103
|
+
* @param hash - The stored hash
|
|
104
|
+
* @returns True if the password matches
|
|
105
|
+
*/
|
|
106
|
+
export declare function verifyPassword(password: string, hash: string): boolean;
|
|
107
|
+
/**
|
|
108
|
+
* Check if a value appears to be an encrypted value.
|
|
109
|
+
*
|
|
110
|
+
* @param value - The value to check
|
|
111
|
+
* @returns True if the value looks like an encrypted config value
|
|
112
|
+
*/
|
|
113
|
+
export declare function isEncryptedValue(value: unknown): value is SerializedEncryptedValue;
|
|
114
|
+
//# sourceMappingURL=encryption.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encryption.d.ts","sourceRoot":"","sources":["../../src/services/encryption.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAYH,OAAO,KAAK,EAAE,cAAc,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAElH,YAAY,EAAE,cAAc,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAalH;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,OAAO,CAC5B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,iBAAsB,GAC7B,OAAO,CAAC,cAAc,CAAC,CA6BzB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,OAAO,CAAC,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA4B1F;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,cAAc,GAAG,wBAAwB,CAUtF;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,wBAAwB,GAAG,cAAc,CASzF;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAItF;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAIlG;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,SAAK,GAAG,MAAM,CAE1D;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAUtE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,wBAAwB,CAYlF"}
|