@buenojs/bueno 0.8.8 → 0.8.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/index.js +15 -12
- package/dist/modules/index.js +2 -2
- package/dist/template/index.js +13 -10
- package/dist/templates/index.js +13 -10
- package/llms.txt +1 -1
- package/package.json +2 -2
- package/src/cli/commands/new.ts +1 -1
- package/src/cli/templates/frontend/react.ts +1 -1
- package/src/cli/templates/frontend/solid.ts +1 -1
- package/src/cli/templates/frontend/svelte.ts +1 -1
- package/src/cli/templates/frontend/vue.ts +1 -1
- package/src/cli/templates/project/default.ts +1 -1
- package/src/cli/templates/project/website.ts +3 -3
- package/src/templates/loader.ts +1 -1
- package/src/templates/renderers/simple.ts +13 -10
- package/src/validation/index.ts +20 -21
- package/tsconfig.json +1 -1
- package/dist/cache/index.d.ts +0 -187
- package/dist/cache/index.d.ts.map +0 -1
- package/dist/cli/bin.d.ts +0 -8
- package/dist/cli/bin.d.ts.map +0 -1
- package/dist/cli/commands/add-frontend.d.ts +0 -7
- package/dist/cli/commands/add-frontend.d.ts.map +0 -1
- package/dist/cli/commands/build.d.ts +0 -7
- package/dist/cli/commands/build.d.ts.map +0 -1
- package/dist/cli/commands/dev.d.ts +0 -7
- package/dist/cli/commands/dev.d.ts.map +0 -1
- package/dist/cli/commands/generate.d.ts +0 -7
- package/dist/cli/commands/generate.d.ts.map +0 -1
- package/dist/cli/commands/help.d.ts +0 -7
- package/dist/cli/commands/help.d.ts.map +0 -1
- package/dist/cli/commands/index.d.ts +0 -59
- package/dist/cli/commands/index.d.ts.map +0 -1
- package/dist/cli/commands/migration.d.ts +0 -7
- package/dist/cli/commands/migration.d.ts.map +0 -1
- package/dist/cli/commands/new.d.ts +0 -7
- package/dist/cli/commands/new.d.ts.map +0 -1
- package/dist/cli/commands/start.d.ts +0 -7
- package/dist/cli/commands/start.d.ts.map +0 -1
- package/dist/cli/core/args.d.ts +0 -61
- package/dist/cli/core/args.d.ts.map +0 -1
- package/dist/cli/core/console.d.ts +0 -135
- package/dist/cli/core/console.d.ts.map +0 -1
- package/dist/cli/core/index.d.ts +0 -10
- package/dist/cli/core/index.d.ts.map +0 -1
- package/dist/cli/core/prompt.d.ts +0 -63
- package/dist/cli/core/prompt.d.ts.map +0 -1
- package/dist/cli/core/spinner.d.ts +0 -111
- package/dist/cli/core/spinner.d.ts.map +0 -1
- package/dist/cli/index.d.ts +0 -47
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/templates/database/index.d.ts +0 -24
- package/dist/cli/templates/database/index.d.ts.map +0 -1
- package/dist/cli/templates/database/mysql.d.ts +0 -6
- package/dist/cli/templates/database/mysql.d.ts.map +0 -1
- package/dist/cli/templates/database/none.d.ts +0 -8
- package/dist/cli/templates/database/none.d.ts.map +0 -1
- package/dist/cli/templates/database/postgresql.d.ts +0 -6
- package/dist/cli/templates/database/postgresql.d.ts.map +0 -1
- package/dist/cli/templates/database/sqlite.d.ts +0 -6
- package/dist/cli/templates/database/sqlite.d.ts.map +0 -1
- package/dist/cli/templates/deploy.d.ts +0 -41
- package/dist/cli/templates/deploy.d.ts.map +0 -1
- package/dist/cli/templates/docker.d.ts +0 -30
- package/dist/cli/templates/docker.d.ts.map +0 -1
- package/dist/cli/templates/frontend/index.d.ts +0 -25
- package/dist/cli/templates/frontend/index.d.ts.map +0 -1
- package/dist/cli/templates/frontend/none.d.ts +0 -8
- package/dist/cli/templates/frontend/none.d.ts.map +0 -1
- package/dist/cli/templates/frontend/react.d.ts +0 -6
- package/dist/cli/templates/frontend/react.d.ts.map +0 -1
- package/dist/cli/templates/frontend/solid.d.ts +0 -6
- package/dist/cli/templates/frontend/solid.d.ts.map +0 -1
- package/dist/cli/templates/frontend/svelte.d.ts +0 -6
- package/dist/cli/templates/frontend/svelte.d.ts.map +0 -1
- package/dist/cli/templates/frontend/vue.d.ts +0 -6
- package/dist/cli/templates/frontend/vue.d.ts.map +0 -1
- package/dist/cli/templates/generators/index.d.ts +0 -29
- package/dist/cli/templates/generators/index.d.ts.map +0 -1
- package/dist/cli/templates/generators/types.d.ts +0 -32
- package/dist/cli/templates/generators/types.d.ts.map +0 -1
- package/dist/cli/templates/index.d.ts +0 -12
- package/dist/cli/templates/index.d.ts.map +0 -1
- package/dist/cli/templates/project/api.d.ts +0 -6
- package/dist/cli/templates/project/api.d.ts.map +0 -1
- package/dist/cli/templates/project/default.d.ts +0 -6
- package/dist/cli/templates/project/default.d.ts.map +0 -1
- package/dist/cli/templates/project/fullstack.d.ts +0 -14
- package/dist/cli/templates/project/fullstack.d.ts.map +0 -1
- package/dist/cli/templates/project/index.d.ts +0 -26
- package/dist/cli/templates/project/index.d.ts.map +0 -1
- package/dist/cli/templates/project/minimal.d.ts +0 -6
- package/dist/cli/templates/project/minimal.d.ts.map +0 -1
- package/dist/cli/templates/project/types.d.ts +0 -80
- package/dist/cli/templates/project/types.d.ts.map +0 -1
- package/dist/cli/templates/project/website.d.ts +0 -8
- package/dist/cli/templates/project/website.d.ts.map +0 -1
- package/dist/cli/utils/fs.d.ts +0 -137
- package/dist/cli/utils/fs.d.ts.map +0 -1
- package/dist/cli/utils/index.d.ts +0 -9
- package/dist/cli/utils/index.d.ts.map +0 -1
- package/dist/cli/utils/strings.d.ts +0 -86
- package/dist/cli/utils/strings.d.ts.map +0 -1
- package/dist/cli/utils/version.d.ts +0 -15
- package/dist/cli/utils/version.d.ts.map +0 -1
- package/dist/config/env-validation.d.ts +0 -49
- package/dist/config/env-validation.d.ts.map +0 -1
- package/dist/config/env.d.ts +0 -167
- package/dist/config/env.d.ts.map +0 -1
- package/dist/config/index.d.ts +0 -168
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/loader.d.ts +0 -81
- package/dist/config/loader.d.ts.map +0 -1
- package/dist/config/merge.d.ts +0 -66
- package/dist/config/merge.d.ts.map +0 -1
- package/dist/config/types.d.ts +0 -322
- package/dist/config/types.d.ts.map +0 -1
- package/dist/config/validation.d.ts +0 -100
- package/dist/config/validation.d.ts.map +0 -1
- package/dist/container/forward-ref.d.ts +0 -116
- package/dist/container/forward-ref.d.ts.map +0 -1
- package/dist/container/index.d.ts +0 -95
- package/dist/container/index.d.ts.map +0 -1
- package/dist/context/index.d.ts +0 -143
- package/dist/context/index.d.ts.map +0 -1
- package/dist/database/index.d.ts +0 -219
- package/dist/database/index.d.ts.map +0 -1
- package/dist/database/migrations/index.d.ts +0 -146
- package/dist/database/migrations/index.d.ts.map +0 -1
- package/dist/database/orm/builder.d.ts +0 -122
- package/dist/database/orm/builder.d.ts.map +0 -1
- package/dist/database/orm/casts/index.d.ts +0 -16
- package/dist/database/orm/casts/index.d.ts.map +0 -1
- package/dist/database/orm/casts/types.d.ts +0 -16
- package/dist/database/orm/casts/types.d.ts.map +0 -1
- package/dist/database/orm/compiler.d.ts +0 -90
- package/dist/database/orm/compiler.d.ts.map +0 -1
- package/dist/database/orm/hooks/index.d.ts +0 -53
- package/dist/database/orm/hooks/index.d.ts.map +0 -1
- package/dist/database/orm/index.d.ts +0 -21
- package/dist/database/orm/index.d.ts.map +0 -1
- package/dist/database/orm/model-registry.d.ts +0 -33
- package/dist/database/orm/model-registry.d.ts.map +0 -1
- package/dist/database/orm/model.d.ts +0 -245
- package/dist/database/orm/model.d.ts.map +0 -1
- package/dist/database/orm/relationships/base.d.ts +0 -69
- package/dist/database/orm/relationships/base.d.ts.map +0 -1
- package/dist/database/orm/relationships/belongs-to-many.d.ts +0 -47
- package/dist/database/orm/relationships/belongs-to-many.d.ts.map +0 -1
- package/dist/database/orm/relationships/belongs-to.d.ts +0 -17
- package/dist/database/orm/relationships/belongs-to.d.ts.map +0 -1
- package/dist/database/orm/relationships/has-many.d.ts +0 -14
- package/dist/database/orm/relationships/has-many.d.ts.map +0 -1
- package/dist/database/orm/relationships/has-one.d.ts +0 -14
- package/dist/database/orm/relationships/has-one.d.ts.map +0 -1
- package/dist/database/orm/relationships/index.d.ts +0 -10
- package/dist/database/orm/relationships/index.d.ts.map +0 -1
- package/dist/database/orm/scopes/index.d.ts +0 -36
- package/dist/database/orm/scopes/index.d.ts.map +0 -1
- package/dist/database/schema/index.d.ts +0 -155
- package/dist/database/schema/index.d.ts.map +0 -1
- package/dist/events/__tests__/event-system.test.d.ts +0 -2
- package/dist/events/__tests__/event-system.test.d.ts.map +0 -1
- package/dist/events/config.d.ts +0 -16
- package/dist/events/config.d.ts.map +0 -1
- package/dist/events/example-usage.d.ts +0 -12
- package/dist/events/example-usage.d.ts.map +0 -1
- package/dist/events/index.d.ts +0 -27
- package/dist/events/index.d.ts.map +0 -1
- package/dist/events/manager.d.ts +0 -33
- package/dist/events/manager.d.ts.map +0 -1
- package/dist/events/registry.d.ts +0 -31
- package/dist/events/registry.d.ts.map +0 -1
- package/dist/events/types.d.ts +0 -105
- package/dist/events/types.d.ts.map +0 -1
- package/dist/frontend/api-routes.d.ts +0 -189
- package/dist/frontend/api-routes.d.ts.map +0 -1
- package/dist/frontend/bundler.d.ts +0 -99
- package/dist/frontend/bundler.d.ts.map +0 -1
- package/dist/frontend/console-client.d.ts +0 -11
- package/dist/frontend/console-client.d.ts.map +0 -1
- package/dist/frontend/console-stream.d.ts +0 -138
- package/dist/frontend/console-stream.d.ts.map +0 -1
- package/dist/frontend/dev-server.d.ts +0 -174
- package/dist/frontend/dev-server.d.ts.map +0 -1
- package/dist/frontend/file-router.d.ts +0 -170
- package/dist/frontend/file-router.d.ts.map +0 -1
- package/dist/frontend/frameworks/index.d.ts +0 -41
- package/dist/frontend/frameworks/index.d.ts.map +0 -1
- package/dist/frontend/frameworks/react.d.ts +0 -32
- package/dist/frontend/frameworks/react.d.ts.map +0 -1
- package/dist/frontend/frameworks/solid.d.ts +0 -42
- package/dist/frontend/frameworks/solid.d.ts.map +0 -1
- package/dist/frontend/frameworks/svelte.d.ts +0 -57
- package/dist/frontend/frameworks/svelte.d.ts.map +0 -1
- package/dist/frontend/frameworks/vue.d.ts +0 -36
- package/dist/frontend/frameworks/vue.d.ts.map +0 -1
- package/dist/frontend/hmr-client.d.ts +0 -22
- package/dist/frontend/hmr-client.d.ts.map +0 -1
- package/dist/frontend/hmr.d.ts +0 -185
- package/dist/frontend/hmr.d.ts.map +0 -1
- package/dist/frontend/index.d.ts +0 -34
- package/dist/frontend/index.d.ts.map +0 -1
- package/dist/frontend/islands.d.ts +0 -135
- package/dist/frontend/islands.d.ts.map +0 -1
- package/dist/frontend/isr.d.ts +0 -143
- package/dist/frontend/isr.d.ts.map +0 -1
- package/dist/frontend/layout.d.ts +0 -140
- package/dist/frontend/layout.d.ts.map +0 -1
- package/dist/frontend/ssr/react.d.ts +0 -118
- package/dist/frontend/ssr/react.d.ts.map +0 -1
- package/dist/frontend/ssr/solid.d.ts +0 -141
- package/dist/frontend/ssr/solid.d.ts.map +0 -1
- package/dist/frontend/ssr/svelte.d.ts +0 -158
- package/dist/frontend/ssr/svelte.d.ts.map +0 -1
- package/dist/frontend/ssr/vue.d.ts +0 -161
- package/dist/frontend/ssr/vue.d.ts.map +0 -1
- package/dist/frontend/ssr.d.ts +0 -147
- package/dist/frontend/ssr.d.ts.map +0 -1
- package/dist/frontend/types.d.ts +0 -1902
- package/dist/frontend/types.d.ts.map +0 -1
- package/dist/graphql/built-in-engine.d.ts +0 -36
- package/dist/graphql/built-in-engine.d.ts.map +0 -1
- package/dist/graphql/context-builder.d.ts +0 -44
- package/dist/graphql/context-builder.d.ts.map +0 -1
- package/dist/graphql/decorators.d.ts +0 -162
- package/dist/graphql/decorators.d.ts.map +0 -1
- package/dist/graphql/execution-pipeline.d.ts +0 -67
- package/dist/graphql/execution-pipeline.d.ts.map +0 -1
- package/dist/graphql/graphql-module.d.ts +0 -70
- package/dist/graphql/graphql-module.d.ts.map +0 -1
- package/dist/graphql/index.d.ts +0 -48
- package/dist/graphql/index.d.ts.map +0 -1
- package/dist/graphql/metadata.d.ts +0 -37
- package/dist/graphql/metadata.d.ts.map +0 -1
- package/dist/graphql/schema-builder.d.ts +0 -34
- package/dist/graphql/schema-builder.d.ts.map +0 -1
- package/dist/graphql/subscription-handler.d.ts +0 -47
- package/dist/graphql/subscription-handler.d.ts.map +0 -1
- package/dist/graphql/types.d.ts +0 -252
- package/dist/graphql/types.d.ts.map +0 -1
- package/dist/health/index.d.ts +0 -176
- package/dist/health/index.d.ts.map +0 -1
- package/dist/i18n/engine.d.ts +0 -105
- package/dist/i18n/engine.d.ts.map +0 -1
- package/dist/i18n/index.d.ts +0 -13
- package/dist/i18n/index.d.ts.map +0 -1
- package/dist/i18n/loader.d.ts +0 -79
- package/dist/i18n/loader.d.ts.map +0 -1
- package/dist/i18n/middleware.d.ts +0 -96
- package/dist/i18n/middleware.d.ts.map +0 -1
- package/dist/i18n/negotiator.d.ts +0 -84
- package/dist/i18n/negotiator.d.ts.map +0 -1
- package/dist/i18n/types.d.ts +0 -129
- package/dist/i18n/types.d.ts.map +0 -1
- package/dist/index.d.ts +0 -48
- package/dist/index.d.ts.map +0 -1
- package/dist/jobs/drivers/memory.d.ts +0 -38
- package/dist/jobs/drivers/memory.d.ts.map +0 -1
- package/dist/jobs/drivers/redis.d.ts +0 -34
- package/dist/jobs/drivers/redis.d.ts.map +0 -1
- package/dist/jobs/index.d.ts +0 -12
- package/dist/jobs/index.d.ts.map +0 -1
- package/dist/jobs/queue.d.ts +0 -93
- package/dist/jobs/queue.d.ts.map +0 -1
- package/dist/jobs/types.d.ts +0 -193
- package/dist/jobs/types.d.ts.map +0 -1
- package/dist/jobs/worker.d.ts +0 -91
- package/dist/jobs/worker.d.ts.map +0 -1
- package/dist/lock/index.d.ts +0 -141
- package/dist/lock/index.d.ts.map +0 -1
- package/dist/logger/index.d.ts +0 -156
- package/dist/logger/index.d.ts.map +0 -1
- package/dist/logger/transports/index.d.ts +0 -371
- package/dist/logger/transports/index.d.ts.map +0 -1
- package/dist/metrics/index.d.ts +0 -163
- package/dist/metrics/index.d.ts.map +0 -1
- package/dist/middleware/built-in.d.ts +0 -50
- package/dist/middleware/built-in.d.ts.map +0 -1
- package/dist/middleware/index.d.ts +0 -40
- package/dist/middleware/index.d.ts.map +0 -1
- package/dist/migrations/index.d.ts +0 -10
- package/dist/migrations/index.d.ts.map +0 -1
- package/dist/modules/filters.d.ts +0 -150
- package/dist/modules/filters.d.ts.map +0 -1
- package/dist/modules/guards.d.ts +0 -188
- package/dist/modules/guards.d.ts.map +0 -1
- package/dist/modules/index.d.ts +0 -266
- package/dist/modules/index.d.ts.map +0 -1
- package/dist/modules/interceptors.d.ts +0 -242
- package/dist/modules/interceptors.d.ts.map +0 -1
- package/dist/modules/lazy.d.ts +0 -187
- package/dist/modules/lazy.d.ts.map +0 -1
- package/dist/modules/lifecycle.d.ts +0 -221
- package/dist/modules/lifecycle.d.ts.map +0 -1
- package/dist/modules/metadata.d.ts +0 -32
- package/dist/modules/metadata.d.ts.map +0 -1
- package/dist/modules/pipes.d.ts +0 -287
- package/dist/modules/pipes.d.ts.map +0 -1
- package/dist/notification/channels/base.d.ts +0 -32
- package/dist/notification/channels/base.d.ts.map +0 -1
- package/dist/notification/channels/email.d.ts +0 -37
- package/dist/notification/channels/email.d.ts.map +0 -1
- package/dist/notification/channels/push.d.ts +0 -37
- package/dist/notification/channels/push.d.ts.map +0 -1
- package/dist/notification/channels/sms.d.ts +0 -37
- package/dist/notification/channels/sms.d.ts.map +0 -1
- package/dist/notification/channels/whatsapp.d.ts +0 -37
- package/dist/notification/channels/whatsapp.d.ts.map +0 -1
- package/dist/notification/index.d.ts +0 -15
- package/dist/notification/index.d.ts.map +0 -1
- package/dist/notification/service.d.ts +0 -100
- package/dist/notification/service.d.ts.map +0 -1
- package/dist/notification/types.d.ts +0 -253
- package/dist/notification/types.d.ts.map +0 -1
- package/dist/observability/__tests__/observability.test.d.ts +0 -2
- package/dist/observability/__tests__/observability.test.d.ts.map +0 -1
- package/dist/observability/breadcrumbs.d.ts +0 -48
- package/dist/observability/breadcrumbs.d.ts.map +0 -1
- package/dist/observability/index.d.ts +0 -95
- package/dist/observability/index.d.ts.map +0 -1
- package/dist/observability/interceptor.d.ts +0 -19
- package/dist/observability/interceptor.d.ts.map +0 -1
- package/dist/observability/service.d.ts +0 -101
- package/dist/observability/service.d.ts.map +0 -1
- package/dist/observability/trace.d.ts +0 -21
- package/dist/observability/trace.d.ts.map +0 -1
- package/dist/observability/types.d.ts +0 -172
- package/dist/observability/types.d.ts.map +0 -1
- package/dist/openapi/__tests__/decorators.test.d.ts +0 -2
- package/dist/openapi/__tests__/decorators.test.d.ts.map +0 -1
- package/dist/openapi/__tests__/document-builder.test.d.ts +0 -2
- package/dist/openapi/__tests__/document-builder.test.d.ts.map +0 -1
- package/dist/openapi/__tests__/route-scanner.test.d.ts +0 -2
- package/dist/openapi/__tests__/route-scanner.test.d.ts.map +0 -1
- package/dist/openapi/__tests__/schema-generator.test.d.ts +0 -2
- package/dist/openapi/__tests__/schema-generator.test.d.ts.map +0 -1
- package/dist/openapi/decorators.d.ts +0 -173
- package/dist/openapi/decorators.d.ts.map +0 -1
- package/dist/openapi/document-builder.d.ts +0 -82
- package/dist/openapi/document-builder.d.ts.map +0 -1
- package/dist/openapi/index.d.ts +0 -48
- package/dist/openapi/index.d.ts.map +0 -1
- package/dist/openapi/metadata.d.ts +0 -36
- package/dist/openapi/metadata.d.ts.map +0 -1
- package/dist/openapi/route-scanner.d.ts +0 -34
- package/dist/openapi/route-scanner.d.ts.map +0 -1
- package/dist/openapi/schema-generator.d.ts +0 -53
- package/dist/openapi/schema-generator.d.ts.map +0 -1
- package/dist/openapi/swagger-module.d.ts +0 -57
- package/dist/openapi/swagger-module.d.ts.map +0 -1
- package/dist/openapi/types.d.ts +0 -344
- package/dist/openapi/types.d.ts.map +0 -1
- package/dist/orm/index.d.ts +0 -10
- package/dist/orm/index.d.ts.map +0 -1
- package/dist/router/index.d.ts +0 -73
- package/dist/router/index.d.ts.map +0 -1
- package/dist/router/linear.d.ts +0 -54
- package/dist/router/linear.d.ts.map +0 -1
- package/dist/router/regex.d.ts +0 -49
- package/dist/router/regex.d.ts.map +0 -1
- package/dist/router/tree.d.ts +0 -112
- package/dist/router/tree.d.ts.map +0 -1
- package/dist/rpc/index.d.ts +0 -321
- package/dist/rpc/index.d.ts.map +0 -1
- package/dist/schema/index.d.ts +0 -10
- package/dist/schema/index.d.ts.map +0 -1
- package/dist/security/index.d.ts +0 -126
- package/dist/security/index.d.ts.map +0 -1
- package/dist/ssg/index.d.ts +0 -73
- package/dist/ssg/index.d.ts.map +0 -1
- package/dist/storage/index.d.ts +0 -99
- package/dist/storage/index.d.ts.map +0 -1
- package/dist/telemetry/index.d.ts +0 -376
- package/dist/telemetry/index.d.ts.map +0 -1
- package/dist/template/index.d.ts +0 -7
- package/dist/template/index.d.ts.map +0 -1
- package/dist/templates/engine.d.ts +0 -60
- package/dist/templates/engine.d.ts.map +0 -1
- package/dist/templates/index.d.ts +0 -9
- package/dist/templates/index.d.ts.map +0 -1
- package/dist/templates/loader.d.ts +0 -45
- package/dist/templates/loader.d.ts.map +0 -1
- package/dist/templates/renderers/markdown.d.ts +0 -46
- package/dist/templates/renderers/markdown.d.ts.map +0 -1
- package/dist/templates/renderers/simple.d.ts +0 -35
- package/dist/templates/renderers/simple.d.ts.map +0 -1
- package/dist/templates/types.d.ts +0 -138
- package/dist/templates/types.d.ts.map +0 -1
- package/dist/testing/index.d.ts +0 -539
- package/dist/testing/index.d.ts.map +0 -1
- package/dist/types/index.d.ts +0 -116
- package/dist/types/index.d.ts.map +0 -1
- package/dist/validation/index.d.ts +0 -89
- package/dist/validation/index.d.ts.map +0 -1
- package/dist/validation/schemas.d.ts +0 -243
- package/dist/validation/schemas.d.ts.map +0 -1
- package/dist/websocket/index.d.ts +0 -252
- package/dist/websocket/index.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -1246,7 +1246,7 @@ bun dev
|
|
|
1246
1246
|
|
|
1247
1247
|
## Links
|
|
1248
1248
|
|
|
1249
|
-
- **Documentation**: [https://
|
|
1249
|
+
- **Documentation**: [https://buenojs.github.io](https://buenojs.github.io)
|
|
1250
1250
|
- **GitHub**: [https://github.com/buenojs/bueno](https://github.com/buenojs/bueno)
|
|
1251
1251
|
- **Issues**: [https://github.com/buenojs/bueno/issues](https://github.com/buenojs/bueno/issues)
|
|
1252
1252
|
- **npm**: [https://www.npmjs.com/package/@buenojs/bueno](https://www.npmjs.com/package/@buenojs/bueno)
|
package/dist/index.js
CHANGED
|
@@ -724,7 +724,7 @@ function createValidator(options) {
|
|
|
724
724
|
};
|
|
725
725
|
}
|
|
726
726
|
function WithBody(schema) {
|
|
727
|
-
return (
|
|
727
|
+
return (_target, _propertyKey, descriptor2) => {
|
|
728
728
|
const original = descriptor2.value;
|
|
729
729
|
descriptor2.value = async function(context) {
|
|
730
730
|
const result = await validateBody(context, schema);
|
|
@@ -738,7 +738,7 @@ function WithBody(schema) {
|
|
|
738
738
|
};
|
|
739
739
|
}
|
|
740
740
|
function WithQuery(schema) {
|
|
741
|
-
return (
|
|
741
|
+
return (_target, _propertyKey, descriptor2) => {
|
|
742
742
|
const original = descriptor2.value;
|
|
743
743
|
descriptor2.value = async function(context) {
|
|
744
744
|
const result = validateQuery(context, schema);
|
|
@@ -6879,7 +6879,7 @@ function parseFrontMatter(content) {
|
|
|
6879
6879
|
value = null;
|
|
6880
6880
|
else if (!isNaN(Number(value)) && value !== "")
|
|
6881
6881
|
value = Number(value);
|
|
6882
|
-
else if (value.startsWith("[") && value.endsWith("]")) {
|
|
6882
|
+
else if (typeof value === "string" && value.startsWith("[") && value.endsWith("]")) {
|
|
6883
6883
|
const arrayContent = value.slice(1, -1).trim();
|
|
6884
6884
|
value = arrayContent.split(",").map((v) => {
|
|
6885
6885
|
let item = v.trim();
|
|
@@ -7206,17 +7206,20 @@ var builtinFilters = {
|
|
|
7206
7206
|
return false;
|
|
7207
7207
|
},
|
|
7208
7208
|
date: (value, format = "YYYY-MM-DD") => {
|
|
7209
|
-
|
|
7210
|
-
|
|
7209
|
+
let dateObj;
|
|
7210
|
+
if (value instanceof Date) {
|
|
7211
|
+
dateObj = value;
|
|
7212
|
+
} else {
|
|
7213
|
+
dateObj = new Date(value);
|
|
7211
7214
|
}
|
|
7212
|
-
if (isNaN(
|
|
7215
|
+
if (isNaN(dateObj.getTime()))
|
|
7213
7216
|
return String(value);
|
|
7214
|
-
const year =
|
|
7215
|
-
const month = String(
|
|
7216
|
-
const date = String(
|
|
7217
|
-
const hours = String(
|
|
7218
|
-
const minutes = String(
|
|
7219
|
-
const seconds = String(
|
|
7217
|
+
const year = dateObj.getFullYear();
|
|
7218
|
+
const month = String(dateObj.getMonth() + 1).padStart(2, "0");
|
|
7219
|
+
const date = String(dateObj.getDate()).padStart(2, "0");
|
|
7220
|
+
const hours = String(dateObj.getHours()).padStart(2, "0");
|
|
7221
|
+
const minutes = String(dateObj.getMinutes()).padStart(2, "0");
|
|
7222
|
+
const seconds = String(dateObj.getSeconds()).padStart(2, "0");
|
|
7220
7223
|
return format.replace("YYYY", String(year)).replace("MM", month).replace("DD", date).replace("HH", hours).replace("mm", minutes).replace("ss", seconds);
|
|
7221
7224
|
}
|
|
7222
7225
|
};
|
package/dist/modules/index.js
CHANGED
|
@@ -724,7 +724,7 @@ function createValidator(options) {
|
|
|
724
724
|
};
|
|
725
725
|
}
|
|
726
726
|
function WithBody(schema) {
|
|
727
|
-
return (
|
|
727
|
+
return (_target, _propertyKey, descriptor) => {
|
|
728
728
|
const original = descriptor.value;
|
|
729
729
|
descriptor.value = async function(context) {
|
|
730
730
|
const result = await validateBody(context, schema);
|
|
@@ -738,7 +738,7 @@ function WithBody(schema) {
|
|
|
738
738
|
};
|
|
739
739
|
}
|
|
740
740
|
function WithQuery(schema) {
|
|
741
|
-
return (
|
|
741
|
+
return (_target, _propertyKey, descriptor) => {
|
|
742
742
|
const original = descriptor.value;
|
|
743
743
|
descriptor.value = async function(context) {
|
|
744
744
|
const result = validateQuery(context, schema);
|
package/dist/template/index.js
CHANGED
|
@@ -63,7 +63,7 @@ function parseFrontMatter(content) {
|
|
|
63
63
|
value = null;
|
|
64
64
|
else if (!isNaN(Number(value)) && value !== "")
|
|
65
65
|
value = Number(value);
|
|
66
|
-
else if (value.startsWith("[") && value.endsWith("]")) {
|
|
66
|
+
else if (typeof value === "string" && value.startsWith("[") && value.endsWith("]")) {
|
|
67
67
|
const arrayContent = value.slice(1, -1).trim();
|
|
68
68
|
value = arrayContent.split(",").map((v) => {
|
|
69
69
|
let item = v.trim();
|
|
@@ -390,17 +390,20 @@ var builtinFilters = {
|
|
|
390
390
|
return false;
|
|
391
391
|
},
|
|
392
392
|
date: (value, format = "YYYY-MM-DD") => {
|
|
393
|
-
|
|
394
|
-
|
|
393
|
+
let dateObj;
|
|
394
|
+
if (value instanceof Date) {
|
|
395
|
+
dateObj = value;
|
|
396
|
+
} else {
|
|
397
|
+
dateObj = new Date(value);
|
|
395
398
|
}
|
|
396
|
-
if (isNaN(
|
|
399
|
+
if (isNaN(dateObj.getTime()))
|
|
397
400
|
return String(value);
|
|
398
|
-
const year =
|
|
399
|
-
const month = String(
|
|
400
|
-
const date = String(
|
|
401
|
-
const hours = String(
|
|
402
|
-
const minutes = String(
|
|
403
|
-
const seconds = String(
|
|
401
|
+
const year = dateObj.getFullYear();
|
|
402
|
+
const month = String(dateObj.getMonth() + 1).padStart(2, "0");
|
|
403
|
+
const date = String(dateObj.getDate()).padStart(2, "0");
|
|
404
|
+
const hours = String(dateObj.getHours()).padStart(2, "0");
|
|
405
|
+
const minutes = String(dateObj.getMinutes()).padStart(2, "0");
|
|
406
|
+
const seconds = String(dateObj.getSeconds()).padStart(2, "0");
|
|
404
407
|
return format.replace("YYYY", String(year)).replace("MM", month).replace("DD", date).replace("HH", hours).replace("mm", minutes).replace("ss", seconds);
|
|
405
408
|
}
|
|
406
409
|
};
|
package/dist/templates/index.js
CHANGED
|
@@ -63,7 +63,7 @@ function parseFrontMatter(content) {
|
|
|
63
63
|
value = null;
|
|
64
64
|
else if (!isNaN(Number(value)) && value !== "")
|
|
65
65
|
value = Number(value);
|
|
66
|
-
else if (value.startsWith("[") && value.endsWith("]")) {
|
|
66
|
+
else if (typeof value === "string" && value.startsWith("[") && value.endsWith("]")) {
|
|
67
67
|
const arrayContent = value.slice(1, -1).trim();
|
|
68
68
|
value = arrayContent.split(",").map((v) => {
|
|
69
69
|
let item = v.trim();
|
|
@@ -390,17 +390,20 @@ var builtinFilters = {
|
|
|
390
390
|
return false;
|
|
391
391
|
},
|
|
392
392
|
date: (value, format = "YYYY-MM-DD") => {
|
|
393
|
-
|
|
394
|
-
|
|
393
|
+
let dateObj;
|
|
394
|
+
if (value instanceof Date) {
|
|
395
|
+
dateObj = value;
|
|
396
|
+
} else {
|
|
397
|
+
dateObj = new Date(value);
|
|
395
398
|
}
|
|
396
|
-
if (isNaN(
|
|
399
|
+
if (isNaN(dateObj.getTime()))
|
|
397
400
|
return String(value);
|
|
398
|
-
const year =
|
|
399
|
-
const month = String(
|
|
400
|
-
const date = String(
|
|
401
|
-
const hours = String(
|
|
402
|
-
const minutes = String(
|
|
403
|
-
const seconds = String(
|
|
401
|
+
const year = dateObj.getFullYear();
|
|
402
|
+
const month = String(dateObj.getMonth() + 1).padStart(2, "0");
|
|
403
|
+
const date = String(dateObj.getDate()).padStart(2, "0");
|
|
404
|
+
const hours = String(dateObj.getHours()).padStart(2, "0");
|
|
405
|
+
const minutes = String(dateObj.getMinutes()).padStart(2, "0");
|
|
406
|
+
const seconds = String(dateObj.getSeconds()).padStart(2, "0");
|
|
404
407
|
return format.replace("YYYY", String(year)).replace("MM", month).replace("DD", date).replace("HH", hours).replace("mm", minutes).replace("ss", seconds);
|
|
405
408
|
}
|
|
406
409
|
};
|
package/llms.txt
CHANGED
|
@@ -198,7 +198,7 @@ describe('UserController', () => {
|
|
|
198
198
|
```
|
|
199
199
|
|
|
200
200
|
## Documentation
|
|
201
|
-
- **Main Documentation**: https://
|
|
201
|
+
- **Main Documentation**: https://buenojs.github.io
|
|
202
202
|
- **GitHub Repository**: https://github.com/buenojs/bueno
|
|
203
203
|
- **NPM Package**: https://www.npmjs.com/package/@buenojs/bueno
|
|
204
204
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@buenojs/bueno",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.10",
|
|
4
4
|
"description": "A Bun-Native Full-Stack Framework",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -148,7 +148,7 @@
|
|
|
148
148
|
"test:watch": "bun test --watch",
|
|
149
149
|
"test:coverage": "bun test --coverage",
|
|
150
150
|
"coverage": "bun test --coverage coverage/lcov.info",
|
|
151
|
-
"build": "rm -rf dist && bun build ./src/index.ts ./src/database/index.ts ./src/schema/index.ts ./src/migrations/index.ts ./src/orm/index.ts ./src/jobs/index.ts ./src/templates/index.ts ./src/template/index.ts ./src/openapi/index.ts ./src/notification/index.ts ./src/i18n/index.ts ./src/cli/bin.ts ./src/frontend/index.ts ./src/router/index.ts ./src/middleware/index.ts ./src/modules/index.ts ./src/telemetry/index.ts ./src/observability/index.ts ./src/graphql/index.ts ./src/lock/index.ts ./src/health/index.ts ./src/logger/index.ts ./src/metrics/index.ts ./src/rpc/index.ts ./src/context/index.ts ./src/container/index.ts ./src/testing/index.ts ./src/types/index.ts --outdir ./dist --target bun && test -d dist/src && (cp -r dist/src/* dist/ && rm -rf dist/src) || true
|
|
151
|
+
"build": "rm -rf dist && bun build ./src/index.ts ./src/database/index.ts ./src/schema/index.ts ./src/migrations/index.ts ./src/orm/index.ts ./src/jobs/index.ts ./src/templates/index.ts ./src/template/index.ts ./src/openapi/index.ts ./src/notification/index.ts ./src/i18n/index.ts ./src/cli/bin.ts ./src/frontend/index.ts ./src/router/index.ts ./src/middleware/index.ts ./src/modules/index.ts ./src/telemetry/index.ts ./src/observability/index.ts ./src/graphql/index.ts ./src/lock/index.ts ./src/health/index.ts ./src/logger/index.ts ./src/metrics/index.ts ./src/rpc/index.ts ./src/context/index.ts ./src/container/index.ts ./src/testing/index.ts ./src/types/index.ts --outdir ./dist --target bun && test -d dist/src && (cp -r dist/src/* dist/ && rm -rf dist/src) || true",
|
|
152
152
|
"build:cli": "bun build ./src/cli/bin.ts ./src/frontend/index.ts ./src/router/index.ts ./src/middleware/index.ts ./src/modules/index.ts --outdir ./dist/cli --target bun",
|
|
153
153
|
"typecheck": "tsc --noEmit",
|
|
154
154
|
"lint": "bunx biome check ./src",
|
package/src/cli/commands/new.ts
CHANGED
|
@@ -71,7 +71,7 @@ export function App() {
|
|
|
71
71
|
|
|
72
72
|
<div className="mt-8 grid grid-cols-2 gap-4 text-left">
|
|
73
73
|
<a
|
|
74
|
-
href="https://
|
|
74
|
+
href="https://buenojs.github.io"
|
|
75
75
|
className="p-4 bg-slate-800/50 rounded-lg border border-slate-700 hover:border-blue-500 transition-colors"
|
|
76
76
|
>
|
|
77
77
|
<h3 className="font-semibold text-blue-400">Documentation</h3>
|
|
@@ -68,7 +68,7 @@ export function App() {
|
|
|
68
68
|
|
|
69
69
|
<div class="mt-8 grid grid-cols-2 gap-4 text-left">
|
|
70
70
|
<a
|
|
71
|
-
href="https://
|
|
71
|
+
href="https://buenojs.github.io"
|
|
72
72
|
class="p-4 bg-slate-800/50 rounded-lg border border-slate-700 hover:border-cyan-500 transition-colors"
|
|
73
73
|
>
|
|
74
74
|
<h3 class="font-semibold text-cyan-400">Documentation</h3>
|
|
@@ -65,7 +65,7 @@ export default app;
|
|
|
65
65
|
|
|
66
66
|
<div class="mt-8 grid grid-cols-2 gap-4 text-left">
|
|
67
67
|
<a
|
|
68
|
-
href="https://
|
|
68
|
+
href="https://buenojs.github.io"
|
|
69
69
|
class="p-4 bg-slate-800/50 rounded-lg border border-slate-700 hover:border-orange-500 transition-colors"
|
|
70
70
|
>
|
|
71
71
|
<h3 class="font-semibold text-orange-400">Documentation</h3>
|
|
@@ -65,7 +65,7 @@ const count = ref(0);
|
|
|
65
65
|
|
|
66
66
|
<div class="mt-8 grid grid-cols-2 gap-4 text-left">
|
|
67
67
|
<a
|
|
68
|
-
href="https://
|
|
68
|
+
href="https://buenojs.github.io"
|
|
69
69
|
class="p-4 bg-slate-800/50 rounded-lg border border-slate-700 hover:border-green-500 transition-colors"
|
|
70
70
|
>
|
|
71
71
|
<h3 class="font-semibold text-green-400">Documentation</h3>
|
|
@@ -68,7 +68,7 @@ export class AppController {
|
|
|
68
68
|
</ul>
|
|
69
69
|
|
|
70
70
|
<h2>Documentation</h2>
|
|
71
|
-
<p>Visit <a href="https://
|
|
71
|
+
<p>Visit <a href="https://buenojs.github.io">https://buenojs.github.io</a> for full documentation.</p>
|
|
72
72
|
|
|
73
73
|
<h2>Quick Example</h2>
|
|
74
74
|
<pre><code>@Controller('/api')
|
|
@@ -140,7 +140,7 @@ layout: default
|
|
|
140
140
|
|
|
141
141
|
# Welcome to ${config.name}
|
|
142
142
|
|
|
143
|
-
This is a static website built with [Bueno Framework](https://
|
|
143
|
+
This is a static website built with [Bueno Framework](https://buenojs.github.io).
|
|
144
144
|
|
|
145
145
|
## Getting Started
|
|
146
146
|
|
|
@@ -159,7 +159,7 @@ layout: default
|
|
|
159
159
|
|
|
160
160
|
# About This Website
|
|
161
161
|
|
|
162
|
-
This is a static website built with [Bueno Framework](https://
|
|
162
|
+
This is a static website built with [Bueno Framework](https://buenojs.github.io).
|
|
163
163
|
|
|
164
164
|
## Features
|
|
165
165
|
|
|
@@ -170,7 +170,7 @@ This is a static website built with [Bueno Framework](https://bueno.github.io).
|
|
|
170
170
|
|
|
171
171
|
## Getting Started
|
|
172
172
|
|
|
173
|
-
Visit the [Bueno documentation](https://
|
|
173
|
+
Visit the [Bueno documentation](https://buenojs.github.io) to learn more.
|
|
174
174
|
`,
|
|
175
175
|
},
|
|
176
176
|
{
|
package/src/templates/loader.ts
CHANGED
|
@@ -63,7 +63,7 @@ function parseFrontMatter(content: string): {
|
|
|
63
63
|
else if (value === "false") value = false;
|
|
64
64
|
else if (value === "null") value = null;
|
|
65
65
|
else if (!isNaN(Number(value)) && value !== "") value = Number(value);
|
|
66
|
-
else if (value.startsWith("[") && value.endsWith("]")) {
|
|
66
|
+
else if (typeof value === "string" && value.startsWith("[") && value.endsWith("]")) {
|
|
67
67
|
// Parse simple arrays: [email, sms, push] or ["email", "sms", "push"]
|
|
68
68
|
const arrayContent = value.slice(1, -1).trim();
|
|
69
69
|
value = arrayContent.split(",").map((v) => {
|
|
@@ -48,17 +48,20 @@ const builtinFilters: FilterRegistry = {
|
|
|
48
48
|
return false;
|
|
49
49
|
},
|
|
50
50
|
date: (value, format = "YYYY-MM-DD") => {
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
let dateObj: Date;
|
|
52
|
+
if (value instanceof Date) {
|
|
53
|
+
dateObj = value;
|
|
54
|
+
} else {
|
|
55
|
+
dateObj = new Date(value as string | number);
|
|
53
56
|
}
|
|
54
|
-
if (isNaN(
|
|
55
|
-
|
|
56
|
-
const year =
|
|
57
|
-
const month = String(
|
|
58
|
-
const date = String(
|
|
59
|
-
const hours = String(
|
|
60
|
-
const minutes = String(
|
|
61
|
-
const seconds = String(
|
|
57
|
+
if (isNaN(dateObj.getTime())) return String(value);
|
|
58
|
+
|
|
59
|
+
const year = dateObj.getFullYear();
|
|
60
|
+
const month = String(dateObj.getMonth() + 1).padStart(2, "0");
|
|
61
|
+
const date = String(dateObj.getDate()).padStart(2, "0");
|
|
62
|
+
const hours = String(dateObj.getHours()).padStart(2, "0");
|
|
63
|
+
const minutes = String(dateObj.getMinutes()).padStart(2, "0");
|
|
64
|
+
const seconds = String(dateObj.getSeconds()).padStart(2, "0");
|
|
62
65
|
|
|
63
66
|
return (format as string)
|
|
64
67
|
.replace("YYYY", String(year))
|
package/src/validation/index.ts
CHANGED
|
@@ -9,15 +9,14 @@ import type { Context } from "../context";
|
|
|
9
9
|
import type {
|
|
10
10
|
Middleware,
|
|
11
11
|
StandardIssue,
|
|
12
|
-
StandardResult,
|
|
13
12
|
StandardSchema,
|
|
14
13
|
} from "../types";
|
|
15
14
|
|
|
16
15
|
// ============= Types =============
|
|
17
16
|
|
|
18
17
|
export type ValidationResult<T> =
|
|
19
|
-
| { success: true; data: T }
|
|
20
|
-
| { success: false; issues: StandardIssue[] };
|
|
18
|
+
| { readonly success: true; readonly data: T }
|
|
19
|
+
| { readonly success: false; readonly issues: StandardIssue[] };
|
|
21
20
|
|
|
22
21
|
export interface ValidatorOptions {
|
|
23
22
|
body?: StandardSchema;
|
|
@@ -153,9 +152,9 @@ export function createValidator(options: ValidatorOptions): Middleware {
|
|
|
153
152
|
if (!result.success) {
|
|
154
153
|
return context
|
|
155
154
|
.status(400)
|
|
156
|
-
.json({ error: "Validation failed", issues: result.issues });
|
|
155
|
+
.json({ error: "Validation failed", issues: (result as { success: false; issues: StandardIssue[] }).issues });
|
|
157
156
|
}
|
|
158
|
-
context.set("validatedBody", result.data);
|
|
157
|
+
context.set("validatedBody", (result as { success: true; data: unknown }).data);
|
|
159
158
|
}
|
|
160
159
|
|
|
161
160
|
// Validate query
|
|
@@ -164,9 +163,9 @@ export function createValidator(options: ValidatorOptions): Middleware {
|
|
|
164
163
|
if (!result.success) {
|
|
165
164
|
return context
|
|
166
165
|
.status(400)
|
|
167
|
-
.json({ error: "Validation failed", issues: result.issues });
|
|
166
|
+
.json({ error: "Validation failed", issues: (result as { success: false; issues: StandardIssue[] }).issues });
|
|
168
167
|
}
|
|
169
|
-
context.set("validatedQuery", result.data);
|
|
168
|
+
context.set("validatedQuery", (result as { success: true; data: unknown }).data);
|
|
170
169
|
}
|
|
171
170
|
|
|
172
171
|
// Validate params
|
|
@@ -175,9 +174,9 @@ export function createValidator(options: ValidatorOptions): Middleware {
|
|
|
175
174
|
if (!result.success) {
|
|
176
175
|
return context
|
|
177
176
|
.status(400)
|
|
178
|
-
.json({ error: "Validation failed", issues: result.issues });
|
|
177
|
+
.json({ error: "Validation failed", issues: (result as { success: false; issues: StandardIssue[] }).issues });
|
|
179
178
|
}
|
|
180
|
-
context.set("validatedParams", result.data);
|
|
179
|
+
context.set("validatedParams", (result as { success: true; data: unknown }).data);
|
|
181
180
|
}
|
|
182
181
|
|
|
183
182
|
// Validate headers
|
|
@@ -186,9 +185,9 @@ export function createValidator(options: ValidatorOptions): Middleware {
|
|
|
186
185
|
if (!result.success) {
|
|
187
186
|
return context
|
|
188
187
|
.status(400)
|
|
189
|
-
.json({ error: "Validation failed", issues: result.issues });
|
|
188
|
+
.json({ error: "Validation failed", issues: (result as { success: false; issues: StandardIssue[] }).issues });
|
|
190
189
|
}
|
|
191
|
-
context.set("validatedHeaders", result.data);
|
|
190
|
+
context.set("validatedHeaders", (result as { success: true; data: unknown }).data);
|
|
192
191
|
}
|
|
193
192
|
|
|
194
193
|
return next();
|
|
@@ -202,8 +201,8 @@ export function createValidator(options: ValidatorOptions): Middleware {
|
|
|
202
201
|
*/
|
|
203
202
|
export function WithBody(schema: StandardSchema) {
|
|
204
203
|
return (
|
|
205
|
-
|
|
206
|
-
|
|
204
|
+
_target: unknown,
|
|
205
|
+
_propertyKey: string | symbol,
|
|
207
206
|
descriptor: PropertyDescriptor,
|
|
208
207
|
) => {
|
|
209
208
|
const original = descriptor.value;
|
|
@@ -212,9 +211,9 @@ export function WithBody(schema: StandardSchema) {
|
|
|
212
211
|
if (!result.success) {
|
|
213
212
|
return context
|
|
214
213
|
.status(400)
|
|
215
|
-
.json({ error: "Validation failed", issues: result.issues });
|
|
214
|
+
.json({ error: "Validation failed", issues: (result as { success: false; issues: StandardIssue[] }).issues });
|
|
216
215
|
}
|
|
217
|
-
context.set("body", result.data);
|
|
216
|
+
context.set("body", (result as { success: true; data: unknown }).data);
|
|
218
217
|
return original.call(this, context);
|
|
219
218
|
};
|
|
220
219
|
return descriptor;
|
|
@@ -226,8 +225,8 @@ export function WithBody(schema: StandardSchema) {
|
|
|
226
225
|
*/
|
|
227
226
|
export function WithQuery(schema: StandardSchema) {
|
|
228
227
|
return (
|
|
229
|
-
|
|
230
|
-
|
|
228
|
+
_target: unknown,
|
|
229
|
+
_propertyKey: string | symbol,
|
|
231
230
|
descriptor: PropertyDescriptor,
|
|
232
231
|
) => {
|
|
233
232
|
const original = descriptor.value;
|
|
@@ -236,9 +235,9 @@ export function WithQuery(schema: StandardSchema) {
|
|
|
236
235
|
if (!result.success) {
|
|
237
236
|
return context
|
|
238
237
|
.status(400)
|
|
239
|
-
.json({ error: "Validation failed", issues: result.issues });
|
|
238
|
+
.json({ error: "Validation failed", issues: (result as { success: false; issues: StandardIssue[] }).issues });
|
|
240
239
|
}
|
|
241
|
-
context.set("query", result.data);
|
|
240
|
+
context.set("query", (result as { success: true; data: unknown }).data);
|
|
242
241
|
return original.call(this, context);
|
|
243
242
|
};
|
|
244
243
|
return descriptor;
|
|
@@ -294,7 +293,7 @@ export async function validateEnv<T>(
|
|
|
294
293
|
|
|
295
294
|
if (!result.success) {
|
|
296
295
|
// Format error messages with context
|
|
297
|
-
const formattedIssues = result.issues.map((issue) => {
|
|
296
|
+
const formattedIssues = (result as { success: false; issues: StandardIssue[] }).issues.map((issue) => {
|
|
298
297
|
const path = issue.path?.join(".") || "root";
|
|
299
298
|
return {
|
|
300
299
|
...issue,
|
|
@@ -338,7 +337,7 @@ export function validateEnvSync<T>(
|
|
|
338
337
|
|
|
339
338
|
if (!result.success) {
|
|
340
339
|
// Format error messages with context
|
|
341
|
-
const formattedIssues = result.issues.map((issue) => {
|
|
340
|
+
const formattedIssues = (result as { success: false; issues: StandardIssue[] }).issues.map((issue) => {
|
|
342
341
|
const path = issue.path?.join(".") || "root";
|
|
343
342
|
return {
|
|
344
343
|
...issue,
|
package/tsconfig.json
CHANGED
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"strictPropertyInitialization": false
|
|
28
28
|
},
|
|
29
29
|
"include": ["src/**/*"],
|
|
30
|
-
"exclude": ["node_modules", "dist", "tests"],
|
|
30
|
+
"exclude": ["node_modules", "dist", "tests", "src/events/**/*", "src/openapi/__tests__/**/*"],
|
|
31
31
|
"ts-node": {
|
|
32
32
|
"transpileOnly": true,
|
|
33
33
|
"compilerOptions": {
|
package/dist/cache/index.d.ts
DELETED
|
@@ -1,187 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":"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"}
|