@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,232 @@
|
|
|
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 { createHash, randomBytes, createCipheriv, createDecipheriv, pbkdf2Sync } from 'crypto';
|
|
15
|
+
// Algorithm constants
|
|
16
|
+
const ALGORITHM = 'aes-256-gcm';
|
|
17
|
+
const IV_LENGTH = 16; // 128 bits for GCM
|
|
18
|
+
const AUTH_TAG_LENGTH = 16; // 128 bits
|
|
19
|
+
const SALT_LENGTH = 32; // 256 bits
|
|
20
|
+
const KEY_LENGTH = 32; // 256 bits
|
|
21
|
+
const PBKDF2_ITERATIONS = 100_000;
|
|
22
|
+
/**
|
|
23
|
+
* Derive a 256-bit key from password and salt using PBKDF2.
|
|
24
|
+
*
|
|
25
|
+
* @param password - The encryption password/key
|
|
26
|
+
* @param salt - Random salt for key derivation
|
|
27
|
+
* @returns 32-byte derived key
|
|
28
|
+
*/
|
|
29
|
+
function deriveKey(password, salt) {
|
|
30
|
+
return pbkdf2Sync(password, salt, PBKDF2_ITERATIONS, KEY_LENGTH, 'sha256');
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Encrypt a string value using AES-256-GCM.
|
|
34
|
+
*
|
|
35
|
+
* @param value - The plaintext value to encrypt
|
|
36
|
+
* @param password - The encryption password/key
|
|
37
|
+
* @param options - Optional encryption parameters
|
|
38
|
+
* @returns EncryptedValue with all components needed for decryption
|
|
39
|
+
* @throws Error if encryption fails
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```typescript
|
|
43
|
+
* const encrypted = await encrypt('my-secret-api-key', 'my-master-password');
|
|
44
|
+
* // Store encrypted object
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
export async function encrypt(value, password, options = {}) {
|
|
48
|
+
if (!value) {
|
|
49
|
+
throw new Error('Cannot encrypt empty value');
|
|
50
|
+
}
|
|
51
|
+
if (!password) {
|
|
52
|
+
throw new Error('Encryption password is required');
|
|
53
|
+
}
|
|
54
|
+
// Generate random salt and IV
|
|
55
|
+
const salt = options.salt ?? randomBytes(SALT_LENGTH);
|
|
56
|
+
const iv = options.iv ?? randomBytes(IV_LENGTH);
|
|
57
|
+
// Derive key from password
|
|
58
|
+
const key = deriveKey(password, salt);
|
|
59
|
+
// Encrypt
|
|
60
|
+
const cipher = createCipheriv(ALGORITHM, key, iv);
|
|
61
|
+
let encrypted = cipher.update(value, 'utf8', 'base64');
|
|
62
|
+
encrypted += cipher.final('base64');
|
|
63
|
+
const tag = cipher.getAuthTag();
|
|
64
|
+
return {
|
|
65
|
+
ciphertext: encrypted,
|
|
66
|
+
iv: iv.toString('base64'),
|
|
67
|
+
salt: salt.toString('base64'),
|
|
68
|
+
tag: tag.toString('base64'),
|
|
69
|
+
algorithm: ALGORITHM,
|
|
70
|
+
iterations: PBKDF2_ITERATIONS
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Decrypt an encrypted value using AES-256-GCM.
|
|
75
|
+
*
|
|
76
|
+
* @param encrypted - The encrypted value object
|
|
77
|
+
* @param password - The encryption password/key
|
|
78
|
+
* @returns The decrypted plaintext value
|
|
79
|
+
* @throws Error if decryption fails (wrong password, corrupted data, etc.)
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* ```typescript
|
|
83
|
+
* const encrypted = {
|
|
84
|
+
* ciphertext: '...',
|
|
85
|
+
* iv: '...',
|
|
86
|
+
* salt: '...',
|
|
87
|
+
* tag: '...',
|
|
88
|
+
* algorithm: 'aes-256-gcm',
|
|
89
|
+
* iterations: 100000
|
|
90
|
+
* };
|
|
91
|
+
* const decrypted = await decrypt(encrypted, 'my-master-password');
|
|
92
|
+
* ```
|
|
93
|
+
*/
|
|
94
|
+
export async function decrypt(encrypted, password) {
|
|
95
|
+
if (!password) {
|
|
96
|
+
throw new Error('Decryption password is required');
|
|
97
|
+
}
|
|
98
|
+
// Validate algorithm
|
|
99
|
+
if (encrypted.algorithm !== ALGORITHM) {
|
|
100
|
+
throw new Error(`Unsupported algorithm: ${encrypted.algorithm}`);
|
|
101
|
+
}
|
|
102
|
+
// Decode components
|
|
103
|
+
const salt = Buffer.from(encrypted.salt, 'base64');
|
|
104
|
+
const iv = Buffer.from(encrypted.iv, 'base64');
|
|
105
|
+
const tag = Buffer.from(encrypted.tag, 'base64');
|
|
106
|
+
// Derive key
|
|
107
|
+
const key = deriveKey(password, salt);
|
|
108
|
+
// Decrypt
|
|
109
|
+
try {
|
|
110
|
+
const decipher = createDecipheriv(ALGORITHM, key, iv);
|
|
111
|
+
decipher.setAuthTag(tag);
|
|
112
|
+
let decrypted = decipher.update(encrypted.ciphertext, 'base64', 'utf8');
|
|
113
|
+
decrypted += decipher.final('utf8');
|
|
114
|
+
return decrypted;
|
|
115
|
+
}
|
|
116
|
+
catch (error) {
|
|
117
|
+
throw new Error('Decryption failed: invalid password or corrupted data');
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Serialize an encrypted value to a compact JSON object for storage.
|
|
122
|
+
*
|
|
123
|
+
* @param encrypted - The encrypted value
|
|
124
|
+
* @returns Compact serialized format
|
|
125
|
+
*/
|
|
126
|
+
export function serializeEncrypted(encrypted) {
|
|
127
|
+
return {
|
|
128
|
+
v: 1,
|
|
129
|
+
ct: encrypted.ciphertext,
|
|
130
|
+
iv: encrypted.iv,
|
|
131
|
+
s: encrypted.salt,
|
|
132
|
+
t: encrypted.tag,
|
|
133
|
+
a: encrypted.algorithm,
|
|
134
|
+
i: encrypted.iterations
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Deserialize a compact JSON object back to EncryptedValue format.
|
|
139
|
+
*
|
|
140
|
+
* @param serialized - The serialized encrypted value
|
|
141
|
+
* @returns EncryptedValue object
|
|
142
|
+
*/
|
|
143
|
+
export function deserializeEncrypted(serialized) {
|
|
144
|
+
return {
|
|
145
|
+
ciphertext: serialized.ct,
|
|
146
|
+
iv: serialized.iv,
|
|
147
|
+
salt: serialized.s,
|
|
148
|
+
tag: serialized.t,
|
|
149
|
+
algorithm: serialized.a,
|
|
150
|
+
iterations: serialized.i
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Encrypt a value and serialize it to a JSON string for storage.
|
|
155
|
+
*
|
|
156
|
+
* @param value - The plaintext value
|
|
157
|
+
* @param password - The encryption password
|
|
158
|
+
* @returns JSON string of serialized encrypted value
|
|
159
|
+
*/
|
|
160
|
+
export async function encryptToString(value, password) {
|
|
161
|
+
const encrypted = await encrypt(value, password);
|
|
162
|
+
const serialized = serializeEncrypted(encrypted);
|
|
163
|
+
return JSON.stringify(serialized);
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Decrypt a value from its serialized JSON string format.
|
|
167
|
+
*
|
|
168
|
+
* @param encryptedString - JSON string from encryptToString
|
|
169
|
+
* @param password - The encryption password
|
|
170
|
+
* @returns The decrypted plaintext value
|
|
171
|
+
*/
|
|
172
|
+
export async function decryptFromString(encryptedString, password) {
|
|
173
|
+
const serialized = JSON.parse(encryptedString);
|
|
174
|
+
const encrypted = deserializeEncrypted(serialized);
|
|
175
|
+
return decrypt(encrypted, password);
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Generate a secure random password of the specified length.
|
|
179
|
+
*
|
|
180
|
+
* @param length - Password length (default: 32)
|
|
181
|
+
* @returns Base64-encoded random string
|
|
182
|
+
*/
|
|
183
|
+
export function generateSecurePassword(length = 32) {
|
|
184
|
+
return randomBytes(length).toString('base64').slice(0, length);
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Hash a password for storage using SHA-256.
|
|
188
|
+
* This is NOT for encryption keys - use only for password verification.
|
|
189
|
+
*
|
|
190
|
+
* @param password - The password to hash
|
|
191
|
+
* @returns SHA-256 hash as hex string
|
|
192
|
+
*/
|
|
193
|
+
export function hashPassword(password) {
|
|
194
|
+
return createHash('sha256').update(password).digest('hex');
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Verify a password against a stored hash.
|
|
198
|
+
*
|
|
199
|
+
* @param password - The password to verify
|
|
200
|
+
* @param hash - The stored hash
|
|
201
|
+
* @returns True if the password matches
|
|
202
|
+
*/
|
|
203
|
+
export function verifyPassword(password, hash) {
|
|
204
|
+
// Constant-time comparison to prevent timing attacks
|
|
205
|
+
const computed = hashPassword(password);
|
|
206
|
+
if (computed.length !== hash.length)
|
|
207
|
+
return false;
|
|
208
|
+
let result = 0;
|
|
209
|
+
for (let i = 0; i < computed.length; i++) {
|
|
210
|
+
result |= computed.charCodeAt(i) ^ hash.charCodeAt(i);
|
|
211
|
+
}
|
|
212
|
+
return result === 0;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Check if a value appears to be an encrypted value.
|
|
216
|
+
*
|
|
217
|
+
* @param value - The value to check
|
|
218
|
+
* @returns True if the value looks like an encrypted config value
|
|
219
|
+
*/
|
|
220
|
+
export function isEncryptedValue(value) {
|
|
221
|
+
if (typeof value !== 'object' || value === null)
|
|
222
|
+
return false;
|
|
223
|
+
const v = value;
|
|
224
|
+
return (v.v === 1 &&
|
|
225
|
+
typeof v.ct === 'string' &&
|
|
226
|
+
typeof v.iv === 'string' &&
|
|
227
|
+
typeof v.s === 'string' &&
|
|
228
|
+
typeof v.t === 'string' &&
|
|
229
|
+
typeof v.a === 'string' &&
|
|
230
|
+
typeof v.i === 'number');
|
|
231
|
+
}
|
|
232
|
+
//# sourceMappingURL=encryption.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encryption.js","sourceRoot":"","sources":["../../src/services/encryption.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config Services
|
|
3
|
+
*
|
|
4
|
+
* Higher-level services built on top of the config infrastructure.
|
|
5
|
+
*/
|
|
6
|
+
export { configLoaderDescriptor } from './loader/loader.descriptor.ts';
|
|
7
|
+
export type { ConfigLoaderInterface, LoadResult, SaveResult } from './loader/loader.descriptor.ts';
|
|
8
|
+
export { createConfigAccessor, createSyncConfigAccessor } from './config-accessor.ts';
|
|
9
|
+
export type { ConfigAccessor, ConfigAccessorInterface } from './config-accessor.ts';
|
|
10
|
+
export { encrypt, decrypt, serializeEncrypted, deserializeEncrypted, encryptToString, decryptFromString, generateSecurePassword, hashPassword, verifyPassword, isEncryptedValue } from './encryption.ts';
|
|
11
|
+
export type { EncryptedValue, SerializedEncryptedValue, EncryptionOptions } from './encryption.ts';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,EACN,sBAAsB,EACtB,MAAM,+BAA+B,CAAC;AACvC,YAAY,EAAE,qBAAqB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEnG,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACtF,YAAY,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAEpF,OAAO,EACN,OAAO,EACP,OAAO,EACP,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,cAAc,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config Services
|
|
3
|
+
*
|
|
4
|
+
* Higher-level services built on top of the config infrastructure.
|
|
5
|
+
*/
|
|
6
|
+
// Runtime-scoped config loader (replaces unified-loader.ts)
|
|
7
|
+
//
|
|
8
|
+
// IMPORTANT: do not re-export the consumer/cloud/local-first loader impls here.
|
|
9
|
+
// They are runtime-scoped and loaded lazily via dynamic import() in
|
|
10
|
+
// config.plugin.ts. Re-exporting them statically would let bundlers
|
|
11
|
+
// (e.g. workerd/cloudflare) walk the barrel and pull consumer-only code
|
|
12
|
+
// (localdb adapter) into worker bundles where it cannot resolve.
|
|
13
|
+
export { configLoaderDescriptor } from "./loader/loader.descriptor.js";
|
|
14
|
+
export { createConfigAccessor, createSyncConfigAccessor } from "./config-accessor.js";
|
|
15
|
+
export { encrypt, decrypt, serializeEncrypted, deserializeEncrypted, encryptToString, decryptFromString, generateSecurePassword, hashPassword, verifyPassword, isEncryptedValue } from "./encryption.js";
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,4DAA4D;AAC5D,EAAE;AACF,gFAAgF;AAChF,oEAAoE;AACpE,oEAAoE;AACpE,wEAAwE;AACxE,iEAAiE;AACjE,OAAO,EACN,sBAAsB,EACtB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAGtF,OAAO,EACN,OAAO,EACP,OAAO,EACP,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config Loader Descriptor
|
|
3
|
+
*
|
|
4
|
+
* Defines the config/loader kind for runtime-scoped configuration loading.
|
|
5
|
+
* Each implementation is single-purpose: local-only, cloud-only, or hybrid via runtime composition.
|
|
6
|
+
*
|
|
7
|
+
* This replaces the monolithic UnifiedConfigLoader with separate runtime-scoped implementations.
|
|
8
|
+
*/
|
|
9
|
+
import * as z from 'zod/v4';
|
|
10
|
+
import type { ConfigManifest } from '../../manifest/types.ts';
|
|
11
|
+
/**
|
|
12
|
+
* Load result schema - returned by all loader implementations
|
|
13
|
+
*/
|
|
14
|
+
export declare const LoadResultSchema: z.ZodObject<{
|
|
15
|
+
data: z.ZodNullable<z.ZodUnknown>;
|
|
16
|
+
source: z.ZodEnum<{
|
|
17
|
+
cloud: "cloud";
|
|
18
|
+
default: "default";
|
|
19
|
+
local: "local";
|
|
20
|
+
cache: "cache";
|
|
21
|
+
}>;
|
|
22
|
+
inSync: z.ZodBoolean;
|
|
23
|
+
lastSyncedAt: z.ZodNullable<z.ZodDate>;
|
|
24
|
+
syncError: z.ZodOptional<z.ZodString>;
|
|
25
|
+
}, z.core.$strip>;
|
|
26
|
+
export type LoadResult<T = unknown> = {
|
|
27
|
+
data: T | null;
|
|
28
|
+
source: 'local' | 'cloud' | 'cache' | 'default';
|
|
29
|
+
inSync: boolean;
|
|
30
|
+
lastSyncedAt: Date | null;
|
|
31
|
+
syncError?: string;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Save result schema
|
|
35
|
+
*/
|
|
36
|
+
export declare const SaveResultSchema: z.ZodObject<{
|
|
37
|
+
success: z.ZodBoolean;
|
|
38
|
+
direction: z.ZodEnum<{
|
|
39
|
+
push: "push";
|
|
40
|
+
pull: "pull";
|
|
41
|
+
none: "none";
|
|
42
|
+
}>;
|
|
43
|
+
changesApplied: z.ZodNumber;
|
|
44
|
+
error: z.ZodOptional<z.ZodString>;
|
|
45
|
+
}, z.core.$strip>;
|
|
46
|
+
export type SaveResult = {
|
|
47
|
+
success: boolean;
|
|
48
|
+
direction: 'push' | 'pull' | 'none';
|
|
49
|
+
changesApplied: number;
|
|
50
|
+
error?: string;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Config loader interface - implemented by all scoped implementations
|
|
54
|
+
*/
|
|
55
|
+
export interface ConfigLoaderInterface {
|
|
56
|
+
/** Load configuration for a manifest */
|
|
57
|
+
load<T>(manifest: ConfigManifest): Promise<LoadResult<T>>;
|
|
58
|
+
/** Save configuration for a manifest */
|
|
59
|
+
save<T>(manifest: ConfigManifest, data: T): Promise<SaveResult>;
|
|
60
|
+
/** Sync configuration between sources (if applicable) */
|
|
61
|
+
sync?(manifest: ConfigManifest, direction?: 'push' | 'pull' | 'auto'): Promise<SaveResult>;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Config loader descriptor
|
|
65
|
+
*
|
|
66
|
+
* The config/loader kind provides scoped implementations for loading and saving configuration.
|
|
67
|
+
* Implementations are selected by the runtime based on scope constraints:
|
|
68
|
+
* - consumer + { storage: 'local' } → LocalConfigLoader (localDB only)
|
|
69
|
+
* - cloud + { storage: 'cloud' } → CloudConfigLoader (cloud API only)
|
|
70
|
+
* - consumer + { storage: 'local-first' } → LocalFirstLoader (runtime-composed hybrid)
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```typescript
|
|
74
|
+
* const loader = await runtime.query('config/loader').resolve();
|
|
75
|
+
* const result = await loader.load(manifest);
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
export declare const configLoaderDescriptor: {
|
|
79
|
+
kind: "config/loader";
|
|
80
|
+
id: string;
|
|
81
|
+
name: string;
|
|
82
|
+
description: string;
|
|
83
|
+
schemas: {
|
|
84
|
+
input: z.ZodObject<{
|
|
85
|
+
manifest: z.ZodCustom<ConfigManifest<z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>, ConfigManifest<z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>>;
|
|
86
|
+
}, z.core.$strip>;
|
|
87
|
+
output: z.ZodObject<{
|
|
88
|
+
data: z.ZodNullable<z.ZodUnknown>;
|
|
89
|
+
source: z.ZodEnum<{
|
|
90
|
+
cloud: "cloud";
|
|
91
|
+
default: "default";
|
|
92
|
+
local: "local";
|
|
93
|
+
cache: "cache";
|
|
94
|
+
}>;
|
|
95
|
+
inSync: z.ZodBoolean;
|
|
96
|
+
lastSyncedAt: z.ZodNullable<z.ZodDate>;
|
|
97
|
+
syncError: z.ZodOptional<z.ZodString>;
|
|
98
|
+
}, z.core.$strip>;
|
|
99
|
+
};
|
|
100
|
+
enabled: true;
|
|
101
|
+
};
|
|
102
|
+
export default configLoaderDescriptor;
|
|
103
|
+
//# sourceMappingURL=loader.descriptor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.descriptor.d.ts","sourceRoot":"","sources":["../../../src/services/loader/loader.descriptor.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;iBAM3B,CAAC;AAEH,MAAM,MAAM,UAAU,CAAC,CAAC,GAAG,OAAO,IAAI;IACrC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACf,MAAM,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;IAChD,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;iBAK3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC,wCAAwC;IACxC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1D,wCAAwC;IACxC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAEhE,yDAAyD;IACzD,IAAI,CAAC,CAAC,QAAQ,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CAC3F;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;CAejC,CAAC;AAEH,eAAe,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config Loader Descriptor
|
|
3
|
+
*
|
|
4
|
+
* Defines the config/loader kind for runtime-scoped configuration loading.
|
|
5
|
+
* Each implementation is single-purpose: local-only, cloud-only, or hybrid via runtime composition.
|
|
6
|
+
*
|
|
7
|
+
* This replaces the monolithic UnifiedConfigLoader with separate runtime-scoped implementations.
|
|
8
|
+
*/
|
|
9
|
+
import { createRuntimeAsset } from '@vibesdotdev/runtime';
|
|
10
|
+
import * as z from 'zod/v4';
|
|
11
|
+
/**
|
|
12
|
+
* Load result schema - returned by all loader implementations
|
|
13
|
+
*/
|
|
14
|
+
export const LoadResultSchema = z.object({
|
|
15
|
+
data: z.unknown().nullable(),
|
|
16
|
+
source: z.enum(['local', 'cloud', 'cache', 'default']),
|
|
17
|
+
inSync: z.boolean(),
|
|
18
|
+
lastSyncedAt: z.date().nullable(),
|
|
19
|
+
syncError: z.string().optional()
|
|
20
|
+
});
|
|
21
|
+
/**
|
|
22
|
+
* Save result schema
|
|
23
|
+
*/
|
|
24
|
+
export const SaveResultSchema = z.object({
|
|
25
|
+
success: z.boolean(),
|
|
26
|
+
direction: z.enum(['push', 'pull', 'none']),
|
|
27
|
+
changesApplied: z.number(),
|
|
28
|
+
error: z.string().optional()
|
|
29
|
+
});
|
|
30
|
+
/**
|
|
31
|
+
* Config loader descriptor
|
|
32
|
+
*
|
|
33
|
+
* The config/loader kind provides scoped implementations for loading and saving configuration.
|
|
34
|
+
* Implementations are selected by the runtime based on scope constraints:
|
|
35
|
+
* - consumer + { storage: 'local' } → LocalConfigLoader (localDB only)
|
|
36
|
+
* - cloud + { storage: 'cloud' } → CloudConfigLoader (cloud API only)
|
|
37
|
+
* - consumer + { storage: 'local-first' } → LocalFirstLoader (runtime-composed hybrid)
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```typescript
|
|
41
|
+
* const loader = await runtime.query('config/loader').resolve();
|
|
42
|
+
* const result = await loader.load(manifest);
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export const configLoaderDescriptor = createRuntimeAsset({
|
|
46
|
+
kind: 'config/loader',
|
|
47
|
+
id: 'config.loader.base',
|
|
48
|
+
name: 'Config Loader',
|
|
49
|
+
description: 'Runtime-scoped configuration loading and persistence',
|
|
50
|
+
// Schemas for validation
|
|
51
|
+
schemas: {
|
|
52
|
+
input: z.object({ manifest: z.custom() }),
|
|
53
|
+
output: LoadResultSchema
|
|
54
|
+
},
|
|
55
|
+
// No default implementation - runtime selects by scope
|
|
56
|
+
// Implementations register separately with their scope constraints
|
|
57
|
+
enabled: true
|
|
58
|
+
});
|
|
59
|
+
export default configLoaderDescriptor;
|
|
60
|
+
//# sourceMappingURL=loader.descriptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.descriptor.js","sourceRoot":"","sources":["../../../src/services/loader/loader.descriptor.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAG5B;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC5B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACtD,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;IACnB,YAAY,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IACjC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAC;AAUH;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC5B,CAAC,CAAC;AAuBH;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,kBAAkB,CAAC;IACxD,IAAI,EAAE,eAAe;IACrB,EAAE,EAAE,oBAAoB;IACxB,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,sDAAsD;IAEnE,yBAAyB;IACzB,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAkB,EAAE,CAAC;QACzD,MAAM,EAAE,gBAAgB;KACxB;IAED,uDAAuD;IACvD,mEAAmE;IACnE,OAAO,EAAE,IAAI;CACb,CAAC,CAAC;AAEH,eAAe,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config Loader - Cloud Implementation
|
|
3
|
+
*
|
|
4
|
+
* Cloud-only configuration loading using cloud settings API.
|
|
5
|
+
* Single-purpose: handles cloud persistence only, no local branching.
|
|
6
|
+
*
|
|
7
|
+
* Scope: { hardware: ['cloud'], qualifiers: { storage: 'cloud' }}
|
|
8
|
+
*
|
|
9
|
+
* This replaces the branching logic in UnifiedConfigLoader with a pure
|
|
10
|
+
* runtime-selected implementation.
|
|
11
|
+
*/
|
|
12
|
+
import type { ConfigManifest } from '../../manifest/types.ts';
|
|
13
|
+
import type { ConfigLoaderInterface, LoadResult, SaveResult } from './loader.descriptor.ts';
|
|
14
|
+
/**
|
|
15
|
+
* Cloud Config Loader
|
|
16
|
+
*
|
|
17
|
+
* Single-purpose implementation for cloud-only configuration.
|
|
18
|
+
* Resolves cloud storage through the runtime - no internal adapter Maps.
|
|
19
|
+
* No syncDirection. No local storage logic.
|
|
20
|
+
*/
|
|
21
|
+
export declare class CloudConfigLoader implements ConfigLoaderInterface {
|
|
22
|
+
private runtime;
|
|
23
|
+
private store;
|
|
24
|
+
constructor();
|
|
25
|
+
/**
|
|
26
|
+
* Get cloud settings store from runtime
|
|
27
|
+
* Resolved dynamically to respect runtime scope
|
|
28
|
+
*/
|
|
29
|
+
private getStore;
|
|
30
|
+
/**
|
|
31
|
+
* Wrap a storage adapter to CloudSettingsStore interface
|
|
32
|
+
*/
|
|
33
|
+
private wrapAdapter;
|
|
34
|
+
/**
|
|
35
|
+
* Load configuration from cloud storage only
|
|
36
|
+
*/
|
|
37
|
+
load<T>(manifest: ConfigManifest): Promise<LoadResult<T>>;
|
|
38
|
+
/**
|
|
39
|
+
* Save configuration to cloud storage only
|
|
40
|
+
*/
|
|
41
|
+
save<T>(manifest: ConfigManifest, data: T): Promise<SaveResult>;
|
|
42
|
+
/**
|
|
43
|
+
* Delete configuration from cloud storage
|
|
44
|
+
*/
|
|
45
|
+
delete(manifest: ConfigManifest): Promise<SaveResult>;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Runtime implementation registration
|
|
49
|
+
*
|
|
50
|
+
* Scope: cloud hardware with cloud storage qualifier.
|
|
51
|
+
* No syncDirection. No local storage. Single-purpose.
|
|
52
|
+
*/
|
|
53
|
+
declare const _default: import("@vibesdotdev/runtime").RuntimeImplementationWrapper<typeof CloudConfigLoader>;
|
|
54
|
+
export default _default;
|
|
55
|
+
//# sourceMappingURL=loader.impl.cloud.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.impl.cloud.d.ts","sourceRoot":"","sources":["../../../src/services/loader/loader.impl.cloud.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAW5F;;;;;;GAMG;AACH,qBAAa,iBAAkB,YAAW,qBAAqB;IAC9D,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,KAAK,CAAmC;;IAMhD;;;OAGG;YACW,QAAQ;IAwBtB;;OAEG;IACH,OAAO,CAAC,WAAW;IAsBnB;;OAEG;IACG,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAiC/D;;OAEG;IACG,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IA+BrE;;OAEG;IACG,MAAM,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC;CA8B3D;AAED;;;;;GAKG;;AACH,wBAQG"}
|