@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,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenAPI Metadata Storage
|
|
3
|
+
*
|
|
4
|
+
* Isolated metadata storage using WeakMap, following the same pattern as src/modules/metadata.ts
|
|
5
|
+
* This avoids circular dependencies and keeps metadata separate from the core module system.
|
|
6
|
+
*/
|
|
7
|
+
import type { Constructor } from './types';
|
|
8
|
+
/**
|
|
9
|
+
* Set metadata on a class constructor
|
|
10
|
+
*/
|
|
11
|
+
export declare function setApiMetadata(target: Constructor, key: string, value: unknown): void;
|
|
12
|
+
/**
|
|
13
|
+
* Get metadata from a class constructor
|
|
14
|
+
*/
|
|
15
|
+
export declare function getApiMetadata<T>(target: Constructor, key: string): T | undefined;
|
|
16
|
+
/**
|
|
17
|
+
* Set metadata on a method prototype
|
|
18
|
+
*/
|
|
19
|
+
export declare function setApiMethodMetadata(target: object, key: string, value: unknown): void;
|
|
20
|
+
/**
|
|
21
|
+
* Get metadata from a method prototype
|
|
22
|
+
*/
|
|
23
|
+
export declare function getApiMethodMetadata<T>(target: object, key: string): T | undefined;
|
|
24
|
+
/**
|
|
25
|
+
* Set metadata on a property of a class prototype
|
|
26
|
+
*/
|
|
27
|
+
export declare function setApiPropertyMetadata(target: object, propertyKey: string | symbol, value: unknown): void;
|
|
28
|
+
/**
|
|
29
|
+
* Get metadata from a property of a class prototype
|
|
30
|
+
*/
|
|
31
|
+
export declare function getApiPropertyMetadata<T>(target: object, propertyKey: string | symbol): T | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* Get all property metadata keys from a class prototype
|
|
34
|
+
*/
|
|
35
|
+
export declare function getApiPropertyKeys(target: object): (string | symbol)[];
|
|
36
|
+
//# sourceMappingURL=metadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/openapi/metadata.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAS3C;;GAEG;AACH,wBAAgB,cAAc,CAC7B,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,GACZ,IAAI,CAKN;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAC/B,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,MAAM,GACT,CAAC,GAAG,SAAS,CAEf;AASD;;GAEG;AACH,wBAAgB,oBAAoB,CACnC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,GACZ,IAAI,CAKN;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EACrC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,GACT,CAAC,GAAG,SAAS,CAEf;AASD;;GAEG;AACH,wBAAgB,sBAAsB,CACrC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,MAAM,EAC5B,KAAK,EAAE,OAAO,GACZ,IAAI,CAMN;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EACvC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,MAAM,GAC1B,CAAC,GAAG,SAAS,CAGf;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAItE"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Route Scanner
|
|
3
|
+
*
|
|
4
|
+
* Scans controllers and extracts OpenAPI operation metadata from decorators.
|
|
5
|
+
* Combines HTTP method decorators, parameter documentation, and responses
|
|
6
|
+
* into OpenAPI operation objects.
|
|
7
|
+
*/
|
|
8
|
+
import type { Constructor, OpenAPIPaths } from './types';
|
|
9
|
+
import { SchemaGenerator } from './schema-generator';
|
|
10
|
+
/**
|
|
11
|
+
* RouteScanner - Scans controllers and extracts OpenAPI operations
|
|
12
|
+
*/
|
|
13
|
+
export declare class RouteScanner {
|
|
14
|
+
private schemaGenerator;
|
|
15
|
+
constructor(schemaGenerator: SchemaGenerator);
|
|
16
|
+
/**
|
|
17
|
+
* Scan all controllers and generate OpenAPI paths
|
|
18
|
+
*/
|
|
19
|
+
scanControllers(controllers: Constructor[]): OpenAPIPaths;
|
|
20
|
+
/**
|
|
21
|
+
* Generate an OpenAPI operation for a single route
|
|
22
|
+
*/
|
|
23
|
+
private generateOperation;
|
|
24
|
+
/**
|
|
25
|
+
* Convert a route pattern from :param format to {param} format (OpenAPI style)
|
|
26
|
+
* Handles optional params (:param?) and regex params (:param<regex>)
|
|
27
|
+
*/
|
|
28
|
+
private convertPathToOpenAPI;
|
|
29
|
+
/**
|
|
30
|
+
* Get the schema generator instance
|
|
31
|
+
*/
|
|
32
|
+
getSchemaGenerator(): SchemaGenerator;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=route-scanner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-scanner.d.ts","sourceRoot":"","sources":["../../src/openapi/route-scanner.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACX,WAAW,EAGX,YAAY,EAGZ,MAAM,SAAS,CAAC;AAIjB,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAQrD;;GAEG;AACH,qBAAa,YAAY;IACZ,OAAO,CAAC,eAAe;gBAAf,eAAe,EAAE,eAAe;IAEpD;;OAEG;IACH,eAAe,CAAC,WAAW,EAAE,WAAW,EAAE,GAAG,YAAY;IAyDzD;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAkLzB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAI5B;;OAEG;IACH,kBAAkB,IAAI,eAAe;CAGrC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schema Generator
|
|
3
|
+
*
|
|
4
|
+
* Converts TypeScript class types and @ApiProperty decorators into OpenAPI schemas.
|
|
5
|
+
*/
|
|
6
|
+
import type { Constructor, OpenAPISchema } from './types';
|
|
7
|
+
/**
|
|
8
|
+
* SchemaGenerator - Converts TypeScript types to OpenAPI schemas
|
|
9
|
+
*/
|
|
10
|
+
export declare class SchemaGenerator {
|
|
11
|
+
private schemas;
|
|
12
|
+
private typeNames;
|
|
13
|
+
private typeCounter;
|
|
14
|
+
/**
|
|
15
|
+
* Generate an OpenAPI schema from a TypeScript type
|
|
16
|
+
* Supports classes, interfaces (via decorators), primitives, arrays
|
|
17
|
+
*/
|
|
18
|
+
generateSchema(type: Constructor | string | Function): OpenAPISchema;
|
|
19
|
+
/**
|
|
20
|
+
* Generate schema for an object/class type
|
|
21
|
+
* Reads @ApiProperty metadata from class properties
|
|
22
|
+
*/
|
|
23
|
+
private generateObjectSchema;
|
|
24
|
+
/**
|
|
25
|
+
* Generate schema from an @ApiProperty options object
|
|
26
|
+
*/
|
|
27
|
+
private generatePropertySchema;
|
|
28
|
+
/**
|
|
29
|
+
* Generate schema for a primitive TypeScript type
|
|
30
|
+
*/
|
|
31
|
+
private generatePrimitiveSchema;
|
|
32
|
+
/**
|
|
33
|
+
* Map string type names to OpenAPI schema
|
|
34
|
+
*/
|
|
35
|
+
private mapStringType;
|
|
36
|
+
/**
|
|
37
|
+
* Check if type is a built-in TypeScript type
|
|
38
|
+
*/
|
|
39
|
+
private isBuiltInType;
|
|
40
|
+
/**
|
|
41
|
+
* Get the name for a type (for referencing in components.schemas)
|
|
42
|
+
*/
|
|
43
|
+
private getTypeName;
|
|
44
|
+
/**
|
|
45
|
+
* Get all generated schemas (for components.schemas)
|
|
46
|
+
*/
|
|
47
|
+
getSchemas(): Record<string, OpenAPISchema>;
|
|
48
|
+
/**
|
|
49
|
+
* Clear cached schemas
|
|
50
|
+
*/
|
|
51
|
+
clear(): void;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=schema-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-generator.d.ts","sourceRoot":"","sources":["../../src/openapi/schema-generator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAsB,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAG9E;;GAEG;AACH,qBAAa,eAAe;IAC3B,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,WAAW,CAAK;IAExB;;;OAGG;IACH,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,aAAa;IAiCpE;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAsC5B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAkD9B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAe/B;;OAEG;IACH,OAAO,CAAC,aAAa;IA+BrB;;OAEG;IACH,OAAO,CAAC,aAAa;IAWrB;;OAEG;IACH,OAAO,CAAC,WAAW;IAkBnB;;OAEG;IACH,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAQ3C;;OAEG;IACH,KAAK,IAAI,IAAI;CAKb"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Swagger Module
|
|
3
|
+
*
|
|
4
|
+
* Provides utilities to set up Swagger UI and integrate OpenAPI document generation
|
|
5
|
+
* with a Bueno Application.
|
|
6
|
+
*/
|
|
7
|
+
import type { Application } from '../modules';
|
|
8
|
+
import type { Constructor, OpenAPIDocument, SwaggerOptions } from './types';
|
|
9
|
+
/**
|
|
10
|
+
* SwaggerModule - Static utilities for OpenAPI integration
|
|
11
|
+
*/
|
|
12
|
+
export declare class SwaggerModule {
|
|
13
|
+
/**
|
|
14
|
+
* Create an OpenAPI document from a Bueno Application and controllers
|
|
15
|
+
*
|
|
16
|
+
* @param app - The Application instance
|
|
17
|
+
* @param config - Base OpenAPI document configuration
|
|
18
|
+
* @param controllers - Array of controller classes to scan
|
|
19
|
+
* @returns Complete OpenAPI document with paths and schemas
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* const document = SwaggerModule.createDocument(app, {
|
|
24
|
+
* openapi: '3.1.0',
|
|
25
|
+
* info: { title: 'My API', version: '1.0.0' },
|
|
26
|
+
* paths: {},
|
|
27
|
+
* }, [UserController, PostController]);
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
static createDocument(app: Application, config: OpenAPIDocument, controllers: Constructor[]): OpenAPIDocument;
|
|
31
|
+
/**
|
|
32
|
+
* Setup Swagger UI and JSON endpoint
|
|
33
|
+
*
|
|
34
|
+
* Registers two routes:
|
|
35
|
+
* - GET {path} - Swagger UI HTML page
|
|
36
|
+
* - GET {path}-json - OpenAPI JSON document
|
|
37
|
+
*
|
|
38
|
+
* @param path - Base path for Swagger UI (e.g., '/api-docs')
|
|
39
|
+
* @param app - The Application instance
|
|
40
|
+
* @param document - OpenAPI document to serve
|
|
41
|
+
* @param options - Swagger UI configuration options
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```typescript
|
|
45
|
+
* const document = SwaggerModule.createDocument(app, config, controllers);
|
|
46
|
+
* SwaggerModule.setup('/api-docs', app, document, {
|
|
47
|
+
* title: 'My API Documentation',
|
|
48
|
+
* });
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
static setup(path: string, app: Application, document: OpenAPIDocument, options?: SwaggerOptions): void;
|
|
52
|
+
/**
|
|
53
|
+
* Generate Swagger UI HTML
|
|
54
|
+
*/
|
|
55
|
+
private static generateSwaggerUI;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=swagger-module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swagger-module.d.ts","sourceRoot":"","sources":["../../src/openapi/swagger-module.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAK5E;;GAEG;AACH,qBAAa,aAAa;IACzB;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,cAAc,CACpB,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,eAAe,EACvB,WAAW,EAAE,WAAW,EAAE,GACxB,eAAe;IAyBlB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,KAAK,CACX,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,eAAe,EACzB,OAAO,CAAC,EAAE,cAAc,GACtB,IAAI;IAaP;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;CA6DhC"}
|
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenAPI 3.1 Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* Comprehensive type definitions for generating OpenAPI 3.1 specifications.
|
|
5
|
+
*/
|
|
6
|
+
export type Constructor = new (...args: unknown[]) => unknown;
|
|
7
|
+
/**
|
|
8
|
+
* OpenAPI Document - Root object containing the entire API specification
|
|
9
|
+
*/
|
|
10
|
+
export interface OpenAPIDocument {
|
|
11
|
+
openapi: '3.1.0';
|
|
12
|
+
info: OpenAPIInfo;
|
|
13
|
+
servers?: OpenAPIServer[];
|
|
14
|
+
paths: OpenAPIPaths;
|
|
15
|
+
components?: OpenAPIComponents;
|
|
16
|
+
security?: OpenAPISecurity[];
|
|
17
|
+
tags?: OpenAPITag[];
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* OpenAPI Info - Metadata about the API
|
|
21
|
+
*/
|
|
22
|
+
export interface OpenAPIInfo {
|
|
23
|
+
title: string;
|
|
24
|
+
version: string;
|
|
25
|
+
description?: string;
|
|
26
|
+
contact?: OpenAPIContact;
|
|
27
|
+
license?: OpenAPILicense;
|
|
28
|
+
termsOfService?: string;
|
|
29
|
+
}
|
|
30
|
+
export interface OpenAPIContact {
|
|
31
|
+
name?: string;
|
|
32
|
+
url?: string;
|
|
33
|
+
email?: string;
|
|
34
|
+
}
|
|
35
|
+
export interface OpenAPILicense {
|
|
36
|
+
name: string;
|
|
37
|
+
url?: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* OpenAPI Server - Server information
|
|
41
|
+
*/
|
|
42
|
+
export interface OpenAPIServer {
|
|
43
|
+
url: string;
|
|
44
|
+
description?: string;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* OpenAPI Paths - Map of path patterns to path items
|
|
48
|
+
*/
|
|
49
|
+
export type OpenAPIPaths = Record<string, OpenAPIPath>;
|
|
50
|
+
/**
|
|
51
|
+
* OpenAPI Path Item - HTTP operations for a path
|
|
52
|
+
*/
|
|
53
|
+
export interface OpenAPIPath {
|
|
54
|
+
summary?: string;
|
|
55
|
+
description?: string;
|
|
56
|
+
get?: OpenAPIOperation;
|
|
57
|
+
post?: OpenAPIOperation;
|
|
58
|
+
put?: OpenAPIOperation;
|
|
59
|
+
patch?: OpenAPIOperation;
|
|
60
|
+
delete?: OpenAPIOperation;
|
|
61
|
+
head?: OpenAPIOperation;
|
|
62
|
+
options?: OpenAPIOperation;
|
|
63
|
+
parameters?: OpenAPIParameter[];
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* OpenAPI Operation - Single HTTP operation
|
|
67
|
+
*/
|
|
68
|
+
export interface OpenAPIOperation {
|
|
69
|
+
operationId?: string;
|
|
70
|
+
summary?: string;
|
|
71
|
+
description?: string;
|
|
72
|
+
tags?: string[];
|
|
73
|
+
externalDocs?: OpenAPIExternalDocs;
|
|
74
|
+
parameters?: OpenAPIParameter[];
|
|
75
|
+
requestBody?: OpenAPIRequestBody;
|
|
76
|
+
responses: OpenAPIResponses;
|
|
77
|
+
callbacks?: Record<string, unknown>;
|
|
78
|
+
deprecated?: boolean;
|
|
79
|
+
security?: OpenAPISecurity[];
|
|
80
|
+
servers?: OpenAPIServer[];
|
|
81
|
+
}
|
|
82
|
+
export interface OpenAPIExternalDocs {
|
|
83
|
+
url: string;
|
|
84
|
+
description?: string;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* OpenAPI Parameter - Request parameter (path, query, header, cookie)
|
|
88
|
+
*/
|
|
89
|
+
export interface OpenAPIParameter {
|
|
90
|
+
name: string;
|
|
91
|
+
in: 'path' | 'query' | 'header' | 'cookie';
|
|
92
|
+
description?: string;
|
|
93
|
+
required?: boolean;
|
|
94
|
+
deprecated?: boolean;
|
|
95
|
+
allowEmptyValue?: boolean;
|
|
96
|
+
style?: string;
|
|
97
|
+
explode?: boolean;
|
|
98
|
+
allowReserved?: boolean;
|
|
99
|
+
schema?: OpenAPISchema;
|
|
100
|
+
example?: unknown;
|
|
101
|
+
examples?: Record<string, OpenAPIExample>;
|
|
102
|
+
content?: Record<string, OpenAPIMediaType>;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* OpenAPI Request Body
|
|
106
|
+
*/
|
|
107
|
+
export interface OpenAPIRequestBody {
|
|
108
|
+
description?: string;
|
|
109
|
+
content: Record<string, OpenAPIMediaType>;
|
|
110
|
+
required?: boolean;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* OpenAPI Media Type
|
|
114
|
+
*/
|
|
115
|
+
export interface OpenAPIMediaType {
|
|
116
|
+
schema?: OpenAPISchema;
|
|
117
|
+
example?: unknown;
|
|
118
|
+
examples?: Record<string, OpenAPIExample>;
|
|
119
|
+
encoding?: Record<string, unknown>;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* OpenAPI Example
|
|
123
|
+
*/
|
|
124
|
+
export interface OpenAPIExample {
|
|
125
|
+
summary?: string;
|
|
126
|
+
description?: string;
|
|
127
|
+
value?: unknown;
|
|
128
|
+
externalValue?: string;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* OpenAPI Response
|
|
132
|
+
*/
|
|
133
|
+
export interface OpenAPIResponse {
|
|
134
|
+
description: string;
|
|
135
|
+
headers?: Record<string, OpenAPIHeader>;
|
|
136
|
+
content?: Record<string, OpenAPIMediaType>;
|
|
137
|
+
links?: Record<string, unknown>;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* OpenAPI Header
|
|
141
|
+
*/
|
|
142
|
+
export interface OpenAPIHeader {
|
|
143
|
+
description?: string;
|
|
144
|
+
required?: boolean;
|
|
145
|
+
deprecated?: boolean;
|
|
146
|
+
schema?: OpenAPISchema;
|
|
147
|
+
example?: unknown;
|
|
148
|
+
examples?: Record<string, OpenAPIExample>;
|
|
149
|
+
content?: Record<string, OpenAPIMediaType>;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* OpenAPI Responses - Map of status codes to responses
|
|
153
|
+
*/
|
|
154
|
+
export type OpenAPIResponses = Record<string | 'default', OpenAPIResponse>;
|
|
155
|
+
/**
|
|
156
|
+
* OpenAPI Schema - JSON Schema with OpenAPI extensions
|
|
157
|
+
*/
|
|
158
|
+
export interface OpenAPISchema {
|
|
159
|
+
type?: 'string' | 'number' | 'integer' | 'boolean' | 'array' | 'object' | 'null';
|
|
160
|
+
format?: string;
|
|
161
|
+
title?: string;
|
|
162
|
+
description?: string;
|
|
163
|
+
default?: unknown;
|
|
164
|
+
example?: unknown;
|
|
165
|
+
examples?: unknown[];
|
|
166
|
+
properties?: Record<string, OpenAPISchema>;
|
|
167
|
+
required?: string[];
|
|
168
|
+
additionalProperties?: boolean | OpenAPISchema;
|
|
169
|
+
maxProperties?: number;
|
|
170
|
+
minProperties?: number;
|
|
171
|
+
items?: OpenAPISchema;
|
|
172
|
+
maxItems?: number;
|
|
173
|
+
minItems?: number;
|
|
174
|
+
uniqueItems?: boolean;
|
|
175
|
+
maxLength?: number;
|
|
176
|
+
minLength?: number;
|
|
177
|
+
pattern?: string;
|
|
178
|
+
maximum?: number;
|
|
179
|
+
minimum?: number;
|
|
180
|
+
exclusiveMaximum?: boolean;
|
|
181
|
+
exclusiveMinimum?: boolean;
|
|
182
|
+
multipleOf?: number;
|
|
183
|
+
enum?: unknown[];
|
|
184
|
+
allOf?: OpenAPISchema[];
|
|
185
|
+
oneOf?: OpenAPISchema[];
|
|
186
|
+
anyOf?: OpenAPISchema[];
|
|
187
|
+
not?: OpenAPISchema;
|
|
188
|
+
$ref?: string;
|
|
189
|
+
nullable?: boolean;
|
|
190
|
+
discriminator?: OpenAPIDiscriminator;
|
|
191
|
+
readOnly?: boolean;
|
|
192
|
+
writeOnly?: boolean;
|
|
193
|
+
xml?: OpenAPIXML;
|
|
194
|
+
externalDocs?: OpenAPIExternalDocs;
|
|
195
|
+
deprecated?: boolean;
|
|
196
|
+
}
|
|
197
|
+
export interface OpenAPIDiscriminator {
|
|
198
|
+
propertyName: string;
|
|
199
|
+
mapping?: Record<string, string>;
|
|
200
|
+
}
|
|
201
|
+
export interface OpenAPIXML {
|
|
202
|
+
name?: string;
|
|
203
|
+
namespace?: string;
|
|
204
|
+
prefix?: string;
|
|
205
|
+
attribute?: boolean;
|
|
206
|
+
wrapped?: boolean;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* OpenAPI Components - Reusable schema definitions
|
|
210
|
+
*/
|
|
211
|
+
export interface OpenAPIComponents {
|
|
212
|
+
schemas?: Record<string, OpenAPISchema>;
|
|
213
|
+
responses?: Record<string, OpenAPIResponse>;
|
|
214
|
+
parameters?: Record<string, OpenAPIParameter>;
|
|
215
|
+
examples?: Record<string, OpenAPIExample>;
|
|
216
|
+
requestBodies?: Record<string, OpenAPIRequestBody>;
|
|
217
|
+
headers?: Record<string, OpenAPIHeader>;
|
|
218
|
+
securitySchemes?: Record<string, OpenAPISecurityScheme>;
|
|
219
|
+
links?: Record<string, unknown>;
|
|
220
|
+
callbacks?: Record<string, unknown>;
|
|
221
|
+
pathItems?: Record<string, OpenAPIPath>;
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* OpenAPI Security Scheme
|
|
225
|
+
*/
|
|
226
|
+
export interface OpenAPISecurityScheme {
|
|
227
|
+
type: 'apiKey' | 'http' | 'oauth2' | 'openIdConnect';
|
|
228
|
+
description?: string;
|
|
229
|
+
name?: string;
|
|
230
|
+
in?: 'query' | 'header' | 'cookie';
|
|
231
|
+
scheme?: string;
|
|
232
|
+
bearerFormat?: string;
|
|
233
|
+
flows?: OpenAPIOAuthFlows;
|
|
234
|
+
openIdConnectUrl?: string;
|
|
235
|
+
}
|
|
236
|
+
export interface OpenAPIOAuthFlows {
|
|
237
|
+
implicit?: OpenAPIOAuthFlow;
|
|
238
|
+
password?: OpenAPIOAuthFlow;
|
|
239
|
+
clientCredentials?: OpenAPIOAuthFlow;
|
|
240
|
+
authorizationCode?: OpenAPIOAuthFlow;
|
|
241
|
+
}
|
|
242
|
+
export interface OpenAPIOAuthFlow {
|
|
243
|
+
authorizationUrl: string;
|
|
244
|
+
tokenUrl?: string;
|
|
245
|
+
refreshUrl?: string;
|
|
246
|
+
scopes: Record<string, string>;
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* OpenAPI Security - Security requirement object
|
|
250
|
+
*/
|
|
251
|
+
export type OpenAPISecurity = Record<string, string[]>;
|
|
252
|
+
/**
|
|
253
|
+
* OpenAPI Tag - Tag information
|
|
254
|
+
*/
|
|
255
|
+
export interface OpenAPITag {
|
|
256
|
+
name: string;
|
|
257
|
+
description?: string;
|
|
258
|
+
externalDocs?: OpenAPIExternalDocs;
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Options for Swagger UI
|
|
262
|
+
*/
|
|
263
|
+
export interface SwaggerOptions {
|
|
264
|
+
title?: string;
|
|
265
|
+
customCss?: string;
|
|
266
|
+
customSiteTitle?: string;
|
|
267
|
+
customfavIcon?: string;
|
|
268
|
+
swaggerUrl?: string;
|
|
269
|
+
swaggerVersion?: string;
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Decorator Options - Used when decorating controllers/methods
|
|
273
|
+
*/
|
|
274
|
+
export interface ApiOperationOptions {
|
|
275
|
+
summary?: string;
|
|
276
|
+
description?: string;
|
|
277
|
+
operationId?: string;
|
|
278
|
+
deprecated?: boolean;
|
|
279
|
+
}
|
|
280
|
+
export interface ApiResponseOptions {
|
|
281
|
+
status: number | 'default';
|
|
282
|
+
description: string;
|
|
283
|
+
type?: Constructor | Constructor[];
|
|
284
|
+
schema?: OpenAPISchema;
|
|
285
|
+
headers?: Record<string, OpenAPIHeader>;
|
|
286
|
+
}
|
|
287
|
+
export interface ApiParamOptions {
|
|
288
|
+
name: string;
|
|
289
|
+
type?: 'string' | 'number' | 'boolean' | 'integer';
|
|
290
|
+
description?: string;
|
|
291
|
+
required?: boolean;
|
|
292
|
+
example?: unknown;
|
|
293
|
+
schema?: OpenAPISchema;
|
|
294
|
+
}
|
|
295
|
+
export interface ApiQueryOptions {
|
|
296
|
+
name: string;
|
|
297
|
+
type?: 'string' | 'number' | 'boolean' | 'integer' | 'array';
|
|
298
|
+
description?: string;
|
|
299
|
+
required?: boolean;
|
|
300
|
+
example?: unknown;
|
|
301
|
+
schema?: OpenAPISchema;
|
|
302
|
+
}
|
|
303
|
+
export interface ApiHeaderOptions {
|
|
304
|
+
name: string;
|
|
305
|
+
description?: string;
|
|
306
|
+
required?: boolean;
|
|
307
|
+
schema?: OpenAPISchema;
|
|
308
|
+
}
|
|
309
|
+
export interface ApiBodyOptions {
|
|
310
|
+
type?: Constructor;
|
|
311
|
+
description?: string;
|
|
312
|
+
required?: boolean;
|
|
313
|
+
schema?: OpenAPISchema;
|
|
314
|
+
}
|
|
315
|
+
export interface ApiPropertyOptions {
|
|
316
|
+
description?: string;
|
|
317
|
+
example?: unknown;
|
|
318
|
+
type?: Constructor | string;
|
|
319
|
+
format?: string;
|
|
320
|
+
required?: boolean;
|
|
321
|
+
nullable?: boolean;
|
|
322
|
+
enum?: unknown[];
|
|
323
|
+
minimum?: number;
|
|
324
|
+
maximum?: number;
|
|
325
|
+
minLength?: number;
|
|
326
|
+
maxLength?: number;
|
|
327
|
+
pattern?: string;
|
|
328
|
+
default?: unknown;
|
|
329
|
+
readOnly?: boolean;
|
|
330
|
+
writeOnly?: boolean;
|
|
331
|
+
items?: OpenAPISchema;
|
|
332
|
+
maxItems?: number;
|
|
333
|
+
minItems?: number;
|
|
334
|
+
}
|
|
335
|
+
export interface SecuritySchemeOptions {
|
|
336
|
+
description?: string;
|
|
337
|
+
bearerFormat?: string;
|
|
338
|
+
}
|
|
339
|
+
export interface ApiKeySecurityOptions {
|
|
340
|
+
in: 'header' | 'query' | 'cookie';
|
|
341
|
+
name: string;
|
|
342
|
+
description?: string;
|
|
343
|
+
}
|
|
344
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/openapi/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAC1B,KAAK,EAAE,YAAY,CAAC;IACpB,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;IAC7B,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,gBAAgB,CAAC;IACvB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,GAAG,CAAC,EAAE,gBAAgB,CAAC;IACvB,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAChC,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,SAAS,EAAE,gBAAgB,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,eAAe,CAAC,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,aAAa;IAE7B,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IACjF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IAGrB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC3C,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,oBAAoB,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC;IAC/C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IAGtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IAGjB,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;IACxB,GAAG,CAAC,EAAE,aAAa,CAAC;IAGpB,IAAI,CAAC,EAAE,MAAM,CAAC;IAGd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,GAAG,CAAC,EAAE,UAAU,CAAC;IACjB,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,UAAU;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACxC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,eAAe,CAAC;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,iBAAiB,CAAC,EAAE,gBAAgB,CAAC;IACrC,iBAAiB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAED,MAAM,WAAW,gBAAgB;IAChC,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AAEH,MAAM,WAAW,mBAAmB;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IAClC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,WAAW,GAAG,WAAW,EAAE,CAAC;IACnC,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC9B,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACrC,EAAE,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/orm/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Router System with Auto-Selection
|
|
3
|
+
*
|
|
4
|
+
* Automatically selects the optimal router implementation based on route count:
|
|
5
|
+
* - LinearRouter: ≤10 routes (O(1) static, O(n) dynamic)
|
|
6
|
+
* - RegexRouter: 11-50 routes (compiled regex patterns)
|
|
7
|
+
* - TreeRouter: >50 routes (O(log n) radix tree)
|
|
8
|
+
*
|
|
9
|
+
* You can also explicitly choose a router type for specific use cases.
|
|
10
|
+
*/
|
|
11
|
+
import type { HTTPMethod, MiddlewareHandler, PathParams, RouteHandler } from "../types";
|
|
12
|
+
import { LinearRouter } from "./linear";
|
|
13
|
+
import { RegexRouter } from "./regex";
|
|
14
|
+
import { TreeRouter } from "./tree";
|
|
15
|
+
export interface RouteMatch {
|
|
16
|
+
handler: RouteHandler;
|
|
17
|
+
params: PathParams;
|
|
18
|
+
middleware?: MiddlewareHandler[];
|
|
19
|
+
name?: string;
|
|
20
|
+
}
|
|
21
|
+
export interface RouteOptions {
|
|
22
|
+
name?: string;
|
|
23
|
+
middleware?: MiddlewareHandler | MiddlewareHandler[];
|
|
24
|
+
}
|
|
25
|
+
export type RouterType = "auto" | "linear" | "regex" | "tree";
|
|
26
|
+
export interface RouterConfig {
|
|
27
|
+
type?: RouterType;
|
|
28
|
+
linearThreshold?: number;
|
|
29
|
+
regexThreshold?: number;
|
|
30
|
+
}
|
|
31
|
+
export declare class Router {
|
|
32
|
+
private router;
|
|
33
|
+
private config;
|
|
34
|
+
private pendingRoutes;
|
|
35
|
+
private isBuilt;
|
|
36
|
+
private groupPrefix;
|
|
37
|
+
private groupMiddleware;
|
|
38
|
+
constructor(config?: RouterConfig);
|
|
39
|
+
private createRouter;
|
|
40
|
+
private getOptimalRouterType;
|
|
41
|
+
private migrateRouter;
|
|
42
|
+
private addToRouter;
|
|
43
|
+
private addRoute;
|
|
44
|
+
match(method: HTTPMethod | "ALL", pathname: string): RouteMatch | undefined;
|
|
45
|
+
group(prefix: string, options?: {
|
|
46
|
+
middleware?: MiddlewareHandler | MiddlewareHandler[];
|
|
47
|
+
}): Router;
|
|
48
|
+
getRoutes(): Array<{
|
|
49
|
+
method: HTTPMethod | "ALL";
|
|
50
|
+
pattern: string;
|
|
51
|
+
name?: string;
|
|
52
|
+
}>;
|
|
53
|
+
getRouterType(): string;
|
|
54
|
+
getRouteCount(): number;
|
|
55
|
+
getConfig(): Required<RouterConfig>;
|
|
56
|
+
get(pattern: string, handler: RouteHandler, options?: RouteOptions): void;
|
|
57
|
+
post(pattern: string, handler: RouteHandler, options?: RouteOptions): void;
|
|
58
|
+
put(pattern: string, handler: RouteHandler, options?: RouteOptions): void;
|
|
59
|
+
patch(pattern: string, handler: RouteHandler, options?: RouteOptions): void;
|
|
60
|
+
delete(pattern: string, handler: RouteHandler, options?: RouteOptions): void;
|
|
61
|
+
head(pattern: string, handler: RouteHandler, options?: RouteOptions): void;
|
|
62
|
+
options(pattern: string, handler: RouteHandler, options?: RouteOptions): void;
|
|
63
|
+
all(pattern: string, handler: RouteHandler, options?: RouteOptions): void;
|
|
64
|
+
}
|
|
65
|
+
export { LinearRouter } from "./linear";
|
|
66
|
+
export { RegexRouter } from "./regex";
|
|
67
|
+
export { TreeRouter } from "./tree";
|
|
68
|
+
export declare function generateUrl(pattern: string, params?: PathParams): string;
|
|
69
|
+
export declare function createRouter(config?: RouterConfig): Router;
|
|
70
|
+
export declare function createLinearRouter(): LinearRouter;
|
|
71
|
+
export declare function createRegexRouter(): RegexRouter;
|
|
72
|
+
export declare function createTreeRouter(): TreeRouter;
|
|
73
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":"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"}
|