@buenojs/bueno 0.8.5 → 0.8.7
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/.claude/settings.local.json +9 -0
- package/README.md +259 -15
- package/dist/cache/index.d.ts +187 -0
- package/dist/cache/index.d.ts.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 +484 -156
- 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/build.d.ts +7 -0
- package/dist/cli/commands/build.d.ts.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/generate.d.ts +7 -0
- package/dist/cli/commands/generate.d.ts.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/index.d.ts +59 -0
- package/dist/cli/commands/index.d.ts.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/new.d.ts +7 -0
- package/dist/cli/commands/new.d.ts.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/core/args.d.ts +61 -0
- package/dist/cli/core/args.d.ts.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/index.d.ts +10 -0
- package/dist/cli/core/index.d.ts.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/spinner.d.ts +111 -0
- package/dist/cli/core/spinner.d.ts.map +1 -0
- package/dist/cli/index.d.ts +47 -0
- package/dist/cli/index.d.ts.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/mysql.d.ts +6 -0
- package/dist/cli/templates/database/mysql.d.ts.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/postgresql.d.ts +6 -0
- package/dist/cli/templates/database/postgresql.d.ts.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/deploy.d.ts +41 -0
- package/dist/cli/templates/deploy.d.ts.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/frontend/index.d.ts +25 -0
- package/dist/cli/templates/frontend/index.d.ts.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/react.d.ts +6 -0
- package/dist/cli/templates/frontend/react.d.ts.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/svelte.d.ts +6 -0
- package/dist/cli/templates/frontend/svelte.d.ts.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/generators/index.d.ts +29 -0
- package/dist/cli/templates/generators/index.d.ts.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/index.d.ts +12 -0
- package/dist/cli/templates/index.d.ts.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/default.d.ts +6 -0
- package/dist/cli/templates/project/default.d.ts.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/index.d.ts +26 -0
- package/dist/cli/templates/project/index.d.ts.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/types.d.ts +80 -0
- package/dist/cli/templates/project/types.d.ts.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/utils/fs.d.ts +137 -0
- package/dist/cli/utils/fs.d.ts.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/strings.d.ts +86 -0
- package/dist/cli/utils/strings.d.ts.map +1 -0
- package/dist/cli/utils/version.d.ts +15 -0
- package/dist/cli/utils/version.d.ts.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.d.ts +167 -0
- package/dist/config/env.d.ts.map +1 -0
- package/dist/config/index.d.ts +168 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/loader.d.ts +81 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/merge.d.ts +66 -0
- package/dist/config/merge.d.ts.map +1 -0
- package/dist/config/types.d.ts +322 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/validation.d.ts +100 -0
- package/dist/config/validation.d.ts.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/index.d.ts +95 -0
- package/dist/container/index.d.ts.map +1 -0
- package/dist/container/index.js +26 -3
- package/dist/context/index.d.ts +143 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/database/index.d.ts +219 -0
- package/dist/database/index.d.ts.map +1 -0
- package/dist/database/migrations/index.d.ts +146 -0
- package/dist/database/migrations/index.d.ts.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/casts/index.d.ts +16 -0
- package/dist/database/orm/casts/index.d.ts.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/compiler.d.ts +90 -0
- package/dist/database/orm/compiler.d.ts.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/index.d.ts +21 -0
- package/dist/database/orm/index.d.ts.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.d.ts +245 -0
- package/dist/database/orm/model.d.ts.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/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.d.ts +17 -0
- package/dist/database/orm/relationships/belongs-to.d.ts.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-one.d.ts +14 -0
- package/dist/database/orm/relationships/has-one.d.ts.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/scopes/index.d.ts +36 -0
- package/dist/database/orm/scopes/index.d.ts.map +1 -0
- package/dist/database/schema/index.d.ts +155 -0
- package/dist/database/schema/index.d.ts.map +1 -0
- package/dist/events/__tests__/event-system.test.d.ts +2 -0
- package/dist/events/__tests__/event-system.test.d.ts.map +1 -0
- package/dist/events/config.d.ts +16 -0
- package/dist/events/config.d.ts.map +1 -0
- package/dist/events/example-usage.d.ts +12 -0
- package/dist/events/example-usage.d.ts.map +1 -0
- package/dist/events/index.d.ts +27 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/manager.d.ts +33 -0
- package/dist/events/manager.d.ts.map +1 -0
- package/dist/events/registry.d.ts +31 -0
- package/dist/events/registry.d.ts.map +1 -0
- package/dist/events/types.d.ts +105 -0
- package/dist/events/types.d.ts.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/bundler.d.ts +99 -0
- package/dist/frontend/bundler.d.ts.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-stream.d.ts +138 -0
- package/dist/frontend/console-stream.d.ts.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/file-router.d.ts +170 -0
- package/dist/frontend/file-router.d.ts.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/react.d.ts +32 -0
- package/dist/frontend/frameworks/react.d.ts.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/svelte.d.ts +57 -0
- package/dist/frontend/frameworks/svelte.d.ts.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/hmr-client.d.ts +22 -0
- package/dist/frontend/hmr-client.d.ts.map +1 -0
- package/dist/frontend/hmr.d.ts +185 -0
- package/dist/frontend/hmr.d.ts.map +1 -0
- package/dist/frontend/index.d.ts +34 -0
- package/dist/frontend/index.d.ts.map +1 -0
- package/dist/frontend/islands.d.ts +135 -0
- package/dist/frontend/islands.d.ts.map +1 -0
- package/dist/frontend/isr.d.ts +143 -0
- package/dist/frontend/isr.d.ts.map +1 -0
- package/dist/frontend/layout.d.ts +140 -0
- package/dist/frontend/layout.d.ts.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/solid.d.ts +141 -0
- package/dist/frontend/ssr/solid.d.ts.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/vue.d.ts +161 -0
- package/dist/frontend/ssr/vue.d.ts.map +1 -0
- package/dist/frontend/ssr.d.ts +147 -0
- package/dist/frontend/ssr.d.ts.map +1 -0
- package/dist/frontend/types.d.ts +1902 -0
- package/dist/frontend/types.d.ts.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/context-builder.d.ts +44 -0
- package/dist/graphql/context-builder.d.ts.map +1 -0
- package/dist/graphql/decorators.d.ts +162 -0
- package/dist/graphql/decorators.d.ts.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/graphql-module.d.ts +70 -0
- package/dist/graphql/graphql-module.d.ts.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 +2156 -0
- package/dist/graphql/metadata.d.ts +37 -0
- package/dist/graphql/metadata.d.ts.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/subscription-handler.d.ts +47 -0
- package/dist/graphql/subscription-handler.d.ts.map +1 -0
- package/dist/graphql/types.d.ts +252 -0
- package/dist/graphql/types.d.ts.map +1 -0
- package/dist/health/index.d.ts +176 -0
- package/dist/health/index.d.ts.map +1 -0
- package/dist/i18n/engine.d.ts +105 -0
- package/dist/i18n/engine.d.ts.map +1 -0
- package/dist/i18n/index.d.ts +13 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/loader.d.ts +79 -0
- package/dist/i18n/loader.d.ts.map +1 -0
- package/dist/i18n/middleware.d.ts +96 -0
- package/dist/i18n/middleware.d.ts.map +1 -0
- package/dist/i18n/negotiator.d.ts +84 -0
- package/dist/i18n/negotiator.d.ts.map +1 -0
- package/dist/i18n/types.d.ts +129 -0
- package/dist/i18n/types.d.ts.map +1 -0
- package/dist/index.d.ts +48 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +520 -434
- package/dist/jobs/drivers/memory.d.ts +38 -0
- package/dist/jobs/drivers/memory.d.ts.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/index.d.ts +12 -0
- package/dist/jobs/index.d.ts.map +1 -0
- package/dist/jobs/queue.d.ts +93 -0
- package/dist/jobs/queue.d.ts.map +1 -0
- package/dist/jobs/types.d.ts +193 -0
- package/dist/jobs/types.d.ts.map +1 -0
- package/dist/jobs/worker.d.ts +91 -0
- package/dist/jobs/worker.d.ts.map +1 -0
- package/dist/lock/index.d.ts +141 -0
- package/dist/lock/index.d.ts.map +1 -0
- package/dist/logger/index.d.ts +156 -0
- package/dist/logger/index.d.ts.map +1 -0
- package/dist/logger/transports/index.d.ts +371 -0
- package/dist/logger/transports/index.d.ts.map +1 -0
- package/dist/metrics/index.d.ts +163 -0
- package/dist/metrics/index.d.ts.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/index.d.ts +40 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/migrations/index.d.ts +10 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/modules/filters.d.ts +150 -0
- package/dist/modules/filters.d.ts.map +1 -0
- package/dist/modules/guards.d.ts +188 -0
- package/dist/modules/guards.d.ts.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 +514 -449
- package/dist/modules/interceptors.d.ts +242 -0
- package/dist/modules/interceptors.d.ts.map +1 -0
- package/dist/modules/lazy.d.ts +187 -0
- package/dist/modules/lazy.d.ts.map +1 -0
- package/dist/modules/lifecycle.d.ts +221 -0
- package/dist/modules/lifecycle.d.ts.map +1 -0
- package/dist/modules/metadata.d.ts +32 -0
- package/dist/modules/metadata.d.ts.map +1 -0
- package/dist/modules/pipes.d.ts +287 -0
- package/dist/modules/pipes.d.ts.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/email.d.ts +37 -0
- package/dist/notification/channels/email.d.ts.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/sms.d.ts +37 -0
- package/dist/notification/channels/sms.d.ts.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/index.d.ts +15 -0
- package/dist/notification/index.d.ts.map +1 -0
- package/dist/notification/service.d.ts +100 -0
- package/dist/notification/service.d.ts.map +1 -0
- package/dist/notification/types.d.ts +253 -0
- package/dist/notification/types.d.ts.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/breadcrumbs.d.ts +48 -0
- package/dist/observability/breadcrumbs.d.ts.map +1 -0
- package/dist/observability/index.d.ts +95 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/interceptor.d.ts +19 -0
- package/dist/observability/interceptor.d.ts.map +1 -0
- package/dist/observability/service.d.ts +101 -0
- package/dist/observability/service.d.ts.map +1 -0
- package/dist/observability/trace.d.ts +21 -0
- package/dist/observability/trace.d.ts.map +1 -0
- package/dist/observability/types.d.ts +172 -0
- package/dist/observability/types.d.ts.map +1 -0
- package/dist/openapi/__tests__/decorators.test.d.ts +2 -0
- package/dist/openapi/__tests__/decorators.test.d.ts.map +1 -0
- package/dist/openapi/__tests__/document-builder.test.d.ts +2 -0
- package/dist/openapi/__tests__/document-builder.test.d.ts.map +1 -0
- package/dist/openapi/__tests__/route-scanner.test.d.ts +2 -0
- package/dist/openapi/__tests__/route-scanner.test.d.ts.map +1 -0
- package/dist/openapi/__tests__/schema-generator.test.d.ts +2 -0
- package/dist/openapi/__tests__/schema-generator.test.d.ts.map +1 -0
- package/dist/openapi/decorators.d.ts +173 -0
- package/dist/openapi/decorators.d.ts.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/index.d.ts +48 -0
- package/dist/openapi/index.d.ts.map +1 -0
- package/dist/openapi/index.js +59 -40
- package/dist/openapi/metadata.d.ts +36 -0
- package/dist/openapi/metadata.d.ts.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/schema-generator.d.ts +53 -0
- package/dist/openapi/schema-generator.d.ts.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/types.d.ts +344 -0
- package/dist/openapi/types.d.ts.map +1 -0
- package/dist/orm/index.d.ts +10 -0
- package/dist/orm/index.d.ts.map +1 -0
- package/dist/router/index.d.ts +73 -0
- package/dist/router/index.d.ts.map +1 -0
- package/dist/router/linear.d.ts +54 -0
- package/dist/router/linear.d.ts.map +1 -0
- package/dist/router/regex.d.ts +49 -0
- package/dist/router/regex.d.ts.map +1 -0
- package/dist/router/tree.d.ts +112 -0
- package/dist/router/tree.d.ts.map +1 -0
- package/dist/rpc/index.d.ts +321 -0
- package/dist/rpc/index.d.ts.map +1 -0
- package/dist/schema/index.d.ts +10 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/security/index.d.ts +126 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/ssg/index.d.ts +73 -0
- package/dist/ssg/index.d.ts.map +1 -0
- package/dist/storage/index.d.ts +99 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/telemetry/index.d.ts +376 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/template/index.d.ts +7 -0
- package/dist/template/index.d.ts.map +1 -0
- package/dist/templates/engine.d.ts +60 -0
- package/dist/templates/engine.d.ts.map +1 -0
- package/dist/templates/index.d.ts +9 -0
- package/dist/templates/index.d.ts.map +1 -0
- package/dist/templates/loader.d.ts +45 -0
- package/dist/templates/loader.d.ts.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/simple.d.ts +35 -0
- package/dist/templates/renderers/simple.d.ts.map +1 -0
- package/dist/templates/types.d.ts +138 -0
- package/dist/templates/types.d.ts.map +1 -0
- package/dist/testing/index.d.ts +539 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +116 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/validation/index.d.ts +89 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/schemas.d.ts +243 -0
- package/dist/validation/schemas.d.ts.map +1 -0
- package/dist/websocket/index.d.ts +252 -0
- package/dist/websocket/index.d.ts.map +1 -0
- package/llms.txt +231 -0
- package/package.json +6 -2
- package/src/cli/ARCHITECTURE.md +3 -3
- package/src/cli/commands/add-frontend.ts +444 -0
- package/src/cli/commands/new.ts +23 -0
- package/src/cli/index.ts +1 -0
- package/src/cli/templates/frontend/react.ts +2 -1
- package/src/cli/templates/frontend/solid.ts +2 -1
- package/src/cli/templates/frontend/svelte.ts +2 -1
- package/src/cli/templates/frontend/vue.ts +2 -1
- package/src/cli/templates/project/api.ts +1 -1
- package/src/cli/templates/project/default.ts +1 -1
- package/src/cli/templates/project/fullstack.ts +14 -104
- package/src/cli/templates/project/website.ts +63 -12
- package/src/config/types.ts +21 -0
- package/src/graphql/built-in-engine.ts +598 -0
- package/src/graphql/context-builder.ts +110 -0
- package/src/graphql/decorators.ts +358 -0
- package/src/graphql/execution-pipeline.ts +227 -0
- package/src/graphql/graphql-module.ts +563 -0
- package/src/graphql/index.ts +101 -0
- package/src/graphql/metadata.ts +237 -0
- package/src/graphql/schema-builder.ts +319 -0
- package/src/graphql/subscription-handler.ts +283 -0
- package/src/graphql/types.ts +324 -0
- package/src/index.ts +3 -0
- package/src/modules/index.ts +48 -1
- package/tests/integration/cli.test.ts +19 -19
- package/tests/unit/cli.test.ts +1 -1
- package/tests/unit/graphql.test.ts +991 -0
- package/tsconfig.declaration.json +14 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [
|
|
4
|
+
"Bash(bunx @buenojs/bueno@latest new test-website --template website --skip-install -y)",
|
|
5
|
+
"Bash(bun /home/sivaraj/Work/Bueno/bueno/src/cli/bin.ts new test-api --template api --database none --skip-install -y)",
|
|
6
|
+
"Bash(bun /home/sivaraj/Work/Bueno/bueno/src/cli/bin.ts new test-website --template website --skip-install -y)"
|
|
7
|
+
]
|
|
8
|
+
}
|
|
9
|
+
}
|
package/README.md
CHANGED
|
@@ -71,7 +71,7 @@ server.listen(3000);
|
|
|
71
71
|
|
|
72
72
|
### `bueno new <name>`
|
|
73
73
|
|
|
74
|
-
Create a new Bueno project.
|
|
74
|
+
Create a new Bueno project with automatic frontend setup for fullstack template.
|
|
75
75
|
|
|
76
76
|
```bash
|
|
77
77
|
bueno new my-app
|
|
@@ -80,9 +80,22 @@ bueno new my-fullstack --template fullstack --framework react
|
|
|
80
80
|
bueno new my-app --database postgresql --docker
|
|
81
81
|
```
|
|
82
82
|
|
|
83
|
+
**Two-Stage Fullstack Creation:**
|
|
84
|
+
When using `--template fullstack`, Bueno creates your project in two stages:
|
|
85
|
+
1. **Stage 1**: Creates the API backend with your chosen database
|
|
86
|
+
2. **Stage 2**: Automatically runs `add:frontend` with your selected framework
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
# Creates API + React frontend together
|
|
90
|
+
bueno new my-app --template fullstack --framework react
|
|
91
|
+
|
|
92
|
+
# Creates API + Vue frontend together
|
|
93
|
+
bueno new my-app --template fullstack --framework vue --database postgresql
|
|
94
|
+
```
|
|
95
|
+
|
|
83
96
|
| Option | Default | Description |
|
|
84
97
|
|--------|---------|-------------|
|
|
85
|
-
| `--template` | `default` | Project template (`default`, `minimal`, `fullstack`, `api`) |
|
|
98
|
+
| `--template` | `default` | Project template (`default`, `minimal`, `fullstack`, `api`, `website`) |
|
|
86
99
|
| `--framework` | `react` | Frontend framework (`react`, `vue`, `svelte`, `solid`) |
|
|
87
100
|
| `--database` | `sqlite` | Database type (`sqlite`, `postgresql`, `mysql`) |
|
|
88
101
|
| `--docker` | `false` | Generate Docker configuration |
|
|
@@ -91,6 +104,54 @@ bueno new my-app --database postgresql --docker
|
|
|
91
104
|
| `--skip-git` | `false` | Skip git initialization |
|
|
92
105
|
| `--yes` | `false` | Use default options |
|
|
93
106
|
|
|
107
|
+
### `bueno add:frontend <framework>`
|
|
108
|
+
|
|
109
|
+
Add a frontend framework to an existing Bueno project.
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
# Interactive prompt to choose framework
|
|
113
|
+
bueno add:frontend
|
|
114
|
+
|
|
115
|
+
# Add React frontend
|
|
116
|
+
bueno add:frontend react
|
|
117
|
+
|
|
118
|
+
# Add Vue frontend
|
|
119
|
+
bueno add:frontend vue
|
|
120
|
+
|
|
121
|
+
# Add Svelte frontend
|
|
122
|
+
bueno add:frontend svelte
|
|
123
|
+
|
|
124
|
+
# Add SolidJS frontend
|
|
125
|
+
bueno add:frontend solid
|
|
126
|
+
|
|
127
|
+
# Skip dependency installation
|
|
128
|
+
bueno add:frontend react --skip-install
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
**What Gets Added:**
|
|
132
|
+
- `client/` directory with full frontend setup
|
|
133
|
+
- Framework-specific entry point (`main.tsx` or `main.ts`)
|
|
134
|
+
- Example components and styles
|
|
135
|
+
- Tailwind CSS + PostCSS configuration
|
|
136
|
+
- Bun bundler configuration (framework-optimized)
|
|
137
|
+
- TypeScript configuration for client
|
|
138
|
+
- Development scripts: `dev:server`, `dev:client`, `dev` (concurrent)
|
|
139
|
+
- Build script: `build:client`
|
|
140
|
+
|
|
141
|
+
**Supported Frameworks:**
|
|
142
|
+
| Framework | Entry Point | JSX Mode |
|
|
143
|
+
|-----------|-------------|----------|
|
|
144
|
+
| React | `client/src/main.tsx` | `react-jsx` |
|
|
145
|
+
| Vue | `client/src/main.ts` | N/A |
|
|
146
|
+
| Svelte | `client/src/main.ts` | N/A |
|
|
147
|
+
| SolidJS | `client/src/main.tsx` | `preserve` |
|
|
148
|
+
|
|
149
|
+
| Option | Default | Description |
|
|
150
|
+
|--------|---------|-------------|
|
|
151
|
+
| `framework` (positional) | (interactive) | Frontend framework (`react`, `vue`, `svelte`, `solid`) |
|
|
152
|
+
| `-f, --framework` | - | Frontend framework as option |
|
|
153
|
+
| `--skip-install` | `false` | Skip dependency installation |
|
|
154
|
+
|
|
94
155
|
### `bueno dev`
|
|
95
156
|
|
|
96
157
|
Start the development server with Hot Module Replacement (HMR).
|
|
@@ -225,6 +286,133 @@ bueno generate --help
|
|
|
225
286
|
|
|
226
287
|
## Core Features
|
|
227
288
|
|
|
289
|
+
### Background Jobs
|
|
290
|
+
Job queue system with Redis and memory drivers.
|
|
291
|
+
|
|
292
|
+
```typescript
|
|
293
|
+
import { JobQueue, createJobQueue, startWorker } from '@buenojs/bueno/jobs';
|
|
294
|
+
|
|
295
|
+
// Create a job queue
|
|
296
|
+
const queue = createJobQueue({
|
|
297
|
+
driver: 'redis',
|
|
298
|
+
redisUrl: 'redis://localhost:6379',
|
|
299
|
+
});
|
|
300
|
+
|
|
301
|
+
// Define a job handler
|
|
302
|
+
queue.registerHandler('send-email', async (job) => {
|
|
303
|
+
const { to, subject, body } = job.data;
|
|
304
|
+
await emailService.send(to, subject, body);
|
|
305
|
+
return { success: true };
|
|
306
|
+
});
|
|
307
|
+
|
|
308
|
+
// Start a worker
|
|
309
|
+
startWorker(queue, { concurrency: 5 });
|
|
310
|
+
|
|
311
|
+
// Add a job to the queue
|
|
312
|
+
await queue.add('send-email', {
|
|
313
|
+
to: 'user@example.com',
|
|
314
|
+
subject: 'Welcome!',
|
|
315
|
+
body: 'Thank you for joining our platform.',
|
|
316
|
+
});
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
### Notifications
|
|
320
|
+
Multi-channel notification system with support for email, SMS, WhatsApp, and push notifications.
|
|
321
|
+
|
|
322
|
+
```typescript
|
|
323
|
+
import { NotificationService, createNotificationService, EmailChannelService } from '@buenojs/bueno/notification';
|
|
324
|
+
|
|
325
|
+
// Create notification service
|
|
326
|
+
const notificationService = createNotificationService({
|
|
327
|
+
channels: [
|
|
328
|
+
new EmailChannelService({
|
|
329
|
+
smtp: {
|
|
330
|
+
host: 'smtp.gmail.com',
|
|
331
|
+
port: 587,
|
|
332
|
+
auth: {
|
|
333
|
+
user: 'your-email@gmail.com',
|
|
334
|
+
pass: 'your-password',
|
|
335
|
+
},
|
|
336
|
+
},
|
|
337
|
+
}),
|
|
338
|
+
],
|
|
339
|
+
});
|
|
340
|
+
|
|
341
|
+
// Send a notification
|
|
342
|
+
await notificationService.send({
|
|
343
|
+
to: 'user@example.com',
|
|
344
|
+
subject: 'Welcome!',
|
|
345
|
+
body: 'Thank you for joining our platform.',
|
|
346
|
+
channel: 'email',
|
|
347
|
+
});
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
### Observability
|
|
351
|
+
Structured error tracking and observability integration.
|
|
352
|
+
|
|
353
|
+
```typescript
|
|
354
|
+
import { createApp } from '@buenojs/bueno';
|
|
355
|
+
import { ObservabilityModule } from '@buenojs/bueno/observability';
|
|
356
|
+
|
|
357
|
+
const app = createApp(AppModule);
|
|
358
|
+
|
|
359
|
+
// Wire observability with custom reporter (e.g., Sentry)
|
|
360
|
+
const obs = ObservabilityModule.setup(app, {
|
|
361
|
+
reporter: new MyReporter(),
|
|
362
|
+
breadcrumbsSize: 20,
|
|
363
|
+
ignoreStatusCodes: [404, 401],
|
|
364
|
+
tags: { environment: 'production' },
|
|
365
|
+
});
|
|
366
|
+
|
|
367
|
+
await app.listen(3000);
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
### Metrics
|
|
371
|
+
Runtime metrics collection for memory, CPU, and event loop lag.
|
|
372
|
+
|
|
373
|
+
```typescript
|
|
374
|
+
import { MetricsCollector, createMetricsCollector, toPrometheusFormat } from '@buenojs/bueno/metrics';
|
|
375
|
+
|
|
376
|
+
// Create metrics collector
|
|
377
|
+
const collector = createMetricsCollector({
|
|
378
|
+
maxHistorySize: 100,
|
|
379
|
+
measureEventLoopLag: true,
|
|
380
|
+
});
|
|
381
|
+
|
|
382
|
+
// Collect metrics periodically
|
|
383
|
+
collector.startPeriodicCollection(5000);
|
|
384
|
+
|
|
385
|
+
// Get metrics
|
|
386
|
+
const metrics = collector.getLatest();
|
|
387
|
+
console.log(toPrometheusFormat(metrics));
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
### i18n
|
|
391
|
+
Internationalization support with translation loading and locale negotiation.
|
|
392
|
+
|
|
393
|
+
```typescript
|
|
394
|
+
import { I18n, createI18n, i18nMiddleware } from '@buenojs/bueno/i18n';
|
|
395
|
+
|
|
396
|
+
// Create i18n instance
|
|
397
|
+
const i18n = createI18n({
|
|
398
|
+
defaultLocale: 'en',
|
|
399
|
+
locales: ['en', 'fr', 'es'],
|
|
400
|
+
translations: {
|
|
401
|
+
en: {
|
|
402
|
+
welcome: 'Welcome!',
|
|
403
|
+
goodbye: 'Goodbye!',
|
|
404
|
+
},
|
|
405
|
+
fr: {
|
|
406
|
+
welcome: 'Bienvenue!',
|
|
407
|
+
goodbye: 'Au revoir!',
|
|
408
|
+
},
|
|
409
|
+
},
|
|
410
|
+
});
|
|
411
|
+
|
|
412
|
+
// Use middleware
|
|
413
|
+
server.use(i18nMiddleware(i18n));
|
|
414
|
+
```
|
|
415
|
+
|
|
228
416
|
### HTTP & Routing
|
|
229
417
|
|
|
230
418
|
Bueno provides a powerful and intuitive routing system with full HTTP method support.
|
|
@@ -851,25 +1039,81 @@ describe('UserController', () => {
|
|
|
851
1039
|
|
|
852
1040
|
## Frontend Support
|
|
853
1041
|
|
|
854
|
-
Bueno provides first-class support for modern frontend frameworks with SSR, SSG, and Island Architecture.
|
|
1042
|
+
Bueno provides first-class support for modern frontend frameworks with built-in Bun bundler integration, SSR, SSG, and Island Architecture.
|
|
1043
|
+
|
|
1044
|
+
### Getting Started with Frontend
|
|
1045
|
+
|
|
1046
|
+
**Option 1: Two-Stage Fullstack (Recommended)**
|
|
1047
|
+
```bash
|
|
1048
|
+
# Creates API backend + chosen frontend automatically
|
|
1049
|
+
bueno new my-app --template fullstack --framework react
|
|
1050
|
+
```
|
|
1051
|
+
|
|
1052
|
+
**Option 2: Add Frontend to Existing Project**
|
|
1053
|
+
```bash
|
|
1054
|
+
bueno add:frontend react
|
|
1055
|
+
# or with other frameworks
|
|
1056
|
+
bueno add:frontend vue
|
|
1057
|
+
bueno add:frontend svelte
|
|
1058
|
+
bueno add:frontend solid
|
|
1059
|
+
```
|
|
855
1060
|
|
|
856
1061
|
### Supported Frameworks
|
|
857
1062
|
|
|
858
|
-
- **React** - Full support with SSR and hydration
|
|
859
|
-
- **Vue** - Server-side rendering with Vue 3
|
|
860
|
-
- **Svelte** - SvelteKit-like experience
|
|
861
|
-
- **
|
|
1063
|
+
- **React** - Full support with SSR and hydration, Tailwind CSS included
|
|
1064
|
+
- **Vue** - Server-side rendering with Vue 3, Tailwind CSS included
|
|
1065
|
+
- **Svelte** - SvelteKit-like experience, Tailwind CSS included
|
|
1066
|
+
- **SolidJS** - SolidJS with SSR, Tailwind CSS included
|
|
862
1067
|
|
|
863
|
-
### Features
|
|
1068
|
+
### Built-in Features
|
|
864
1069
|
|
|
865
1070
|
| Feature | Description |
|
|
866
1071
|
|---------|-------------|
|
|
867
|
-
| **
|
|
868
|
-
| **
|
|
869
|
-
| **
|
|
870
|
-
| **
|
|
871
|
-
| **
|
|
872
|
-
| **
|
|
1072
|
+
| **Bun Bundler** | Native Bun bundler with zero additional dependencies |
|
|
1073
|
+
| **Tailwind CSS** | Pre-configured with PostCSS and autoprefixer |
|
|
1074
|
+
| **TypeScript** | Full TypeScript support for client and server |
|
|
1075
|
+
| **HMR** | Hot module replacement for instant updates during development |
|
|
1076
|
+
| **Dev Scripts** | Convenient scripts for concurrent server/client development |
|
|
1077
|
+
| **Framework-Specific** | Optimized loader configurations for each framework |
|
|
1078
|
+
|
|
1079
|
+
### Development Workflow
|
|
1080
|
+
|
|
1081
|
+
After creating a fullstack project, you get two development modes:
|
|
1082
|
+
|
|
1083
|
+
```bash
|
|
1084
|
+
# Terminal 1: Backend API
|
|
1085
|
+
bun run dev:server
|
|
1086
|
+
|
|
1087
|
+
# Terminal 2: Frontend bundler
|
|
1088
|
+
bun run dev:client
|
|
1089
|
+
|
|
1090
|
+
# Or run both concurrently
|
|
1091
|
+
bun run dev
|
|
1092
|
+
```
|
|
1093
|
+
|
|
1094
|
+
### Project Structure (Fullstack)
|
|
1095
|
+
|
|
1096
|
+
```
|
|
1097
|
+
my-bueno-app/
|
|
1098
|
+
├── server/ # Backend API
|
|
1099
|
+
│ ├── main.ts
|
|
1100
|
+
│ ├── modules/
|
|
1101
|
+
│ └── database/
|
|
1102
|
+
├── client/ # Frontend application
|
|
1103
|
+
│ ├── src/
|
|
1104
|
+
│ │ ├── main.tsx/main.ts # Entry point
|
|
1105
|
+
│ │ ├── App.tsx/vue/svelte # Main component
|
|
1106
|
+
│ │ └── styles/ # Global styles (Tailwind)
|
|
1107
|
+
│ ├── public/ # Static assets
|
|
1108
|
+
│ ├── index.html # HTML template
|
|
1109
|
+
│ ├── bun.bundler.ts # Bun bundler config
|
|
1110
|
+
│ ├── tailwind.config.ts
|
|
1111
|
+
│ ├── postcss.config.js
|
|
1112
|
+
│ └── tsconfig.json
|
|
1113
|
+
├── bueno.config.ts
|
|
1114
|
+
├── package.json
|
|
1115
|
+
└── tsconfig.json
|
|
1116
|
+
```
|
|
873
1117
|
|
|
874
1118
|
### Example
|
|
875
1119
|
|
|
@@ -1002,7 +1246,7 @@ bun dev
|
|
|
1002
1246
|
|
|
1003
1247
|
## Links
|
|
1004
1248
|
|
|
1005
|
-
- **Documentation**: [https://
|
|
1249
|
+
- **Documentation**: [https://bueno.github.io](https://bueno.github.io)
|
|
1006
1250
|
- **GitHub**: [https://github.com/buenojs/bueno](https://github.com/buenojs/bueno)
|
|
1007
1251
|
- **Issues**: [https://github.com/buenojs/bueno/issues](https://github.com/buenojs/bueno/issues)
|
|
1008
1252
|
- **npm**: [https://www.npmjs.com/package/@buenojs/bueno](https://www.npmjs.com/package/@buenojs/bueno)
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Caching Layer
|
|
3
|
+
*
|
|
4
|
+
* Unified interface over Bun.redis with in-memory fallback.
|
|
5
|
+
* Uses Bun 1.3+ native Redis client for production.
|
|
6
|
+
*/
|
|
7
|
+
export interface CacheConfig {
|
|
8
|
+
driver?: "redis" | "memory";
|
|
9
|
+
url?: string;
|
|
10
|
+
ttl?: number;
|
|
11
|
+
keyPrefix?: string;
|
|
12
|
+
enableMetrics?: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Cache metrics for observability
|
|
16
|
+
*/
|
|
17
|
+
export interface CacheMetrics {
|
|
18
|
+
hits: number;
|
|
19
|
+
misses: number;
|
|
20
|
+
sets: number;
|
|
21
|
+
deletes: number;
|
|
22
|
+
errors: number;
|
|
23
|
+
avgLatency: number;
|
|
24
|
+
totalOperations: number;
|
|
25
|
+
}
|
|
26
|
+
export interface SessionData {
|
|
27
|
+
[key: string]: unknown;
|
|
28
|
+
}
|
|
29
|
+
export interface SessionStoreOptions {
|
|
30
|
+
ttl?: number;
|
|
31
|
+
prefix?: string;
|
|
32
|
+
driver?: "redis" | "memory";
|
|
33
|
+
url?: string;
|
|
34
|
+
}
|
|
35
|
+
export interface PubSubMessage {
|
|
36
|
+
channel: string;
|
|
37
|
+
message: string;
|
|
38
|
+
}
|
|
39
|
+
export declare class Cache {
|
|
40
|
+
private driver;
|
|
41
|
+
private keyPrefix;
|
|
42
|
+
private defaultTTL;
|
|
43
|
+
private _isConnected;
|
|
44
|
+
private driverType;
|
|
45
|
+
private enableMetrics;
|
|
46
|
+
private metrics;
|
|
47
|
+
private totalLatency;
|
|
48
|
+
constructor(config?: CacheConfig);
|
|
49
|
+
/**
|
|
50
|
+
* Get current metrics snapshot
|
|
51
|
+
*/
|
|
52
|
+
getMetrics(): CacheMetrics;
|
|
53
|
+
/**
|
|
54
|
+
* Reset metrics counters
|
|
55
|
+
*/
|
|
56
|
+
resetMetrics(): void;
|
|
57
|
+
/**
|
|
58
|
+
* Update metrics counters
|
|
59
|
+
*/
|
|
60
|
+
private updateMetrics;
|
|
61
|
+
/**
|
|
62
|
+
* Get current timestamp in milliseconds
|
|
63
|
+
*/
|
|
64
|
+
private getTimestamp;
|
|
65
|
+
/**
|
|
66
|
+
* Connect to cache
|
|
67
|
+
*/
|
|
68
|
+
connect(): Promise<void>;
|
|
69
|
+
/**
|
|
70
|
+
* Disconnect from cache
|
|
71
|
+
*/
|
|
72
|
+
disconnect(): Promise<void>;
|
|
73
|
+
/**
|
|
74
|
+
* Check if connected
|
|
75
|
+
*/
|
|
76
|
+
get isConnected(): boolean;
|
|
77
|
+
/**
|
|
78
|
+
* Get the driver type
|
|
79
|
+
*/
|
|
80
|
+
getDriverType(): "redis" | "memory";
|
|
81
|
+
/**
|
|
82
|
+
* Get a value
|
|
83
|
+
*/
|
|
84
|
+
get<T = unknown>(key: string): Promise<T | null>;
|
|
85
|
+
/**
|
|
86
|
+
* Set a value
|
|
87
|
+
*/
|
|
88
|
+
set<T>(key: string, value: T, ttl?: number): Promise<void>;
|
|
89
|
+
/**
|
|
90
|
+
* Delete a value
|
|
91
|
+
*/
|
|
92
|
+
delete(key: string): Promise<boolean>;
|
|
93
|
+
/**
|
|
94
|
+
* Check if key exists
|
|
95
|
+
*/
|
|
96
|
+
has(key: string): Promise<boolean>;
|
|
97
|
+
/**
|
|
98
|
+
* Increment a value
|
|
99
|
+
*/
|
|
100
|
+
increment(key: string, by?: number): Promise<number>;
|
|
101
|
+
/**
|
|
102
|
+
* Decrement a value
|
|
103
|
+
*/
|
|
104
|
+
decrement(key: string, by?: number): Promise<number>;
|
|
105
|
+
/**
|
|
106
|
+
* Get remaining TTL
|
|
107
|
+
*/
|
|
108
|
+
ttl(key: string): Promise<number>;
|
|
109
|
+
/**
|
|
110
|
+
* Set expiration on a key
|
|
111
|
+
*/
|
|
112
|
+
expire(key: string, ttl: number): Promise<boolean>;
|
|
113
|
+
/**
|
|
114
|
+
* Set multiple values
|
|
115
|
+
*/
|
|
116
|
+
mset(values: Record<string, unknown>, ttl?: number): Promise<void>;
|
|
117
|
+
/**
|
|
118
|
+
* Get multiple values
|
|
119
|
+
*/
|
|
120
|
+
mget<T = unknown>(keys: string[]): Promise<(T | null)[]>;
|
|
121
|
+
/**
|
|
122
|
+
* Clear all keys with prefix
|
|
123
|
+
*/
|
|
124
|
+
clear(): Promise<void>;
|
|
125
|
+
/**
|
|
126
|
+
* Get or set (cache-aside pattern)
|
|
127
|
+
*/
|
|
128
|
+
getOrSet<T>(key: string, factory: () => Promise<T>, ttl?: number): Promise<T>;
|
|
129
|
+
/**
|
|
130
|
+
* Delete multiple keys
|
|
131
|
+
*/
|
|
132
|
+
mdelete(keys: string[]): Promise<void>;
|
|
133
|
+
/**
|
|
134
|
+
* Publish a message to a channel (Redis only)
|
|
135
|
+
*/
|
|
136
|
+
publish(channel: string, message: string): Promise<number>;
|
|
137
|
+
/**
|
|
138
|
+
* Subscribe to a channel (Redis only)
|
|
139
|
+
*/
|
|
140
|
+
subscribe(channel: string, callback: (message: string) => void): Promise<void>;
|
|
141
|
+
/**
|
|
142
|
+
* Remember with lock (prevent cache stampede)
|
|
143
|
+
*/
|
|
144
|
+
remember<T>(key: string, factory: () => Promise<T>, ttl?: number, lockTimeout?: number): Promise<T>;
|
|
145
|
+
}
|
|
146
|
+
export declare class SessionStore {
|
|
147
|
+
private cache;
|
|
148
|
+
private ttl;
|
|
149
|
+
constructor(options?: SessionStoreOptions);
|
|
150
|
+
/**
|
|
151
|
+
* Initialize the session store
|
|
152
|
+
*/
|
|
153
|
+
init(): Promise<void>;
|
|
154
|
+
/**
|
|
155
|
+
* Create a new session
|
|
156
|
+
*/
|
|
157
|
+
create(data: SessionData): Promise<string>;
|
|
158
|
+
/**
|
|
159
|
+
* Get session data
|
|
160
|
+
*/
|
|
161
|
+
get(sessionId: string): Promise<SessionData | null>;
|
|
162
|
+
/**
|
|
163
|
+
* Update session data
|
|
164
|
+
*/
|
|
165
|
+
update(sessionId: string, data: SessionData): Promise<void>;
|
|
166
|
+
/**
|
|
167
|
+
* Delete a session
|
|
168
|
+
*/
|
|
169
|
+
delete(sessionId: string): Promise<void>;
|
|
170
|
+
/**
|
|
171
|
+
* Refresh session TTL
|
|
172
|
+
*/
|
|
173
|
+
refresh(sessionId: string): Promise<boolean>;
|
|
174
|
+
/**
|
|
175
|
+
* Check if session exists
|
|
176
|
+
*/
|
|
177
|
+
has(sessionId: string): Promise<boolean>;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Create a cache instance
|
|
181
|
+
*/
|
|
182
|
+
export declare function createCache(config?: CacheConfig): Cache;
|
|
183
|
+
/**
|
|
184
|
+
* Create a session store
|
|
185
|
+
*/
|
|
186
|
+
export declare function createSessionStore(options?: SessionStoreOptions): SessionStore;
|
|
187
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../../src/cli/bin.ts"],"names":[],"mappings":";AACA;;;;GAIG"}
|