@buenojs/bueno 0.8.10 → 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/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/package.json +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,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Observability Module
|
|
3
|
+
*
|
|
4
|
+
* Provides structured error tracking and observability integration for Bueno.
|
|
5
|
+
* Implement ErrorReporter to send events to Sentry, Bugsnag, Datadog, or any
|
|
6
|
+
* custom backend — zero SDK dependencies shipped by the framework.
|
|
7
|
+
*
|
|
8
|
+
* ## Quick Start
|
|
9
|
+
*
|
|
10
|
+
* ```typescript
|
|
11
|
+
* import { createApp } from '@buenojs/bueno';
|
|
12
|
+
* import { ObservabilityModule } from '@buenojs/bueno/observability';
|
|
13
|
+
*
|
|
14
|
+
* const app = createApp(AppModule);
|
|
15
|
+
*
|
|
16
|
+
* // Wire everything with a single call
|
|
17
|
+
* const obs = ObservabilityModule.setup(app, {
|
|
18
|
+
* reporter: new MyReporter(),
|
|
19
|
+
* breadcrumbsSize: 20,
|
|
20
|
+
* ignoreStatusCodes: [404, 401],
|
|
21
|
+
* tags: { environment: 'production' },
|
|
22
|
+
* });
|
|
23
|
+
*
|
|
24
|
+
* await app.listen(3000);
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* ## Writing a reporter (Sentry example)
|
|
28
|
+
*
|
|
29
|
+
* ```typescript
|
|
30
|
+
* import * as Sentry from '@sentry/node';
|
|
31
|
+
* import type { ErrorReporter, ErrorEvent } from '@buenojs/bueno/observability';
|
|
32
|
+
*
|
|
33
|
+
* class SentryReporter implements ErrorReporter {
|
|
34
|
+
* constructor(dsn: string) { Sentry.init({ dsn }); }
|
|
35
|
+
*
|
|
36
|
+
* captureError(event: ErrorEvent) {
|
|
37
|
+
* Sentry.withScope(scope => {
|
|
38
|
+
* if (event.user) scope.setUser(event.user);
|
|
39
|
+
* if (event.traceId) scope.setTag('traceId', event.traceId);
|
|
40
|
+
* event.breadcrumbs.forEach(b => scope.addBreadcrumb(b));
|
|
41
|
+
* Sentry.captureException(event.error);
|
|
42
|
+
* });
|
|
43
|
+
* }
|
|
44
|
+
*
|
|
45
|
+
* async flush() { await Sentry.flush(2000); }
|
|
46
|
+
* }
|
|
47
|
+
*
|
|
48
|
+
* ObservabilityModule.setup(app, {
|
|
49
|
+
* reporter: new SentryReporter(process.env.SENTRY_DSN),
|
|
50
|
+
* });
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
import type { Application } from "../modules";
|
|
54
|
+
import { ObservabilityService } from "./service";
|
|
55
|
+
import type { ObservabilityOptions } from "./types";
|
|
56
|
+
/**
|
|
57
|
+
* Static module class for configuring observability.
|
|
58
|
+
* Use `ObservabilityModule.setup(app, options)` for the simplest setup.
|
|
59
|
+
*/
|
|
60
|
+
export declare class ObservabilityModule {
|
|
61
|
+
/**
|
|
62
|
+
* One-call setup: creates the ObservabilityService, registers the global
|
|
63
|
+
* interceptor for trace ID injection and breadcrumb tracking, and wires
|
|
64
|
+
* process-level shutdown flush.
|
|
65
|
+
*
|
|
66
|
+
* Call this before `app.listen()`.
|
|
67
|
+
*
|
|
68
|
+
* @param app - The Bueno Application instance (from `createApp()`)
|
|
69
|
+
* @param options - Observability configuration including the reporter
|
|
70
|
+
* @returns The ObservabilityService — use for manual captureError / addBreadcrumb
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```typescript
|
|
74
|
+
* const obs = ObservabilityModule.setup(app, {
|
|
75
|
+
* reporter: new SentryReporter(process.env.SENTRY_DSN),
|
|
76
|
+
* ignoreStatusCodes: [404, 401],
|
|
77
|
+
* tags: { environment: 'production', version: '1.2.3' },
|
|
78
|
+
* });
|
|
79
|
+
*
|
|
80
|
+
* // Later, in a background job:
|
|
81
|
+
* obs.captureError(new Error('Job failed'));
|
|
82
|
+
*
|
|
83
|
+
* // Add a manual breadcrumb:
|
|
84
|
+
* obs.addBreadcrumb({ type: 'custom', level: 'info', message: 'Checkout started' });
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
static setup(app: Application, options: ObservabilityOptions): ObservabilityService;
|
|
88
|
+
}
|
|
89
|
+
export type { BreadcrumbEntry, ErrorEvent, ErrorRequestContext, ErrorUserContext, MessageEvent, ErrorReporter, ObservabilityOptions, ObservabilityConfig, } from "./types";
|
|
90
|
+
export { ObservabilityService } from "./service";
|
|
91
|
+
export { extractTraceContext } from "./service";
|
|
92
|
+
export { ObservabilityInterceptor } from "./interceptor";
|
|
93
|
+
export { BreadcrumbCollector, httpBreadcrumb, logBreadcrumb, } from "./breadcrumbs";
|
|
94
|
+
export { generateTraceId, generateSpanId, buildTraceparent } from "./trace";
|
|
95
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/observability/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD;;;GAGG;AACH,qBAAa,mBAAmB;IAC/B;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,MAAM,CAAC,KAAK,CACX,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,oBAAoB,GAC3B,oBAAoB;CAYvB;AAKD,YAAY,EACX,eAAe,EACf,UAAU,EACV,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,mBAAmB,GACnB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAGhD,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAGzD,OAAO,EACN,mBAAmB,EACnB,cAAc,EACd,aAAa,GACb,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/observability/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAGzD;;;GAGG;AACH,MAAM,OAAO,mBAAmB;IAC/B;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,MAAM,CAAC,KAAK,CACX,GAAgB,EAChB,OAA6B;QAE7B,MAAM,OAAO,GAAG,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,WAAW,GAAG,IAAI,wBAAwB,CAAC,OAAO,CAAC,CAAC;QAE1D,mFAAmF;QACnF,GAAG,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;QAEvC,iCAAiC;QACjC,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAE3B,OAAO,OAAO,CAAC;IAChB,CAAC;CACD;AAgBD,oBAAoB;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEhD,cAAc;AACd,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAEzD,uBAAuB;AACvB,OAAO,EACN,mBAAmB,EACnB,cAAc,EACd,aAAa,GACb,MAAM,eAAe,CAAC;AAEvB,gBAAgB;AAChB,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ObservabilityInterceptor
|
|
3
|
+
*
|
|
4
|
+
* Global interceptor that enriches every request with:
|
|
5
|
+
* 1. Trace/span IDs — extracted from W3C `traceparent` header or generated fresh
|
|
6
|
+
* 2. Breadcrumbs — records request entry and exit (with status + duration)
|
|
7
|
+
* 3. Error capture — calls ObservabilityService when a route handler throws
|
|
8
|
+
*
|
|
9
|
+
* Register via ObservabilityModule.setup() (done automatically).
|
|
10
|
+
*/
|
|
11
|
+
import type { Context } from "../context";
|
|
12
|
+
import type { CallHandler, NestInterceptor } from "../modules";
|
|
13
|
+
import type { ObservabilityService } from "./service";
|
|
14
|
+
export declare class ObservabilityInterceptor implements NestInterceptor {
|
|
15
|
+
private readonly service;
|
|
16
|
+
constructor(service: ObservabilityService);
|
|
17
|
+
intercept(context: Context, next: CallHandler): Promise<unknown>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=interceptor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interceptor.d.ts","sourceRoot":"","sources":["../../src/observability/interceptor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAkBtD,qBAAa,wBAAyB,YAAW,eAAe;IACnD,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,oBAAoB;IAEpD,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;CAgDtE"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ObservabilityInterceptor
|
|
3
|
+
*
|
|
4
|
+
* Global interceptor that enriches every request with:
|
|
5
|
+
* 1. Trace/span IDs — extracted from W3C `traceparent` header or generated fresh
|
|
6
|
+
* 2. Breadcrumbs — records request entry and exit (with status + duration)
|
|
7
|
+
* 3. Error capture — calls ObservabilityService when a route handler throws
|
|
8
|
+
*
|
|
9
|
+
* Register via ObservabilityModule.setup() (done automatically).
|
|
10
|
+
*/
|
|
11
|
+
import { generateSpanId, generateTraceId } from "./trace";
|
|
12
|
+
import { httpBreadcrumb } from "./breadcrumbs";
|
|
13
|
+
import { extractTraceContext } from "./service";
|
|
14
|
+
/**
|
|
15
|
+
* Resolves trace context from the incoming request.
|
|
16
|
+
* Uses the W3C `traceparent` header if present, otherwise generates new IDs.
|
|
17
|
+
*/
|
|
18
|
+
function resolveTraceIds(context) {
|
|
19
|
+
const existing = extractTraceContext(context);
|
|
20
|
+
if (existing.traceId && existing.spanId) {
|
|
21
|
+
return { traceId: existing.traceId, spanId: existing.spanId };
|
|
22
|
+
}
|
|
23
|
+
return { traceId: generateTraceId(), spanId: generateSpanId() };
|
|
24
|
+
}
|
|
25
|
+
export class ObservabilityInterceptor {
|
|
26
|
+
service;
|
|
27
|
+
constructor(service) {
|
|
28
|
+
this.service = service;
|
|
29
|
+
}
|
|
30
|
+
async intercept(context, next) {
|
|
31
|
+
const startMs = Date.now();
|
|
32
|
+
// 1. Inject trace IDs into context for downstream use
|
|
33
|
+
const { traceId, spanId } = resolveTraceIds(context);
|
|
34
|
+
context.set("traceId", traceId);
|
|
35
|
+
context.set("spanId", spanId);
|
|
36
|
+
// 2. Record request entry breadcrumb
|
|
37
|
+
this.service.addBreadcrumb({
|
|
38
|
+
type: "navigation",
|
|
39
|
+
level: "info",
|
|
40
|
+
message: `${context.method} ${context.path}`,
|
|
41
|
+
data: { traceId, spanId },
|
|
42
|
+
});
|
|
43
|
+
try {
|
|
44
|
+
const result = await next.handle();
|
|
45
|
+
// 3a. Record successful request exit
|
|
46
|
+
const durationMs = Date.now() - startMs;
|
|
47
|
+
const response = result;
|
|
48
|
+
const statusCode = response instanceof Response ? response.status : undefined;
|
|
49
|
+
this.service
|
|
50
|
+
.getBreadcrumbCollector()
|
|
51
|
+
.add(httpBreadcrumb(context.method, context.path, statusCode, durationMs));
|
|
52
|
+
return result;
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
// 3b. Capture the error with full request context (non-blocking)
|
|
56
|
+
this.service.captureFromContext(context, error);
|
|
57
|
+
// 4. Record failed request breadcrumb
|
|
58
|
+
const durationMs = Date.now() - startMs;
|
|
59
|
+
this.service
|
|
60
|
+
.getBreadcrumbCollector()
|
|
61
|
+
.add(httpBreadcrumb(context.method, context.path, undefined, durationMs));
|
|
62
|
+
// 5. Rethrow so the framework's exception filters still fire
|
|
63
|
+
throw error;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=interceptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interceptor.js","sourceRoot":"","sources":["../../src/observability/interceptor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEhD;;;GAGG;AACH,SAAS,eAAe,CAAC,OAAgB;IAIxC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACzC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC/D,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,CAAC;AACjE,CAAC;AAED,MAAM,OAAO,wBAAwB;IACP;IAA7B,YAA6B,OAA6B;QAA7B,YAAO,GAAP,OAAO,CAAsB;IAAG,CAAC;IAE9D,KAAK,CAAC,SAAS,CAAC,OAAgB,EAAE,IAAiB;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE3B,sDAAsD;QACtD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAE9B,qCAAqC;QACrC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;YAC1B,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,EAAE;YAC5C,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;SACzB,CAAC,CAAC;QAEH,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;YAEnC,qCAAqC;YACrC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;YACxC,MAAM,QAAQ,GAAG,MAAyB,CAAC;YAC3C,MAAM,UAAU,GACf,QAAQ,YAAY,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YAE5D,IAAI,CAAC,OAAO;iBACV,sBAAsB,EAAE;iBACxB,GAAG,CACH,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,CACpE,CAAC;YAEH,OAAO,MAAM,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,iEAAiE;YACjE,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO,EAAE,KAAc,CAAC,CAAC;YAEzD,sCAAsC;YACtC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;YACxC,IAAI,CAAC,OAAO;iBACV,sBAAsB,EAAE;iBACxB,GAAG,CACH,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CACnE,CAAC;YAEH,6DAA6D;YAC7D,MAAM,KAAK,CAAC;QACb,CAAC;IACF,CAAC;CACD"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ObservabilityService
|
|
3
|
+
*
|
|
4
|
+
* Central service that assembles ErrorEvents and dispatches them to the
|
|
5
|
+
* configured ErrorReporter. Error capture happens through the
|
|
6
|
+
* ObservabilityInterceptor which calls captureFromContext() directly.
|
|
7
|
+
*
|
|
8
|
+
* Exposes addBreadcrumb() and captureError() for manual instrumentation
|
|
9
|
+
* throughout the application.
|
|
10
|
+
*/
|
|
11
|
+
import type { Context } from "../context";
|
|
12
|
+
import { BreadcrumbCollector } from "./breadcrumbs";
|
|
13
|
+
import type { BreadcrumbEntry, ErrorEvent, MessageEvent, ObservabilityOptions } from "./types";
|
|
14
|
+
/**
|
|
15
|
+
* ObservabilityService manages error reporting and breadcrumb tracking.
|
|
16
|
+
*
|
|
17
|
+
* Use ObservabilityModule.setup(app, options) to wire it to the application,
|
|
18
|
+
* or instantiate directly for contexts where the full module isn't needed.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```typescript
|
|
22
|
+
* // Via ObservabilityModule (recommended):
|
|
23
|
+
* const obs = ObservabilityModule.setup(app, {
|
|
24
|
+
* reporter: new SentryReporter(),
|
|
25
|
+
* });
|
|
26
|
+
*
|
|
27
|
+
* // Manual breadcrumb:
|
|
28
|
+
* obs.addBreadcrumb({
|
|
29
|
+
* type: 'custom',
|
|
30
|
+
* level: 'info',
|
|
31
|
+
* message: 'User completed checkout',
|
|
32
|
+
* data: { orderId: '123' }
|
|
33
|
+
* });
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export declare class ObservabilityService {
|
|
37
|
+
private readonly reporter;
|
|
38
|
+
private readonly breadcrumbs;
|
|
39
|
+
private readonly options;
|
|
40
|
+
constructor(options: ObservabilityOptions);
|
|
41
|
+
/**
|
|
42
|
+
* Called by ObservabilityInterceptor when an HTTP route throws.
|
|
43
|
+
* Assembles a full ErrorEvent with request context and dispatches it.
|
|
44
|
+
* Non-blocking — never delays the HTTP response.
|
|
45
|
+
*/
|
|
46
|
+
captureFromContext(context: Context, error: Error): void;
|
|
47
|
+
/**
|
|
48
|
+
* Register flush on process shutdown.
|
|
49
|
+
* Called automatically by ObservabilityModule.setup().
|
|
50
|
+
*/
|
|
51
|
+
registerShutdown(): void;
|
|
52
|
+
/**
|
|
53
|
+
* Manually capture an error outside the HTTP pipeline.
|
|
54
|
+
* Useful inside background jobs, event listeners, scheduled tasks.
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* obs.captureError(new Error('Payment failed'), 'error');
|
|
58
|
+
*/
|
|
59
|
+
captureError(error: Error, level?: ErrorEvent["level"]): void;
|
|
60
|
+
/**
|
|
61
|
+
* Manually capture a non-error message.
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* obs.captureMessage('Deployment completed', 'info', { version: '2.0.0' });
|
|
65
|
+
*/
|
|
66
|
+
captureMessage(message: string, level?: MessageEvent["level"], extra?: Record<string, unknown>): void;
|
|
67
|
+
/**
|
|
68
|
+
* Add a breadcrumb to the ring buffer.
|
|
69
|
+
* Breadcrumbs recorded here are included in the next error event.
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* obs.addBreadcrumb({
|
|
73
|
+
* type: 'custom',
|
|
74
|
+
* level: 'info',
|
|
75
|
+
* message: 'Fetched user from database',
|
|
76
|
+
* data: { userId: 42 }
|
|
77
|
+
* });
|
|
78
|
+
*/
|
|
79
|
+
addBreadcrumb(entry: Omit<BreadcrumbEntry, "timestamp"> & {
|
|
80
|
+
timestamp?: Date;
|
|
81
|
+
}): void;
|
|
82
|
+
/**
|
|
83
|
+
* Access the underlying BreadcrumbCollector.
|
|
84
|
+
* Used internally by ObservabilityInterceptor.
|
|
85
|
+
*/
|
|
86
|
+
getBreadcrumbCollector(): BreadcrumbCollector;
|
|
87
|
+
private assembleEvent;
|
|
88
|
+
private shouldIgnore;
|
|
89
|
+
private dispatchAsync;
|
|
90
|
+
private dispatchMessageAsync;
|
|
91
|
+
private setupUnhandledCapture;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Extract traceId and spanId from the W3C traceparent header.
|
|
95
|
+
* Format: 00-<traceId>-<spanId>-<flags>
|
|
96
|
+
*/
|
|
97
|
+
export declare function extractTraceContext(context: Context): {
|
|
98
|
+
traceId?: string;
|
|
99
|
+
spanId?: string;
|
|
100
|
+
};
|
|
101
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/observability/service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAkB,MAAM,eAAe,CAAC;AACpE,OAAO,KAAK,EACX,eAAe,EACf,UAAU,EAGV,YAAY,EACZ,oBAAoB,EACpB,MAAM,SAAS,CAAC;AAoCjB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,oBAAoB;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsB;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAMtB;gBAEU,OAAO,EAAE,oBAAoB;IAkBzC;;;;OAIG;IACH,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAYxD;;;OAGG;IACH,gBAAgB,IAAI,IAAI;IAkBxB;;;;;;OAMG;IACH,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,GAAE,UAAU,CAAC,OAAO,CAAW,GAAG,IAAI;IAMtE;;;;;OAKG;IACH,cAAc,CACb,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,YAAY,CAAC,OAAO,CAAU,EACrC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,IAAI;IAYP;;;;;;;;;;;OAWG;IACH,aAAa,CACZ,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,GAAG;QAAE,SAAS,CAAC,EAAE,IAAI,CAAA;KAAE,GAC9D,IAAI;IAOP;;;OAGG;IACH,sBAAsB,IAAI,mBAAmB;IAM7C,OAAO,CAAC,aAAa;IA+BrB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,qBAAqB;CAa7B;AAID;;;GAGG;AACH,wBAAgB,mBAAmB,CAClC,OAAO,EAAE,OAAO,GACd;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAMvC"}
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ObservabilityService
|
|
3
|
+
*
|
|
4
|
+
* Central service that assembles ErrorEvents and dispatches them to the
|
|
5
|
+
* configured ErrorReporter. Error capture happens through the
|
|
6
|
+
* ObservabilityInterceptor which calls captureFromContext() directly.
|
|
7
|
+
*
|
|
8
|
+
* Exposes addBreadcrumb() and captureError() for manual instrumentation
|
|
9
|
+
* throughout the application.
|
|
10
|
+
*/
|
|
11
|
+
import { BreadcrumbCollector, httpBreadcrumb } from "./breadcrumbs";
|
|
12
|
+
// ============= Helpers =============
|
|
13
|
+
function generateId() {
|
|
14
|
+
const bytes = new Uint8Array(16);
|
|
15
|
+
crypto.getRandomValues(bytes);
|
|
16
|
+
return Array.from(bytes)
|
|
17
|
+
.map((b) => b.toString(16).padStart(2, "0"))
|
|
18
|
+
.join("");
|
|
19
|
+
}
|
|
20
|
+
function extractSafeHeaders(req) {
|
|
21
|
+
const safe = {};
|
|
22
|
+
const sensitiveHeaders = new Set([
|
|
23
|
+
"authorization",
|
|
24
|
+
"cookie",
|
|
25
|
+
"x-api-key",
|
|
26
|
+
"x-auth-token",
|
|
27
|
+
"proxy-authorization",
|
|
28
|
+
]);
|
|
29
|
+
req.headers.forEach((value, key) => {
|
|
30
|
+
if (!sensitiveHeaders.has(key.toLowerCase())) {
|
|
31
|
+
safe[key] = value;
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
return safe;
|
|
35
|
+
}
|
|
36
|
+
function getStatusCode(error) {
|
|
37
|
+
const e = error;
|
|
38
|
+
return e.statusCode ?? e.status;
|
|
39
|
+
}
|
|
40
|
+
// ============= Service =============
|
|
41
|
+
/**
|
|
42
|
+
* ObservabilityService manages error reporting and breadcrumb tracking.
|
|
43
|
+
*
|
|
44
|
+
* Use ObservabilityModule.setup(app, options) to wire it to the application,
|
|
45
|
+
* or instantiate directly for contexts where the full module isn't needed.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```typescript
|
|
49
|
+
* // Via ObservabilityModule (recommended):
|
|
50
|
+
* const obs = ObservabilityModule.setup(app, {
|
|
51
|
+
* reporter: new SentryReporter(),
|
|
52
|
+
* });
|
|
53
|
+
*
|
|
54
|
+
* // Manual breadcrumb:
|
|
55
|
+
* obs.addBreadcrumb({
|
|
56
|
+
* type: 'custom',
|
|
57
|
+
* level: 'info',
|
|
58
|
+
* message: 'User completed checkout',
|
|
59
|
+
* data: { orderId: '123' }
|
|
60
|
+
* });
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
export class ObservabilityService {
|
|
64
|
+
reporter;
|
|
65
|
+
breadcrumbs;
|
|
66
|
+
options;
|
|
67
|
+
constructor(options) {
|
|
68
|
+
this.reporter = options.reporter;
|
|
69
|
+
this.options = {
|
|
70
|
+
breadcrumbsSize: options.breadcrumbsSize ?? 20,
|
|
71
|
+
ignoreErrors: options.ignoreErrors ?? [],
|
|
72
|
+
ignoreStatusCodes: options.ignoreStatusCodes ?? [],
|
|
73
|
+
tags: options.tags ?? {},
|
|
74
|
+
captureUnhandled: options.captureUnhandled ?? false,
|
|
75
|
+
};
|
|
76
|
+
this.breadcrumbs = new BreadcrumbCollector(this.options.breadcrumbsSize);
|
|
77
|
+
if (this.options.captureUnhandled) {
|
|
78
|
+
this.setupUnhandledCapture();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
// ============= Framework Integration =============
|
|
82
|
+
/**
|
|
83
|
+
* Called by ObservabilityInterceptor when an HTTP route throws.
|
|
84
|
+
* Assembles a full ErrorEvent with request context and dispatches it.
|
|
85
|
+
* Non-blocking — never delays the HTTP response.
|
|
86
|
+
*/
|
|
87
|
+
captureFromContext(context, error) {
|
|
88
|
+
if (this.shouldIgnore(error))
|
|
89
|
+
return;
|
|
90
|
+
// Add a breadcrumb for the failed request entry
|
|
91
|
+
this.breadcrumbs.add(httpBreadcrumb(context.method, context.path, undefined));
|
|
92
|
+
const event = this.assembleEvent(error, "error", context);
|
|
93
|
+
this.dispatchAsync(event);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Register flush on process shutdown.
|
|
97
|
+
* Called automatically by ObservabilityModule.setup().
|
|
98
|
+
*/
|
|
99
|
+
registerShutdown() {
|
|
100
|
+
const flush = async () => {
|
|
101
|
+
if (this.reporter.flush) {
|
|
102
|
+
try {
|
|
103
|
+
await this.reporter.flush();
|
|
104
|
+
}
|
|
105
|
+
catch (err) {
|
|
106
|
+
console.error("[ObservabilityService] Reporter flush failed:", err);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
process.once("beforeExit", () => {
|
|
111
|
+
flush().catch(console.error);
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
// ============= Public API =============
|
|
115
|
+
/**
|
|
116
|
+
* Manually capture an error outside the HTTP pipeline.
|
|
117
|
+
* Useful inside background jobs, event listeners, scheduled tasks.
|
|
118
|
+
*
|
|
119
|
+
* @example
|
|
120
|
+
* obs.captureError(new Error('Payment failed'), 'error');
|
|
121
|
+
*/
|
|
122
|
+
captureError(error, level = "error") {
|
|
123
|
+
if (this.shouldIgnore(error))
|
|
124
|
+
return;
|
|
125
|
+
const event = this.assembleEvent(error, level);
|
|
126
|
+
this.dispatchAsync(event);
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Manually capture a non-error message.
|
|
130
|
+
*
|
|
131
|
+
* @example
|
|
132
|
+
* obs.captureMessage('Deployment completed', 'info', { version: '2.0.0' });
|
|
133
|
+
*/
|
|
134
|
+
captureMessage(message, level = "info", extra) {
|
|
135
|
+
if (!this.reporter.captureMessage)
|
|
136
|
+
return;
|
|
137
|
+
const event = {
|
|
138
|
+
id: generateId(),
|
|
139
|
+
timestamp: new Date(),
|
|
140
|
+
message,
|
|
141
|
+
level,
|
|
142
|
+
extra,
|
|
143
|
+
};
|
|
144
|
+
this.dispatchMessageAsync(event);
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Add a breadcrumb to the ring buffer.
|
|
148
|
+
* Breadcrumbs recorded here are included in the next error event.
|
|
149
|
+
*
|
|
150
|
+
* @example
|
|
151
|
+
* obs.addBreadcrumb({
|
|
152
|
+
* type: 'custom',
|
|
153
|
+
* level: 'info',
|
|
154
|
+
* message: 'Fetched user from database',
|
|
155
|
+
* data: { userId: 42 }
|
|
156
|
+
* });
|
|
157
|
+
*/
|
|
158
|
+
addBreadcrumb(entry) {
|
|
159
|
+
this.breadcrumbs.add({
|
|
160
|
+
...entry,
|
|
161
|
+
timestamp: entry.timestamp ?? new Date(),
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Access the underlying BreadcrumbCollector.
|
|
166
|
+
* Used internally by ObservabilityInterceptor.
|
|
167
|
+
*/
|
|
168
|
+
getBreadcrumbCollector() {
|
|
169
|
+
return this.breadcrumbs;
|
|
170
|
+
}
|
|
171
|
+
// ============= Private =============
|
|
172
|
+
assembleEvent(error, level, context) {
|
|
173
|
+
const user = context?.get("user");
|
|
174
|
+
const traceId = context?.get("traceId") ?? undefined;
|
|
175
|
+
const spanId = context?.get("spanId") ?? undefined;
|
|
176
|
+
return {
|
|
177
|
+
id: generateId(),
|
|
178
|
+
timestamp: new Date(),
|
|
179
|
+
error,
|
|
180
|
+
level,
|
|
181
|
+
request: context
|
|
182
|
+
? {
|
|
183
|
+
method: context.method,
|
|
184
|
+
path: context.path,
|
|
185
|
+
headers: extractSafeHeaders(context.req),
|
|
186
|
+
ip: context.ip ?? "",
|
|
187
|
+
userAgent: context.getHeader("user-agent"),
|
|
188
|
+
}
|
|
189
|
+
: undefined,
|
|
190
|
+
traceId,
|
|
191
|
+
spanId,
|
|
192
|
+
user: user ?? undefined,
|
|
193
|
+
breadcrumbs: this.breadcrumbs.getAll(),
|
|
194
|
+
tags: { ...this.options.tags },
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
shouldIgnore(error) {
|
|
198
|
+
for (const ErrorClass of this.options.ignoreErrors) {
|
|
199
|
+
if (error instanceof ErrorClass)
|
|
200
|
+
return true;
|
|
201
|
+
}
|
|
202
|
+
if (this.options.ignoreStatusCodes.length > 0) {
|
|
203
|
+
const code = getStatusCode(error);
|
|
204
|
+
if (code !== undefined && this.options.ignoreStatusCodes.includes(code)) {
|
|
205
|
+
return true;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
return false;
|
|
209
|
+
}
|
|
210
|
+
dispatchAsync(event) {
|
|
211
|
+
// Fire-and-forget — never blocks the HTTP response
|
|
212
|
+
Promise.resolve(this.reporter.captureError(event)).catch((err) => {
|
|
213
|
+
console.error("[ObservabilityService] Reporter.captureError failed:", err);
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
dispatchMessageAsync(event) {
|
|
217
|
+
if (!this.reporter.captureMessage)
|
|
218
|
+
return;
|
|
219
|
+
Promise.resolve(this.reporter.captureMessage(event)).catch((err) => {
|
|
220
|
+
console.error("[ObservabilityService] Reporter.captureMessage failed:", err);
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
setupUnhandledCapture() {
|
|
224
|
+
process.on("unhandledRejection", (reason) => {
|
|
225
|
+
const error = reason instanceof Error
|
|
226
|
+
? reason
|
|
227
|
+
: new Error(String(reason ?? "Unhandled rejection"));
|
|
228
|
+
this.captureError(error, "error");
|
|
229
|
+
});
|
|
230
|
+
process.on("uncaughtException", (error) => {
|
|
231
|
+
this.captureError(error, "fatal");
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
// ============= Trace Context Extraction =============
|
|
236
|
+
/**
|
|
237
|
+
* Extract traceId and spanId from the W3C traceparent header.
|
|
238
|
+
* Format: 00-<traceId>-<spanId>-<flags>
|
|
239
|
+
*/
|
|
240
|
+
export function extractTraceContext(context) {
|
|
241
|
+
const traceparent = context.getHeader("traceparent");
|
|
242
|
+
if (!traceparent)
|
|
243
|
+
return {};
|
|
244
|
+
const parts = traceparent.split("-");
|
|
245
|
+
if (parts.length < 4)
|
|
246
|
+
return {};
|
|
247
|
+
return { traceId: parts[1], spanId: parts[2] };
|
|
248
|
+
}
|
|
249
|
+
//# sourceMappingURL=service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/observability/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Trace ID generation helpers
|
|
3
|
+
*
|
|
4
|
+
* Generates W3C TraceContext-compatible IDs using the Web Crypto API.
|
|
5
|
+
* These are intentionally kept separate from src/telemetry to avoid
|
|
6
|
+
* coupling the observability module to the OTLP tracing module.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Generate a W3C-compatible trace ID (32 hex characters / 16 bytes)
|
|
10
|
+
*/
|
|
11
|
+
export declare function generateTraceId(): string;
|
|
12
|
+
/**
|
|
13
|
+
* Generate a W3C-compatible span ID (16 hex characters / 8 bytes)
|
|
14
|
+
*/
|
|
15
|
+
export declare function generateSpanId(): string;
|
|
16
|
+
/**
|
|
17
|
+
* Build a W3C `traceparent` header value from traceId + spanId.
|
|
18
|
+
* Format: 00-<traceId>-<spanId>-01
|
|
19
|
+
*/
|
|
20
|
+
export declare function buildTraceparent(traceId: string, spanId: string): string;
|
|
21
|
+
//# sourceMappingURL=trace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../src/observability/trace.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAMxC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAMvC;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAExE"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Trace ID generation helpers
|
|
3
|
+
*
|
|
4
|
+
* Generates W3C TraceContext-compatible IDs using the Web Crypto API.
|
|
5
|
+
* These are intentionally kept separate from src/telemetry to avoid
|
|
6
|
+
* coupling the observability module to the OTLP tracing module.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Generate a W3C-compatible trace ID (32 hex characters / 16 bytes)
|
|
10
|
+
*/
|
|
11
|
+
export function generateTraceId() {
|
|
12
|
+
const bytes = new Uint8Array(16);
|
|
13
|
+
crypto.getRandomValues(bytes);
|
|
14
|
+
return Array.from(bytes)
|
|
15
|
+
.map((b) => b.toString(16).padStart(2, "0"))
|
|
16
|
+
.join("");
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Generate a W3C-compatible span ID (16 hex characters / 8 bytes)
|
|
20
|
+
*/
|
|
21
|
+
export function generateSpanId() {
|
|
22
|
+
const bytes = new Uint8Array(8);
|
|
23
|
+
crypto.getRandomValues(bytes);
|
|
24
|
+
return Array.from(bytes)
|
|
25
|
+
.map((b) => b.toString(16).padStart(2, "0"))
|
|
26
|
+
.join("");
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Build a W3C `traceparent` header value from traceId + spanId.
|
|
30
|
+
* Format: 00-<traceId>-<spanId>-01
|
|
31
|
+
*/
|
|
32
|
+
export function buildTraceparent(traceId, spanId) {
|
|
33
|
+
return `00-${traceId}-${spanId}-01`;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=trace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace.js","sourceRoot":"","sources":["../../src/observability/trace.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,MAAM,UAAU,eAAe;IAC9B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IACjC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;SACtB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAC3C,IAAI,CAAC,EAAE,CAAC,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC7B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;SACtB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAC3C,IAAI,CAAC,EAAE,CAAC,CAAC;AACZ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,MAAc;IAC/D,OAAO,MAAM,OAAO,IAAI,MAAM,KAAK,CAAC;AACrC,CAAC"}
|