@buenojs/bueno 0.8.8 → 0.8.9
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/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/package.json +2 -2
- 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
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Validation System
|
|
3
|
-
*
|
|
4
|
-
* Multi-validator support using Standard Schema interface.
|
|
5
|
-
* Works with Zod 4, Valibot v1, ArkType, Typia, and any Standard Schema compliant library.
|
|
6
|
-
*/
|
|
7
|
-
import type { Context } from "../context";
|
|
8
|
-
import type { Middleware, StandardIssue, StandardSchema } from "../types";
|
|
9
|
-
export type ValidationResult<T> = {
|
|
10
|
-
success: true;
|
|
11
|
-
data: T;
|
|
12
|
-
} | {
|
|
13
|
-
success: false;
|
|
14
|
-
issues: StandardIssue[];
|
|
15
|
-
};
|
|
16
|
-
export interface ValidatorOptions {
|
|
17
|
-
body?: StandardSchema;
|
|
18
|
-
query?: StandardSchema;
|
|
19
|
-
params?: StandardSchema;
|
|
20
|
-
headers?: StandardSchema;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Validate data against any Standard Schema compliant schema
|
|
24
|
-
*
|
|
25
|
-
* Supports:
|
|
26
|
-
* - Zod 4+ (zod)
|
|
27
|
-
* - Valibot v1+ (valibot)
|
|
28
|
-
* - ArkType (arktype)
|
|
29
|
-
* - Typia 7+ (typia) - use typia.createValidate<T>() for Standard Schema compatibility
|
|
30
|
-
* - Any library implementing Standard Schema
|
|
31
|
-
*/
|
|
32
|
-
export declare function validate<T>(schema: StandardSchema<unknown, T>, data: unknown): Promise<ValidationResult<T>>;
|
|
33
|
-
/**
|
|
34
|
-
* Synchronous validation (for sync validators only)
|
|
35
|
-
*/
|
|
36
|
-
export declare function validateSync<T>(schema: StandardSchema<unknown, T>, data: unknown): ValidationResult<T>;
|
|
37
|
-
/**
|
|
38
|
-
* Validate request body
|
|
39
|
-
*/
|
|
40
|
-
export declare function validateBody<T>(context: Context, schema: StandardSchema<unknown, T>): Promise<ValidationResult<T>>;
|
|
41
|
-
/**
|
|
42
|
-
* Validate query parameters
|
|
43
|
-
*/
|
|
44
|
-
export declare function validateQuery<T>(context: Context, schema: StandardSchema<unknown, T>): ValidationResult<T>;
|
|
45
|
-
/**
|
|
46
|
-
* Validate path parameters
|
|
47
|
-
*/
|
|
48
|
-
export declare function validateParams<T>(context: Context, schema: StandardSchema<unknown, T>): ValidationResult<T>;
|
|
49
|
-
/**
|
|
50
|
-
* Validate headers
|
|
51
|
-
*/
|
|
52
|
-
export declare function validateHeaders<T>(context: Context, schema: StandardSchema<unknown, T>): ValidationResult<T>;
|
|
53
|
-
/**
|
|
54
|
-
* Create validation middleware
|
|
55
|
-
*/
|
|
56
|
-
export declare function createValidator(options: ValidatorOptions): Middleware;
|
|
57
|
-
/**
|
|
58
|
-
* Body validation decorator for route handlers
|
|
59
|
-
*/
|
|
60
|
-
export declare function WithBody(schema: StandardSchema): (target: unknown, propertyKey: string | symbol, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
61
|
-
/**
|
|
62
|
-
* Query validation decorator for route handlers
|
|
63
|
-
*/
|
|
64
|
-
export declare function WithQuery(schema: StandardSchema): (target: unknown, propertyKey: string | symbol, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
65
|
-
/**
|
|
66
|
-
* Check if a value is a Standard Schema
|
|
67
|
-
*/
|
|
68
|
-
export declare function isStandardSchema(value: unknown): value is StandardSchema;
|
|
69
|
-
/**
|
|
70
|
-
* Assert that a schema implements Standard Schema
|
|
71
|
-
*/
|
|
72
|
-
export declare function assertStandardSchema(schema: unknown, name?: string): asserts schema is StandardSchema;
|
|
73
|
-
/**
|
|
74
|
-
* Validate environment variables against a schema
|
|
75
|
-
*
|
|
76
|
-
* @param schema - Validation schema for environment variables
|
|
77
|
-
* @param envVars - Environment variables to validate
|
|
78
|
-
* @returns Validation result with transformed values or error details
|
|
79
|
-
*/
|
|
80
|
-
export declare function validateEnv<T>(schema: StandardSchema<unknown, T>, envVars: Record<string, string>): Promise<ValidationResult<T>>;
|
|
81
|
-
/**
|
|
82
|
-
* Validate environment variables with detailed error reporting
|
|
83
|
-
*
|
|
84
|
-
* @param schema - Validation schema for environment variables
|
|
85
|
-
* @param envVars - Environment variables to validate
|
|
86
|
-
* @returns Validation result with transformed values or detailed error information
|
|
87
|
-
*/
|
|
88
|
-
export declare function validateEnvSync<T>(schema: StandardSchema<unknown, T>, envVars: Record<string, string>): ValidationResult<T>;
|
|
89
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,243 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Built-in Schema System
|
|
3
|
-
* Lightweight validation schema builder for common use cases.
|
|
4
|
-
* No external dependencies required.
|
|
5
|
-
*/
|
|
6
|
-
import type { StandardResult } from "../types";
|
|
7
|
-
export type FieldValidator = (value: unknown) => {
|
|
8
|
-
valid: boolean;
|
|
9
|
-
error?: string;
|
|
10
|
-
value?: unknown;
|
|
11
|
-
};
|
|
12
|
-
export interface SchemaDefinition {
|
|
13
|
-
[key: string]: FieldValidator | SchemaDefinition | undefined;
|
|
14
|
-
}
|
|
15
|
-
export declare const Fields: {
|
|
16
|
-
/**
|
|
17
|
-
* String field validators
|
|
18
|
-
*/
|
|
19
|
-
string: (options?: {
|
|
20
|
-
min?: number;
|
|
21
|
-
max?: number;
|
|
22
|
-
pattern?: RegExp;
|
|
23
|
-
email?: boolean;
|
|
24
|
-
url?: boolean;
|
|
25
|
-
uuid?: boolean;
|
|
26
|
-
optional?: boolean;
|
|
27
|
-
}) => (value: unknown) => {
|
|
28
|
-
valid: boolean;
|
|
29
|
-
error: string;
|
|
30
|
-
value?: undefined;
|
|
31
|
-
} | {
|
|
32
|
-
valid: boolean;
|
|
33
|
-
value: string;
|
|
34
|
-
error?: undefined;
|
|
35
|
-
};
|
|
36
|
-
/**
|
|
37
|
-
* Number field validators (coerces strings to numbers)
|
|
38
|
-
*/
|
|
39
|
-
number: (options?: {
|
|
40
|
-
min?: number;
|
|
41
|
-
max?: number;
|
|
42
|
-
integer?: boolean;
|
|
43
|
-
positive?: boolean;
|
|
44
|
-
optional?: boolean;
|
|
45
|
-
default?: number;
|
|
46
|
-
coerce?: boolean;
|
|
47
|
-
}) => (value: unknown, validateOnly?: boolean) => {
|
|
48
|
-
valid: boolean;
|
|
49
|
-
value: number;
|
|
50
|
-
error?: undefined;
|
|
51
|
-
} | {
|
|
52
|
-
valid: boolean;
|
|
53
|
-
error: string;
|
|
54
|
-
value?: undefined;
|
|
55
|
-
};
|
|
56
|
-
/**
|
|
57
|
-
* Boolean field validator
|
|
58
|
-
*/
|
|
59
|
-
boolean: (options?: {
|
|
60
|
-
optional?: boolean;
|
|
61
|
-
}) => (value: unknown) => {
|
|
62
|
-
valid: boolean;
|
|
63
|
-
error: string;
|
|
64
|
-
value?: undefined;
|
|
65
|
-
} | {
|
|
66
|
-
valid: boolean;
|
|
67
|
-
value: boolean;
|
|
68
|
-
error?: undefined;
|
|
69
|
-
};
|
|
70
|
-
/**
|
|
71
|
-
* Array field validators
|
|
72
|
-
*/
|
|
73
|
-
array: (options?: {
|
|
74
|
-
min?: number;
|
|
75
|
-
max?: number;
|
|
76
|
-
itemValidator?: FieldValidator;
|
|
77
|
-
optional?: boolean;
|
|
78
|
-
}) => (value: unknown) => {
|
|
79
|
-
valid: boolean;
|
|
80
|
-
error: string;
|
|
81
|
-
value?: undefined;
|
|
82
|
-
} | {
|
|
83
|
-
valid: boolean;
|
|
84
|
-
value: any[];
|
|
85
|
-
error?: undefined;
|
|
86
|
-
};
|
|
87
|
-
/**
|
|
88
|
-
* Enum field validator
|
|
89
|
-
*/
|
|
90
|
-
enum: (values: readonly (string | number)[], options?: {
|
|
91
|
-
optional?: boolean;
|
|
92
|
-
}) => (value: unknown) => {
|
|
93
|
-
valid: boolean;
|
|
94
|
-
error: string;
|
|
95
|
-
value?: undefined;
|
|
96
|
-
} | {
|
|
97
|
-
valid: boolean;
|
|
98
|
-
value: unknown;
|
|
99
|
-
error?: undefined;
|
|
100
|
-
};
|
|
101
|
-
/**
|
|
102
|
-
* Custom validator function
|
|
103
|
-
*/
|
|
104
|
-
custom: (validate: (value: unknown) => boolean, message?: string) => (value: unknown) => {
|
|
105
|
-
valid: boolean;
|
|
106
|
-
value: unknown;
|
|
107
|
-
error?: undefined;
|
|
108
|
-
} | {
|
|
109
|
-
valid: boolean;
|
|
110
|
-
error: string;
|
|
111
|
-
value?: undefined;
|
|
112
|
-
};
|
|
113
|
-
/**
|
|
114
|
-
* Environment variable validators
|
|
115
|
-
*/
|
|
116
|
-
env: {
|
|
117
|
-
/**
|
|
118
|
-
* Required environment variable validator
|
|
119
|
-
*/
|
|
120
|
-
required: (options?: {
|
|
121
|
-
optional?: boolean;
|
|
122
|
-
}) => (value: unknown) => {
|
|
123
|
-
valid: boolean;
|
|
124
|
-
error: string;
|
|
125
|
-
value?: undefined;
|
|
126
|
-
} | {
|
|
127
|
-
valid: boolean;
|
|
128
|
-
value: unknown;
|
|
129
|
-
error?: undefined;
|
|
130
|
-
};
|
|
131
|
-
/**
|
|
132
|
-
* Port number validator (1-65535)
|
|
133
|
-
*/
|
|
134
|
-
port: (options?: {
|
|
135
|
-
optional?: boolean;
|
|
136
|
-
}) => (value: unknown) => {
|
|
137
|
-
valid: boolean;
|
|
138
|
-
error: string;
|
|
139
|
-
value?: undefined;
|
|
140
|
-
} | {
|
|
141
|
-
valid: boolean;
|
|
142
|
-
value: number;
|
|
143
|
-
error?: undefined;
|
|
144
|
-
};
|
|
145
|
-
/**
|
|
146
|
-
* URL validator
|
|
147
|
-
*/
|
|
148
|
-
url: (options?: {
|
|
149
|
-
optional?: boolean;
|
|
150
|
-
}) => (value: unknown) => {
|
|
151
|
-
valid: boolean;
|
|
152
|
-
error: string;
|
|
153
|
-
value?: undefined;
|
|
154
|
-
} | {
|
|
155
|
-
valid: boolean;
|
|
156
|
-
value: string;
|
|
157
|
-
error?: undefined;
|
|
158
|
-
};
|
|
159
|
-
/**
|
|
160
|
-
* Database URL validator
|
|
161
|
-
*/
|
|
162
|
-
databaseUrl: (options?: {
|
|
163
|
-
optional?: boolean;
|
|
164
|
-
}) => (value: unknown) => {
|
|
165
|
-
valid: boolean;
|
|
166
|
-
error: string;
|
|
167
|
-
value?: undefined;
|
|
168
|
-
} | {
|
|
169
|
-
valid: boolean;
|
|
170
|
-
value: string;
|
|
171
|
-
error?: undefined;
|
|
172
|
-
};
|
|
173
|
-
/**
|
|
174
|
-
* Boolean validator
|
|
175
|
-
*/
|
|
176
|
-
boolean: (options?: {
|
|
177
|
-
optional?: boolean;
|
|
178
|
-
}) => (value: unknown) => {
|
|
179
|
-
valid: boolean;
|
|
180
|
-
error: string;
|
|
181
|
-
value?: undefined;
|
|
182
|
-
} | {
|
|
183
|
-
valid: boolean;
|
|
184
|
-
value: boolean;
|
|
185
|
-
error?: undefined;
|
|
186
|
-
};
|
|
187
|
-
/**
|
|
188
|
-
* Number validator
|
|
189
|
-
*/
|
|
190
|
-
number: (options?: {
|
|
191
|
-
min?: number;
|
|
192
|
-
max?: number;
|
|
193
|
-
optional?: boolean;
|
|
194
|
-
integer?: boolean;
|
|
195
|
-
}) => (value: unknown) => {
|
|
196
|
-
valid: boolean;
|
|
197
|
-
error: string;
|
|
198
|
-
value?: undefined;
|
|
199
|
-
} | {
|
|
200
|
-
valid: boolean;
|
|
201
|
-
value: number;
|
|
202
|
-
error?: undefined;
|
|
203
|
-
};
|
|
204
|
-
};
|
|
205
|
-
};
|
|
206
|
-
/**
|
|
207
|
-
* Built-in schema validator
|
|
208
|
-
* Simple, zero-dependency schema validation
|
|
209
|
-
*/
|
|
210
|
-
export declare class Schema {
|
|
211
|
-
private definition;
|
|
212
|
-
constructor(definition: SchemaDefinition);
|
|
213
|
-
/**
|
|
214
|
-
* Create a new schema from field definitions
|
|
215
|
-
*/
|
|
216
|
-
static object<T extends SchemaDefinition>(definition: T): Schema;
|
|
217
|
-
/**
|
|
218
|
-
* Validate data synchronously
|
|
219
|
-
*/
|
|
220
|
-
validateSync(data: unknown): StandardResult<Record<string, unknown>>;
|
|
221
|
-
/**
|
|
222
|
-
* Validate data asynchronously
|
|
223
|
-
* Currently same as sync, but allows for async validators in future
|
|
224
|
-
*/
|
|
225
|
-
validate(data: unknown): Promise<StandardResult<Record<string, unknown>>>;
|
|
226
|
-
/**
|
|
227
|
-
* Implement Standard Schema interface for compatibility with @buenojs/bueno validators
|
|
228
|
-
*/
|
|
229
|
-
get ["~standard"](): {
|
|
230
|
-
validate: (data: unknown) => StandardResult<Record<string, unknown>>;
|
|
231
|
-
version: number;
|
|
232
|
-
};
|
|
233
|
-
}
|
|
234
|
-
/**
|
|
235
|
-
* Create a schema object
|
|
236
|
-
* Alias for Schema.object() for convenience
|
|
237
|
-
*/
|
|
238
|
-
export declare function schema<T extends SchemaDefinition>(definition: T): Schema;
|
|
239
|
-
/**
|
|
240
|
-
* Standard environment variable schema for Bueno Framework
|
|
241
|
-
*/
|
|
242
|
-
export declare const envSchema: Schema;
|
|
243
|
-
//# sourceMappingURL=schemas.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/validation/schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,252 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WebSocket Helpers
|
|
3
|
-
*
|
|
4
|
-
* Utilities for WebSocket connections, pub/sub patterns,
|
|
5
|
-
* and real-time communication in Bueno applications.
|
|
6
|
-
*/
|
|
7
|
-
export interface WebSocketData {
|
|
8
|
-
id: string;
|
|
9
|
-
userId?: string;
|
|
10
|
-
[key: string]: unknown;
|
|
11
|
-
}
|
|
12
|
-
export interface WebSocketMessage {
|
|
13
|
-
type: string;
|
|
14
|
-
payload: unknown;
|
|
15
|
-
timestamp: number;
|
|
16
|
-
}
|
|
17
|
-
export interface WebSocketOptions {
|
|
18
|
-
idleTimeout?: number;
|
|
19
|
-
maxPayloadLength?: number;
|
|
20
|
-
perMessageDeflate?: boolean;
|
|
21
|
-
}
|
|
22
|
-
export type WebSocketHandler = (ws: Bun.ServerWebSocket<WebSocketData>, message: WebSocketMessage) => void | Promise<void>;
|
|
23
|
-
export type OpenHandler = (ws: Bun.ServerWebSocket<WebSocketData>) => void | Promise<void>;
|
|
24
|
-
export type CloseHandler = (ws: Bun.ServerWebSocket<WebSocketData>, code: number, reason: string) => void | Promise<void>;
|
|
25
|
-
export type ErrorHandler = (ws: Bun.ServerWebSocket<WebSocketData>, error: Error) => void | Promise<void>;
|
|
26
|
-
export interface WebSocketServerOptions extends WebSocketOptions {
|
|
27
|
-
onMessage?: WebSocketHandler;
|
|
28
|
-
onOpen?: OpenHandler;
|
|
29
|
-
onClose?: CloseHandler;
|
|
30
|
-
onError?: ErrorHandler;
|
|
31
|
-
}
|
|
32
|
-
export declare class WebSocketServer {
|
|
33
|
-
private options;
|
|
34
|
-
private connections;
|
|
35
|
-
private rooms;
|
|
36
|
-
private messageHandlers;
|
|
37
|
-
constructor(options?: WebSocketServerOptions);
|
|
38
|
-
/**
|
|
39
|
-
* Get Bun WebSocket configuration
|
|
40
|
-
*/
|
|
41
|
-
getWebSocketConfig(): Bun.WebSocketHandler<WebSocketData>;
|
|
42
|
-
/**
|
|
43
|
-
* Register a message type handler
|
|
44
|
-
*/
|
|
45
|
-
on(type: string, handler: WebSocketHandler): this;
|
|
46
|
-
/**
|
|
47
|
-
* Broadcast to all connections
|
|
48
|
-
*/
|
|
49
|
-
broadcast(type: string, payload: unknown): void;
|
|
50
|
-
/**
|
|
51
|
-
* Send to specific connection
|
|
52
|
-
*/
|
|
53
|
-
send(connectionId: string, type: string, payload: unknown): boolean;
|
|
54
|
-
/**
|
|
55
|
-
* Broadcast to a room
|
|
56
|
-
*/
|
|
57
|
-
broadcastToRoom(room: string, type: string, payload: unknown): void;
|
|
58
|
-
/**
|
|
59
|
-
* Join a room
|
|
60
|
-
*/
|
|
61
|
-
joinRoom(connectionId: string, room: string): void;
|
|
62
|
-
/**
|
|
63
|
-
* Leave a room
|
|
64
|
-
*/
|
|
65
|
-
leaveRoom(connectionId: string, room: string): void;
|
|
66
|
-
/**
|
|
67
|
-
* Get room members
|
|
68
|
-
*/
|
|
69
|
-
getRoomMembers(room: string): string[];
|
|
70
|
-
/**
|
|
71
|
-
* Get all connection IDs
|
|
72
|
-
*/
|
|
73
|
-
getConnectionIds(): string[];
|
|
74
|
-
/**
|
|
75
|
-
* Get connection count
|
|
76
|
-
*/
|
|
77
|
-
get connectionCount(): number;
|
|
78
|
-
/**
|
|
79
|
-
* Check if connection exists
|
|
80
|
-
*/
|
|
81
|
-
hasConnection(connectionId: string): boolean;
|
|
82
|
-
/**
|
|
83
|
-
* Close a connection
|
|
84
|
-
*/
|
|
85
|
-
closeConnection(connectionId: string, code?: number, reason?: string): boolean;
|
|
86
|
-
/**
|
|
87
|
-
* Close all connections
|
|
88
|
-
*/
|
|
89
|
-
closeAll(code?: number, reason?: string): void;
|
|
90
|
-
}
|
|
91
|
-
export interface WebSocketClientOptions {
|
|
92
|
-
url: string;
|
|
93
|
-
protocols?: string | string[];
|
|
94
|
-
reconnect?: boolean;
|
|
95
|
-
reconnectInterval?: number;
|
|
96
|
-
maxReconnectAttempts?: number;
|
|
97
|
-
onOpen?: () => void;
|
|
98
|
-
onClose?: (event: CloseEvent) => void;
|
|
99
|
-
onMessage?: (message: WebSocketMessage) => void;
|
|
100
|
-
onError?: (event: Event) => void;
|
|
101
|
-
}
|
|
102
|
-
export declare class WebSocketClient {
|
|
103
|
-
private ws;
|
|
104
|
-
private options;
|
|
105
|
-
private reconnectAttempts;
|
|
106
|
-
private shouldReconnect;
|
|
107
|
-
private messageQueue;
|
|
108
|
-
constructor(options: WebSocketClientOptions);
|
|
109
|
-
/**
|
|
110
|
-
* Connect to WebSocket server
|
|
111
|
-
*/
|
|
112
|
-
connect(): Promise<void>;
|
|
113
|
-
/**
|
|
114
|
-
* Attempt to reconnect
|
|
115
|
-
*/
|
|
116
|
-
private attemptReconnect;
|
|
117
|
-
/**
|
|
118
|
-
* Send a message
|
|
119
|
-
*/
|
|
120
|
-
send(type: string, payload: unknown): void;
|
|
121
|
-
/**
|
|
122
|
-
* Send raw data
|
|
123
|
-
*/
|
|
124
|
-
sendRaw(data: string | ArrayBuffer | Blob): Promise<void>;
|
|
125
|
-
/**
|
|
126
|
-
* Close the connection
|
|
127
|
-
*/
|
|
128
|
-
close(code?: number, reason?: string): void;
|
|
129
|
-
/**
|
|
130
|
-
* Check if connected
|
|
131
|
-
*/
|
|
132
|
-
get isConnected(): boolean;
|
|
133
|
-
/**
|
|
134
|
-
* Get ready state
|
|
135
|
-
*/
|
|
136
|
-
get readyState(): number;
|
|
137
|
-
}
|
|
138
|
-
export interface PubSubConfig {
|
|
139
|
-
driver?: "redis" | "memory";
|
|
140
|
-
url?: string;
|
|
141
|
-
keyPrefix?: string;
|
|
142
|
-
reconnect?: boolean;
|
|
143
|
-
reconnectInterval?: number;
|
|
144
|
-
maxReconnectAttempts?: number;
|
|
145
|
-
}
|
|
146
|
-
export interface PubSubMessage {
|
|
147
|
-
channel: string;
|
|
148
|
-
pattern?: string;
|
|
149
|
-
data: unknown;
|
|
150
|
-
timestamp: number;
|
|
151
|
-
}
|
|
152
|
-
export type PubSubCallback = (message: PubSubMessage) => void | Promise<void>;
|
|
153
|
-
export declare class PubSub {
|
|
154
|
-
private driver;
|
|
155
|
-
private driverType;
|
|
156
|
-
private _isConnected;
|
|
157
|
-
constructor(config?: PubSubConfig);
|
|
158
|
-
/**
|
|
159
|
-
* Connect to the pub/sub backend (Redis only)
|
|
160
|
-
*/
|
|
161
|
-
connect(): Promise<void>;
|
|
162
|
-
/**
|
|
163
|
-
* Disconnect from the pub/sub backend
|
|
164
|
-
*/
|
|
165
|
-
disconnect(): Promise<void>;
|
|
166
|
-
/**
|
|
167
|
-
* Check if connected
|
|
168
|
-
*/
|
|
169
|
-
get isConnected(): boolean;
|
|
170
|
-
/**
|
|
171
|
-
* Get the driver type
|
|
172
|
-
*/
|
|
173
|
-
getDriverType(): "redis" | "memory";
|
|
174
|
-
/**
|
|
175
|
-
* Publish a message to a channel
|
|
176
|
-
* Returns the number of subscribers that received the message
|
|
177
|
-
*/
|
|
178
|
-
publish(channel: string, data: unknown): Promise<number>;
|
|
179
|
-
/**
|
|
180
|
-
* Subscribe to a channel
|
|
181
|
-
* Returns an unsubscribe function
|
|
182
|
-
*/
|
|
183
|
-
subscribe(channel: string, callback: PubSubCallback): Promise<() => void>;
|
|
184
|
-
/**
|
|
185
|
-
* Subscribe to channels matching a pattern
|
|
186
|
-
* Supports * (any characters) and ? (single character)
|
|
187
|
-
* Returns an unsubscribe function
|
|
188
|
-
*/
|
|
189
|
-
psubscribe(pattern: string, callback: PubSubCallback): Promise<() => void>;
|
|
190
|
-
/**
|
|
191
|
-
* Unsubscribe all callbacks from a channel
|
|
192
|
-
*/
|
|
193
|
-
unsubscribe(channel: string): Promise<void>;
|
|
194
|
-
/**
|
|
195
|
-
* Unsubscribe all callbacks from a pattern
|
|
196
|
-
*/
|
|
197
|
-
punsubscribe(pattern: string): Promise<void>;
|
|
198
|
-
/**
|
|
199
|
-
* Get subscriber count for a specific channel
|
|
200
|
-
*/
|
|
201
|
-
getChannelSubscribers(channel: string): number;
|
|
202
|
-
/**
|
|
203
|
-
* Get subscriber count for a specific pattern
|
|
204
|
-
*/
|
|
205
|
-
getPatternSubscribers(pattern: string): number;
|
|
206
|
-
/**
|
|
207
|
-
* Get total subscriber count across all channels and patterns
|
|
208
|
-
*/
|
|
209
|
-
getTotalSubscribers(): number;
|
|
210
|
-
/**
|
|
211
|
-
* Clear all subscriptions
|
|
212
|
-
*/
|
|
213
|
-
clear(): Promise<void>;
|
|
214
|
-
/**
|
|
215
|
-
* Destroy the pub/sub instance and release resources
|
|
216
|
-
*/
|
|
217
|
-
destroy(): void;
|
|
218
|
-
}
|
|
219
|
-
/**
|
|
220
|
-
* Create a WebSocket server
|
|
221
|
-
*/
|
|
222
|
-
export declare function createWebSocketServer(options?: WebSocketServerOptions): WebSocketServer;
|
|
223
|
-
/**
|
|
224
|
-
* Create a WebSocket client
|
|
225
|
-
*/
|
|
226
|
-
export declare function createWebSocketClient(options: WebSocketClientOptions): WebSocketClient;
|
|
227
|
-
/**
|
|
228
|
-
* Create a pub/sub instance
|
|
229
|
-
* @param config Configuration options including driver type and Redis URL
|
|
230
|
-
*/
|
|
231
|
-
export declare function createPubSub(config?: PubSubConfig): PubSub;
|
|
232
|
-
/**
|
|
233
|
-
* Create a Redis pub/sub instance (convenience function)
|
|
234
|
-
*/
|
|
235
|
-
export declare function createRedisPubSub(url: string, options?: Omit<PubSubConfig, "driver" | "url">): PubSub;
|
|
236
|
-
/**
|
|
237
|
-
* Create an in-memory pub/sub instance (convenience function)
|
|
238
|
-
*/
|
|
239
|
-
export declare function createMemoryPubSub(): PubSub;
|
|
240
|
-
/**
|
|
241
|
-
* Check if request is a WebSocket upgrade request
|
|
242
|
-
*/
|
|
243
|
-
export declare function isWebSocketRequest(request: Request): boolean;
|
|
244
|
-
/**
|
|
245
|
-
* Generate WebSocket connection ID
|
|
246
|
-
*/
|
|
247
|
-
export declare function generateConnectionId(): string;
|
|
248
|
-
/**
|
|
249
|
-
* Create WebSocket data for new connection
|
|
250
|
-
*/
|
|
251
|
-
export declare function createWebSocketData(data?: Partial<WebSocketData>): WebSocketData;
|
|
252
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/websocket/index.ts"],"names":[],"mappings":"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"}
|