@buenojs/bueno 0.8.10 → 0.8.11
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/dist/cache/index.d.ts +187 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +595 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/cli/bin.d.ts +8 -0
- package/dist/cli/bin.d.ts.map +1 -0
- package/dist/cli/bin.js +9 -9
- package/dist/cli/bin.js.map +1 -0
- package/dist/cli/commands/add-frontend.d.ts +7 -0
- package/dist/cli/commands/add-frontend.d.ts.map +1 -0
- package/dist/cli/commands/add-frontend.js +376 -0
- package/dist/cli/commands/add-frontend.js.map +1 -0
- package/dist/cli/commands/build.d.ts +7 -0
- package/dist/cli/commands/build.d.ts.map +1 -0
- package/dist/cli/commands/build.js +347 -0
- package/dist/cli/commands/build.js.map +1 -0
- package/dist/cli/commands/dev.d.ts +7 -0
- package/dist/cli/commands/dev.d.ts.map +1 -0
- package/dist/cli/commands/dev.js +205 -0
- package/dist/cli/commands/dev.js.map +1 -0
- package/dist/cli/commands/generate.d.ts +7 -0
- package/dist/cli/commands/generate.d.ts.map +1 -0
- package/dist/cli/commands/generate.js +491 -0
- package/dist/cli/commands/generate.js.map +1 -0
- package/dist/cli/commands/help.d.ts +7 -0
- package/dist/cli/commands/help.d.ts.map +1 -0
- package/dist/cli/commands/help.js +51 -0
- package/dist/cli/commands/help.js.map +1 -0
- package/dist/cli/commands/index.d.ts +59 -0
- package/dist/cli/commands/index.d.ts.map +1 -0
- package/dist/cli/commands/index.js +77 -0
- package/dist/cli/commands/index.js.map +1 -0
- package/dist/cli/commands/migration.d.ts +7 -0
- package/dist/cli/commands/migration.d.ts.map +1 -0
- package/dist/cli/commands/migration.js +295 -0
- package/dist/cli/commands/migration.js.map +1 -0
- package/dist/cli/commands/new.d.ts +7 -0
- package/dist/cli/commands/new.d.ts.map +1 -0
- package/dist/cli/commands/new.js +641 -0
- package/dist/cli/commands/new.js.map +1 -0
- package/dist/cli/commands/start.d.ts +7 -0
- package/dist/cli/commands/start.d.ts.map +1 -0
- package/dist/cli/commands/start.js +171 -0
- package/dist/cli/commands/start.js.map +1 -0
- package/dist/cli/core/args.d.ts +61 -0
- package/dist/cli/core/args.d.ts.map +1 -0
- package/dist/cli/core/args.js +224 -0
- package/dist/cli/core/args.js.map +1 -0
- package/dist/cli/core/console.d.ts +135 -0
- package/dist/cli/core/console.d.ts.map +1 -0
- package/dist/cli/core/console.js +268 -0
- package/dist/cli/core/console.js.map +1 -0
- package/dist/cli/core/index.d.ts +10 -0
- package/dist/cli/core/index.d.ts.map +1 -0
- package/dist/cli/core/index.js +10 -0
- package/dist/cli/core/index.js.map +1 -0
- package/dist/cli/core/prompt.d.ts +63 -0
- package/dist/cli/core/prompt.d.ts.map +1 -0
- package/dist/cli/core/prompt.js +338 -0
- package/dist/cli/core/prompt.js.map +1 -0
- package/dist/cli/core/spinner.d.ts +111 -0
- package/dist/cli/core/spinner.d.ts.map +1 -0
- package/dist/cli/core/spinner.js +208 -0
- package/dist/cli/core/spinner.js.map +1 -0
- package/dist/cli/index.d.ts +47 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +127 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/templates/database/index.d.ts +24 -0
- package/dist/cli/templates/database/index.d.ts.map +1 -0
- package/dist/cli/templates/database/index.js +49 -0
- package/dist/cli/templates/database/index.js.map +1 -0
- package/dist/cli/templates/database/mysql.d.ts +6 -0
- package/dist/cli/templates/database/mysql.d.ts.map +1 -0
- package/dist/cli/templates/database/mysql.js +12 -0
- package/dist/cli/templates/database/mysql.js.map +1 -0
- package/dist/cli/templates/database/none.d.ts +8 -0
- package/dist/cli/templates/database/none.d.ts.map +1 -0
- package/dist/cli/templates/database/none.js +14 -0
- package/dist/cli/templates/database/none.js.map +1 -0
- package/dist/cli/templates/database/postgresql.d.ts +6 -0
- package/dist/cli/templates/database/postgresql.d.ts.map +1 -0
- package/dist/cli/templates/database/postgresql.js +12 -0
- package/dist/cli/templates/database/postgresql.js.map +1 -0
- package/dist/cli/templates/database/sqlite.d.ts +6 -0
- package/dist/cli/templates/database/sqlite.d.ts.map +1 -0
- package/dist/cli/templates/database/sqlite.js +12 -0
- package/dist/cli/templates/database/sqlite.js.map +1 -0
- package/dist/cli/templates/deploy.d.ts +41 -0
- package/dist/cli/templates/deploy.d.ts.map +1 -0
- package/dist/cli/templates/deploy.js +278 -0
- package/dist/cli/templates/deploy.js.map +1 -0
- package/dist/cli/templates/docker.d.ts +30 -0
- package/dist/cli/templates/docker.d.ts.map +1 -0
- package/dist/cli/templates/docker.js +298 -0
- package/dist/cli/templates/docker.js.map +1 -0
- package/dist/cli/templates/frontend/index.d.ts +25 -0
- package/dist/cli/templates/frontend/index.d.ts.map +1 -0
- package/dist/cli/templates/frontend/index.js +40 -0
- package/dist/cli/templates/frontend/index.js.map +1 -0
- package/dist/cli/templates/frontend/none.d.ts +8 -0
- package/dist/cli/templates/frontend/none.d.ts.map +1 -0
- package/dist/cli/templates/frontend/none.js +15 -0
- package/dist/cli/templates/frontend/none.js.map +1 -0
- package/dist/cli/templates/frontend/react.d.ts +6 -0
- package/dist/cli/templates/frontend/react.d.ts.map +1 -0
- package/dist/cli/templates/frontend/react.js +139 -0
- package/dist/cli/templates/frontend/react.js.map +1 -0
- package/dist/cli/templates/frontend/solid.d.ts +6 -0
- package/dist/cli/templates/frontend/solid.d.ts.map +1 -0
- package/dist/cli/templates/frontend/solid.js +133 -0
- package/dist/cli/templates/frontend/solid.js.map +1 -0
- package/dist/cli/templates/frontend/svelte.d.ts +6 -0
- package/dist/cli/templates/frontend/svelte.d.ts.map +1 -0
- package/dist/cli/templates/frontend/svelte.js +130 -0
- package/dist/cli/templates/frontend/svelte.js.map +1 -0
- package/dist/cli/templates/frontend/vue.d.ts +6 -0
- package/dist/cli/templates/frontend/vue.d.ts.map +1 -0
- package/dist/cli/templates/frontend/vue.js +129 -0
- package/dist/cli/templates/frontend/vue.js.map +1 -0
- package/dist/cli/templates/generators/index.d.ts +29 -0
- package/dist/cli/templates/generators/index.d.ts.map +1 -0
- package/dist/cli/templates/generators/index.js +308 -0
- package/dist/cli/templates/generators/index.js.map +1 -0
- package/dist/cli/templates/generators/types.d.ts +32 -0
- package/dist/cli/templates/generators/types.d.ts.map +1 -0
- package/dist/cli/templates/generators/types.js +21 -0
- package/dist/cli/templates/generators/types.js.map +1 -0
- package/dist/cli/templates/index.d.ts +12 -0
- package/dist/cli/templates/index.d.ts.map +1 -0
- package/dist/cli/templates/index.js +18 -0
- package/dist/cli/templates/index.js.map +1 -0
- package/dist/cli/templates/project/api.d.ts +6 -0
- package/dist/cli/templates/project/api.d.ts.map +1 -0
- package/dist/cli/templates/project/api.js +79 -0
- package/dist/cli/templates/project/api.js.map +1 -0
- package/dist/cli/templates/project/default.d.ts +6 -0
- package/dist/cli/templates/project/default.d.ts.map +1 -0
- package/dist/cli/templates/project/default.js +136 -0
- package/dist/cli/templates/project/default.js.map +1 -0
- package/dist/cli/templates/project/fullstack.d.ts +14 -0
- package/dist/cli/templates/project/fullstack.d.ts.map +1 -0
- package/dist/cli/templates/project/fullstack.js +19 -0
- package/dist/cli/templates/project/fullstack.js.map +1 -0
- package/dist/cli/templates/project/index.d.ts +26 -0
- package/dist/cli/templates/project/index.d.ts.map +1 -0
- package/dist/cli/templates/project/index.js +60 -0
- package/dist/cli/templates/project/index.js.map +1 -0
- package/dist/cli/templates/project/minimal.d.ts +6 -0
- package/dist/cli/templates/project/minimal.d.ts.map +1 -0
- package/dist/cli/templates/project/minimal.js +43 -0
- package/dist/cli/templates/project/minimal.js.map +1 -0
- package/dist/cli/templates/project/types.d.ts +80 -0
- package/dist/cli/templates/project/types.d.ts.map +1 -0
- package/dist/cli/templates/project/types.js +7 -0
- package/dist/cli/templates/project/types.js.map +1 -0
- package/dist/cli/templates/project/website.d.ts +8 -0
- package/dist/cli/templates/project/website.d.ts.map +1 -0
- package/dist/cli/templates/project/website.js +312 -0
- package/dist/cli/templates/project/website.js.map +1 -0
- package/dist/cli/utils/fs.d.ts +137 -0
- package/dist/cli/utils/fs.d.ts.map +1 -0
- package/dist/cli/utils/fs.js +350 -0
- package/dist/cli/utils/fs.js.map +1 -0
- package/dist/cli/utils/index.d.ts +9 -0
- package/dist/cli/utils/index.d.ts.map +1 -0
- package/dist/cli/utils/index.js +9 -0
- package/dist/cli/utils/index.js.map +1 -0
- package/dist/cli/utils/strings.d.ts +86 -0
- package/dist/cli/utils/strings.d.ts.map +1 -0
- package/dist/cli/utils/strings.js +190 -0
- package/dist/cli/utils/strings.js.map +1 -0
- package/dist/cli/utils/version.d.ts +15 -0
- package/dist/cli/utils/version.d.ts.map +1 -0
- package/dist/cli/utils/version.js +38 -0
- package/dist/cli/utils/version.js.map +1 -0
- package/dist/config/env-validation.d.ts +49 -0
- package/dist/config/env-validation.d.ts.map +1 -0
- package/dist/config/env-validation.js +77 -0
- package/dist/config/env-validation.js.map +1 -0
- package/dist/config/env.d.ts +167 -0
- package/dist/config/env.d.ts.map +1 -0
- package/dist/config/env.js +392 -0
- package/dist/config/env.js.map +1 -0
- package/dist/config/index.d.ts +168 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +329 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/loader.d.ts +81 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +242 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/merge.d.ts +66 -0
- package/dist/config/merge.d.ts.map +1 -0
- package/dist/config/merge.js +226 -0
- package/dist/config/merge.js.map +1 -0
- package/dist/config/types.d.ts +322 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +443 -0
- package/dist/config/types.js.map +1 -0
- package/dist/config/validation.d.ts +100 -0
- package/dist/config/validation.d.ts.map +1 -0
- package/dist/config/validation.js +548 -0
- package/dist/config/validation.js.map +1 -0
- package/dist/container/forward-ref.d.ts +116 -0
- package/dist/container/forward-ref.d.ts.map +1 -0
- package/dist/container/forward-ref.js +105 -0
- package/dist/container/forward-ref.js.map +1 -0
- package/dist/container/index.d.ts +95 -0
- package/dist/container/index.d.ts.map +1 -0
- package/dist/container/index.js.map +1 -0
- package/dist/context/index.d.ts +143 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js.map +1 -0
- package/dist/database/index.d.ts +219 -0
- package/dist/database/index.d.ts.map +1 -0
- package/dist/database/index.js.map +1 -0
- package/dist/database/migrations/index.d.ts +151 -0
- package/dist/database/migrations/index.d.ts.map +1 -0
- package/dist/database/migrations/index.js +258 -0
- package/dist/database/migrations/index.js.map +1 -0
- package/dist/database/orm/builder.d.ts +122 -0
- package/dist/database/orm/builder.d.ts.map +1 -0
- package/dist/database/orm/builder.js +355 -0
- package/dist/database/orm/builder.js.map +1 -0
- package/dist/database/orm/casts/index.d.ts +16 -0
- package/dist/database/orm/casts/index.d.ts.map +1 -0
- package/dist/database/orm/casts/index.js +131 -0
- package/dist/database/orm/casts/index.js.map +1 -0
- package/dist/database/orm/casts/types.d.ts +16 -0
- package/dist/database/orm/casts/types.d.ts.map +1 -0
- package/dist/database/orm/casts/types.js +5 -0
- package/dist/database/orm/casts/types.js.map +1 -0
- package/dist/database/orm/compiler.d.ts +90 -0
- package/dist/database/orm/compiler.d.ts.map +1 -0
- package/dist/database/orm/compiler.js +218 -0
- package/dist/database/orm/compiler.js.map +1 -0
- package/dist/database/orm/hooks/index.d.ts +53 -0
- package/dist/database/orm/hooks/index.d.ts.map +1 -0
- package/dist/database/orm/hooks/index.js +81 -0
- package/dist/database/orm/hooks/index.js.map +1 -0
- package/dist/database/orm/index.d.ts +21 -0
- package/dist/database/orm/index.d.ts.map +1 -0
- package/dist/database/orm/index.js +23 -0
- package/dist/database/orm/index.js.map +1 -0
- package/dist/database/orm/model-registry.d.ts +33 -0
- package/dist/database/orm/model-registry.d.ts.map +1 -0
- package/dist/database/orm/model-registry.js +49 -0
- package/dist/database/orm/model-registry.js.map +1 -0
- package/dist/database/orm/model.d.ts +245 -0
- package/dist/database/orm/model.d.ts.map +1 -0
- package/dist/database/orm/model.js +599 -0
- package/dist/database/orm/model.js.map +1 -0
- package/dist/database/orm/relationships/base.d.ts +69 -0
- package/dist/database/orm/relationships/base.d.ts.map +1 -0
- package/dist/database/orm/relationships/base.js +84 -0
- package/dist/database/orm/relationships/base.js.map +1 -0
- package/dist/database/orm/relationships/belongs-to-many.d.ts +47 -0
- package/dist/database/orm/relationships/belongs-to-many.d.ts.map +1 -0
- package/dist/database/orm/relationships/belongs-to-many.js +136 -0
- package/dist/database/orm/relationships/belongs-to-many.js.map +1 -0
- package/dist/database/orm/relationships/belongs-to.d.ts +17 -0
- package/dist/database/orm/relationships/belongs-to.d.ts.map +1 -0
- package/dist/database/orm/relationships/belongs-to.js +38 -0
- package/dist/database/orm/relationships/belongs-to.js.map +1 -0
- package/dist/database/orm/relationships/has-many.d.ts +14 -0
- package/dist/database/orm/relationships/has-many.d.ts.map +1 -0
- package/dist/database/orm/relationships/has-many.js +35 -0
- package/dist/database/orm/relationships/has-many.js.map +1 -0
- package/dist/database/orm/relationships/has-one.d.ts +14 -0
- package/dist/database/orm/relationships/has-one.d.ts.map +1 -0
- package/dist/database/orm/relationships/has-one.js +32 -0
- package/dist/database/orm/relationships/has-one.js.map +1 -0
- package/dist/database/orm/relationships/index.d.ts +10 -0
- package/dist/database/orm/relationships/index.d.ts.map +1 -0
- package/dist/database/orm/relationships/index.js +9 -0
- package/dist/database/orm/relationships/index.js.map +1 -0
- package/dist/database/orm/scopes/index.d.ts +36 -0
- package/dist/database/orm/scopes/index.d.ts.map +1 -0
- package/dist/database/orm/scopes/index.js +47 -0
- package/dist/database/orm/scopes/index.js.map +1 -0
- package/dist/database/schema/index.d.ts +155 -0
- package/dist/database/schema/index.d.ts.map +1 -0
- package/dist/database/schema/index.js +401 -0
- package/dist/database/schema/index.js.map +1 -0
- package/dist/frontend/api-routes.d.ts +189 -0
- package/dist/frontend/api-routes.d.ts.map +1 -0
- package/dist/frontend/api-routes.js +548 -0
- package/dist/frontend/api-routes.js.map +1 -0
- package/dist/frontend/bundler.d.ts +99 -0
- package/dist/frontend/bundler.d.ts.map +1 -0
- package/dist/frontend/bundler.js +555 -0
- package/dist/frontend/bundler.js.map +1 -0
- package/dist/frontend/console-client.d.ts +11 -0
- package/dist/frontend/console-client.d.ts.map +1 -0
- package/dist/frontend/console-client.js +414 -0
- package/dist/frontend/console-client.js.map +1 -0
- package/dist/frontend/console-stream.d.ts +138 -0
- package/dist/frontend/console-stream.d.ts.map +1 -0
- package/dist/frontend/console-stream.js +535 -0
- package/dist/frontend/console-stream.js.map +1 -0
- package/dist/frontend/dev-server.d.ts +174 -0
- package/dist/frontend/dev-server.d.ts.map +1 -0
- package/dist/frontend/dev-server.js +735 -0
- package/dist/frontend/dev-server.js.map +1 -0
- package/dist/frontend/file-router.d.ts +170 -0
- package/dist/frontend/file-router.d.ts.map +1 -0
- package/dist/frontend/file-router.js +531 -0
- package/dist/frontend/file-router.js.map +1 -0
- package/dist/frontend/frameworks/index.d.ts +41 -0
- package/dist/frontend/frameworks/index.d.ts.map +1 -0
- package/dist/frontend/frameworks/index.js +87 -0
- package/dist/frontend/frameworks/index.js.map +1 -0
- package/dist/frontend/frameworks/react.d.ts +32 -0
- package/dist/frontend/frameworks/react.d.ts.map +1 -0
- package/dist/frontend/frameworks/react.js +66 -0
- package/dist/frontend/frameworks/react.js.map +1 -0
- package/dist/frontend/frameworks/solid.d.ts +42 -0
- package/dist/frontend/frameworks/solid.d.ts.map +1 -0
- package/dist/frontend/frameworks/solid.js +84 -0
- package/dist/frontend/frameworks/solid.js.map +1 -0
- package/dist/frontend/frameworks/svelte.d.ts +57 -0
- package/dist/frontend/frameworks/svelte.d.ts.map +1 -0
- package/dist/frontend/frameworks/svelte.js +90 -0
- package/dist/frontend/frameworks/svelte.js.map +1 -0
- package/dist/frontend/frameworks/vue.d.ts +36 -0
- package/dist/frontend/frameworks/vue.d.ts.map +1 -0
- package/dist/frontend/frameworks/vue.js +72 -0
- package/dist/frontend/frameworks/vue.js.map +1 -0
- package/dist/frontend/hmr-client.d.ts +22 -0
- package/dist/frontend/hmr-client.d.ts.map +1 -0
- package/dist/frontend/hmr-client.js +654 -0
- package/dist/frontend/hmr-client.js.map +1 -0
- package/dist/frontend/hmr.d.ts +185 -0
- package/dist/frontend/hmr.d.ts.map +1 -0
- package/dist/frontend/hmr.js +619 -0
- package/dist/frontend/hmr.js.map +1 -0
- package/dist/frontend/index.d.ts +34 -0
- package/dist/frontend/index.d.ts.map +1 -0
- package/dist/frontend/index.js.map +1 -0
- package/dist/frontend/islands.d.ts +135 -0
- package/dist/frontend/islands.d.ts.map +1 -0
- package/dist/frontend/islands.js +455 -0
- package/dist/frontend/islands.js.map +1 -0
- package/dist/frontend/isr.d.ts +143 -0
- package/dist/frontend/isr.d.ts.map +1 -0
- package/dist/frontend/isr.js +440 -0
- package/dist/frontend/isr.js.map +1 -0
- package/dist/frontend/layout.d.ts +140 -0
- package/dist/frontend/layout.d.ts.map +1 -0
- package/dist/frontend/layout.js +392 -0
- package/dist/frontend/layout.js.map +1 -0
- package/dist/frontend/ssr/react.d.ts +118 -0
- package/dist/frontend/ssr/react.d.ts.map +1 -0
- package/dist/frontend/ssr/react.js +373 -0
- package/dist/frontend/ssr/react.js.map +1 -0
- package/dist/frontend/ssr/solid.d.ts +141 -0
- package/dist/frontend/ssr/solid.d.ts.map +1 -0
- package/dist/frontend/ssr/solid.js +440 -0
- package/dist/frontend/ssr/solid.js.map +1 -0
- package/dist/frontend/ssr/svelte.d.ts +158 -0
- package/dist/frontend/ssr/svelte.d.ts.map +1 -0
- package/dist/frontend/ssr/svelte.js +439 -0
- package/dist/frontend/ssr/svelte.js.map +1 -0
- package/dist/frontend/ssr/vue.d.ts +161 -0
- package/dist/frontend/ssr/vue.d.ts.map +1 -0
- package/dist/frontend/ssr/vue.js +385 -0
- package/dist/frontend/ssr/vue.js.map +1 -0
- package/dist/frontend/ssr.d.ts +147 -0
- package/dist/frontend/ssr.d.ts.map +1 -0
- package/dist/frontend/ssr.js +609 -0
- package/dist/frontend/ssr.js.map +1 -0
- package/dist/frontend/types.d.ts +1902 -0
- package/dist/frontend/types.d.ts.map +1 -0
- package/dist/frontend/types.js +8 -0
- package/dist/frontend/types.js.map +1 -0
- package/dist/graphql/built-in-engine.d.ts +36 -0
- package/dist/graphql/built-in-engine.d.ts.map +1 -0
- package/dist/graphql/built-in-engine.js +443 -0
- package/dist/graphql/built-in-engine.js.map +1 -0
- package/dist/graphql/context-builder.d.ts +44 -0
- package/dist/graphql/context-builder.d.ts.map +1 -0
- package/dist/graphql/context-builder.js +91 -0
- package/dist/graphql/context-builder.js.map +1 -0
- package/dist/graphql/decorators.d.ts +162 -0
- package/dist/graphql/decorators.d.ts.map +1 -0
- package/dist/graphql/decorators.js +291 -0
- package/dist/graphql/decorators.js.map +1 -0
- package/dist/graphql/execution-pipeline.d.ts +67 -0
- package/dist/graphql/execution-pipeline.d.ts.map +1 -0
- package/dist/graphql/execution-pipeline.js +127 -0
- package/dist/graphql/execution-pipeline.js.map +1 -0
- package/dist/graphql/graphql-module.d.ts +70 -0
- package/dist/graphql/graphql-module.d.ts.map +1 -0
- package/dist/graphql/graphql-module.js +442 -0
- package/dist/graphql/graphql-module.js.map +1 -0
- package/dist/graphql/index.d.ts +48 -0
- package/dist/graphql/index.d.ts.map +1 -0
- package/dist/graphql/index.js.map +1 -0
- package/dist/graphql/metadata.d.ts +37 -0
- package/dist/graphql/metadata.d.ts.map +1 -0
- package/dist/graphql/metadata.js +130 -0
- package/dist/graphql/metadata.js.map +1 -0
- package/dist/graphql/schema-builder.d.ts +34 -0
- package/dist/graphql/schema-builder.d.ts.map +1 -0
- package/dist/graphql/schema-builder.js +251 -0
- package/dist/graphql/schema-builder.js.map +1 -0
- package/dist/graphql/subscription-handler.d.ts +47 -0
- package/dist/graphql/subscription-handler.d.ts.map +1 -0
- package/dist/graphql/subscription-handler.js +201 -0
- package/dist/graphql/subscription-handler.js.map +1 -0
- package/dist/graphql/types.d.ts +252 -0
- package/dist/graphql/types.d.ts.map +1 -0
- package/dist/graphql/types.js +28 -0
- package/dist/graphql/types.js.map +1 -0
- package/dist/health/index.d.ts +176 -0
- package/dist/health/index.d.ts.map +1 -0
- package/dist/health/index.js.map +1 -0
- package/dist/i18n/engine.d.ts +105 -0
- package/dist/i18n/engine.d.ts.map +1 -0
- package/dist/i18n/engine.js +248 -0
- package/dist/i18n/engine.js.map +1 -0
- package/dist/i18n/index.d.ts +13 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/loader.d.ts +79 -0
- package/dist/i18n/loader.d.ts.map +1 -0
- package/dist/i18n/loader.js +192 -0
- package/dist/i18n/loader.js.map +1 -0
- package/dist/i18n/middleware.d.ts +96 -0
- package/dist/i18n/middleware.d.ts.map +1 -0
- package/dist/i18n/middleware.js +126 -0
- package/dist/i18n/middleware.js.map +1 -0
- package/dist/i18n/negotiator.d.ts +84 -0
- package/dist/i18n/negotiator.d.ts.map +1 -0
- package/dist/i18n/negotiator.js +139 -0
- package/dist/i18n/negotiator.js.map +1 -0
- package/dist/i18n/types.d.ts +129 -0
- package/dist/i18n/types.d.ts.map +1 -0
- package/dist/i18n/types.js +8 -0
- package/dist/i18n/types.js.map +1 -0
- package/dist/index.d.ts +48 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js.map +1 -0
- package/dist/jobs/drivers/memory.d.ts +38 -0
- package/dist/jobs/drivers/memory.d.ts.map +1 -0
- package/dist/jobs/drivers/memory.js +246 -0
- package/dist/jobs/drivers/memory.js.map +1 -0
- package/dist/jobs/drivers/redis.d.ts +34 -0
- package/dist/jobs/drivers/redis.d.ts.map +1 -0
- package/dist/jobs/drivers/redis.js +355 -0
- package/dist/jobs/drivers/redis.js.map +1 -0
- package/dist/jobs/index.d.ts +12 -0
- package/dist/jobs/index.d.ts.map +1 -0
- package/dist/jobs/index.js.map +1 -0
- package/dist/jobs/queue.d.ts +93 -0
- package/dist/jobs/queue.d.ts.map +1 -0
- package/dist/jobs/queue.js +233 -0
- package/dist/jobs/queue.js.map +1 -0
- package/dist/jobs/types.d.ts +193 -0
- package/dist/jobs/types.d.ts.map +1 -0
- package/dist/jobs/types.js +8 -0
- package/dist/jobs/types.js.map +1 -0
- package/dist/jobs/worker.d.ts +91 -0
- package/dist/jobs/worker.d.ts.map +1 -0
- package/dist/jobs/worker.js +300 -0
- package/dist/jobs/worker.js.map +1 -0
- package/dist/lock/index.d.ts +141 -0
- package/dist/lock/index.d.ts.map +1 -0
- package/dist/lock/index.js.map +1 -0
- package/dist/logger/index.d.ts +156 -0
- package/dist/logger/index.d.ts.map +1 -0
- package/dist/logger/index.js.map +1 -0
- package/dist/logger/transports/index.d.ts +371 -0
- package/dist/logger/transports/index.d.ts.map +1 -0
- package/dist/logger/transports/index.js +740 -0
- package/dist/logger/transports/index.js.map +1 -0
- package/dist/metrics/index.d.ts +163 -0
- package/dist/metrics/index.d.ts.map +1 -0
- package/dist/metrics/index.js.map +1 -0
- package/dist/middleware/built-in.d.ts +50 -0
- package/dist/middleware/built-in.d.ts.map +1 -0
- package/dist/middleware/built-in.js +220 -0
- package/dist/middleware/built-in.js.map +1 -0
- package/dist/middleware/index.d.ts +40 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js.map +1 -0
- package/dist/migrations/index.d.ts +48 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/migrations/index.js +3 -0
- package/dist/migrations/index.js.map +1 -0
- package/dist/modules/filters.d.ts +150 -0
- package/dist/modules/filters.d.ts.map +1 -0
- package/dist/modules/filters.js +338 -0
- package/dist/modules/filters.js.map +1 -0
- package/dist/modules/guards.d.ts +188 -0
- package/dist/modules/guards.d.ts.map +1 -0
- package/dist/modules/guards.js +278 -0
- package/dist/modules/guards.js.map +1 -0
- package/dist/modules/index.d.ts +266 -0
- package/dist/modules/index.d.ts.map +1 -0
- package/dist/modules/index.js.map +1 -0
- package/dist/modules/interceptors.d.ts +242 -0
- package/dist/modules/interceptors.d.ts.map +1 -0
- package/dist/modules/interceptors.js +407 -0
- package/dist/modules/interceptors.js.map +1 -0
- package/dist/modules/lazy.d.ts +187 -0
- package/dist/modules/lazy.d.ts.map +1 -0
- package/dist/modules/lazy.js +305 -0
- package/dist/modules/lazy.js.map +1 -0
- package/dist/modules/lifecycle.d.ts +221 -0
- package/dist/modules/lifecycle.d.ts.map +1 -0
- package/dist/modules/lifecycle.js +314 -0
- package/dist/modules/lifecycle.js.map +1 -0
- package/dist/modules/metadata.d.ts +32 -0
- package/dist/modules/metadata.d.ts.map +1 -0
- package/dist/modules/metadata.js +59 -0
- package/dist/modules/metadata.js.map +1 -0
- package/dist/modules/pipes.d.ts +287 -0
- package/dist/modules/pipes.d.ts.map +1 -0
- package/dist/modules/pipes.js +443 -0
- package/dist/modules/pipes.js.map +1 -0
- package/dist/notification/channels/base.d.ts +32 -0
- package/dist/notification/channels/base.d.ts.map +1 -0
- package/dist/notification/channels/base.js +37 -0
- package/dist/notification/channels/base.js.map +1 -0
- package/dist/notification/channels/email.d.ts +37 -0
- package/dist/notification/channels/email.d.ts.map +1 -0
- package/dist/notification/channels/email.js +85 -0
- package/dist/notification/channels/email.js.map +1 -0
- package/dist/notification/channels/push.d.ts +37 -0
- package/dist/notification/channels/push.d.ts.map +1 -0
- package/dist/notification/channels/push.js +84 -0
- package/dist/notification/channels/push.js.map +1 -0
- package/dist/notification/channels/sms.d.ts +37 -0
- package/dist/notification/channels/sms.d.ts.map +1 -0
- package/dist/notification/channels/sms.js +83 -0
- package/dist/notification/channels/sms.js.map +1 -0
- package/dist/notification/channels/whatsapp.d.ts +37 -0
- package/dist/notification/channels/whatsapp.d.ts.map +1 -0
- package/dist/notification/channels/whatsapp.js +81 -0
- package/dist/notification/channels/whatsapp.js.map +1 -0
- package/dist/notification/index.d.ts +15 -0
- package/dist/notification/index.d.ts.map +1 -0
- package/dist/notification/index.js.map +1 -0
- package/dist/notification/service.d.ts +100 -0
- package/dist/notification/service.d.ts.map +1 -0
- package/dist/notification/service.js +279 -0
- package/dist/notification/service.js.map +1 -0
- package/dist/notification/types.d.ts +253 -0
- package/dist/notification/types.d.ts.map +1 -0
- package/dist/notification/types.js +14 -0
- package/dist/notification/types.js.map +1 -0
- package/dist/observability/__tests__/observability.test.d.ts +2 -0
- package/dist/observability/__tests__/observability.test.d.ts.map +1 -0
- package/dist/observability/__tests__/observability.test.js +404 -0
- package/dist/observability/__tests__/observability.test.js.map +1 -0
- package/dist/observability/breadcrumbs.d.ts +48 -0
- package/dist/observability/breadcrumbs.d.ts.map +1 -0
- package/dist/observability/breadcrumbs.js +97 -0
- package/dist/observability/breadcrumbs.js.map +1 -0
- package/dist/observability/index.d.ts +95 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/interceptor.d.ts +19 -0
- package/dist/observability/interceptor.d.ts.map +1 -0
- package/dist/observability/interceptor.js +67 -0
- package/dist/observability/interceptor.js.map +1 -0
- package/dist/observability/service.d.ts +101 -0
- package/dist/observability/service.d.ts.map +1 -0
- package/dist/observability/service.js +249 -0
- package/dist/observability/service.js.map +1 -0
- package/dist/observability/trace.d.ts +21 -0
- package/dist/observability/trace.d.ts.map +1 -0
- package/dist/observability/trace.js +35 -0
- package/dist/observability/trace.js.map +1 -0
- package/dist/observability/types.d.ts +172 -0
- package/dist/observability/types.d.ts.map +1 -0
- package/dist/observability/types.js +8 -0
- package/dist/observability/types.js.map +1 -0
- package/dist/openapi/decorators.d.ts +173 -0
- package/dist/openapi/decorators.d.ts.map +1 -0
- package/dist/openapi/decorators.js +276 -0
- package/dist/openapi/decorators.js.map +1 -0
- package/dist/openapi/document-builder.d.ts +82 -0
- package/dist/openapi/document-builder.d.ts.map +1 -0
- package/dist/openapi/document-builder.js +228 -0
- package/dist/openapi/document-builder.js.map +1 -0
- package/dist/openapi/index.d.ts +48 -0
- package/dist/openapi/index.d.ts.map +1 -0
- package/dist/openapi/index.js.map +1 -0
- package/dist/openapi/metadata.d.ts +36 -0
- package/dist/openapi/metadata.d.ts.map +1 -0
- package/dist/openapi/metadata.js +78 -0
- package/dist/openapi/metadata.js.map +1 -0
- package/dist/openapi/route-scanner.d.ts +34 -0
- package/dist/openapi/route-scanner.d.ts.map +1 -0
- package/dist/openapi/route-scanner.js +174 -0
- package/dist/openapi/route-scanner.js.map +1 -0
- package/dist/openapi/schema-generator.d.ts +53 -0
- package/dist/openapi/schema-generator.d.ts.map +1 -0
- package/dist/openapi/schema-generator.js +236 -0
- package/dist/openapi/schema-generator.js.map +1 -0
- package/dist/openapi/swagger-module.d.ts +57 -0
- package/dist/openapi/swagger-module.d.ts.map +1 -0
- package/dist/openapi/swagger-module.js +143 -0
- package/dist/openapi/swagger-module.js.map +1 -0
- package/dist/openapi/types.d.ts +344 -0
- package/dist/openapi/types.d.ts.map +1 -0
- package/dist/openapi/types.js +7 -0
- package/dist/openapi/types.js.map +1 -0
- package/dist/orm/index.d.ts +10 -0
- package/dist/orm/index.d.ts.map +1 -0
- package/dist/orm/index.js.map +1 -0
- package/dist/router/index.d.ts +73 -0
- package/dist/router/index.d.ts.map +1 -0
- package/dist/router/index.js.map +1 -0
- package/dist/router/linear.d.ts +54 -0
- package/dist/router/linear.d.ts.map +1 -0
- package/dist/router/linear.js +261 -0
- package/dist/router/linear.js.map +1 -0
- package/dist/router/regex.d.ts +49 -0
- package/dist/router/regex.d.ts.map +1 -0
- package/dist/router/regex.js +201 -0
- package/dist/router/regex.js.map +1 -0
- package/dist/router/tree.d.ts +112 -0
- package/dist/router/tree.d.ts.map +1 -0
- package/dist/router/tree.js +360 -0
- package/dist/router/tree.js.map +1 -0
- package/dist/rpc/index.d.ts +321 -0
- package/dist/rpc/index.d.ts.map +1 -0
- package/dist/rpc/index.js.map +1 -0
- package/dist/schema/index.d.ts +10 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/security/index.d.ts +126 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +309 -0
- package/dist/security/index.js.map +1 -0
- package/dist/ssg/index.d.ts +73 -0
- package/dist/ssg/index.d.ts.map +1 -0
- package/dist/ssg/index.js +464 -0
- package/dist/ssg/index.js.map +1 -0
- package/dist/storage/index.d.ts +99 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +338 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/telemetry/index.d.ts +376 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/template/index.d.ts +7 -0
- package/dist/template/index.d.ts.map +1 -0
- package/dist/template/index.js.map +1 -0
- package/dist/templates/engine.d.ts +60 -0
- package/dist/templates/engine.d.ts.map +1 -0
- package/dist/templates/engine.js +177 -0
- package/dist/templates/engine.js.map +1 -0
- package/dist/templates/index.d.ts +9 -0
- package/dist/templates/index.d.ts.map +1 -0
- package/dist/templates/index.js.map +1 -0
- package/dist/templates/loader.d.ts +45 -0
- package/dist/templates/loader.d.ts.map +1 -0
- package/dist/templates/loader.js +274 -0
- package/dist/templates/loader.js.map +1 -0
- package/dist/templates/renderers/markdown.d.ts +46 -0
- package/dist/templates/renderers/markdown.d.ts.map +1 -0
- package/dist/templates/renderers/markdown.js +181 -0
- package/dist/templates/renderers/markdown.js.map +1 -0
- package/dist/templates/renderers/simple.d.ts +35 -0
- package/dist/templates/renderers/simple.d.ts.map +1 -0
- package/dist/templates/renderers/simple.js +245 -0
- package/dist/templates/renderers/simple.js.map +1 -0
- package/dist/templates/types.d.ts +138 -0
- package/dist/templates/types.d.ts.map +1 -0
- package/dist/templates/types.js +8 -0
- package/dist/templates/types.js.map +1 -0
- package/dist/testing/index.d.ts +539 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/types/index.d.ts +116 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js.map +1 -0
- package/dist/validation/index.d.ts +89 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +276 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/schemas.d.ts +283 -0
- package/dist/validation/schemas.d.ts.map +1 -0
- package/dist/validation/schemas.js +407 -0
- package/dist/validation/schemas.js.map +1 -0
- package/dist/websocket/index.d.ts +252 -0
- package/dist/websocket/index.d.ts.map +1 -0
- package/dist/websocket/index.js +749 -0
- package/dist/websocket/index.js.map +1 -0
- package/package.json +3 -3
- package/src/database/migrations/index.ts +8 -0
- package/src/migrations/index.ts +40 -1
- package/src/types/index.ts +1 -1
- package/tsconfig.json +2 -6
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deep merge utilities for configuration
|
|
3
|
+
*/
|
|
4
|
+
import type { BuenoConfig, DeepPartial } from "./types";
|
|
5
|
+
/**
|
|
6
|
+
* Check if a value is a plain object (not an array, not null, not a class instance)
|
|
7
|
+
*/
|
|
8
|
+
export declare function isPlainObject(value: unknown): value is Record<string, unknown>;
|
|
9
|
+
/**
|
|
10
|
+
* Check if a value is an object (alias for isPlainObject)
|
|
11
|
+
*/
|
|
12
|
+
export declare function isObject(value: unknown): value is Record<string, unknown>;
|
|
13
|
+
/**
|
|
14
|
+
* Deep merge two values
|
|
15
|
+
* - Objects are merged recursively
|
|
16
|
+
* - Arrays are concatenated (not merged element-wise)
|
|
17
|
+
* - Primitive values from source override target
|
|
18
|
+
*/
|
|
19
|
+
export declare function deepMerge<T>(target: T, source: DeepPartial<T>): T;
|
|
20
|
+
/**
|
|
21
|
+
* Merge multiple configuration objects
|
|
22
|
+
* Later configs have higher priority
|
|
23
|
+
*/
|
|
24
|
+
export declare function mergeConfigs<T extends BuenoConfig = BuenoConfig>(...configs: (DeepPartial<T> | undefined | null)[]): DeepPartial<T>;
|
|
25
|
+
/**
|
|
26
|
+
* Deep clone a configuration object
|
|
27
|
+
*/
|
|
28
|
+
export declare function deepClone<T>(obj: T): T;
|
|
29
|
+
/**
|
|
30
|
+
* Get a value from an object using dot notation
|
|
31
|
+
* @example getNestedValue({ a: { b: { c: 1 } } }, 'a.b.c') // returns 1
|
|
32
|
+
*/
|
|
33
|
+
export declare function getNestedValue<T = unknown>(obj: Record<string, unknown>, path: string): T | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* Set a value in an object using dot notation
|
|
36
|
+
* @example setNestedValue({}, 'a.b.c', 1) // returns { a: { b: { c: 1 } } }
|
|
37
|
+
*/
|
|
38
|
+
export declare function setNestedValue(obj: Record<string, unknown>, path: string, value: unknown): Record<string, unknown>;
|
|
39
|
+
/**
|
|
40
|
+
* Delete a value from an object using dot notation
|
|
41
|
+
* @example deleteNestedValue({ a: { b: { c: 1 } } }, 'a.b.c') // returns { a: { b: {} } }
|
|
42
|
+
*/
|
|
43
|
+
export declare function deleteNestedValue(obj: Record<string, unknown>, path: string): Record<string, unknown>;
|
|
44
|
+
/**
|
|
45
|
+
* Check if a path exists in an object
|
|
46
|
+
*/
|
|
47
|
+
export declare function hasNestedValue(obj: Record<string, unknown>, path: string): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Flatten a nested object to dot notation keys
|
|
50
|
+
* @example flattenObject({ a: { b: { c: 1 } } }) // returns { 'a.b.c': 1 }
|
|
51
|
+
*/
|
|
52
|
+
export declare function flattenObject(obj: Record<string, unknown>, prefix?: string): Record<string, unknown>;
|
|
53
|
+
/**
|
|
54
|
+
* Unflatten a dot notation object to nested object
|
|
55
|
+
* @example unflattenObject({ 'a.b.c': 1 }) // returns { a: { b: { c: 1 } } }
|
|
56
|
+
*/
|
|
57
|
+
export declare function unflattenObject(obj: Record<string, unknown>): Record<string, unknown>;
|
|
58
|
+
/**
|
|
59
|
+
* Compare two configurations and return the differences
|
|
60
|
+
*/
|
|
61
|
+
export declare function diffConfigs(target: BuenoConfig, source: BuenoConfig): {
|
|
62
|
+
added: string[];
|
|
63
|
+
removed: string[];
|
|
64
|
+
changed: string[];
|
|
65
|
+
};
|
|
66
|
+
//# sourceMappingURL=merge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../src/config/merge.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAExD;;GAEG;AACH,wBAAgB,aAAa,CAC5B,KAAK,EAAE,OAAO,GACZ,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMlC;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CA8CjE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EAC/D,GAAG,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,GAC/C,WAAW,CAAC,CAAC,CAAC,CAchB;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAmBtC;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,CAAC,GAAG,OAAO,EACzC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,IAAI,EAAE,MAAM,GACV,CAAC,GAAG,SAAS,CAgBf;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC7B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,GACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAezB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAChC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,IAAI,EAAE,MAAM,GACV,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAezB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC7B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,IAAI,EAAE,MAAM,GACV,OAAO,CAET;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC5B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,MAAM,SAAK,GACT,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAezB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC9B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC1B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmBzB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAC1B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,WAAW,GACjB;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CA4B3D"}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deep merge utilities for configuration
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Check if a value is a plain object (not an array, not null, not a class instance)
|
|
6
|
+
*/
|
|
7
|
+
export function isPlainObject(value) {
|
|
8
|
+
if (value === null || typeof value !== "object") {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
const proto = Object.getPrototypeOf(value);
|
|
12
|
+
return proto === null || proto === Object.prototype;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Check if a value is an object (alias for isPlainObject)
|
|
16
|
+
*/
|
|
17
|
+
export function isObject(value) {
|
|
18
|
+
return isPlainObject(value);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Deep merge two values
|
|
22
|
+
* - Objects are merged recursively
|
|
23
|
+
* - Arrays are concatenated (not merged element-wise)
|
|
24
|
+
* - Primitive values from source override target
|
|
25
|
+
*/
|
|
26
|
+
export function deepMerge(target, source) {
|
|
27
|
+
// Handle null/undefined source
|
|
28
|
+
if (source === null || source === undefined) {
|
|
29
|
+
return target;
|
|
30
|
+
}
|
|
31
|
+
// Handle null/undefined target
|
|
32
|
+
if (target === null || target === undefined) {
|
|
33
|
+
return source;
|
|
34
|
+
}
|
|
35
|
+
// If source is not an object, return source (override)
|
|
36
|
+
if (!isPlainObject(source)) {
|
|
37
|
+
return source;
|
|
38
|
+
}
|
|
39
|
+
// If target is not an object but source is, return source
|
|
40
|
+
if (!isPlainObject(target)) {
|
|
41
|
+
return source;
|
|
42
|
+
}
|
|
43
|
+
// Both are objects, merge them
|
|
44
|
+
const result = { ...target };
|
|
45
|
+
const sourceRecord = source;
|
|
46
|
+
const targetRecord = target;
|
|
47
|
+
for (const key of Object.keys(source)) {
|
|
48
|
+
const sourceValue = sourceRecord[key];
|
|
49
|
+
const targetValue = targetRecord[key];
|
|
50
|
+
if (isPlainObject(sourceValue) && isPlainObject(targetValue)) {
|
|
51
|
+
// Both are objects, merge recursively
|
|
52
|
+
result[key] = deepMerge(targetValue, sourceValue);
|
|
53
|
+
}
|
|
54
|
+
else if (Array.isArray(sourceValue) && Array.isArray(targetValue)) {
|
|
55
|
+
// Both are arrays, concatenate them
|
|
56
|
+
result[key] = [...targetValue, ...sourceValue];
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
// Override with source value
|
|
60
|
+
result[key] = sourceValue;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return result;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Merge multiple configuration objects
|
|
67
|
+
* Later configs have higher priority
|
|
68
|
+
*/
|
|
69
|
+
export function mergeConfigs(...configs) {
|
|
70
|
+
return configs.reduce((acc, config) => {
|
|
71
|
+
if (config === undefined || config === null) {
|
|
72
|
+
return acc;
|
|
73
|
+
}
|
|
74
|
+
// Use unknown as intermediate type to avoid recursive type issues
|
|
75
|
+
return deepMerge(acc, config);
|
|
76
|
+
}, {});
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Deep clone a configuration object
|
|
80
|
+
*/
|
|
81
|
+
export function deepClone(obj) {
|
|
82
|
+
if (obj === null || typeof obj !== "object") {
|
|
83
|
+
return obj;
|
|
84
|
+
}
|
|
85
|
+
if (Array.isArray(obj)) {
|
|
86
|
+
return obj.map((item) => deepClone(item));
|
|
87
|
+
}
|
|
88
|
+
if (isPlainObject(obj)) {
|
|
89
|
+
const result = {};
|
|
90
|
+
for (const key of Object.keys(obj)) {
|
|
91
|
+
result[key] = deepClone(obj[key]);
|
|
92
|
+
}
|
|
93
|
+
return result;
|
|
94
|
+
}
|
|
95
|
+
// For other types (Date, Map, Set, etc.), return as-is
|
|
96
|
+
return obj;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Get a value from an object using dot notation
|
|
100
|
+
* @example getNestedValue({ a: { b: { c: 1 } } }, 'a.b.c') // returns 1
|
|
101
|
+
*/
|
|
102
|
+
export function getNestedValue(obj, path) {
|
|
103
|
+
const keys = path.split(".");
|
|
104
|
+
let current = obj;
|
|
105
|
+
for (const key of keys) {
|
|
106
|
+
if (current === null || current === undefined) {
|
|
107
|
+
return undefined;
|
|
108
|
+
}
|
|
109
|
+
if (isPlainObject(current)) {
|
|
110
|
+
current = current[key];
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
return undefined;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return current;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Set a value in an object using dot notation
|
|
120
|
+
* @example setNestedValue({}, 'a.b.c', 1) // returns { a: { b: { c: 1 } } }
|
|
121
|
+
*/
|
|
122
|
+
export function setNestedValue(obj, path, value) {
|
|
123
|
+
const keys = path.split(".");
|
|
124
|
+
const result = deepClone(obj);
|
|
125
|
+
let current = result;
|
|
126
|
+
for (let i = 0; i < keys.length - 1; i++) {
|
|
127
|
+
const key = keys[i];
|
|
128
|
+
if (!isPlainObject(current[key])) {
|
|
129
|
+
current[key] = {};
|
|
130
|
+
}
|
|
131
|
+
current = current[key];
|
|
132
|
+
}
|
|
133
|
+
current[keys[keys.length - 1]] = value;
|
|
134
|
+
return result;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Delete a value from an object using dot notation
|
|
138
|
+
* @example deleteNestedValue({ a: { b: { c: 1 } } }, 'a.b.c') // returns { a: { b: {} } }
|
|
139
|
+
*/
|
|
140
|
+
export function deleteNestedValue(obj, path) {
|
|
141
|
+
const keys = path.split(".");
|
|
142
|
+
const result = deepClone(obj);
|
|
143
|
+
let current = result;
|
|
144
|
+
for (let i = 0; i < keys.length - 1; i++) {
|
|
145
|
+
const key = keys[i];
|
|
146
|
+
if (!isPlainObject(current[key])) {
|
|
147
|
+
return result; // Path doesn't exist, nothing to delete
|
|
148
|
+
}
|
|
149
|
+
current = current[key];
|
|
150
|
+
}
|
|
151
|
+
delete current[keys[keys.length - 1]];
|
|
152
|
+
return result;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Check if a path exists in an object
|
|
156
|
+
*/
|
|
157
|
+
export function hasNestedValue(obj, path) {
|
|
158
|
+
return getNestedValue(obj, path) !== undefined;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Flatten a nested object to dot notation keys
|
|
162
|
+
* @example flattenObject({ a: { b: { c: 1 } } }) // returns { 'a.b.c': 1 }
|
|
163
|
+
*/
|
|
164
|
+
export function flattenObject(obj, prefix = "") {
|
|
165
|
+
const result = {};
|
|
166
|
+
for (const key of Object.keys(obj)) {
|
|
167
|
+
const newKey = prefix ? `${prefix}.${key}` : key;
|
|
168
|
+
const value = obj[key];
|
|
169
|
+
if (isPlainObject(value)) {
|
|
170
|
+
Object.assign(result, flattenObject(value, newKey));
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
result[newKey] = value;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
return result;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Unflatten a dot notation object to nested object
|
|
180
|
+
* @example unflattenObject({ 'a.b.c': 1 }) // returns { a: { b: { c: 1 } } }
|
|
181
|
+
*/
|
|
182
|
+
export function unflattenObject(obj) {
|
|
183
|
+
const result = {};
|
|
184
|
+
for (const key of Object.keys(obj)) {
|
|
185
|
+
const keys = key.split(".");
|
|
186
|
+
let current = result;
|
|
187
|
+
for (let i = 0; i < keys.length - 1; i++) {
|
|
188
|
+
const k = keys[i];
|
|
189
|
+
if (!isPlainObject(current[k])) {
|
|
190
|
+
current[k] = {};
|
|
191
|
+
}
|
|
192
|
+
current = current[k];
|
|
193
|
+
}
|
|
194
|
+
current[keys[keys.length - 1]] = obj[key];
|
|
195
|
+
}
|
|
196
|
+
return result;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Compare two configurations and return the differences
|
|
200
|
+
*/
|
|
201
|
+
export function diffConfigs(target, source) {
|
|
202
|
+
const flatTarget = flattenObject(target);
|
|
203
|
+
const flatSource = flattenObject(source);
|
|
204
|
+
const targetKeys = new Set(Object.keys(flatTarget));
|
|
205
|
+
const sourceKeys = new Set(Object.keys(flatSource));
|
|
206
|
+
const added = [];
|
|
207
|
+
const removed = [];
|
|
208
|
+
const changed = [];
|
|
209
|
+
// Find added keys
|
|
210
|
+
for (const key of sourceKeys) {
|
|
211
|
+
if (!targetKeys.has(key)) {
|
|
212
|
+
added.push(key);
|
|
213
|
+
}
|
|
214
|
+
else if (flatTarget[key] !== flatSource[key]) {
|
|
215
|
+
changed.push(key);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
// Find removed keys
|
|
219
|
+
for (const key of targetKeys) {
|
|
220
|
+
if (!sourceKeys.has(key)) {
|
|
221
|
+
removed.push(key);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
return { added, removed, changed };
|
|
225
|
+
}
|
|
226
|
+
//# sourceMappingURL=merge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../src/config/merge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration type definitions for Bueno Framework
|
|
3
|
+
*/
|
|
4
|
+
import type { StandardSchema } from "../types";
|
|
5
|
+
export interface ServerConfig {
|
|
6
|
+
/** Server port (default: 3000) */
|
|
7
|
+
port?: number;
|
|
8
|
+
/** Server host (default: 'localhost') */
|
|
9
|
+
host?: string;
|
|
10
|
+
/** Enable development mode */
|
|
11
|
+
development?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface DatabaseConfig {
|
|
14
|
+
/** Database connection URL */
|
|
15
|
+
url?: string;
|
|
16
|
+
/** Connection pool size */
|
|
17
|
+
poolSize?: number;
|
|
18
|
+
/** Enable database metrics */
|
|
19
|
+
enableMetrics?: boolean;
|
|
20
|
+
/** Slow query threshold in milliseconds */
|
|
21
|
+
slowQueryThreshold?: number;
|
|
22
|
+
}
|
|
23
|
+
export interface CacheConfig {
|
|
24
|
+
/** Cache driver type */
|
|
25
|
+
driver?: "redis" | "memory";
|
|
26
|
+
/** Redis connection URL */
|
|
27
|
+
url?: string;
|
|
28
|
+
/** Default TTL in seconds */
|
|
29
|
+
ttl?: number;
|
|
30
|
+
/** Key prefix for namespacing */
|
|
31
|
+
keyPrefix?: string;
|
|
32
|
+
/** Enable cache metrics */
|
|
33
|
+
enableMetrics?: boolean;
|
|
34
|
+
}
|
|
35
|
+
export type LogLevel = "debug" | "info" | "warn" | "error" | "fatal";
|
|
36
|
+
export interface LoggerConfig {
|
|
37
|
+
/** Log level (default: 'info') */
|
|
38
|
+
level?: LogLevel;
|
|
39
|
+
/** Pretty print logs (default: true in development) */
|
|
40
|
+
pretty?: boolean;
|
|
41
|
+
/** Output destination */
|
|
42
|
+
output?: "console" | "stdout";
|
|
43
|
+
}
|
|
44
|
+
export interface HealthConfig {
|
|
45
|
+
/** Enable health check endpoints */
|
|
46
|
+
enabled?: boolean;
|
|
47
|
+
/** Health check endpoint path (default: '/health') */
|
|
48
|
+
healthPath?: string;
|
|
49
|
+
/** Readiness check endpoint path (default: '/ready') */
|
|
50
|
+
readyPath?: string;
|
|
51
|
+
}
|
|
52
|
+
export interface MetricsConfig {
|
|
53
|
+
/** Enable metrics collection */
|
|
54
|
+
enabled?: boolean;
|
|
55
|
+
/** Collection interval in milliseconds */
|
|
56
|
+
collectInterval?: number;
|
|
57
|
+
/** Maximum history size */
|
|
58
|
+
maxHistorySize?: number;
|
|
59
|
+
}
|
|
60
|
+
export interface ObservabilityConfig {
|
|
61
|
+
/** Enable the observability integration layer */
|
|
62
|
+
enabled?: boolean;
|
|
63
|
+
/** Maximum breadcrumb ring buffer size (default: 20) */
|
|
64
|
+
breadcrumbsSize?: number;
|
|
65
|
+
/** HTTP status codes to suppress from error reporting (e.g. [404, 401]) */
|
|
66
|
+
ignoreStatusCodes?: number[];
|
|
67
|
+
}
|
|
68
|
+
export interface TelemetryConfig {
|
|
69
|
+
/** Enable OpenTelemetry tracing */
|
|
70
|
+
enabled?: boolean;
|
|
71
|
+
/** Service name for tracing */
|
|
72
|
+
serviceName?: string;
|
|
73
|
+
/** OTLP endpoint URL */
|
|
74
|
+
endpoint?: string;
|
|
75
|
+
/** Sampling rate (0.0 to 1.0) */
|
|
76
|
+
sampleRate?: number;
|
|
77
|
+
}
|
|
78
|
+
export interface JobsConfig {
|
|
79
|
+
/** Enable background jobs */
|
|
80
|
+
enabled?: boolean;
|
|
81
|
+
/** Job queue driver type */
|
|
82
|
+
driver?: "redis" | "memory";
|
|
83
|
+
/** Redis connection URL */
|
|
84
|
+
url?: string;
|
|
85
|
+
/** Key prefix for jobs (default: 'jobs:') */
|
|
86
|
+
keyPrefix?: string;
|
|
87
|
+
/** Max concurrent jobs (default: 10) */
|
|
88
|
+
concurrency?: number;
|
|
89
|
+
/** Max retry attempts (default: 3) */
|
|
90
|
+
maxRetries?: number;
|
|
91
|
+
/** Retry delay in seconds (default: 1) */
|
|
92
|
+
retryDelay?: number;
|
|
93
|
+
/** Job batch size (default: 10) */
|
|
94
|
+
batchSize?: number;
|
|
95
|
+
/** Poll interval in milliseconds (default: 1000) */
|
|
96
|
+
pollInterval?: number;
|
|
97
|
+
/** Job timeout in milliseconds (default: 300000 / 5 minutes) */
|
|
98
|
+
jobTimeout?: number;
|
|
99
|
+
/** Enable metrics collection */
|
|
100
|
+
enableMetrics?: boolean;
|
|
101
|
+
}
|
|
102
|
+
export interface TemplateConfig {
|
|
103
|
+
/** Enable template system */
|
|
104
|
+
enabled?: boolean;
|
|
105
|
+
/** Base path to templates directory (default: 'resources/templates') */
|
|
106
|
+
basePath?: string;
|
|
107
|
+
/** Cache configuration */
|
|
108
|
+
cache?: {
|
|
109
|
+
/** Enable template caching (default: true) */
|
|
110
|
+
enabled?: boolean;
|
|
111
|
+
/** Cache TTL in seconds (default: 3600) */
|
|
112
|
+
ttl?: number;
|
|
113
|
+
/** Maximum templates in cache (default: 100) */
|
|
114
|
+
maxSize?: number;
|
|
115
|
+
};
|
|
116
|
+
/** Enable file watching for hot reload in development */
|
|
117
|
+
watch?: boolean;
|
|
118
|
+
/** Default output format: 'html' or 'text' */
|
|
119
|
+
defaultFormat?: "html" | "text";
|
|
120
|
+
/** Channel to variant mapping for auto-detection */
|
|
121
|
+
channelVariantMap?: Record<string, string>;
|
|
122
|
+
}
|
|
123
|
+
export interface NotificationConfig {
|
|
124
|
+
/** Enable notification service */
|
|
125
|
+
enabled?: boolean;
|
|
126
|
+
/** Enable metrics collection */
|
|
127
|
+
enableMetrics?: boolean;
|
|
128
|
+
/** Default channel for sending */
|
|
129
|
+
defaultChannel?: string;
|
|
130
|
+
/** Enable job queue integration for async sending */
|
|
131
|
+
queue?: boolean;
|
|
132
|
+
/** Email channel configuration */
|
|
133
|
+
email?: {
|
|
134
|
+
enabled?: boolean;
|
|
135
|
+
driver?: "smtp" | "sendgrid" | "brevo" | "resend";
|
|
136
|
+
from?: string;
|
|
137
|
+
fromName?: string;
|
|
138
|
+
dryRun?: boolean;
|
|
139
|
+
smtp?: {
|
|
140
|
+
host?: string;
|
|
141
|
+
port?: number;
|
|
142
|
+
secure?: boolean;
|
|
143
|
+
username?: string;
|
|
144
|
+
password?: string;
|
|
145
|
+
};
|
|
146
|
+
apiKey?: string;
|
|
147
|
+
};
|
|
148
|
+
/** SMS channel configuration */
|
|
149
|
+
sms?: {
|
|
150
|
+
enabled?: boolean;
|
|
151
|
+
driver?: "twilio" | "aws-sns" | "custom";
|
|
152
|
+
dryRun?: boolean;
|
|
153
|
+
accountSid?: string;
|
|
154
|
+
authToken?: string;
|
|
155
|
+
fromNumber?: string;
|
|
156
|
+
apiKey?: string;
|
|
157
|
+
};
|
|
158
|
+
/** WhatsApp channel configuration */
|
|
159
|
+
whatsapp?: {
|
|
160
|
+
enabled?: boolean;
|
|
161
|
+
driver?: "twilio" | "custom";
|
|
162
|
+
dryRun?: boolean;
|
|
163
|
+
accountSid?: string;
|
|
164
|
+
authToken?: string;
|
|
165
|
+
businessPhoneNumber?: string;
|
|
166
|
+
apiKey?: string;
|
|
167
|
+
};
|
|
168
|
+
/** Push notification channel configuration */
|
|
169
|
+
push?: {
|
|
170
|
+
enabled?: boolean;
|
|
171
|
+
driver?: "firebase" | "apns" | "custom";
|
|
172
|
+
dryRun?: boolean;
|
|
173
|
+
serverKey?: string;
|
|
174
|
+
certificatePath?: string;
|
|
175
|
+
apiKey?: string;
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
export interface I18nConfig {
|
|
179
|
+
/** Enable i18n system */
|
|
180
|
+
enabled?: boolean;
|
|
181
|
+
/** Default locale — used as fallback when requested locale has missing keys (default: "en") */
|
|
182
|
+
defaultLocale?: string;
|
|
183
|
+
/** List of supported locale identifiers (default: ["en"]) */
|
|
184
|
+
supportedLocales?: string[];
|
|
185
|
+
/** Base directory for locale JSON files (default: "resources/i18n") */
|
|
186
|
+
basePath?: string;
|
|
187
|
+
/**
|
|
188
|
+
* Fall back to defaultLocale when a key is missing in the requested locale.
|
|
189
|
+
* (default: true)
|
|
190
|
+
*/
|
|
191
|
+
fallbackToDefault?: boolean;
|
|
192
|
+
/** Cookie name used to persist locale choice (default: "bueno_locale") */
|
|
193
|
+
cookieName?: string;
|
|
194
|
+
/** Cookie max-age in seconds (default: 31536000 — 1 year) */
|
|
195
|
+
cookieMaxAge?: number;
|
|
196
|
+
/** Enable file watching for hot reload in development */
|
|
197
|
+
watch?: boolean;
|
|
198
|
+
}
|
|
199
|
+
export interface FrontendConfig {
|
|
200
|
+
/** Enable development server */
|
|
201
|
+
devServer?: boolean;
|
|
202
|
+
/** Enable Hot Module Replacement */
|
|
203
|
+
hmr?: boolean;
|
|
204
|
+
/** Frontend dev server port */
|
|
205
|
+
port?: number;
|
|
206
|
+
}
|
|
207
|
+
export interface GraphQLConfig {
|
|
208
|
+
/** Enable GraphQL support (default: false) */
|
|
209
|
+
enabled?: boolean;
|
|
210
|
+
/** HTTP path for GraphQL endpoint (default: '/graphql') */
|
|
211
|
+
path?: string;
|
|
212
|
+
/** Enable GraphiQL playground (default: auto — true with adapter, false with built-in) */
|
|
213
|
+
playground?: boolean;
|
|
214
|
+
/** Enable SDL introspection endpoint at GET <path>/schema (default: true) */
|
|
215
|
+
introspection?: boolean;
|
|
216
|
+
/** Maximum query complexity score (default: 1000) */
|
|
217
|
+
complexityLimit?: number;
|
|
218
|
+
/** Maximum query depth (default: 10) */
|
|
219
|
+
maxDepth?: number;
|
|
220
|
+
/** Enable WebSocket subscriptions (default: false) */
|
|
221
|
+
subscriptions?: boolean;
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Main configuration interface for Bueno Framework
|
|
225
|
+
*/
|
|
226
|
+
export interface BuenoConfig {
|
|
227
|
+
/** Server configuration */
|
|
228
|
+
server?: ServerConfig;
|
|
229
|
+
/** Database configuration */
|
|
230
|
+
database?: DatabaseConfig;
|
|
231
|
+
/** Cache configuration */
|
|
232
|
+
cache?: CacheConfig;
|
|
233
|
+
/** Jobs configuration */
|
|
234
|
+
jobs?: JobsConfig;
|
|
235
|
+
/** Template configuration */
|
|
236
|
+
template?: TemplateConfig;
|
|
237
|
+
/** Notification configuration */
|
|
238
|
+
notification?: NotificationConfig;
|
|
239
|
+
/** i18n configuration */
|
|
240
|
+
i18n?: I18nConfig;
|
|
241
|
+
/** Logger configuration */
|
|
242
|
+
logger?: LoggerConfig;
|
|
243
|
+
/** Health check configuration */
|
|
244
|
+
health?: HealthConfig;
|
|
245
|
+
/** Metrics configuration */
|
|
246
|
+
metrics?: MetricsConfig;
|
|
247
|
+
/** Telemetry configuration */
|
|
248
|
+
telemetry?: TelemetryConfig;
|
|
249
|
+
/** Observability / error tracking configuration */
|
|
250
|
+
observability?: ObservabilityConfig;
|
|
251
|
+
/** Frontend configuration */
|
|
252
|
+
frontend?: FrontendConfig;
|
|
253
|
+
/** GraphQL configuration */
|
|
254
|
+
graphql?: GraphQLConfig;
|
|
255
|
+
}
|
|
256
|
+
export interface ConfigManagerOptions {
|
|
257
|
+
/** Path to config file (default: auto-detect) */
|
|
258
|
+
configPath?: string;
|
|
259
|
+
/** Whether to load environment variables (default: true) */
|
|
260
|
+
loadEnv?: boolean;
|
|
261
|
+
/** Whether to validate config (default: true) */
|
|
262
|
+
validate?: boolean;
|
|
263
|
+
/** Custom validation schema */
|
|
264
|
+
schema?: StandardSchema<BuenoConfig>;
|
|
265
|
+
/** Environment to load (.env.{NODE_ENV}) */
|
|
266
|
+
env?: string;
|
|
267
|
+
}
|
|
268
|
+
export type ConfigSource = "default" | "file" | "env" | "cli" | "runtime";
|
|
269
|
+
export interface ConfigSourceInfo {
|
|
270
|
+
/** Source of the configuration value */
|
|
271
|
+
source: ConfigSource;
|
|
272
|
+
/** File path if from file */
|
|
273
|
+
filePath?: string;
|
|
274
|
+
/** Environment variable name if from env */
|
|
275
|
+
envVar?: string;
|
|
276
|
+
}
|
|
277
|
+
export interface ConfigChangeEvent {
|
|
278
|
+
/** Key that changed (dot notation) */
|
|
279
|
+
key: string;
|
|
280
|
+
/** Previous value */
|
|
281
|
+
oldValue: unknown;
|
|
282
|
+
/** New value */
|
|
283
|
+
newValue: unknown;
|
|
284
|
+
/** Source of the change */
|
|
285
|
+
source: ConfigSource;
|
|
286
|
+
/** Timestamp of the change */
|
|
287
|
+
timestamp: Date;
|
|
288
|
+
}
|
|
289
|
+
export type ConfigWatchCallback = (event: ConfigChangeEvent) => void;
|
|
290
|
+
/**
|
|
291
|
+
* Infer configuration type from a schema
|
|
292
|
+
*/
|
|
293
|
+
export type InferConfig<T extends StandardSchema<BuenoConfig>> = NonNullable<T["~standard"]["types"]>["output"];
|
|
294
|
+
/**
|
|
295
|
+
* Deep partial type for configuration
|
|
296
|
+
*/
|
|
297
|
+
export type DeepPartial<T> = {
|
|
298
|
+
[P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
|
|
299
|
+
};
|
|
300
|
+
/**
|
|
301
|
+
* User configuration type (alias for DeepPartial<BuenoConfig>)
|
|
302
|
+
*/
|
|
303
|
+
export type UserConfig<T extends BuenoConfig = BuenoConfig> = DeepPartial<T>;
|
|
304
|
+
/**
|
|
305
|
+
* User configuration function type
|
|
306
|
+
*/
|
|
307
|
+
export type UserConfigFn<T extends BuenoConfig = BuenoConfig> = (env: string) => UserConfig<T> | Promise<UserConfig<T>>;
|
|
308
|
+
/**
|
|
309
|
+
* Configuration value type for a given key path
|
|
310
|
+
*/
|
|
311
|
+
export type ConfigValueForKey<TKey extends string> = TKey extends `${infer T}.${infer Rest}` ? T extends keyof BuenoConfig ? Rest extends string ? ConfigValueForKey<Rest> : BuenoConfig[T] : unknown : TKey extends keyof BuenoConfig ? BuenoConfig[TKey] : unknown;
|
|
312
|
+
export declare const DEFAULT_CONFIG: Required<BuenoConfig>;
|
|
313
|
+
export interface EnvMapping {
|
|
314
|
+
/** Environment variable name */
|
|
315
|
+
envVar: string;
|
|
316
|
+
/** Config key path (dot notation) */
|
|
317
|
+
configKey: string;
|
|
318
|
+
/** Optional transformer function */
|
|
319
|
+
transform?: (value: string) => unknown;
|
|
320
|
+
}
|
|
321
|
+
export declare const ENV_MAPPINGS: EnvMapping[];
|
|
322
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
|