@buenojs/bueno 0.8.9 → 0.8.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/cache/index.d.ts +187 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +595 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/cli/bin.d.ts +8 -0
- package/dist/cli/bin.d.ts.map +1 -0
- package/dist/cli/bin.js +9 -9
- package/dist/cli/bin.js.map +1 -0
- package/dist/cli/commands/add-frontend.d.ts +7 -0
- package/dist/cli/commands/add-frontend.d.ts.map +1 -0
- package/dist/cli/commands/add-frontend.js +376 -0
- package/dist/cli/commands/add-frontend.js.map +1 -0
- package/dist/cli/commands/build.d.ts +7 -0
- package/dist/cli/commands/build.d.ts.map +1 -0
- package/dist/cli/commands/build.js +347 -0
- package/dist/cli/commands/build.js.map +1 -0
- package/dist/cli/commands/dev.d.ts +7 -0
- package/dist/cli/commands/dev.d.ts.map +1 -0
- package/dist/cli/commands/dev.js +205 -0
- package/dist/cli/commands/dev.js.map +1 -0
- package/dist/cli/commands/generate.d.ts +7 -0
- package/dist/cli/commands/generate.d.ts.map +1 -0
- package/dist/cli/commands/generate.js +491 -0
- package/dist/cli/commands/generate.js.map +1 -0
- package/dist/cli/commands/help.d.ts +7 -0
- package/dist/cli/commands/help.d.ts.map +1 -0
- package/dist/cli/commands/help.js +51 -0
- package/dist/cli/commands/help.js.map +1 -0
- package/dist/cli/commands/index.d.ts +59 -0
- package/dist/cli/commands/index.d.ts.map +1 -0
- package/dist/cli/commands/index.js +77 -0
- package/dist/cli/commands/index.js.map +1 -0
- package/dist/cli/commands/migration.d.ts +7 -0
- package/dist/cli/commands/migration.d.ts.map +1 -0
- package/dist/cli/commands/migration.js +295 -0
- package/dist/cli/commands/migration.js.map +1 -0
- package/dist/cli/commands/new.d.ts +7 -0
- package/dist/cli/commands/new.d.ts.map +1 -0
- package/dist/cli/commands/new.js +641 -0
- package/dist/cli/commands/new.js.map +1 -0
- package/dist/cli/commands/start.d.ts +7 -0
- package/dist/cli/commands/start.d.ts.map +1 -0
- package/dist/cli/commands/start.js +171 -0
- package/dist/cli/commands/start.js.map +1 -0
- package/dist/cli/core/args.d.ts +61 -0
- package/dist/cli/core/args.d.ts.map +1 -0
- package/dist/cli/core/args.js +224 -0
- package/dist/cli/core/args.js.map +1 -0
- package/dist/cli/core/console.d.ts +135 -0
- package/dist/cli/core/console.d.ts.map +1 -0
- package/dist/cli/core/console.js +268 -0
- package/dist/cli/core/console.js.map +1 -0
- package/dist/cli/core/index.d.ts +10 -0
- package/dist/cli/core/index.d.ts.map +1 -0
- package/dist/cli/core/index.js +10 -0
- package/dist/cli/core/index.js.map +1 -0
- package/dist/cli/core/prompt.d.ts +63 -0
- package/dist/cli/core/prompt.d.ts.map +1 -0
- package/dist/cli/core/prompt.js +338 -0
- package/dist/cli/core/prompt.js.map +1 -0
- package/dist/cli/core/spinner.d.ts +111 -0
- package/dist/cli/core/spinner.d.ts.map +1 -0
- package/dist/cli/core/spinner.js +208 -0
- package/dist/cli/core/spinner.js.map +1 -0
- package/dist/cli/index.d.ts +47 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +127 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/templates/database/index.d.ts +24 -0
- package/dist/cli/templates/database/index.d.ts.map +1 -0
- package/dist/cli/templates/database/index.js +49 -0
- package/dist/cli/templates/database/index.js.map +1 -0
- package/dist/cli/templates/database/mysql.d.ts +6 -0
- package/dist/cli/templates/database/mysql.d.ts.map +1 -0
- package/dist/cli/templates/database/mysql.js +12 -0
- package/dist/cli/templates/database/mysql.js.map +1 -0
- package/dist/cli/templates/database/none.d.ts +8 -0
- package/dist/cli/templates/database/none.d.ts.map +1 -0
- package/dist/cli/templates/database/none.js +14 -0
- package/dist/cli/templates/database/none.js.map +1 -0
- package/dist/cli/templates/database/postgresql.d.ts +6 -0
- package/dist/cli/templates/database/postgresql.d.ts.map +1 -0
- package/dist/cli/templates/database/postgresql.js +12 -0
- package/dist/cli/templates/database/postgresql.js.map +1 -0
- package/dist/cli/templates/database/sqlite.d.ts +6 -0
- package/dist/cli/templates/database/sqlite.d.ts.map +1 -0
- package/dist/cli/templates/database/sqlite.js +12 -0
- package/dist/cli/templates/database/sqlite.js.map +1 -0
- package/dist/cli/templates/deploy.d.ts +41 -0
- package/dist/cli/templates/deploy.d.ts.map +1 -0
- package/dist/cli/templates/deploy.js +278 -0
- package/dist/cli/templates/deploy.js.map +1 -0
- package/dist/cli/templates/docker.d.ts +30 -0
- package/dist/cli/templates/docker.d.ts.map +1 -0
- package/dist/cli/templates/docker.js +298 -0
- package/dist/cli/templates/docker.js.map +1 -0
- package/dist/cli/templates/frontend/index.d.ts +25 -0
- package/dist/cli/templates/frontend/index.d.ts.map +1 -0
- package/dist/cli/templates/frontend/index.js +40 -0
- package/dist/cli/templates/frontend/index.js.map +1 -0
- package/dist/cli/templates/frontend/none.d.ts +8 -0
- package/dist/cli/templates/frontend/none.d.ts.map +1 -0
- package/dist/cli/templates/frontend/none.js +15 -0
- package/dist/cli/templates/frontend/none.js.map +1 -0
- package/dist/cli/templates/frontend/react.d.ts +6 -0
- package/dist/cli/templates/frontend/react.d.ts.map +1 -0
- package/dist/cli/templates/frontend/react.js +139 -0
- package/dist/cli/templates/frontend/react.js.map +1 -0
- package/dist/cli/templates/frontend/solid.d.ts +6 -0
- package/dist/cli/templates/frontend/solid.d.ts.map +1 -0
- package/dist/cli/templates/frontend/solid.js +133 -0
- package/dist/cli/templates/frontend/solid.js.map +1 -0
- package/dist/cli/templates/frontend/svelte.d.ts +6 -0
- package/dist/cli/templates/frontend/svelte.d.ts.map +1 -0
- package/dist/cli/templates/frontend/svelte.js +130 -0
- package/dist/cli/templates/frontend/svelte.js.map +1 -0
- package/dist/cli/templates/frontend/vue.d.ts +6 -0
- package/dist/cli/templates/frontend/vue.d.ts.map +1 -0
- package/dist/cli/templates/frontend/vue.js +129 -0
- package/dist/cli/templates/frontend/vue.js.map +1 -0
- package/dist/cli/templates/generators/index.d.ts +29 -0
- package/dist/cli/templates/generators/index.d.ts.map +1 -0
- package/dist/cli/templates/generators/index.js +308 -0
- package/dist/cli/templates/generators/index.js.map +1 -0
- package/dist/cli/templates/generators/types.d.ts +32 -0
- package/dist/cli/templates/generators/types.d.ts.map +1 -0
- package/dist/cli/templates/generators/types.js +21 -0
- package/dist/cli/templates/generators/types.js.map +1 -0
- package/dist/cli/templates/index.d.ts +12 -0
- package/dist/cli/templates/index.d.ts.map +1 -0
- package/dist/cli/templates/index.js +18 -0
- package/dist/cli/templates/index.js.map +1 -0
- package/dist/cli/templates/project/api.d.ts +6 -0
- package/dist/cli/templates/project/api.d.ts.map +1 -0
- package/dist/cli/templates/project/api.js +79 -0
- package/dist/cli/templates/project/api.js.map +1 -0
- package/dist/cli/templates/project/default.d.ts +6 -0
- package/dist/cli/templates/project/default.d.ts.map +1 -0
- package/dist/cli/templates/project/default.js +136 -0
- package/dist/cli/templates/project/default.js.map +1 -0
- package/dist/cli/templates/project/fullstack.d.ts +14 -0
- package/dist/cli/templates/project/fullstack.d.ts.map +1 -0
- package/dist/cli/templates/project/fullstack.js +19 -0
- package/dist/cli/templates/project/fullstack.js.map +1 -0
- package/dist/cli/templates/project/index.d.ts +26 -0
- package/dist/cli/templates/project/index.d.ts.map +1 -0
- package/dist/cli/templates/project/index.js +60 -0
- package/dist/cli/templates/project/index.js.map +1 -0
- package/dist/cli/templates/project/minimal.d.ts +6 -0
- package/dist/cli/templates/project/minimal.d.ts.map +1 -0
- package/dist/cli/templates/project/minimal.js +43 -0
- package/dist/cli/templates/project/minimal.js.map +1 -0
- package/dist/cli/templates/project/types.d.ts +80 -0
- package/dist/cli/templates/project/types.d.ts.map +1 -0
- package/dist/cli/templates/project/types.js +7 -0
- package/dist/cli/templates/project/types.js.map +1 -0
- package/dist/cli/templates/project/website.d.ts +8 -0
- package/dist/cli/templates/project/website.d.ts.map +1 -0
- package/dist/cli/templates/project/website.js +312 -0
- package/dist/cli/templates/project/website.js.map +1 -0
- package/dist/cli/utils/fs.d.ts +137 -0
- package/dist/cli/utils/fs.d.ts.map +1 -0
- package/dist/cli/utils/fs.js +350 -0
- package/dist/cli/utils/fs.js.map +1 -0
- package/dist/cli/utils/index.d.ts +9 -0
- package/dist/cli/utils/index.d.ts.map +1 -0
- package/dist/cli/utils/index.js +9 -0
- package/dist/cli/utils/index.js.map +1 -0
- package/dist/cli/utils/strings.d.ts +86 -0
- package/dist/cli/utils/strings.d.ts.map +1 -0
- package/dist/cli/utils/strings.js +190 -0
- package/dist/cli/utils/strings.js.map +1 -0
- package/dist/cli/utils/version.d.ts +15 -0
- package/dist/cli/utils/version.d.ts.map +1 -0
- package/dist/cli/utils/version.js +38 -0
- package/dist/cli/utils/version.js.map +1 -0
- package/dist/config/env-validation.d.ts +49 -0
- package/dist/config/env-validation.d.ts.map +1 -0
- package/dist/config/env-validation.js +77 -0
- package/dist/config/env-validation.js.map +1 -0
- package/dist/config/env.d.ts +167 -0
- package/dist/config/env.d.ts.map +1 -0
- package/dist/config/env.js +392 -0
- package/dist/config/env.js.map +1 -0
- package/dist/config/index.d.ts +168 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +329 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/loader.d.ts +81 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +242 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/merge.d.ts +66 -0
- package/dist/config/merge.d.ts.map +1 -0
- package/dist/config/merge.js +226 -0
- package/dist/config/merge.js.map +1 -0
- package/dist/config/types.d.ts +322 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +443 -0
- package/dist/config/types.js.map +1 -0
- package/dist/config/validation.d.ts +100 -0
- package/dist/config/validation.d.ts.map +1 -0
- package/dist/config/validation.js +548 -0
- package/dist/config/validation.js.map +1 -0
- package/dist/container/forward-ref.d.ts +116 -0
- package/dist/container/forward-ref.d.ts.map +1 -0
- package/dist/container/forward-ref.js +105 -0
- package/dist/container/forward-ref.js.map +1 -0
- package/dist/container/index.d.ts +95 -0
- package/dist/container/index.d.ts.map +1 -0
- package/dist/container/index.js.map +1 -0
- package/dist/context/index.d.ts +143 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js.map +1 -0
- package/dist/database/index.d.ts +219 -0
- package/dist/database/index.d.ts.map +1 -0
- package/dist/database/index.js.map +1 -0
- package/dist/database/migrations/index.d.ts +151 -0
- package/dist/database/migrations/index.d.ts.map +1 -0
- package/dist/database/migrations/index.js +258 -0
- package/dist/database/migrations/index.js.map +1 -0
- package/dist/database/orm/builder.d.ts +122 -0
- package/dist/database/orm/builder.d.ts.map +1 -0
- package/dist/database/orm/builder.js +355 -0
- package/dist/database/orm/builder.js.map +1 -0
- package/dist/database/orm/casts/index.d.ts +16 -0
- package/dist/database/orm/casts/index.d.ts.map +1 -0
- package/dist/database/orm/casts/index.js +131 -0
- package/dist/database/orm/casts/index.js.map +1 -0
- package/dist/database/orm/casts/types.d.ts +16 -0
- package/dist/database/orm/casts/types.d.ts.map +1 -0
- package/dist/database/orm/casts/types.js +5 -0
- package/dist/database/orm/casts/types.js.map +1 -0
- package/dist/database/orm/compiler.d.ts +90 -0
- package/dist/database/orm/compiler.d.ts.map +1 -0
- package/dist/database/orm/compiler.js +218 -0
- package/dist/database/orm/compiler.js.map +1 -0
- package/dist/database/orm/hooks/index.d.ts +53 -0
- package/dist/database/orm/hooks/index.d.ts.map +1 -0
- package/dist/database/orm/hooks/index.js +81 -0
- package/dist/database/orm/hooks/index.js.map +1 -0
- package/dist/database/orm/index.d.ts +21 -0
- package/dist/database/orm/index.d.ts.map +1 -0
- package/dist/database/orm/index.js +23 -0
- package/dist/database/orm/index.js.map +1 -0
- package/dist/database/orm/model-registry.d.ts +33 -0
- package/dist/database/orm/model-registry.d.ts.map +1 -0
- package/dist/database/orm/model-registry.js +49 -0
- package/dist/database/orm/model-registry.js.map +1 -0
- package/dist/database/orm/model.d.ts +245 -0
- package/dist/database/orm/model.d.ts.map +1 -0
- package/dist/database/orm/model.js +599 -0
- package/dist/database/orm/model.js.map +1 -0
- package/dist/database/orm/relationships/base.d.ts +69 -0
- package/dist/database/orm/relationships/base.d.ts.map +1 -0
- package/dist/database/orm/relationships/base.js +84 -0
- package/dist/database/orm/relationships/base.js.map +1 -0
- package/dist/database/orm/relationships/belongs-to-many.d.ts +47 -0
- package/dist/database/orm/relationships/belongs-to-many.d.ts.map +1 -0
- package/dist/database/orm/relationships/belongs-to-many.js +136 -0
- package/dist/database/orm/relationships/belongs-to-many.js.map +1 -0
- package/dist/database/orm/relationships/belongs-to.d.ts +17 -0
- package/dist/database/orm/relationships/belongs-to.d.ts.map +1 -0
- package/dist/database/orm/relationships/belongs-to.js +38 -0
- package/dist/database/orm/relationships/belongs-to.js.map +1 -0
- package/dist/database/orm/relationships/has-many.d.ts +14 -0
- package/dist/database/orm/relationships/has-many.d.ts.map +1 -0
- package/dist/database/orm/relationships/has-many.js +35 -0
- package/dist/database/orm/relationships/has-many.js.map +1 -0
- package/dist/database/orm/relationships/has-one.d.ts +14 -0
- package/dist/database/orm/relationships/has-one.d.ts.map +1 -0
- package/dist/database/orm/relationships/has-one.js +32 -0
- package/dist/database/orm/relationships/has-one.js.map +1 -0
- package/dist/database/orm/relationships/index.d.ts +10 -0
- package/dist/database/orm/relationships/index.d.ts.map +1 -0
- package/dist/database/orm/relationships/index.js +9 -0
- package/dist/database/orm/relationships/index.js.map +1 -0
- package/dist/database/orm/scopes/index.d.ts +36 -0
- package/dist/database/orm/scopes/index.d.ts.map +1 -0
- package/dist/database/orm/scopes/index.js +47 -0
- package/dist/database/orm/scopes/index.js.map +1 -0
- package/dist/database/schema/index.d.ts +155 -0
- package/dist/database/schema/index.d.ts.map +1 -0
- package/dist/database/schema/index.js +401 -0
- package/dist/database/schema/index.js.map +1 -0
- package/dist/frontend/api-routes.d.ts +189 -0
- package/dist/frontend/api-routes.d.ts.map +1 -0
- package/dist/frontend/api-routes.js +548 -0
- package/dist/frontend/api-routes.js.map +1 -0
- package/dist/frontend/bundler.d.ts +99 -0
- package/dist/frontend/bundler.d.ts.map +1 -0
- package/dist/frontend/bundler.js +555 -0
- package/dist/frontend/bundler.js.map +1 -0
- package/dist/frontend/console-client.d.ts +11 -0
- package/dist/frontend/console-client.d.ts.map +1 -0
- package/dist/frontend/console-client.js +414 -0
- package/dist/frontend/console-client.js.map +1 -0
- package/dist/frontend/console-stream.d.ts +138 -0
- package/dist/frontend/console-stream.d.ts.map +1 -0
- package/dist/frontend/console-stream.js +535 -0
- package/dist/frontend/console-stream.js.map +1 -0
- package/dist/frontend/dev-server.d.ts +174 -0
- package/dist/frontend/dev-server.d.ts.map +1 -0
- package/dist/frontend/dev-server.js +735 -0
- package/dist/frontend/dev-server.js.map +1 -0
- package/dist/frontend/file-router.d.ts +170 -0
- package/dist/frontend/file-router.d.ts.map +1 -0
- package/dist/frontend/file-router.js +531 -0
- package/dist/frontend/file-router.js.map +1 -0
- package/dist/frontend/frameworks/index.d.ts +41 -0
- package/dist/frontend/frameworks/index.d.ts.map +1 -0
- package/dist/frontend/frameworks/index.js +87 -0
- package/dist/frontend/frameworks/index.js.map +1 -0
- package/dist/frontend/frameworks/react.d.ts +32 -0
- package/dist/frontend/frameworks/react.d.ts.map +1 -0
- package/dist/frontend/frameworks/react.js +66 -0
- package/dist/frontend/frameworks/react.js.map +1 -0
- package/dist/frontend/frameworks/solid.d.ts +42 -0
- package/dist/frontend/frameworks/solid.d.ts.map +1 -0
- package/dist/frontend/frameworks/solid.js +84 -0
- package/dist/frontend/frameworks/solid.js.map +1 -0
- package/dist/frontend/frameworks/svelte.d.ts +57 -0
- package/dist/frontend/frameworks/svelte.d.ts.map +1 -0
- package/dist/frontend/frameworks/svelte.js +90 -0
- package/dist/frontend/frameworks/svelte.js.map +1 -0
- package/dist/frontend/frameworks/vue.d.ts +36 -0
- package/dist/frontend/frameworks/vue.d.ts.map +1 -0
- package/dist/frontend/frameworks/vue.js +72 -0
- package/dist/frontend/frameworks/vue.js.map +1 -0
- package/dist/frontend/hmr-client.d.ts +22 -0
- package/dist/frontend/hmr-client.d.ts.map +1 -0
- package/dist/frontend/hmr-client.js +654 -0
- package/dist/frontend/hmr-client.js.map +1 -0
- package/dist/frontend/hmr.d.ts +185 -0
- package/dist/frontend/hmr.d.ts.map +1 -0
- package/dist/frontend/hmr.js +619 -0
- package/dist/frontend/hmr.js.map +1 -0
- package/dist/frontend/index.d.ts +34 -0
- package/dist/frontend/index.d.ts.map +1 -0
- package/dist/frontend/index.js.map +1 -0
- package/dist/frontend/islands.d.ts +135 -0
- package/dist/frontend/islands.d.ts.map +1 -0
- package/dist/frontend/islands.js +455 -0
- package/dist/frontend/islands.js.map +1 -0
- package/dist/frontend/isr.d.ts +143 -0
- package/dist/frontend/isr.d.ts.map +1 -0
- package/dist/frontend/isr.js +440 -0
- package/dist/frontend/isr.js.map +1 -0
- package/dist/frontend/layout.d.ts +140 -0
- package/dist/frontend/layout.d.ts.map +1 -0
- package/dist/frontend/layout.js +392 -0
- package/dist/frontend/layout.js.map +1 -0
- package/dist/frontend/ssr/react.d.ts +118 -0
- package/dist/frontend/ssr/react.d.ts.map +1 -0
- package/dist/frontend/ssr/react.js +373 -0
- package/dist/frontend/ssr/react.js.map +1 -0
- package/dist/frontend/ssr/solid.d.ts +141 -0
- package/dist/frontend/ssr/solid.d.ts.map +1 -0
- package/dist/frontend/ssr/solid.js +440 -0
- package/dist/frontend/ssr/solid.js.map +1 -0
- package/dist/frontend/ssr/svelte.d.ts +158 -0
- package/dist/frontend/ssr/svelte.d.ts.map +1 -0
- package/dist/frontend/ssr/svelte.js +439 -0
- package/dist/frontend/ssr/svelte.js.map +1 -0
- package/dist/frontend/ssr/vue.d.ts +161 -0
- package/dist/frontend/ssr/vue.d.ts.map +1 -0
- package/dist/frontend/ssr/vue.js +385 -0
- package/dist/frontend/ssr/vue.js.map +1 -0
- package/dist/frontend/ssr.d.ts +147 -0
- package/dist/frontend/ssr.d.ts.map +1 -0
- package/dist/frontend/ssr.js +609 -0
- package/dist/frontend/ssr.js.map +1 -0
- package/dist/frontend/types.d.ts +1902 -0
- package/dist/frontend/types.d.ts.map +1 -0
- package/dist/frontend/types.js +8 -0
- package/dist/frontend/types.js.map +1 -0
- package/dist/graphql/built-in-engine.d.ts +36 -0
- package/dist/graphql/built-in-engine.d.ts.map +1 -0
- package/dist/graphql/built-in-engine.js +443 -0
- package/dist/graphql/built-in-engine.js.map +1 -0
- package/dist/graphql/context-builder.d.ts +44 -0
- package/dist/graphql/context-builder.d.ts.map +1 -0
- package/dist/graphql/context-builder.js +91 -0
- package/dist/graphql/context-builder.js.map +1 -0
- package/dist/graphql/decorators.d.ts +162 -0
- package/dist/graphql/decorators.d.ts.map +1 -0
- package/dist/graphql/decorators.js +291 -0
- package/dist/graphql/decorators.js.map +1 -0
- package/dist/graphql/execution-pipeline.d.ts +67 -0
- package/dist/graphql/execution-pipeline.d.ts.map +1 -0
- package/dist/graphql/execution-pipeline.js +127 -0
- package/dist/graphql/execution-pipeline.js.map +1 -0
- package/dist/graphql/graphql-module.d.ts +70 -0
- package/dist/graphql/graphql-module.d.ts.map +1 -0
- package/dist/graphql/graphql-module.js +442 -0
- package/dist/graphql/graphql-module.js.map +1 -0
- package/dist/graphql/index.d.ts +48 -0
- package/dist/graphql/index.d.ts.map +1 -0
- package/dist/graphql/index.js.map +1 -0
- package/dist/graphql/metadata.d.ts +37 -0
- package/dist/graphql/metadata.d.ts.map +1 -0
- package/dist/graphql/metadata.js +130 -0
- package/dist/graphql/metadata.js.map +1 -0
- package/dist/graphql/schema-builder.d.ts +34 -0
- package/dist/graphql/schema-builder.d.ts.map +1 -0
- package/dist/graphql/schema-builder.js +251 -0
- package/dist/graphql/schema-builder.js.map +1 -0
- package/dist/graphql/subscription-handler.d.ts +47 -0
- package/dist/graphql/subscription-handler.d.ts.map +1 -0
- package/dist/graphql/subscription-handler.js +201 -0
- package/dist/graphql/subscription-handler.js.map +1 -0
- package/dist/graphql/types.d.ts +252 -0
- package/dist/graphql/types.d.ts.map +1 -0
- package/dist/graphql/types.js +28 -0
- package/dist/graphql/types.js.map +1 -0
- package/dist/health/index.d.ts +176 -0
- package/dist/health/index.d.ts.map +1 -0
- package/dist/health/index.js.map +1 -0
- package/dist/i18n/engine.d.ts +105 -0
- package/dist/i18n/engine.d.ts.map +1 -0
- package/dist/i18n/engine.js +248 -0
- package/dist/i18n/engine.js.map +1 -0
- package/dist/i18n/index.d.ts +13 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/loader.d.ts +79 -0
- package/dist/i18n/loader.d.ts.map +1 -0
- package/dist/i18n/loader.js +192 -0
- package/dist/i18n/loader.js.map +1 -0
- package/dist/i18n/middleware.d.ts +96 -0
- package/dist/i18n/middleware.d.ts.map +1 -0
- package/dist/i18n/middleware.js +126 -0
- package/dist/i18n/middleware.js.map +1 -0
- package/dist/i18n/negotiator.d.ts +84 -0
- package/dist/i18n/negotiator.d.ts.map +1 -0
- package/dist/i18n/negotiator.js +139 -0
- package/dist/i18n/negotiator.js.map +1 -0
- package/dist/i18n/types.d.ts +129 -0
- package/dist/i18n/types.d.ts.map +1 -0
- package/dist/i18n/types.js +8 -0
- package/dist/i18n/types.js.map +1 -0
- package/dist/index.d.ts +48 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js.map +1 -0
- package/dist/jobs/drivers/memory.d.ts +38 -0
- package/dist/jobs/drivers/memory.d.ts.map +1 -0
- package/dist/jobs/drivers/memory.js +246 -0
- package/dist/jobs/drivers/memory.js.map +1 -0
- package/dist/jobs/drivers/redis.d.ts +34 -0
- package/dist/jobs/drivers/redis.d.ts.map +1 -0
- package/dist/jobs/drivers/redis.js +355 -0
- package/dist/jobs/drivers/redis.js.map +1 -0
- package/dist/jobs/index.d.ts +12 -0
- package/dist/jobs/index.d.ts.map +1 -0
- package/dist/jobs/index.js.map +1 -0
- package/dist/jobs/queue.d.ts +93 -0
- package/dist/jobs/queue.d.ts.map +1 -0
- package/dist/jobs/queue.js +233 -0
- package/dist/jobs/queue.js.map +1 -0
- package/dist/jobs/types.d.ts +193 -0
- package/dist/jobs/types.d.ts.map +1 -0
- package/dist/jobs/types.js +8 -0
- package/dist/jobs/types.js.map +1 -0
- package/dist/jobs/worker.d.ts +91 -0
- package/dist/jobs/worker.d.ts.map +1 -0
- package/dist/jobs/worker.js +300 -0
- package/dist/jobs/worker.js.map +1 -0
- package/dist/lock/index.d.ts +141 -0
- package/dist/lock/index.d.ts.map +1 -0
- package/dist/lock/index.js.map +1 -0
- package/dist/logger/index.d.ts +156 -0
- package/dist/logger/index.d.ts.map +1 -0
- package/dist/logger/index.js.map +1 -0
- package/dist/logger/transports/index.d.ts +371 -0
- package/dist/logger/transports/index.d.ts.map +1 -0
- package/dist/logger/transports/index.js +740 -0
- package/dist/logger/transports/index.js.map +1 -0
- package/dist/metrics/index.d.ts +163 -0
- package/dist/metrics/index.d.ts.map +1 -0
- package/dist/metrics/index.js.map +1 -0
- package/dist/middleware/built-in.d.ts +50 -0
- package/dist/middleware/built-in.d.ts.map +1 -0
- package/dist/middleware/built-in.js +220 -0
- package/dist/middleware/built-in.js.map +1 -0
- package/dist/middleware/index.d.ts +40 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js.map +1 -0
- package/dist/migrations/index.d.ts +48 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/migrations/index.js +3 -0
- package/dist/migrations/index.js.map +1 -0
- package/dist/modules/filters.d.ts +150 -0
- package/dist/modules/filters.d.ts.map +1 -0
- package/dist/modules/filters.js +338 -0
- package/dist/modules/filters.js.map +1 -0
- package/dist/modules/guards.d.ts +188 -0
- package/dist/modules/guards.d.ts.map +1 -0
- package/dist/modules/guards.js +278 -0
- package/dist/modules/guards.js.map +1 -0
- package/dist/modules/index.d.ts +266 -0
- package/dist/modules/index.d.ts.map +1 -0
- package/dist/modules/index.js.map +1 -0
- package/dist/modules/interceptors.d.ts +242 -0
- package/dist/modules/interceptors.d.ts.map +1 -0
- package/dist/modules/interceptors.js +407 -0
- package/dist/modules/interceptors.js.map +1 -0
- package/dist/modules/lazy.d.ts +187 -0
- package/dist/modules/lazy.d.ts.map +1 -0
- package/dist/modules/lazy.js +305 -0
- package/dist/modules/lazy.js.map +1 -0
- package/dist/modules/lifecycle.d.ts +221 -0
- package/dist/modules/lifecycle.d.ts.map +1 -0
- package/dist/modules/lifecycle.js +314 -0
- package/dist/modules/lifecycle.js.map +1 -0
- package/dist/modules/metadata.d.ts +32 -0
- package/dist/modules/metadata.d.ts.map +1 -0
- package/dist/modules/metadata.js +59 -0
- package/dist/modules/metadata.js.map +1 -0
- package/dist/modules/pipes.d.ts +287 -0
- package/dist/modules/pipes.d.ts.map +1 -0
- package/dist/modules/pipes.js +443 -0
- package/dist/modules/pipes.js.map +1 -0
- package/dist/notification/channels/base.d.ts +32 -0
- package/dist/notification/channels/base.d.ts.map +1 -0
- package/dist/notification/channels/base.js +37 -0
- package/dist/notification/channels/base.js.map +1 -0
- package/dist/notification/channels/email.d.ts +37 -0
- package/dist/notification/channels/email.d.ts.map +1 -0
- package/dist/notification/channels/email.js +85 -0
- package/dist/notification/channels/email.js.map +1 -0
- package/dist/notification/channels/push.d.ts +37 -0
- package/dist/notification/channels/push.d.ts.map +1 -0
- package/dist/notification/channels/push.js +84 -0
- package/dist/notification/channels/push.js.map +1 -0
- package/dist/notification/channels/sms.d.ts +37 -0
- package/dist/notification/channels/sms.d.ts.map +1 -0
- package/dist/notification/channels/sms.js +83 -0
- package/dist/notification/channels/sms.js.map +1 -0
- package/dist/notification/channels/whatsapp.d.ts +37 -0
- package/dist/notification/channels/whatsapp.d.ts.map +1 -0
- package/dist/notification/channels/whatsapp.js +81 -0
- package/dist/notification/channels/whatsapp.js.map +1 -0
- package/dist/notification/index.d.ts +15 -0
- package/dist/notification/index.d.ts.map +1 -0
- package/dist/notification/index.js.map +1 -0
- package/dist/notification/service.d.ts +100 -0
- package/dist/notification/service.d.ts.map +1 -0
- package/dist/notification/service.js +279 -0
- package/dist/notification/service.js.map +1 -0
- package/dist/notification/types.d.ts +253 -0
- package/dist/notification/types.d.ts.map +1 -0
- package/dist/notification/types.js +14 -0
- package/dist/notification/types.js.map +1 -0
- package/dist/observability/__tests__/observability.test.d.ts +2 -0
- package/dist/observability/__tests__/observability.test.d.ts.map +1 -0
- package/dist/observability/__tests__/observability.test.js +404 -0
- package/dist/observability/__tests__/observability.test.js.map +1 -0
- package/dist/observability/breadcrumbs.d.ts +48 -0
- package/dist/observability/breadcrumbs.d.ts.map +1 -0
- package/dist/observability/breadcrumbs.js +97 -0
- package/dist/observability/breadcrumbs.js.map +1 -0
- package/dist/observability/index.d.ts +95 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/interceptor.d.ts +19 -0
- package/dist/observability/interceptor.d.ts.map +1 -0
- package/dist/observability/interceptor.js +67 -0
- package/dist/observability/interceptor.js.map +1 -0
- package/dist/observability/service.d.ts +101 -0
- package/dist/observability/service.d.ts.map +1 -0
- package/dist/observability/service.js +249 -0
- package/dist/observability/service.js.map +1 -0
- package/dist/observability/trace.d.ts +21 -0
- package/dist/observability/trace.d.ts.map +1 -0
- package/dist/observability/trace.js +35 -0
- package/dist/observability/trace.js.map +1 -0
- package/dist/observability/types.d.ts +172 -0
- package/dist/observability/types.d.ts.map +1 -0
- package/dist/observability/types.js +8 -0
- package/dist/observability/types.js.map +1 -0
- package/dist/openapi/decorators.d.ts +173 -0
- package/dist/openapi/decorators.d.ts.map +1 -0
- package/dist/openapi/decorators.js +276 -0
- package/dist/openapi/decorators.js.map +1 -0
- package/dist/openapi/document-builder.d.ts +82 -0
- package/dist/openapi/document-builder.d.ts.map +1 -0
- package/dist/openapi/document-builder.js +228 -0
- package/dist/openapi/document-builder.js.map +1 -0
- package/dist/openapi/index.d.ts +48 -0
- package/dist/openapi/index.d.ts.map +1 -0
- package/dist/openapi/index.js.map +1 -0
- package/dist/openapi/metadata.d.ts +36 -0
- package/dist/openapi/metadata.d.ts.map +1 -0
- package/dist/openapi/metadata.js +78 -0
- package/dist/openapi/metadata.js.map +1 -0
- package/dist/openapi/route-scanner.d.ts +34 -0
- package/dist/openapi/route-scanner.d.ts.map +1 -0
- package/dist/openapi/route-scanner.js +174 -0
- package/dist/openapi/route-scanner.js.map +1 -0
- package/dist/openapi/schema-generator.d.ts +53 -0
- package/dist/openapi/schema-generator.d.ts.map +1 -0
- package/dist/openapi/schema-generator.js +236 -0
- package/dist/openapi/schema-generator.js.map +1 -0
- package/dist/openapi/swagger-module.d.ts +57 -0
- package/dist/openapi/swagger-module.d.ts.map +1 -0
- package/dist/openapi/swagger-module.js +143 -0
- package/dist/openapi/swagger-module.js.map +1 -0
- package/dist/openapi/types.d.ts +344 -0
- package/dist/openapi/types.d.ts.map +1 -0
- package/dist/openapi/types.js +7 -0
- package/dist/openapi/types.js.map +1 -0
- package/dist/orm/index.d.ts +10 -0
- package/dist/orm/index.d.ts.map +1 -0
- package/dist/orm/index.js.map +1 -0
- package/dist/router/index.d.ts +73 -0
- package/dist/router/index.d.ts.map +1 -0
- package/dist/router/index.js.map +1 -0
- package/dist/router/linear.d.ts +54 -0
- package/dist/router/linear.d.ts.map +1 -0
- package/dist/router/linear.js +261 -0
- package/dist/router/linear.js.map +1 -0
- package/dist/router/regex.d.ts +49 -0
- package/dist/router/regex.d.ts.map +1 -0
- package/dist/router/regex.js +201 -0
- package/dist/router/regex.js.map +1 -0
- package/dist/router/tree.d.ts +112 -0
- package/dist/router/tree.d.ts.map +1 -0
- package/dist/router/tree.js +360 -0
- package/dist/router/tree.js.map +1 -0
- package/dist/rpc/index.d.ts +321 -0
- package/dist/rpc/index.d.ts.map +1 -0
- package/dist/rpc/index.js.map +1 -0
- package/dist/schema/index.d.ts +10 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/security/index.d.ts +126 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +309 -0
- package/dist/security/index.js.map +1 -0
- package/dist/ssg/index.d.ts +73 -0
- package/dist/ssg/index.d.ts.map +1 -0
- package/dist/ssg/index.js +464 -0
- package/dist/ssg/index.js.map +1 -0
- package/dist/storage/index.d.ts +99 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +338 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/telemetry/index.d.ts +376 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/template/index.d.ts +7 -0
- package/dist/template/index.d.ts.map +1 -0
- package/dist/template/index.js.map +1 -0
- package/dist/templates/engine.d.ts +60 -0
- package/dist/templates/engine.d.ts.map +1 -0
- package/dist/templates/engine.js +177 -0
- package/dist/templates/engine.js.map +1 -0
- package/dist/templates/index.d.ts +9 -0
- package/dist/templates/index.d.ts.map +1 -0
- package/dist/templates/index.js.map +1 -0
- package/dist/templates/loader.d.ts +45 -0
- package/dist/templates/loader.d.ts.map +1 -0
- package/dist/templates/loader.js +274 -0
- package/dist/templates/loader.js.map +1 -0
- package/dist/templates/renderers/markdown.d.ts +46 -0
- package/dist/templates/renderers/markdown.d.ts.map +1 -0
- package/dist/templates/renderers/markdown.js +181 -0
- package/dist/templates/renderers/markdown.js.map +1 -0
- package/dist/templates/renderers/simple.d.ts +35 -0
- package/dist/templates/renderers/simple.d.ts.map +1 -0
- package/dist/templates/renderers/simple.js +245 -0
- package/dist/templates/renderers/simple.js.map +1 -0
- package/dist/templates/types.d.ts +138 -0
- package/dist/templates/types.d.ts.map +1 -0
- package/dist/templates/types.js +8 -0
- package/dist/templates/types.js.map +1 -0
- package/dist/testing/index.d.ts +539 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/types/index.d.ts +116 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js.map +1 -0
- package/dist/validation/index.d.ts +89 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +276 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/schemas.d.ts +283 -0
- package/dist/validation/schemas.d.ts.map +1 -0
- package/dist/validation/schemas.js +407 -0
- package/dist/validation/schemas.js.map +1 -0
- package/dist/websocket/index.d.ts +252 -0
- package/dist/websocket/index.d.ts.map +1 -0
- package/dist/websocket/index.js +749 -0
- package/dist/websocket/index.js.map +1 -0
- package/llms.txt +1 -1
- package/package.json +3 -3
- package/src/cli/commands/new.ts +1 -1
- package/src/cli/templates/frontend/react.ts +1 -1
- package/src/cli/templates/frontend/solid.ts +1 -1
- package/src/cli/templates/frontend/svelte.ts +1 -1
- package/src/cli/templates/frontend/vue.ts +1 -1
- package/src/cli/templates/project/default.ts +1 -1
- package/src/cli/templates/project/website.ts +3 -3
- package/src/database/migrations/index.ts +8 -0
- package/src/migrations/index.ts +40 -1
- package/src/types/index.ts +1 -1
- package/tsconfig.json +2 -6
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GraphQL Subscription Handler
|
|
3
|
+
*
|
|
4
|
+
* Implements the graphql-transport-ws protocol over Bun's native WebSocket.
|
|
5
|
+
* Registered via app.setWebSocketHandler() so subscriptions run on the same
|
|
6
|
+
* port as the HTTP server — no separate port needed.
|
|
7
|
+
*
|
|
8
|
+
* Protocol spec: https://github.com/enisdenjo/graphql-ws/blob/master/PROTOCOL.md
|
|
9
|
+
*
|
|
10
|
+
* ## Usage
|
|
11
|
+
* Automatically configured by GraphQLModule.setup() when subscriptions: true.
|
|
12
|
+
* Requires an engine with supportsSubscriptions = true (e.g. GraphQLJsAdapter).
|
|
13
|
+
*/
|
|
14
|
+
// ============= Subscription Handler =============
|
|
15
|
+
export class SubscriptionHandler {
|
|
16
|
+
engine;
|
|
17
|
+
engineSchema;
|
|
18
|
+
graphqlPath;
|
|
19
|
+
container;
|
|
20
|
+
globalGuards;
|
|
21
|
+
globalInterceptors;
|
|
22
|
+
connections = new Map();
|
|
23
|
+
constructor(engine, engineSchema, graphqlPath, container, globalGuards, globalInterceptors) {
|
|
24
|
+
this.engine = engine;
|
|
25
|
+
this.engineSchema = engineSchema;
|
|
26
|
+
this.graphqlPath = graphqlPath;
|
|
27
|
+
this.container = container;
|
|
28
|
+
this.globalGuards = globalGuards;
|
|
29
|
+
this.globalInterceptors = globalInterceptors;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Returns a Bun WebSocketHandler to register on the server via app.setWebSocketHandler().
|
|
33
|
+
* Attaches an __upgradeHandler so Application.listen() can delegate WebSocket upgrades.
|
|
34
|
+
*/
|
|
35
|
+
getWebSocketConfig() {
|
|
36
|
+
const upgradeHandler = this.handleUpgrade.bind(this);
|
|
37
|
+
return {
|
|
38
|
+
__upgradeHandler: upgradeHandler,
|
|
39
|
+
open: (ws) => {
|
|
40
|
+
this.connections.set(ws.data.connectionId, {
|
|
41
|
+
subscriptions: new Map(),
|
|
42
|
+
initialized: false,
|
|
43
|
+
});
|
|
44
|
+
},
|
|
45
|
+
message: async (ws, raw) => {
|
|
46
|
+
try {
|
|
47
|
+
const text = typeof raw === "string" ? raw : new TextDecoder().decode(raw);
|
|
48
|
+
const msg = JSON.parse(text);
|
|
49
|
+
await this.handleMessage(ws, msg);
|
|
50
|
+
}
|
|
51
|
+
catch (err) {
|
|
52
|
+
this.send(ws, {
|
|
53
|
+
type: "error",
|
|
54
|
+
id: "",
|
|
55
|
+
payload: [{ message: `Protocol error: ${err.message}` }],
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
close: (ws) => {
|
|
60
|
+
const state = this.connections.get(ws.data.connectionId);
|
|
61
|
+
if (state) {
|
|
62
|
+
// Cancel all active subscriptions
|
|
63
|
+
for (const sub of state.subscriptions.values()) {
|
|
64
|
+
sub.generator.return?.(undefined);
|
|
65
|
+
}
|
|
66
|
+
this.connections.delete(ws.data.connectionId);
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
error: (ws, error) => {
|
|
70
|
+
console.error("[GraphQL WS] WebSocket error:", error);
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Middleware-like upgrade handler.
|
|
76
|
+
* Call this from the app's fetch function for WebSocket upgrade requests.
|
|
77
|
+
* Returns a Response if not a GraphQL WS path, undefined if upgraded.
|
|
78
|
+
*/
|
|
79
|
+
handleUpgrade(req, server) {
|
|
80
|
+
const url = new URL(req.url);
|
|
81
|
+
if (url.pathname !== this.graphqlPath) {
|
|
82
|
+
return undefined; // Not our path — let normal routing handle it
|
|
83
|
+
}
|
|
84
|
+
const protocol = req.headers.get("sec-websocket-protocol") ?? "";
|
|
85
|
+
if (!protocol.includes("graphql-transport-ws")) {
|
|
86
|
+
return new Response("Unsupported WebSocket protocol", { status: 426 });
|
|
87
|
+
}
|
|
88
|
+
const connectionId = crypto.randomUUID();
|
|
89
|
+
const upgraded = server.upgrade(req, {
|
|
90
|
+
headers: {
|
|
91
|
+
"Sec-WebSocket-Protocol": "graphql-transport-ws",
|
|
92
|
+
},
|
|
93
|
+
data: { connectionId },
|
|
94
|
+
});
|
|
95
|
+
return upgraded ? undefined : new Response("WebSocket upgrade failed", { status: 400 });
|
|
96
|
+
}
|
|
97
|
+
// ============= Message Handlers =============
|
|
98
|
+
async handleMessage(ws, msg) {
|
|
99
|
+
const state = this.connections.get(ws.data.connectionId);
|
|
100
|
+
if (!state)
|
|
101
|
+
return;
|
|
102
|
+
switch (msg.type) {
|
|
103
|
+
case "connection_init":
|
|
104
|
+
if (state.initialized) {
|
|
105
|
+
// Already initialized — send error and close
|
|
106
|
+
ws.close(4429, "Too many initialisation requests");
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
state.initialized = true;
|
|
110
|
+
this.send(ws, { type: "connection_ack" });
|
|
111
|
+
break;
|
|
112
|
+
case "subscribe":
|
|
113
|
+
if (!state.initialized) {
|
|
114
|
+
ws.close(4401, "Unauthorized: connection not initialized");
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
if (state.subscriptions.has(msg.id)) {
|
|
118
|
+
ws.close(4409, `Subscriber for ${msg.id} already exists`);
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
await this.handleSubscribe(ws, state, msg);
|
|
122
|
+
break;
|
|
123
|
+
case "complete":
|
|
124
|
+
if (msg.id) {
|
|
125
|
+
const sub = state.subscriptions.get(msg.id);
|
|
126
|
+
if (sub) {
|
|
127
|
+
sub.generator.return?.(undefined);
|
|
128
|
+
state.subscriptions.delete(msg.id);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
break;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
async handleSubscribe(ws, state, msg) {
|
|
135
|
+
if (!this.engine.subscribe) {
|
|
136
|
+
this.send(ws, {
|
|
137
|
+
type: "error",
|
|
138
|
+
id: msg.id,
|
|
139
|
+
payload: [
|
|
140
|
+
{
|
|
141
|
+
message: "Subscriptions are not supported by the configured GraphQL engine. " +
|
|
142
|
+
"Use GraphQLJsAdapter for subscription support.",
|
|
143
|
+
},
|
|
144
|
+
],
|
|
145
|
+
});
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
const context = {
|
|
149
|
+
request: new Request(`ws://localhost${this.graphqlPath}`),
|
|
150
|
+
user: undefined,
|
|
151
|
+
httpContext: null,
|
|
152
|
+
};
|
|
153
|
+
let generator;
|
|
154
|
+
try {
|
|
155
|
+
generator = await this.engine.subscribe(this.engineSchema, msg.payload.query, msg.payload.variables ?? {}, context, msg.payload.operationName);
|
|
156
|
+
}
|
|
157
|
+
catch (err) {
|
|
158
|
+
this.send(ws, {
|
|
159
|
+
type: "error",
|
|
160
|
+
id: msg.id,
|
|
161
|
+
payload: [{ message: err.message }],
|
|
162
|
+
});
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
state.subscriptions.set(msg.id, { generator });
|
|
166
|
+
// Stream results
|
|
167
|
+
(async () => {
|
|
168
|
+
try {
|
|
169
|
+
for await (const result of generator) {
|
|
170
|
+
if (!state.subscriptions.has(msg.id))
|
|
171
|
+
break; // Cancelled
|
|
172
|
+
this.send(ws, {
|
|
173
|
+
type: "next",
|
|
174
|
+
id: msg.id,
|
|
175
|
+
payload: result,
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
// Subscription completed
|
|
179
|
+
this.send(ws, { type: "complete", id: msg.id });
|
|
180
|
+
state.subscriptions.delete(msg.id);
|
|
181
|
+
}
|
|
182
|
+
catch (err) {
|
|
183
|
+
this.send(ws, {
|
|
184
|
+
type: "error",
|
|
185
|
+
id: msg.id,
|
|
186
|
+
payload: [{ message: err.message }],
|
|
187
|
+
});
|
|
188
|
+
state.subscriptions.delete(msg.id);
|
|
189
|
+
}
|
|
190
|
+
})();
|
|
191
|
+
}
|
|
192
|
+
send(ws, msg) {
|
|
193
|
+
try {
|
|
194
|
+
ws.send(JSON.stringify(msg));
|
|
195
|
+
}
|
|
196
|
+
catch {
|
|
197
|
+
// Connection may have closed — ignore
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=subscription-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscription-handler.js","sourceRoot":"","sources":["../../src/graphql/subscription-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA4DH,mDAAmD;AAEnD,MAAM,OAAO,mBAAmB;IAItB;IACA;IACA;IACA;IACA;IACA;IARD,WAAW,GAAG,IAAI,GAAG,EAA2B,CAAC;IAEzD,YACS,MAAqB,EACrB,YAAqB,EACrB,WAAmB,EACnB,SAAoB,EACpB,YAAqB,EACrB,kBAAiC;QALjC,WAAM,GAAN,MAAM,CAAe;QACrB,iBAAY,GAAZ,YAAY,CAAS;QACrB,gBAAW,GAAX,WAAW,CAAQ;QACnB,cAAS,GAAT,SAAS,CAAW;QACpB,iBAAY,GAAZ,YAAY,CAAS;QACrB,uBAAkB,GAAlB,kBAAkB,CAAe;IACvC,CAAC;IAEJ;;;OAGG;IACH,kBAAkB;QACjB,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,OAAO;YACN,gBAAgB,EAAE,cAAc;YAChC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;gBACZ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE;oBAC1C,aAAa,EAAE,IAAI,GAAG,EAAE;oBACxB,WAAW,EAAE,KAAK;iBAClB,CAAC,CAAC;YACJ,CAAC;YAED,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;gBAC1B,IAAI,CAAC;oBACJ,MAAM,IAAI,GACT,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAkB,CAAC,CAAC;oBAC9E,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAkB,CAAC;oBAC9C,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;gBACnC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;wBACb,IAAI,EAAE,OAAO;wBACb,EAAE,EAAE,EAAE;wBACN,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,mBAAoB,GAAa,CAAC,OAAO,EAAE,EAAE,CAAC;qBACnE,CAAC,CAAC;gBACJ,CAAC;YACF,CAAC;YAED,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE;gBACb,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACzD,IAAI,KAAK,EAAE,CAAC;oBACX,kCAAkC;oBAClC,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC;wBAChD,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC;oBACnC,CAAC;oBACD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC/C,CAAC;YACF,CAAC;YAED,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE;gBACpB,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;YACvD,CAAC;SACD,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,GAAY,EAAE,MAAkB;QAC7C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;YACvC,OAAO,SAAS,CAAC,CAAC,8CAA8C;QACjE,CAAC;QAED,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC;QACjE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;YAChD,OAAO,IAAI,QAAQ,CAAC,gCAAgC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAS,GAAG,EAAE;YAC5C,OAAO,EAAE;gBACR,wBAAwB,EAAE,sBAAsB;aAChD;YACD,IAAI,EAAE,EAAE,YAAY,EAAE;SACtB,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,0BAA0B,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACzF,CAAC;IAED,+CAA+C;IAEvC,KAAK,CAAC,aAAa,CAC1B,EAA+B,EAC/B,GAAkB;QAElB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzD,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,iBAAiB;gBACrB,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;oBACvB,6CAA6C;oBAC7C,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,kCAAkC,CAAC,CAAC;oBACnD,OAAO;gBACR,CAAC;gBACD,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC;gBAC1C,MAAM;YAEP,KAAK,WAAW;gBACf,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;oBACxB,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,0CAA0C,CAAC,CAAC;oBAC3D,OAAO;gBACR,CAAC;gBACD,IAAI,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;oBACrC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,kBAAkB,GAAG,CAAC,EAAE,iBAAiB,CAAC,CAAC;oBAC1D,OAAO;gBACR,CAAC;gBACD,MAAM,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;gBAC3C,MAAM;YAEP,KAAK,UAAU;gBACd,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;oBACZ,MAAM,GAAG,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC5C,IAAI,GAAG,EAAE,CAAC;wBACT,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC;wBAClC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBACpC,CAAC;gBACF,CAAC;gBACD,MAAM;QACR,CAAC;IACF,CAAC;IAEO,KAAK,CAAC,eAAe,CAC5B,EAA+B,EAC/B,KAAsB,EACtB,GAAqB;QAErB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;gBACb,IAAI,EAAE,OAAO;gBACb,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,OAAO,EAAE;oBACR;wBACC,OAAO,EACN,oEAAoE;4BACpE,gDAAgD;qBACjD;iBACD;aACD,CAAC,CAAC;YACH,OAAO;QACR,CAAC;QAED,MAAM,OAAO,GAAmB;YAC/B,OAAO,EAAE,IAAI,OAAO,CAAC,iBAAiB,IAAI,CAAC,WAAW,EAAE,CAAC;YACzD,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,IAAI;SACjB,CAAC;QAEF,IAAI,SAAkC,CAAC;QACvC,IAAI,CAAC;YACJ,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CACtC,IAAI,CAAC,YAAY,EACjB,GAAG,CAAC,OAAO,CAAC,KAAK,EACjB,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,EAC3B,OAAO,EACP,GAAG,CAAC,OAAO,CAAC,aAAa,CACzB,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;gBACb,IAAI,EAAE,OAAO;gBACb,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,OAAO,EAAE,CAAC,EAAE,OAAO,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC;aAC9C,CAAC,CAAC;YACH,OAAO;QACR,CAAC;QAED,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QAE/C,iBAAiB;QACjB,CAAC,KAAK,IAAI,EAAE;YACX,IAAI,CAAC;gBACJ,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;oBACtC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;wBAAE,MAAM,CAAC,YAAY;oBACzD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;wBACb,IAAI,EAAE,MAAM;wBACZ,EAAE,EAAE,GAAG,CAAC,EAAE;wBACV,OAAO,EAAE,MAAgD;qBACzD,CAAC,CAAC;gBACJ,CAAC;gBACD,yBAAyB;gBACzB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;gBAChD,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACpC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;oBACb,IAAI,EAAE,OAAO;oBACb,EAAE,EAAE,GAAG,CAAC,EAAE;oBACV,OAAO,EAAE,CAAC,EAAE,OAAO,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC;iBAC9C,CAAC,CAAC;gBACH,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACpC,CAAC;QACF,CAAC,CAAC,EAAE,CAAC;IACN,CAAC;IAEO,IAAI,CAAC,EAA+B,EAAE,GAAkB;QAC/D,IAAI,CAAC;YACJ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACR,sCAAsC;QACvC,CAAC;IACF,CAAC;CACD"}
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GraphQL Module Types
|
|
3
|
+
*
|
|
4
|
+
* Core type definitions for the Bueno GraphQL integration layer.
|
|
5
|
+
*/
|
|
6
|
+
export type Constructor<T = unknown> = new (...args: unknown[]) => T;
|
|
7
|
+
/**
|
|
8
|
+
* Represents a GraphQL scalar type via its JS constructor.
|
|
9
|
+
* Usage: () => String, () => Number, () => Boolean, () => GraphQLID
|
|
10
|
+
*/
|
|
11
|
+
export type GraphQLScalar = StringConstructor | NumberConstructor | BooleanConstructor | typeof GraphQLID | typeof GraphQLInt | typeof GraphQLFloat;
|
|
12
|
+
/**
|
|
13
|
+
* A thunk that returns a type constructor or array of constructors.
|
|
14
|
+
* Used to avoid circular reference issues in type definitions.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* () => String // GraphQL String scalar
|
|
18
|
+
* () => Number // GraphQL Float scalar
|
|
19
|
+
* () => [User] // [User!]! list
|
|
20
|
+
* () => User // User object type
|
|
21
|
+
*/
|
|
22
|
+
export type TypeFn = () => Constructor | Constructor[] | GraphQLScalar;
|
|
23
|
+
/**
|
|
24
|
+
* Sentinel class representing GraphQL ID scalar.
|
|
25
|
+
* Usage: @Field(() => GraphQLID)
|
|
26
|
+
*/
|
|
27
|
+
export declare class GraphQLID {
|
|
28
|
+
static readonly __type = "ID";
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Sentinel class representing GraphQL Int scalar.
|
|
32
|
+
* Usage: @Field(() => GraphQLInt)
|
|
33
|
+
*/
|
|
34
|
+
export declare class GraphQLInt {
|
|
35
|
+
static readonly __type = "Int";
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Sentinel class representing GraphQL Float scalar.
|
|
39
|
+
* Usage: @Field(() => GraphQLFloat)
|
|
40
|
+
*/
|
|
41
|
+
export declare class GraphQLFloat {
|
|
42
|
+
static readonly __type = "Float";
|
|
43
|
+
}
|
|
44
|
+
/** Options for @Field decorator */
|
|
45
|
+
export interface FieldDecoratorOptions {
|
|
46
|
+
/** Whether the field can be null (default: false → non-null) */
|
|
47
|
+
nullable?: boolean;
|
|
48
|
+
/** Human-readable description */
|
|
49
|
+
description?: string;
|
|
50
|
+
/** Deprecation reason */
|
|
51
|
+
deprecationReason?: string;
|
|
52
|
+
/** Default value for input types */
|
|
53
|
+
defaultValue?: unknown;
|
|
54
|
+
}
|
|
55
|
+
/** Options for @Query/@Mutation/@Subscription decorators */
|
|
56
|
+
export interface FieldOptions extends FieldDecoratorOptions {
|
|
57
|
+
/** GraphQL field name override (default: method name) */
|
|
58
|
+
name?: string;
|
|
59
|
+
}
|
|
60
|
+
/** Metadata stored per @Field-decorated property */
|
|
61
|
+
export interface FieldMetadata {
|
|
62
|
+
propertyKey: string;
|
|
63
|
+
typeFn: TypeFn;
|
|
64
|
+
nullable: boolean;
|
|
65
|
+
description?: string;
|
|
66
|
+
deprecationReason?: string;
|
|
67
|
+
defaultValue?: unknown;
|
|
68
|
+
}
|
|
69
|
+
/** Metadata for a single resolver method parameter */
|
|
70
|
+
export interface ParamMetadata {
|
|
71
|
+
index: number;
|
|
72
|
+
kind: "args" | "argsObject" | "context";
|
|
73
|
+
/** For @Args('name') — the specific argument name */
|
|
74
|
+
argName?: string;
|
|
75
|
+
/** For @Args('name', InputType) — the input object type */
|
|
76
|
+
inputTypeFn?: TypeFn;
|
|
77
|
+
}
|
|
78
|
+
/** Metadata stored per @Query/@Mutation/@Subscription method */
|
|
79
|
+
export interface ResolverFieldMetadata {
|
|
80
|
+
/** Actual method name on the class */
|
|
81
|
+
methodName: string;
|
|
82
|
+
/** GraphQL field name (defaults to methodName) */
|
|
83
|
+
fieldName: string;
|
|
84
|
+
typeFn: TypeFn;
|
|
85
|
+
kind: "query" | "mutation" | "subscription";
|
|
86
|
+
nullable: boolean;
|
|
87
|
+
description?: string;
|
|
88
|
+
deprecationReason?: string;
|
|
89
|
+
paramMetadata: ParamMetadata[];
|
|
90
|
+
}
|
|
91
|
+
/** Metadata stored per @Resolver-decorated class */
|
|
92
|
+
export interface ResolverClassMetadata {
|
|
93
|
+
/** GraphQL type name (default: class name) */
|
|
94
|
+
name: string;
|
|
95
|
+
}
|
|
96
|
+
/** Metadata stored per @ObjectType / @InputType class */
|
|
97
|
+
export interface TypeClassMetadata {
|
|
98
|
+
name: string;
|
|
99
|
+
kind: "object" | "input";
|
|
100
|
+
description?: string;
|
|
101
|
+
}
|
|
102
|
+
/** A single resolvable field in the built schema */
|
|
103
|
+
export interface ResolvedField {
|
|
104
|
+
resolverInstance: unknown;
|
|
105
|
+
methodName: string;
|
|
106
|
+
paramMetadata: ParamMetadata[];
|
|
107
|
+
typeFn: TypeFn;
|
|
108
|
+
nullable: boolean;
|
|
109
|
+
}
|
|
110
|
+
/** Internal schema representation consumed by the built-in engine */
|
|
111
|
+
export interface ResolvedSchema {
|
|
112
|
+
queryFields: Map<string, ResolvedField>;
|
|
113
|
+
mutationFields: Map<string, ResolvedField>;
|
|
114
|
+
subscriptionFields: Map<string, ResolvedField>;
|
|
115
|
+
}
|
|
116
|
+
/** Context available inside resolver methods */
|
|
117
|
+
export interface GraphQLContext {
|
|
118
|
+
/** The original HTTP Request */
|
|
119
|
+
request: Request;
|
|
120
|
+
/** Authenticated user (set by auth guards via context.set('user', ...)) */
|
|
121
|
+
user?: unknown;
|
|
122
|
+
/** Reference to the HTTP Context for advanced use */
|
|
123
|
+
httpContext: unknown;
|
|
124
|
+
/** Allow arbitrary values */
|
|
125
|
+
[key: string]: unknown;
|
|
126
|
+
}
|
|
127
|
+
/** A GraphQL error entry in the response */
|
|
128
|
+
export interface GraphQLError {
|
|
129
|
+
message: string;
|
|
130
|
+
locations?: Array<{
|
|
131
|
+
line: number;
|
|
132
|
+
column: number;
|
|
133
|
+
}>;
|
|
134
|
+
path?: Array<string | number>;
|
|
135
|
+
extensions?: Record<string, unknown>;
|
|
136
|
+
}
|
|
137
|
+
/** The GraphQL response envelope */
|
|
138
|
+
export interface GraphQLResult {
|
|
139
|
+
data?: Record<string, unknown> | null;
|
|
140
|
+
errors?: GraphQLError[];
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Pluggable GraphQL execution engine.
|
|
144
|
+
* Implement this interface to use graphql-js, GraphQL Yoga, Mercurius, etc.
|
|
145
|
+
*
|
|
146
|
+
* @example
|
|
147
|
+
* ```typescript
|
|
148
|
+
* import * as graphqlJs from 'graphql';
|
|
149
|
+
* import { GraphQLJsAdapter } from '@buenojs/bueno/graphql';
|
|
150
|
+
*
|
|
151
|
+
* GraphQLModule.setup(app, {
|
|
152
|
+
* engine: new GraphQLJsAdapter(graphqlJs),
|
|
153
|
+
* resolvers: [UserResolver],
|
|
154
|
+
* });
|
|
155
|
+
* ```
|
|
156
|
+
*/
|
|
157
|
+
export interface GraphQLEngine {
|
|
158
|
+
/**
|
|
159
|
+
* Build the internal schema representation from resolver and type metadata.
|
|
160
|
+
* Returns an opaque schema object that is passed back to execute().
|
|
161
|
+
*/
|
|
162
|
+
buildSchema(resolvers: ResolverFieldsByType, types: Map<string, FieldMetadata[]>, sdl: string): unknown;
|
|
163
|
+
/**
|
|
164
|
+
* Execute a GraphQL query or mutation.
|
|
165
|
+
*/
|
|
166
|
+
execute(schema: unknown, query: string, variables: Record<string, unknown>, context: GraphQLContext, operationName?: string): Promise<GraphQLResult>;
|
|
167
|
+
/**
|
|
168
|
+
* Execute a GraphQL subscription (optional).
|
|
169
|
+
* Returns an async generator that yields results.
|
|
170
|
+
*/
|
|
171
|
+
subscribe?(schema: unknown, query: string, variables: Record<string, unknown>, context: GraphQLContext, operationName?: string): Promise<AsyncGenerator<GraphQLResult>>;
|
|
172
|
+
/**
|
|
173
|
+
* Whether this engine supports introspection queries.
|
|
174
|
+
* Used to determine if the GraphQL Playground should be enabled.
|
|
175
|
+
*/
|
|
176
|
+
readonly supportsIntrospection: boolean;
|
|
177
|
+
/**
|
|
178
|
+
* Whether this engine supports subscriptions.
|
|
179
|
+
*/
|
|
180
|
+
readonly supportsSubscriptions: boolean;
|
|
181
|
+
}
|
|
182
|
+
/** Resolver fields organized by root type */
|
|
183
|
+
export interface ResolverFieldsByType {
|
|
184
|
+
queries: Map<string, ResolvedField>;
|
|
185
|
+
mutations: Map<string, ResolvedField>;
|
|
186
|
+
subscriptions: Map<string, ResolvedField>;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Options passed to GraphQLModule.setup()
|
|
190
|
+
*/
|
|
191
|
+
export interface GraphQLModuleOptions {
|
|
192
|
+
/**
|
|
193
|
+
* Resolver classes to register.
|
|
194
|
+
* Dependencies are resolved from the DI container.
|
|
195
|
+
*/
|
|
196
|
+
resolvers: Constructor[];
|
|
197
|
+
/**
|
|
198
|
+
* GraphQL engine adapter (default: built-in lightweight engine).
|
|
199
|
+
* Use GraphQLJsAdapter for full spec compliance.
|
|
200
|
+
*/
|
|
201
|
+
engine?: GraphQLEngine;
|
|
202
|
+
/**
|
|
203
|
+
* HTTP path for the GraphQL endpoint (default: '/graphql').
|
|
204
|
+
*/
|
|
205
|
+
path?: string;
|
|
206
|
+
/**
|
|
207
|
+
* Enable GraphiQL playground UI at GET <path>.
|
|
208
|
+
* Default: true when using an engine with supportsIntrospection,
|
|
209
|
+
* false when using the built-in engine.
|
|
210
|
+
* Set to true to force-enable even with the built-in engine (with warning).
|
|
211
|
+
*/
|
|
212
|
+
playground?: boolean;
|
|
213
|
+
/**
|
|
214
|
+
* Serve the SDL at GET <path>/schema (default: true).
|
|
215
|
+
*/
|
|
216
|
+
introspection?: boolean;
|
|
217
|
+
/**
|
|
218
|
+
* Enable WebSocket subscriptions (default: false).
|
|
219
|
+
* Requires an engine with supportsSubscriptions.
|
|
220
|
+
*/
|
|
221
|
+
subscriptions?: boolean;
|
|
222
|
+
/**
|
|
223
|
+
* Sync @Field metadata to the OpenAPI property store (default: false).
|
|
224
|
+
* Enables unified types: one class works for both GraphQL and REST/OpenAPI.
|
|
225
|
+
* Requires @buenojs/bueno/openapi to be in scope.
|
|
226
|
+
*/
|
|
227
|
+
syncOpenAPI?: boolean;
|
|
228
|
+
/** Maximum query complexity score (default: 1000) */
|
|
229
|
+
complexityLimit?: number;
|
|
230
|
+
/** Maximum query depth (default: 10) */
|
|
231
|
+
maxDepth?: number;
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* GraphQL configuration added to BuenoConfig.
|
|
235
|
+
*/
|
|
236
|
+
export interface GraphQLConfig {
|
|
237
|
+
/** Enable GraphQL support (default: false) */
|
|
238
|
+
enabled?: boolean;
|
|
239
|
+
/** HTTP path (default: '/graphql') */
|
|
240
|
+
path?: string;
|
|
241
|
+
/** Enable playground (default: auto) */
|
|
242
|
+
playground?: boolean;
|
|
243
|
+
/** Enable introspection SDL endpoint (default: true) */
|
|
244
|
+
introspection?: boolean;
|
|
245
|
+
/** Maximum query complexity (default: 1000) */
|
|
246
|
+
complexityLimit?: number;
|
|
247
|
+
/** Maximum query depth (default: 10) */
|
|
248
|
+
maxDepth?: number;
|
|
249
|
+
/** Enable subscriptions (default: false) */
|
|
250
|
+
subscriptions?: boolean;
|
|
251
|
+
}
|
|
252
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/graphql/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GraphQL Module Types
|
|
3
|
+
*
|
|
4
|
+
* Core type definitions for the Bueno GraphQL integration layer.
|
|
5
|
+
*/
|
|
6
|
+
// ============= Scalar Sentinels =============
|
|
7
|
+
/**
|
|
8
|
+
* Sentinel class representing GraphQL ID scalar.
|
|
9
|
+
* Usage: @Field(() => GraphQLID)
|
|
10
|
+
*/
|
|
11
|
+
export class GraphQLID {
|
|
12
|
+
static __type = "ID";
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Sentinel class representing GraphQL Int scalar.
|
|
16
|
+
* Usage: @Field(() => GraphQLInt)
|
|
17
|
+
*/
|
|
18
|
+
export class GraphQLInt {
|
|
19
|
+
static __type = "Int";
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Sentinel class representing GraphQL Float scalar.
|
|
23
|
+
* Usage: @Field(() => GraphQLFloat)
|
|
24
|
+
*/
|
|
25
|
+
export class GraphQLFloat {
|
|
26
|
+
static __type = "Float";
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/graphql/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgCH,+CAA+C;AAE/C;;;GAGG;AACH,MAAM,OAAO,SAAS;IACrB,MAAM,CAAU,MAAM,GAAG,IAAI,CAAC;;AAG/B;;;GAGG;AACH,MAAM,OAAO,UAAU;IACtB,MAAM,CAAU,MAAM,GAAG,KAAK,CAAC;;AAGhC;;;GAGG;AACH,MAAM,OAAO,YAAY;IACxB,MAAM,CAAU,MAAM,GAAG,OAAO,CAAC"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Health Check System
|
|
3
|
+
*
|
|
4
|
+
* Provides health check endpoints for production monitoring:
|
|
5
|
+
* - /health (liveness probe) - Returns 200 if server is running
|
|
6
|
+
* - /ready (readiness probe) - Returns 200 only if all checks pass
|
|
7
|
+
*/
|
|
8
|
+
import type { Middleware } from "../middleware";
|
|
9
|
+
/**
|
|
10
|
+
* Health check status
|
|
11
|
+
*/
|
|
12
|
+
export type HealthStatus = "healthy" | "unhealthy" | "degraded";
|
|
13
|
+
/**
|
|
14
|
+
* Individual check result
|
|
15
|
+
*/
|
|
16
|
+
export interface CheckResult {
|
|
17
|
+
status: HealthStatus;
|
|
18
|
+
latency?: number;
|
|
19
|
+
message?: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Overall health check result
|
|
23
|
+
*/
|
|
24
|
+
export interface HealthCheckResult {
|
|
25
|
+
status: HealthStatus;
|
|
26
|
+
timestamp: string;
|
|
27
|
+
version?: string;
|
|
28
|
+
uptime?: number;
|
|
29
|
+
checks?: Record<string, CheckResult>;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Health check function type
|
|
33
|
+
*/
|
|
34
|
+
export type HealthCheckFn = () => Promise<CheckResult> | CheckResult;
|
|
35
|
+
/**
|
|
36
|
+
* Options for individual health checks
|
|
37
|
+
*/
|
|
38
|
+
export interface CheckOptions {
|
|
39
|
+
/** Whether this check is critical for readiness (default: true) */
|
|
40
|
+
critical?: boolean;
|
|
41
|
+
/** Timeout in milliseconds (default: 5000) */
|
|
42
|
+
timeout?: number;
|
|
43
|
+
/** Description of the check */
|
|
44
|
+
description?: string;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Options for health middleware
|
|
48
|
+
*/
|
|
49
|
+
export interface HealthMiddlewareOptions {
|
|
50
|
+
/** Path for liveness probe (default: /health) */
|
|
51
|
+
healthPath?: string;
|
|
52
|
+
/** Path for readiness probe (default: /ready) */
|
|
53
|
+
readyPath?: string;
|
|
54
|
+
/** Whether to expose metrics in response (default: true) */
|
|
55
|
+
exposeMetrics?: boolean;
|
|
56
|
+
/** Initial health checks to register */
|
|
57
|
+
checks?: Record<string, HealthCheckFn | {
|
|
58
|
+
fn: HealthCheckFn;
|
|
59
|
+
options?: CheckOptions;
|
|
60
|
+
}>;
|
|
61
|
+
/** Custom version string (default: from package.json) */
|
|
62
|
+
version?: string;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Database interface for built-in checker
|
|
66
|
+
*/
|
|
67
|
+
export interface DatabaseLike {
|
|
68
|
+
query?(sql: string): Promise<unknown>;
|
|
69
|
+
execute?(sql: string): Promise<unknown>;
|
|
70
|
+
healthCheck?(): Promise<boolean>;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Cache interface for built-in checker
|
|
74
|
+
*/
|
|
75
|
+
export interface CacheLike {
|
|
76
|
+
get?(key: string): Promise<unknown>;
|
|
77
|
+
set?(key: string, value: unknown): Promise<unknown>;
|
|
78
|
+
ping?(): Promise<unknown>;
|
|
79
|
+
healthCheck?(): Promise<boolean>;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Manages health checks for the application
|
|
83
|
+
*/
|
|
84
|
+
export declare class HealthCheckManager {
|
|
85
|
+
private checks;
|
|
86
|
+
private startTime;
|
|
87
|
+
private version;
|
|
88
|
+
constructor(version?: string);
|
|
89
|
+
/**
|
|
90
|
+
* Register a health check
|
|
91
|
+
*/
|
|
92
|
+
registerCheck(name: string, checkFn: HealthCheckFn, options?: CheckOptions): this;
|
|
93
|
+
/**
|
|
94
|
+
* Remove a health check
|
|
95
|
+
*/
|
|
96
|
+
removeCheck(name: string): boolean;
|
|
97
|
+
/**
|
|
98
|
+
* Get all registered check names
|
|
99
|
+
*/
|
|
100
|
+
getCheckNames(): string[];
|
|
101
|
+
/**
|
|
102
|
+
* Check if a check is registered
|
|
103
|
+
*/
|
|
104
|
+
hasCheck(name: string): boolean;
|
|
105
|
+
/**
|
|
106
|
+
* Run a single check with timeout
|
|
107
|
+
*/
|
|
108
|
+
private runSingleCheck;
|
|
109
|
+
/**
|
|
110
|
+
* Execute all registered checks
|
|
111
|
+
*/
|
|
112
|
+
runChecks(): Promise<Record<string, CheckResult>>;
|
|
113
|
+
/**
|
|
114
|
+
* Get liveness status (lightweight - no dependency checks)
|
|
115
|
+
*/
|
|
116
|
+
getHealth(): HealthCheckResult;
|
|
117
|
+
/**
|
|
118
|
+
* Get readiness status (runs all checks)
|
|
119
|
+
*/
|
|
120
|
+
getReadiness(): Promise<HealthCheckResult>;
|
|
121
|
+
/**
|
|
122
|
+
* Get uptime in seconds
|
|
123
|
+
*/
|
|
124
|
+
getUptime(): number;
|
|
125
|
+
/**
|
|
126
|
+
* Reset start time (useful for testing)
|
|
127
|
+
*/
|
|
128
|
+
resetStartTime(): void;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Create health check middleware
|
|
132
|
+
*/
|
|
133
|
+
export declare function createHealthMiddleware(options?: HealthMiddlewareOptions): {
|
|
134
|
+
middleware: Middleware;
|
|
135
|
+
manager: HealthCheckManager;
|
|
136
|
+
};
|
|
137
|
+
/**
|
|
138
|
+
* Create a database connectivity check
|
|
139
|
+
*/
|
|
140
|
+
export declare function createDatabaseCheck(db: DatabaseLike, options?: {
|
|
141
|
+
query?: string;
|
|
142
|
+
timeout?: number;
|
|
143
|
+
}): HealthCheckFn;
|
|
144
|
+
/**
|
|
145
|
+
* Create a cache connectivity check
|
|
146
|
+
*/
|
|
147
|
+
export declare function createCacheCheck(cache: CacheLike, options?: {
|
|
148
|
+
testKey?: string;
|
|
149
|
+
timeout?: number;
|
|
150
|
+
}): HealthCheckFn;
|
|
151
|
+
/**
|
|
152
|
+
* Create a custom health check with timeout
|
|
153
|
+
*/
|
|
154
|
+
export declare function createCustomCheck(checkFn: () => Promise<boolean> | boolean, options?: {
|
|
155
|
+
message?: string;
|
|
156
|
+
timeout?: number;
|
|
157
|
+
}): HealthCheckFn;
|
|
158
|
+
/**
|
|
159
|
+
* Create a TCP port check
|
|
160
|
+
*/
|
|
161
|
+
export declare function createTCPCheck(host: string, port: number, options?: {
|
|
162
|
+
timeout?: number;
|
|
163
|
+
}): HealthCheckFn;
|
|
164
|
+
/**
|
|
165
|
+
* Create an HTTP endpoint check
|
|
166
|
+
*/
|
|
167
|
+
export declare function createHTTPCheck(url: string, options?: {
|
|
168
|
+
expectedStatus?: number;
|
|
169
|
+
timeout?: number;
|
|
170
|
+
headers?: Record<string, string>;
|
|
171
|
+
}): HealthCheckFn;
|
|
172
|
+
/**
|
|
173
|
+
* Create a new health check manager
|
|
174
|
+
*/
|
|
175
|
+
export declare function createHealthManager(version?: string): HealthCheckManager;
|
|
176
|
+
//# sourceMappingURL=index.d.ts.map
|