@buenojs/bueno 0.8.5 → 0.8.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.local.json +9 -0
- package/README.md +259 -15
- package/dist/cache/index.d.ts +187 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cli/bin.d.ts +8 -0
- package/dist/cli/bin.d.ts.map +1 -0
- package/dist/cli/bin.js +484 -156
- package/dist/cli/commands/add-frontend.d.ts +7 -0
- package/dist/cli/commands/add-frontend.d.ts.map +1 -0
- package/dist/cli/commands/build.d.ts +7 -0
- package/dist/cli/commands/build.d.ts.map +1 -0
- package/dist/cli/commands/dev.d.ts +7 -0
- package/dist/cli/commands/dev.d.ts.map +1 -0
- package/dist/cli/commands/generate.d.ts +7 -0
- package/dist/cli/commands/generate.d.ts.map +1 -0
- package/dist/cli/commands/help.d.ts +7 -0
- package/dist/cli/commands/help.d.ts.map +1 -0
- package/dist/cli/commands/index.d.ts +59 -0
- package/dist/cli/commands/index.d.ts.map +1 -0
- package/dist/cli/commands/migration.d.ts +7 -0
- package/dist/cli/commands/migration.d.ts.map +1 -0
- package/dist/cli/commands/new.d.ts +7 -0
- package/dist/cli/commands/new.d.ts.map +1 -0
- package/dist/cli/commands/start.d.ts +7 -0
- package/dist/cli/commands/start.d.ts.map +1 -0
- package/dist/cli/core/args.d.ts +61 -0
- package/dist/cli/core/args.d.ts.map +1 -0
- package/dist/cli/core/console.d.ts +135 -0
- package/dist/cli/core/console.d.ts.map +1 -0
- package/dist/cli/core/index.d.ts +10 -0
- package/dist/cli/core/index.d.ts.map +1 -0
- package/dist/cli/core/prompt.d.ts +63 -0
- package/dist/cli/core/prompt.d.ts.map +1 -0
- package/dist/cli/core/spinner.d.ts +111 -0
- package/dist/cli/core/spinner.d.ts.map +1 -0
- package/dist/cli/index.d.ts +47 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/templates/database/index.d.ts +24 -0
- package/dist/cli/templates/database/index.d.ts.map +1 -0
- package/dist/cli/templates/database/mysql.d.ts +6 -0
- package/dist/cli/templates/database/mysql.d.ts.map +1 -0
- package/dist/cli/templates/database/none.d.ts +8 -0
- package/dist/cli/templates/database/none.d.ts.map +1 -0
- package/dist/cli/templates/database/postgresql.d.ts +6 -0
- package/dist/cli/templates/database/postgresql.d.ts.map +1 -0
- package/dist/cli/templates/database/sqlite.d.ts +6 -0
- package/dist/cli/templates/database/sqlite.d.ts.map +1 -0
- package/dist/cli/templates/deploy.d.ts +41 -0
- package/dist/cli/templates/deploy.d.ts.map +1 -0
- package/dist/cli/templates/docker.d.ts +30 -0
- package/dist/cli/templates/docker.d.ts.map +1 -0
- package/dist/cli/templates/frontend/index.d.ts +25 -0
- package/dist/cli/templates/frontend/index.d.ts.map +1 -0
- package/dist/cli/templates/frontend/none.d.ts +8 -0
- package/dist/cli/templates/frontend/none.d.ts.map +1 -0
- package/dist/cli/templates/frontend/react.d.ts +6 -0
- package/dist/cli/templates/frontend/react.d.ts.map +1 -0
- package/dist/cli/templates/frontend/solid.d.ts +6 -0
- package/dist/cli/templates/frontend/solid.d.ts.map +1 -0
- package/dist/cli/templates/frontend/svelte.d.ts +6 -0
- package/dist/cli/templates/frontend/svelte.d.ts.map +1 -0
- package/dist/cli/templates/frontend/vue.d.ts +6 -0
- package/dist/cli/templates/frontend/vue.d.ts.map +1 -0
- package/dist/cli/templates/generators/index.d.ts +29 -0
- package/dist/cli/templates/generators/index.d.ts.map +1 -0
- package/dist/cli/templates/generators/types.d.ts +32 -0
- package/dist/cli/templates/generators/types.d.ts.map +1 -0
- package/dist/cli/templates/index.d.ts +12 -0
- package/dist/cli/templates/index.d.ts.map +1 -0
- package/dist/cli/templates/project/api.d.ts +6 -0
- package/dist/cli/templates/project/api.d.ts.map +1 -0
- package/dist/cli/templates/project/default.d.ts +6 -0
- package/dist/cli/templates/project/default.d.ts.map +1 -0
- package/dist/cli/templates/project/fullstack.d.ts +14 -0
- package/dist/cli/templates/project/fullstack.d.ts.map +1 -0
- package/dist/cli/templates/project/index.d.ts +26 -0
- package/dist/cli/templates/project/index.d.ts.map +1 -0
- package/dist/cli/templates/project/minimal.d.ts +6 -0
- package/dist/cli/templates/project/minimal.d.ts.map +1 -0
- package/dist/cli/templates/project/types.d.ts +80 -0
- package/dist/cli/templates/project/types.d.ts.map +1 -0
- package/dist/cli/templates/project/website.d.ts +8 -0
- package/dist/cli/templates/project/website.d.ts.map +1 -0
- package/dist/cli/utils/fs.d.ts +137 -0
- package/dist/cli/utils/fs.d.ts.map +1 -0
- package/dist/cli/utils/index.d.ts +9 -0
- package/dist/cli/utils/index.d.ts.map +1 -0
- package/dist/cli/utils/strings.d.ts +86 -0
- package/dist/cli/utils/strings.d.ts.map +1 -0
- package/dist/cli/utils/version.d.ts +15 -0
- package/dist/cli/utils/version.d.ts.map +1 -0
- package/dist/config/env-validation.d.ts +49 -0
- package/dist/config/env-validation.d.ts.map +1 -0
- package/dist/config/env.d.ts +167 -0
- package/dist/config/env.d.ts.map +1 -0
- package/dist/config/index.d.ts +168 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/loader.d.ts +81 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/merge.d.ts +66 -0
- package/dist/config/merge.d.ts.map +1 -0
- package/dist/config/types.d.ts +322 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/validation.d.ts +100 -0
- package/dist/config/validation.d.ts.map +1 -0
- package/dist/container/forward-ref.d.ts +116 -0
- package/dist/container/forward-ref.d.ts.map +1 -0
- package/dist/container/index.d.ts +95 -0
- package/dist/container/index.d.ts.map +1 -0
- package/dist/container/index.js +26 -3
- package/dist/context/index.d.ts +143 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/database/index.d.ts +219 -0
- package/dist/database/index.d.ts.map +1 -0
- package/dist/database/migrations/index.d.ts +146 -0
- package/dist/database/migrations/index.d.ts.map +1 -0
- package/dist/database/orm/builder.d.ts +122 -0
- package/dist/database/orm/builder.d.ts.map +1 -0
- package/dist/database/orm/casts/index.d.ts +16 -0
- package/dist/database/orm/casts/index.d.ts.map +1 -0
- package/dist/database/orm/casts/types.d.ts +16 -0
- package/dist/database/orm/casts/types.d.ts.map +1 -0
- package/dist/database/orm/compiler.d.ts +90 -0
- package/dist/database/orm/compiler.d.ts.map +1 -0
- package/dist/database/orm/hooks/index.d.ts +53 -0
- package/dist/database/orm/hooks/index.d.ts.map +1 -0
- package/dist/database/orm/index.d.ts +21 -0
- package/dist/database/orm/index.d.ts.map +1 -0
- package/dist/database/orm/model-registry.d.ts +33 -0
- package/dist/database/orm/model-registry.d.ts.map +1 -0
- package/dist/database/orm/model.d.ts +245 -0
- package/dist/database/orm/model.d.ts.map +1 -0
- package/dist/database/orm/relationships/base.d.ts +69 -0
- package/dist/database/orm/relationships/base.d.ts.map +1 -0
- package/dist/database/orm/relationships/belongs-to-many.d.ts +47 -0
- package/dist/database/orm/relationships/belongs-to-many.d.ts.map +1 -0
- package/dist/database/orm/relationships/belongs-to.d.ts +17 -0
- package/dist/database/orm/relationships/belongs-to.d.ts.map +1 -0
- package/dist/database/orm/relationships/has-many.d.ts +14 -0
- package/dist/database/orm/relationships/has-many.d.ts.map +1 -0
- package/dist/database/orm/relationships/has-one.d.ts +14 -0
- package/dist/database/orm/relationships/has-one.d.ts.map +1 -0
- package/dist/database/orm/relationships/index.d.ts +10 -0
- package/dist/database/orm/relationships/index.d.ts.map +1 -0
- package/dist/database/orm/scopes/index.d.ts +36 -0
- package/dist/database/orm/scopes/index.d.ts.map +1 -0
- package/dist/database/schema/index.d.ts +155 -0
- package/dist/database/schema/index.d.ts.map +1 -0
- package/dist/events/__tests__/event-system.test.d.ts +2 -0
- package/dist/events/__tests__/event-system.test.d.ts.map +1 -0
- package/dist/events/config.d.ts +16 -0
- package/dist/events/config.d.ts.map +1 -0
- package/dist/events/example-usage.d.ts +12 -0
- package/dist/events/example-usage.d.ts.map +1 -0
- package/dist/events/index.d.ts +27 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/manager.d.ts +33 -0
- package/dist/events/manager.d.ts.map +1 -0
- package/dist/events/registry.d.ts +31 -0
- package/dist/events/registry.d.ts.map +1 -0
- package/dist/events/types.d.ts +105 -0
- package/dist/events/types.d.ts.map +1 -0
- package/dist/frontend/api-routes.d.ts +189 -0
- package/dist/frontend/api-routes.d.ts.map +1 -0
- package/dist/frontend/bundler.d.ts +99 -0
- package/dist/frontend/bundler.d.ts.map +1 -0
- package/dist/frontend/console-client.d.ts +11 -0
- package/dist/frontend/console-client.d.ts.map +1 -0
- package/dist/frontend/console-stream.d.ts +138 -0
- package/dist/frontend/console-stream.d.ts.map +1 -0
- package/dist/frontend/dev-server.d.ts +174 -0
- package/dist/frontend/dev-server.d.ts.map +1 -0
- package/dist/frontend/file-router.d.ts +170 -0
- package/dist/frontend/file-router.d.ts.map +1 -0
- package/dist/frontend/frameworks/index.d.ts +41 -0
- package/dist/frontend/frameworks/index.d.ts.map +1 -0
- package/dist/frontend/frameworks/react.d.ts +32 -0
- package/dist/frontend/frameworks/react.d.ts.map +1 -0
- package/dist/frontend/frameworks/solid.d.ts +42 -0
- package/dist/frontend/frameworks/solid.d.ts.map +1 -0
- package/dist/frontend/frameworks/svelte.d.ts +57 -0
- package/dist/frontend/frameworks/svelte.d.ts.map +1 -0
- package/dist/frontend/frameworks/vue.d.ts +36 -0
- package/dist/frontend/frameworks/vue.d.ts.map +1 -0
- package/dist/frontend/hmr-client.d.ts +22 -0
- package/dist/frontend/hmr-client.d.ts.map +1 -0
- package/dist/frontend/hmr.d.ts +185 -0
- package/dist/frontend/hmr.d.ts.map +1 -0
- package/dist/frontend/index.d.ts +34 -0
- package/dist/frontend/index.d.ts.map +1 -0
- package/dist/frontend/islands.d.ts +135 -0
- package/dist/frontend/islands.d.ts.map +1 -0
- package/dist/frontend/isr.d.ts +143 -0
- package/dist/frontend/isr.d.ts.map +1 -0
- package/dist/frontend/layout.d.ts +140 -0
- package/dist/frontend/layout.d.ts.map +1 -0
- package/dist/frontend/ssr/react.d.ts +118 -0
- package/dist/frontend/ssr/react.d.ts.map +1 -0
- package/dist/frontend/ssr/solid.d.ts +141 -0
- package/dist/frontend/ssr/solid.d.ts.map +1 -0
- package/dist/frontend/ssr/svelte.d.ts +158 -0
- package/dist/frontend/ssr/svelte.d.ts.map +1 -0
- package/dist/frontend/ssr/vue.d.ts +161 -0
- package/dist/frontend/ssr/vue.d.ts.map +1 -0
- package/dist/frontend/ssr.d.ts +147 -0
- package/dist/frontend/ssr.d.ts.map +1 -0
- package/dist/frontend/types.d.ts +1902 -0
- package/dist/frontend/types.d.ts.map +1 -0
- package/dist/graphql/built-in-engine.d.ts +36 -0
- package/dist/graphql/built-in-engine.d.ts.map +1 -0
- package/dist/graphql/context-builder.d.ts +44 -0
- package/dist/graphql/context-builder.d.ts.map +1 -0
- package/dist/graphql/decorators.d.ts +162 -0
- package/dist/graphql/decorators.d.ts.map +1 -0
- package/dist/graphql/execution-pipeline.d.ts +67 -0
- package/dist/graphql/execution-pipeline.d.ts.map +1 -0
- package/dist/graphql/graphql-module.d.ts +70 -0
- package/dist/graphql/graphql-module.d.ts.map +1 -0
- package/dist/graphql/index.d.ts +48 -0
- package/dist/graphql/index.d.ts.map +1 -0
- package/dist/graphql/index.js +2156 -0
- package/dist/graphql/metadata.d.ts +37 -0
- package/dist/graphql/metadata.d.ts.map +1 -0
- package/dist/graphql/schema-builder.d.ts +34 -0
- package/dist/graphql/schema-builder.d.ts.map +1 -0
- package/dist/graphql/subscription-handler.d.ts +47 -0
- package/dist/graphql/subscription-handler.d.ts.map +1 -0
- package/dist/graphql/types.d.ts +252 -0
- package/dist/graphql/types.d.ts.map +1 -0
- package/dist/health/index.d.ts +176 -0
- package/dist/health/index.d.ts.map +1 -0
- package/dist/i18n/engine.d.ts +105 -0
- package/dist/i18n/engine.d.ts.map +1 -0
- package/dist/i18n/index.d.ts +13 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/loader.d.ts +79 -0
- package/dist/i18n/loader.d.ts.map +1 -0
- package/dist/i18n/middleware.d.ts +96 -0
- package/dist/i18n/middleware.d.ts.map +1 -0
- package/dist/i18n/negotiator.d.ts +84 -0
- package/dist/i18n/negotiator.d.ts.map +1 -0
- package/dist/i18n/types.d.ts +129 -0
- package/dist/i18n/types.d.ts.map +1 -0
- package/dist/index.d.ts +48 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +520 -434
- package/dist/jobs/drivers/memory.d.ts +38 -0
- package/dist/jobs/drivers/memory.d.ts.map +1 -0
- package/dist/jobs/drivers/redis.d.ts +34 -0
- package/dist/jobs/drivers/redis.d.ts.map +1 -0
- package/dist/jobs/index.d.ts +12 -0
- package/dist/jobs/index.d.ts.map +1 -0
- package/dist/jobs/queue.d.ts +93 -0
- package/dist/jobs/queue.d.ts.map +1 -0
- package/dist/jobs/types.d.ts +193 -0
- package/dist/jobs/types.d.ts.map +1 -0
- package/dist/jobs/worker.d.ts +91 -0
- package/dist/jobs/worker.d.ts.map +1 -0
- package/dist/lock/index.d.ts +141 -0
- package/dist/lock/index.d.ts.map +1 -0
- package/dist/logger/index.d.ts +156 -0
- package/dist/logger/index.d.ts.map +1 -0
- package/dist/logger/transports/index.d.ts +371 -0
- package/dist/logger/transports/index.d.ts.map +1 -0
- package/dist/metrics/index.d.ts +163 -0
- package/dist/metrics/index.d.ts.map +1 -0
- package/dist/middleware/built-in.d.ts +50 -0
- package/dist/middleware/built-in.d.ts.map +1 -0
- package/dist/middleware/index.d.ts +40 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/migrations/index.d.ts +10 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/modules/filters.d.ts +150 -0
- package/dist/modules/filters.d.ts.map +1 -0
- package/dist/modules/guards.d.ts +188 -0
- package/dist/modules/guards.d.ts.map +1 -0
- package/dist/modules/index.d.ts +266 -0
- package/dist/modules/index.d.ts.map +1 -0
- package/dist/modules/index.js +514 -449
- package/dist/modules/interceptors.d.ts +242 -0
- package/dist/modules/interceptors.d.ts.map +1 -0
- package/dist/modules/lazy.d.ts +187 -0
- package/dist/modules/lazy.d.ts.map +1 -0
- package/dist/modules/lifecycle.d.ts +221 -0
- package/dist/modules/lifecycle.d.ts.map +1 -0
- package/dist/modules/metadata.d.ts +32 -0
- package/dist/modules/metadata.d.ts.map +1 -0
- package/dist/modules/pipes.d.ts +287 -0
- package/dist/modules/pipes.d.ts.map +1 -0
- package/dist/notification/channels/base.d.ts +32 -0
- package/dist/notification/channels/base.d.ts.map +1 -0
- package/dist/notification/channels/email.d.ts +37 -0
- package/dist/notification/channels/email.d.ts.map +1 -0
- package/dist/notification/channels/push.d.ts +37 -0
- package/dist/notification/channels/push.d.ts.map +1 -0
- package/dist/notification/channels/sms.d.ts +37 -0
- package/dist/notification/channels/sms.d.ts.map +1 -0
- package/dist/notification/channels/whatsapp.d.ts +37 -0
- package/dist/notification/channels/whatsapp.d.ts.map +1 -0
- package/dist/notification/index.d.ts +15 -0
- package/dist/notification/index.d.ts.map +1 -0
- package/dist/notification/service.d.ts +100 -0
- package/dist/notification/service.d.ts.map +1 -0
- package/dist/notification/types.d.ts +253 -0
- package/dist/notification/types.d.ts.map +1 -0
- package/dist/observability/__tests__/observability.test.d.ts +2 -0
- package/dist/observability/__tests__/observability.test.d.ts.map +1 -0
- package/dist/observability/breadcrumbs.d.ts +48 -0
- package/dist/observability/breadcrumbs.d.ts.map +1 -0
- package/dist/observability/index.d.ts +95 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/interceptor.d.ts +19 -0
- package/dist/observability/interceptor.d.ts.map +1 -0
- package/dist/observability/service.d.ts +101 -0
- package/dist/observability/service.d.ts.map +1 -0
- package/dist/observability/trace.d.ts +21 -0
- package/dist/observability/trace.d.ts.map +1 -0
- package/dist/observability/types.d.ts +172 -0
- package/dist/observability/types.d.ts.map +1 -0
- package/dist/openapi/__tests__/decorators.test.d.ts +2 -0
- package/dist/openapi/__tests__/decorators.test.d.ts.map +1 -0
- package/dist/openapi/__tests__/document-builder.test.d.ts +2 -0
- package/dist/openapi/__tests__/document-builder.test.d.ts.map +1 -0
- package/dist/openapi/__tests__/route-scanner.test.d.ts +2 -0
- package/dist/openapi/__tests__/route-scanner.test.d.ts.map +1 -0
- package/dist/openapi/__tests__/schema-generator.test.d.ts +2 -0
- package/dist/openapi/__tests__/schema-generator.test.d.ts.map +1 -0
- package/dist/openapi/decorators.d.ts +173 -0
- package/dist/openapi/decorators.d.ts.map +1 -0
- package/dist/openapi/document-builder.d.ts +82 -0
- package/dist/openapi/document-builder.d.ts.map +1 -0
- package/dist/openapi/index.d.ts +48 -0
- package/dist/openapi/index.d.ts.map +1 -0
- package/dist/openapi/index.js +59 -40
- package/dist/openapi/metadata.d.ts +36 -0
- package/dist/openapi/metadata.d.ts.map +1 -0
- package/dist/openapi/route-scanner.d.ts +34 -0
- package/dist/openapi/route-scanner.d.ts.map +1 -0
- package/dist/openapi/schema-generator.d.ts +53 -0
- package/dist/openapi/schema-generator.d.ts.map +1 -0
- package/dist/openapi/swagger-module.d.ts +57 -0
- package/dist/openapi/swagger-module.d.ts.map +1 -0
- package/dist/openapi/types.d.ts +344 -0
- package/dist/openapi/types.d.ts.map +1 -0
- package/dist/orm/index.d.ts +10 -0
- package/dist/orm/index.d.ts.map +1 -0
- package/dist/router/index.d.ts +73 -0
- package/dist/router/index.d.ts.map +1 -0
- package/dist/router/linear.d.ts +54 -0
- package/dist/router/linear.d.ts.map +1 -0
- package/dist/router/regex.d.ts +49 -0
- package/dist/router/regex.d.ts.map +1 -0
- package/dist/router/tree.d.ts +112 -0
- package/dist/router/tree.d.ts.map +1 -0
- package/dist/rpc/index.d.ts +321 -0
- package/dist/rpc/index.d.ts.map +1 -0
- package/dist/schema/index.d.ts +10 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/security/index.d.ts +126 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/ssg/index.d.ts +73 -0
- package/dist/ssg/index.d.ts.map +1 -0
- package/dist/storage/index.d.ts +99 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/telemetry/index.d.ts +376 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/template/index.d.ts +7 -0
- package/dist/template/index.d.ts.map +1 -0
- package/dist/templates/engine.d.ts +60 -0
- package/dist/templates/engine.d.ts.map +1 -0
- package/dist/templates/index.d.ts +9 -0
- package/dist/templates/index.d.ts.map +1 -0
- package/dist/templates/loader.d.ts +45 -0
- package/dist/templates/loader.d.ts.map +1 -0
- package/dist/templates/renderers/markdown.d.ts +46 -0
- package/dist/templates/renderers/markdown.d.ts.map +1 -0
- package/dist/templates/renderers/simple.d.ts +35 -0
- package/dist/templates/renderers/simple.d.ts.map +1 -0
- package/dist/templates/types.d.ts +138 -0
- package/dist/templates/types.d.ts.map +1 -0
- package/dist/testing/index.d.ts +539 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +116 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/validation/index.d.ts +89 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/schemas.d.ts +243 -0
- package/dist/validation/schemas.d.ts.map +1 -0
- package/dist/websocket/index.d.ts +252 -0
- package/dist/websocket/index.d.ts.map +1 -0
- package/llms.txt +231 -0
- package/package.json +6 -2
- package/src/cli/ARCHITECTURE.md +3 -3
- package/src/cli/commands/add-frontend.ts +444 -0
- package/src/cli/commands/new.ts +23 -0
- package/src/cli/index.ts +1 -0
- package/src/cli/templates/frontend/react.ts +2 -1
- package/src/cli/templates/frontend/solid.ts +2 -1
- package/src/cli/templates/frontend/svelte.ts +2 -1
- package/src/cli/templates/frontend/vue.ts +2 -1
- package/src/cli/templates/project/api.ts +1 -1
- package/src/cli/templates/project/default.ts +1 -1
- package/src/cli/templates/project/fullstack.ts +14 -104
- package/src/cli/templates/project/website.ts +63 -12
- package/src/config/types.ts +21 -0
- package/src/graphql/built-in-engine.ts +598 -0
- package/src/graphql/context-builder.ts +110 -0
- package/src/graphql/decorators.ts +358 -0
- package/src/graphql/execution-pipeline.ts +227 -0
- package/src/graphql/graphql-module.ts +563 -0
- package/src/graphql/index.ts +101 -0
- package/src/graphql/metadata.ts +237 -0
- package/src/graphql/schema-builder.ts +319 -0
- package/src/graphql/subscription-handler.ts +283 -0
- package/src/graphql/types.ts +324 -0
- package/src/index.ts +3 -0
- package/src/modules/index.ts +48 -1
- package/tests/integration/cli.test.ts +19 -19
- package/tests/unit/cli.test.ts +1 -1
- package/tests/unit/graphql.test.ts +991 -0
- package/tsconfig.declaration.json +14 -0
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structured Logging System
|
|
3
|
+
*
|
|
4
|
+
* Provides structured logging with JSON output, log levels,
|
|
5
|
+
* context-aware logging, and performance metrics.
|
|
6
|
+
*/
|
|
7
|
+
export type LogLevel = "debug" | "info" | "warn" | "error" | "fatal";
|
|
8
|
+
export interface LogEntry {
|
|
9
|
+
level: LogLevel;
|
|
10
|
+
message: string;
|
|
11
|
+
timestamp: string;
|
|
12
|
+
context?: Record<string, unknown>;
|
|
13
|
+
error?: {
|
|
14
|
+
name: string;
|
|
15
|
+
message: string;
|
|
16
|
+
stack?: string;
|
|
17
|
+
};
|
|
18
|
+
duration?: number;
|
|
19
|
+
[key: string]: unknown;
|
|
20
|
+
}
|
|
21
|
+
export interface LoggerConfig {
|
|
22
|
+
level?: LogLevel;
|
|
23
|
+
pretty?: boolean;
|
|
24
|
+
timestamp?: boolean;
|
|
25
|
+
context?: Record<string, unknown>;
|
|
26
|
+
output?: "console" | "stdout" | ((entry: LogEntry) => void);
|
|
27
|
+
}
|
|
28
|
+
export interface LoggerContext {
|
|
29
|
+
requestId?: string;
|
|
30
|
+
userId?: string;
|
|
31
|
+
method?: string;
|
|
32
|
+
path?: string;
|
|
33
|
+
[key: string]: unknown;
|
|
34
|
+
}
|
|
35
|
+
export declare class Logger {
|
|
36
|
+
private level;
|
|
37
|
+
private pretty;
|
|
38
|
+
private timestamp;
|
|
39
|
+
private context;
|
|
40
|
+
private output;
|
|
41
|
+
constructor(config?: LoggerConfig);
|
|
42
|
+
/**
|
|
43
|
+
* Check if a log level should be logged
|
|
44
|
+
*/
|
|
45
|
+
private shouldLog;
|
|
46
|
+
/**
|
|
47
|
+
* Serialize log entry to JSON
|
|
48
|
+
*/
|
|
49
|
+
private serialize;
|
|
50
|
+
/**
|
|
51
|
+
* Pretty print log entry
|
|
52
|
+
*/
|
|
53
|
+
private prettyPrint;
|
|
54
|
+
/**
|
|
55
|
+
* Create a log entry
|
|
56
|
+
*/
|
|
57
|
+
private createEntry;
|
|
58
|
+
/**
|
|
59
|
+
* Log a debug message
|
|
60
|
+
*/
|
|
61
|
+
debug(message: string, context?: Record<string, unknown>): void;
|
|
62
|
+
/**
|
|
63
|
+
* Log an info message
|
|
64
|
+
*/
|
|
65
|
+
info(message: string, context?: Record<string, unknown>): void;
|
|
66
|
+
/**
|
|
67
|
+
* Log a warning message
|
|
68
|
+
*/
|
|
69
|
+
warn(message: string, context?: Record<string, unknown>): void;
|
|
70
|
+
/**
|
|
71
|
+
* Log an error message
|
|
72
|
+
*/
|
|
73
|
+
error(message: string, error?: Error | unknown, context?: Record<string, unknown>): void;
|
|
74
|
+
/**
|
|
75
|
+
* Log a fatal message
|
|
76
|
+
*/
|
|
77
|
+
fatal(message: string, error?: Error | unknown, context?: Record<string, unknown>): void;
|
|
78
|
+
/**
|
|
79
|
+
* Create a child logger with additional context
|
|
80
|
+
*/
|
|
81
|
+
child(context: Record<string, unknown>): Logger;
|
|
82
|
+
/**
|
|
83
|
+
* Set log level
|
|
84
|
+
*/
|
|
85
|
+
setLevel(level: LogLevel): void;
|
|
86
|
+
/**
|
|
87
|
+
* Add context to the logger
|
|
88
|
+
*/
|
|
89
|
+
addContext(context: Record<string, unknown>): void;
|
|
90
|
+
/**
|
|
91
|
+
* Time a function
|
|
92
|
+
*/
|
|
93
|
+
time<T>(label: string, fn: () => T | Promise<T>): Promise<T>;
|
|
94
|
+
/**
|
|
95
|
+
* Create a timer
|
|
96
|
+
*/
|
|
97
|
+
startTimer(label: string): () => number;
|
|
98
|
+
}
|
|
99
|
+
export interface RequestLogContext {
|
|
100
|
+
requestId?: string;
|
|
101
|
+
method: string;
|
|
102
|
+
path: string;
|
|
103
|
+
query?: string;
|
|
104
|
+
ip?: string;
|
|
105
|
+
userAgent?: string;
|
|
106
|
+
userId?: string;
|
|
107
|
+
}
|
|
108
|
+
export interface ResponseLogContext extends RequestLogContext {
|
|
109
|
+
statusCode: number;
|
|
110
|
+
duration: number;
|
|
111
|
+
contentLength?: number;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Create a request logger middleware
|
|
115
|
+
*/
|
|
116
|
+
export declare function createRequestLogger(logger: Logger): (ctx: unknown, next: () => Promise<unknown>) => Promise<unknown>;
|
|
117
|
+
export declare class PerformanceLogger {
|
|
118
|
+
private logger;
|
|
119
|
+
private metrics;
|
|
120
|
+
constructor(logger: Logger);
|
|
121
|
+
/**
|
|
122
|
+
* Record a metric
|
|
123
|
+
*/
|
|
124
|
+
record(name: string, value: number): void;
|
|
125
|
+
/**
|
|
126
|
+
* Get metric statistics
|
|
127
|
+
*/
|
|
128
|
+
stats(name: string): {
|
|
129
|
+
count: number;
|
|
130
|
+
min: number;
|
|
131
|
+
max: number;
|
|
132
|
+
avg: number;
|
|
133
|
+
p99: number;
|
|
134
|
+
} | null;
|
|
135
|
+
/**
|
|
136
|
+
* Log all metrics
|
|
137
|
+
*/
|
|
138
|
+
logMetrics(): void;
|
|
139
|
+
/**
|
|
140
|
+
* Clear all metrics
|
|
141
|
+
*/
|
|
142
|
+
clear(): void;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Get the default logger instance
|
|
146
|
+
*/
|
|
147
|
+
export declare function getLogger(): Logger;
|
|
148
|
+
/**
|
|
149
|
+
* Set the default logger instance
|
|
150
|
+
*/
|
|
151
|
+
export declare function setLogger(logger: Logger): void;
|
|
152
|
+
/**
|
|
153
|
+
* Create a new logger
|
|
154
|
+
*/
|
|
155
|
+
export declare function createLogger(config?: LoggerConfig): Logger;
|
|
156
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Log Transport System
|
|
3
|
+
*
|
|
4
|
+
* Provides transport implementations for external log aggregation services
|
|
5
|
+
* like Datadog, generic HTTP webhooks, and console output.
|
|
6
|
+
*/
|
|
7
|
+
import type { LogEntry, LoggerConfig } from "../index";
|
|
8
|
+
/**
|
|
9
|
+
* Error callback for transport errors
|
|
10
|
+
*/
|
|
11
|
+
export type TransportErrorCallback = (error: Error, transport: LogTransport) => void;
|
|
12
|
+
/**
|
|
13
|
+
* Base interface for log transports
|
|
14
|
+
*/
|
|
15
|
+
export interface LogTransport {
|
|
16
|
+
/** Transport name for identification */
|
|
17
|
+
readonly name: string;
|
|
18
|
+
/** Send a single log entry */
|
|
19
|
+
send(entry: LogEntry): Promise<void>;
|
|
20
|
+
/** Send multiple log entries (batch) */
|
|
21
|
+
sendBatch(entries: LogEntry[]): Promise<void>;
|
|
22
|
+
/** Flush any pending logs */
|
|
23
|
+
flush?(): Promise<void>;
|
|
24
|
+
/** Close the transport and cleanup resources */
|
|
25
|
+
close?(): Promise<void>;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Options for retry behavior
|
|
29
|
+
*/
|
|
30
|
+
export interface RetryOptions {
|
|
31
|
+
/** Maximum number of retry attempts */
|
|
32
|
+
maxRetries: number;
|
|
33
|
+
/** Initial delay in milliseconds */
|
|
34
|
+
initialDelay: number;
|
|
35
|
+
/** Maximum delay in milliseconds */
|
|
36
|
+
maxDelay: number;
|
|
37
|
+
/** Backoff multiplier */
|
|
38
|
+
backoffMultiplier: number;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Options for batching behavior
|
|
42
|
+
*/
|
|
43
|
+
export interface BatchOptions {
|
|
44
|
+
/** Maximum batch size before auto-flush */
|
|
45
|
+
batchSize: number;
|
|
46
|
+
/** Flush interval in milliseconds */
|
|
47
|
+
flushInterval: number;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Options for HTTPWebhookTransport
|
|
51
|
+
*/
|
|
52
|
+
export interface HTTPWebhookTransportOptions {
|
|
53
|
+
/** Webhook URL */
|
|
54
|
+
url: string;
|
|
55
|
+
/** Additional headers */
|
|
56
|
+
headers?: Record<string, string>;
|
|
57
|
+
/** Batch options */
|
|
58
|
+
batchSize?: number;
|
|
59
|
+
/** Flush interval in milliseconds */
|
|
60
|
+
flushInterval?: number;
|
|
61
|
+
/** Retry options */
|
|
62
|
+
retries?: Partial<RetryOptions>;
|
|
63
|
+
/** Error callback */
|
|
64
|
+
onError?: TransportErrorCallback;
|
|
65
|
+
/** Request timeout in milliseconds */
|
|
66
|
+
timeout?: number;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Generic HTTP webhook transport for sending logs to any HTTP endpoint
|
|
70
|
+
*/
|
|
71
|
+
export declare class HTTPWebhookTransport implements LogTransport {
|
|
72
|
+
readonly name = "HTTPWebhookTransport";
|
|
73
|
+
private url;
|
|
74
|
+
private headers;
|
|
75
|
+
private batchSize;
|
|
76
|
+
private flushInterval;
|
|
77
|
+
private retryOptions;
|
|
78
|
+
private onError?;
|
|
79
|
+
private timeout;
|
|
80
|
+
private queue;
|
|
81
|
+
private flushTimer;
|
|
82
|
+
private isFlushing;
|
|
83
|
+
private isClosed;
|
|
84
|
+
constructor(options: HTTPWebhookTransportOptions);
|
|
85
|
+
/**
|
|
86
|
+
* Start the flush timer
|
|
87
|
+
*/
|
|
88
|
+
private startFlushTimer;
|
|
89
|
+
/**
|
|
90
|
+
* Send a single log entry
|
|
91
|
+
*/
|
|
92
|
+
send(entry: LogEntry): Promise<void>;
|
|
93
|
+
/**
|
|
94
|
+
* Send multiple log entries
|
|
95
|
+
*/
|
|
96
|
+
sendBatch(entries: LogEntry[]): Promise<void>;
|
|
97
|
+
/**
|
|
98
|
+
* Flush pending logs
|
|
99
|
+
*/
|
|
100
|
+
flush(): Promise<void>;
|
|
101
|
+
/**
|
|
102
|
+
* Send entries with retry logic
|
|
103
|
+
*/
|
|
104
|
+
private sendWithRetry;
|
|
105
|
+
/**
|
|
106
|
+
* Make HTTP request
|
|
107
|
+
*/
|
|
108
|
+
private makeRequest;
|
|
109
|
+
/**
|
|
110
|
+
* Sleep utility
|
|
111
|
+
*/
|
|
112
|
+
private sleep;
|
|
113
|
+
/**
|
|
114
|
+
* Handle errors
|
|
115
|
+
*/
|
|
116
|
+
private handleError;
|
|
117
|
+
/**
|
|
118
|
+
* Close the transport
|
|
119
|
+
*/
|
|
120
|
+
close(): Promise<void>;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Options for DatadogTransport
|
|
124
|
+
*/
|
|
125
|
+
export interface DatadogTransportOptions {
|
|
126
|
+
/** Datadog API key */
|
|
127
|
+
apiKey: string;
|
|
128
|
+
/** Service name */
|
|
129
|
+
service: string;
|
|
130
|
+
/** Environment (e.g., production, staging) */
|
|
131
|
+
env?: string;
|
|
132
|
+
/** Hostname */
|
|
133
|
+
hostname?: string;
|
|
134
|
+
/** Default tags */
|
|
135
|
+
tags?: string[];
|
|
136
|
+
/** Batch options */
|
|
137
|
+
batchSize?: number;
|
|
138
|
+
/** Flush interval in milliseconds */
|
|
139
|
+
flushInterval?: number;
|
|
140
|
+
/** Retry options */
|
|
141
|
+
retries?: Partial<RetryOptions>;
|
|
142
|
+
/** Error callback */
|
|
143
|
+
onError?: TransportErrorCallback;
|
|
144
|
+
/** Custom Datadog API endpoint */
|
|
145
|
+
endpoint?: string;
|
|
146
|
+
/** Request timeout in milliseconds */
|
|
147
|
+
timeout?: number;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Datadog Logs API transport
|
|
151
|
+
*/
|
|
152
|
+
export declare class DatadogTransport implements LogTransport {
|
|
153
|
+
readonly name = "DatadogTransport";
|
|
154
|
+
private apiKey;
|
|
155
|
+
private service;
|
|
156
|
+
private env;
|
|
157
|
+
private hostname;
|
|
158
|
+
private tags;
|
|
159
|
+
private endpoint;
|
|
160
|
+
private batchSize;
|
|
161
|
+
private flushInterval;
|
|
162
|
+
private retryOptions;
|
|
163
|
+
private onError?;
|
|
164
|
+
private timeout;
|
|
165
|
+
private queue;
|
|
166
|
+
private flushTimer;
|
|
167
|
+
private isFlushing;
|
|
168
|
+
private isClosed;
|
|
169
|
+
constructor(options: DatadogTransportOptions);
|
|
170
|
+
/**
|
|
171
|
+
* Get default hostname
|
|
172
|
+
*/
|
|
173
|
+
private getDefaultHostname;
|
|
174
|
+
/**
|
|
175
|
+
* Start the flush timer
|
|
176
|
+
*/
|
|
177
|
+
private startFlushTimer;
|
|
178
|
+
/**
|
|
179
|
+
* Convert log level to Datadog status
|
|
180
|
+
*/
|
|
181
|
+
private toDatadogStatus;
|
|
182
|
+
/**
|
|
183
|
+
* Convert LogEntry to Datadog format
|
|
184
|
+
*/
|
|
185
|
+
private toDatadogFormat;
|
|
186
|
+
/**
|
|
187
|
+
* Send a single log entry
|
|
188
|
+
*/
|
|
189
|
+
send(entry: LogEntry): Promise<void>;
|
|
190
|
+
/**
|
|
191
|
+
* Send multiple log entries
|
|
192
|
+
*/
|
|
193
|
+
sendBatch(entries: LogEntry[]): Promise<void>;
|
|
194
|
+
/**
|
|
195
|
+
* Flush pending logs
|
|
196
|
+
*/
|
|
197
|
+
flush(): Promise<void>;
|
|
198
|
+
/**
|
|
199
|
+
* Send entries with retry logic
|
|
200
|
+
*/
|
|
201
|
+
private sendWithRetry;
|
|
202
|
+
/**
|
|
203
|
+
* Make HTTP request to Datadog
|
|
204
|
+
*/
|
|
205
|
+
private makeRequest;
|
|
206
|
+
/**
|
|
207
|
+
* Sleep utility
|
|
208
|
+
*/
|
|
209
|
+
private sleep;
|
|
210
|
+
/**
|
|
211
|
+
* Handle errors
|
|
212
|
+
*/
|
|
213
|
+
private handleError;
|
|
214
|
+
/**
|
|
215
|
+
* Close the transport
|
|
216
|
+
*/
|
|
217
|
+
close(): Promise<void>;
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Options for ConsoleTransport
|
|
221
|
+
*/
|
|
222
|
+
export interface ConsoleTransportOptions {
|
|
223
|
+
/** Use pretty printing */
|
|
224
|
+
pretty?: boolean;
|
|
225
|
+
/** Output stream for logs */
|
|
226
|
+
stream?: "stdout" | "stderr";
|
|
227
|
+
/** Error callback */
|
|
228
|
+
onError?: TransportErrorCallback;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Enhanced console transport for local development
|
|
232
|
+
*/
|
|
233
|
+
export declare class ConsoleTransport implements LogTransport {
|
|
234
|
+
readonly name = "ConsoleTransport";
|
|
235
|
+
private pretty;
|
|
236
|
+
private stream;
|
|
237
|
+
private onError?;
|
|
238
|
+
constructor(options?: ConsoleTransportOptions);
|
|
239
|
+
/**
|
|
240
|
+
* Get level color for pretty printing
|
|
241
|
+
*/
|
|
242
|
+
private getLevelColor;
|
|
243
|
+
/**
|
|
244
|
+
* Format log entry for console output
|
|
245
|
+
*/
|
|
246
|
+
private formatEntry;
|
|
247
|
+
/**
|
|
248
|
+
* Output to console
|
|
249
|
+
*/
|
|
250
|
+
private output;
|
|
251
|
+
/**
|
|
252
|
+
* Send a single log entry
|
|
253
|
+
*/
|
|
254
|
+
send(entry: LogEntry): Promise<void>;
|
|
255
|
+
/**
|
|
256
|
+
* Send multiple log entries
|
|
257
|
+
*/
|
|
258
|
+
sendBatch(entries: LogEntry[]): Promise<void>;
|
|
259
|
+
/**
|
|
260
|
+
* Flush (no-op for console)
|
|
261
|
+
*/
|
|
262
|
+
flush(): Promise<void>;
|
|
263
|
+
/**
|
|
264
|
+
* Close (no-op for console)
|
|
265
|
+
*/
|
|
266
|
+
close(): Promise<void>;
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Manages multiple log transports
|
|
270
|
+
*/
|
|
271
|
+
export declare class TransportManager {
|
|
272
|
+
private transports;
|
|
273
|
+
private onError?;
|
|
274
|
+
constructor(options?: {
|
|
275
|
+
onError?: TransportErrorCallback;
|
|
276
|
+
});
|
|
277
|
+
/**
|
|
278
|
+
* Add a transport
|
|
279
|
+
*/
|
|
280
|
+
addTransport(transport: LogTransport): void;
|
|
281
|
+
/**
|
|
282
|
+
* Remove a transport
|
|
283
|
+
*/
|
|
284
|
+
removeTransport(transport: LogTransport): boolean;
|
|
285
|
+
/**
|
|
286
|
+
* Get all transports
|
|
287
|
+
*/
|
|
288
|
+
getTransports(): LogTransport[];
|
|
289
|
+
/**
|
|
290
|
+
* Check if a transport is registered
|
|
291
|
+
*/
|
|
292
|
+
hasTransport(transport: LogTransport): boolean;
|
|
293
|
+
/**
|
|
294
|
+
* Clear all transports
|
|
295
|
+
*/
|
|
296
|
+
clearTransports(): void;
|
|
297
|
+
/**
|
|
298
|
+
* Broadcast a log entry to all transports
|
|
299
|
+
*/
|
|
300
|
+
broadcast(entry: LogEntry): Promise<void>;
|
|
301
|
+
/**
|
|
302
|
+
* Broadcast multiple entries to all transports
|
|
303
|
+
*/
|
|
304
|
+
broadcastBatch(entries: LogEntry[]): Promise<void>;
|
|
305
|
+
/**
|
|
306
|
+
* Flush all transports
|
|
307
|
+
*/
|
|
308
|
+
flushAll(): Promise<void>;
|
|
309
|
+
/**
|
|
310
|
+
* Close all transports
|
|
311
|
+
*/
|
|
312
|
+
closeAll(): Promise<void>;
|
|
313
|
+
}
|
|
314
|
+
import { Logger } from "../index";
|
|
315
|
+
/**
|
|
316
|
+
* Configuration for logger with transports
|
|
317
|
+
*/
|
|
318
|
+
export interface LoggerWithTransportsConfig extends LoggerConfig {
|
|
319
|
+
/** Transports to add to the logger */
|
|
320
|
+
transports?: LogTransport[];
|
|
321
|
+
/** Error callback for transport errors */
|
|
322
|
+
onTransportError?: TransportErrorCallback;
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Logger with transport support
|
|
326
|
+
*/
|
|
327
|
+
export declare class LoggerWithTransports extends Logger {
|
|
328
|
+
private transportManager;
|
|
329
|
+
constructor(config?: LoggerWithTransportsConfig);
|
|
330
|
+
/**
|
|
331
|
+
* Add a transport
|
|
332
|
+
*/
|
|
333
|
+
addTransport(transport: LogTransport): void;
|
|
334
|
+
/**
|
|
335
|
+
* Remove a transport
|
|
336
|
+
*/
|
|
337
|
+
removeTransport(transport: LogTransport): boolean;
|
|
338
|
+
/**
|
|
339
|
+
* Get all transports
|
|
340
|
+
*/
|
|
341
|
+
getTransports(): LogTransport[];
|
|
342
|
+
/**
|
|
343
|
+
* Flush all transports
|
|
344
|
+
*/
|
|
345
|
+
flushTransports(): Promise<void>;
|
|
346
|
+
/**
|
|
347
|
+
* Close all transports
|
|
348
|
+
*/
|
|
349
|
+
closeTransports(): Promise<void>;
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* Create a logger with transports
|
|
353
|
+
*/
|
|
354
|
+
export declare function createLoggerWithTransports(config?: LoggerWithTransportsConfig): LoggerWithTransports;
|
|
355
|
+
/**
|
|
356
|
+
* Create a transport output function for use with existing Logger
|
|
357
|
+
*/
|
|
358
|
+
export declare function createTransportOutput(transports: LogTransport[], options?: {
|
|
359
|
+
onError?: TransportErrorCallback;
|
|
360
|
+
}): (entry: LogEntry) => void;
|
|
361
|
+
declare const _default: {
|
|
362
|
+
HTTPWebhookTransport: typeof HTTPWebhookTransport;
|
|
363
|
+
DatadogTransport: typeof DatadogTransport;
|
|
364
|
+
ConsoleTransport: typeof ConsoleTransport;
|
|
365
|
+
TransportManager: typeof TransportManager;
|
|
366
|
+
LoggerWithTransports: typeof LoggerWithTransports;
|
|
367
|
+
createLoggerWithTransports: typeof createLoggerWithTransports;
|
|
368
|
+
createTransportOutput: typeof createTransportOutput;
|
|
369
|
+
};
|
|
370
|
+
export default _default;
|
|
371
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/logger/transports/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime Metrics Module
|
|
3
|
+
*
|
|
4
|
+
* Provides runtime metrics collection for memory, CPU usage, and other statistics.
|
|
5
|
+
* Part of Layer 7 (Testing & Observability) implementation.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Runtime metrics snapshot
|
|
9
|
+
*/
|
|
10
|
+
export interface RuntimeMetrics {
|
|
11
|
+
/** Heap memory used in bytes */
|
|
12
|
+
memoryHeapUsed: number;
|
|
13
|
+
/** Total heap memory in bytes */
|
|
14
|
+
memoryHeapTotal: number;
|
|
15
|
+
/** External memory (C++ objects bound to JS) in bytes */
|
|
16
|
+
memoryExternal: number;
|
|
17
|
+
/** Resident Set Size in bytes */
|
|
18
|
+
memoryRss: number;
|
|
19
|
+
/** User CPU time in microseconds */
|
|
20
|
+
cpuUser: number;
|
|
21
|
+
/** System CPU time in microseconds */
|
|
22
|
+
cpuSystem: number;
|
|
23
|
+
/** Process uptime in seconds */
|
|
24
|
+
uptime: number;
|
|
25
|
+
/** Event loop lag in milliseconds */
|
|
26
|
+
eventLoopLag: number;
|
|
27
|
+
/** ISO 8601 timestamp */
|
|
28
|
+
timestamp: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Human-readable metrics summary
|
|
32
|
+
*/
|
|
33
|
+
export interface MetricsSummary {
|
|
34
|
+
memoryHeapUsed: string;
|
|
35
|
+
memoryHeapTotal: string;
|
|
36
|
+
memoryExternal: string;
|
|
37
|
+
memoryRss: string;
|
|
38
|
+
cpuUser: string;
|
|
39
|
+
cpuSystem: string;
|
|
40
|
+
uptime: string;
|
|
41
|
+
eventLoopLag: string;
|
|
42
|
+
timestamp: string;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Options for MetricsCollector
|
|
46
|
+
*/
|
|
47
|
+
export interface MetricsCollectorOptions {
|
|
48
|
+
/** Maximum number of historical snapshots to keep (default: 100) */
|
|
49
|
+
maxHistorySize?: number;
|
|
50
|
+
/** Include event loop lag measurement (default: true) */
|
|
51
|
+
measureEventLoopLag?: boolean;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Averaged metrics over time
|
|
55
|
+
*/
|
|
56
|
+
export interface AveragedMetrics {
|
|
57
|
+
avgMemoryHeapUsed: number;
|
|
58
|
+
avgMemoryHeapTotal: number;
|
|
59
|
+
avgMemoryExternal: number;
|
|
60
|
+
avgMemoryRss: number;
|
|
61
|
+
avgCpuUser: number;
|
|
62
|
+
avgCpuSystem: number;
|
|
63
|
+
avgEventLoopLag: number;
|
|
64
|
+
minMemoryHeapUsed: number;
|
|
65
|
+
maxMemoryHeapUsed: number;
|
|
66
|
+
sampleCount: number;
|
|
67
|
+
timeRange: {
|
|
68
|
+
start: string;
|
|
69
|
+
end: string;
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Format bytes to human-readable string
|
|
74
|
+
*/
|
|
75
|
+
export declare function formatBytes(bytes: number): string;
|
|
76
|
+
/**
|
|
77
|
+
* Format microseconds to human-readable string
|
|
78
|
+
*/
|
|
79
|
+
export declare function formatMicroseconds(microseconds: number): string;
|
|
80
|
+
/**
|
|
81
|
+
* Format seconds to human-readable uptime string
|
|
82
|
+
*/
|
|
83
|
+
export declare function formatUptime(seconds: number): string;
|
|
84
|
+
/**
|
|
85
|
+
* Get human-readable metrics summary
|
|
86
|
+
*/
|
|
87
|
+
export declare function getMetricsSummary(metrics: RuntimeMetrics): MetricsSummary;
|
|
88
|
+
/**
|
|
89
|
+
* Measure event loop lag using deferred execution timing
|
|
90
|
+
* @returns Promise resolving to lag in milliseconds
|
|
91
|
+
*/
|
|
92
|
+
export declare function measureEventLoopLag(): Promise<number>;
|
|
93
|
+
/**
|
|
94
|
+
* Measure event loop lag multiple times and return average
|
|
95
|
+
*/
|
|
96
|
+
export declare function measureEventLoopLagAverage(samples?: number): Promise<number>;
|
|
97
|
+
/**
|
|
98
|
+
* Collects and manages runtime metrics
|
|
99
|
+
*/
|
|
100
|
+
export declare class MetricsCollector {
|
|
101
|
+
private history;
|
|
102
|
+
private maxHistorySize;
|
|
103
|
+
private measureEventLoopLagEnabled;
|
|
104
|
+
private periodicTimer;
|
|
105
|
+
private lastCpuUsage;
|
|
106
|
+
constructor(options?: MetricsCollectorOptions);
|
|
107
|
+
/**
|
|
108
|
+
* Collect current runtime metrics
|
|
109
|
+
*/
|
|
110
|
+
collect(): Promise<RuntimeMetrics>;
|
|
111
|
+
/**
|
|
112
|
+
* Start collecting metrics at regular intervals
|
|
113
|
+
* @param intervalMs Interval in milliseconds (default: 5000)
|
|
114
|
+
*/
|
|
115
|
+
startPeriodicCollection(intervalMs?: number): void;
|
|
116
|
+
/**
|
|
117
|
+
* Stop periodic collection
|
|
118
|
+
*/
|
|
119
|
+
stopPeriodicCollection(): void;
|
|
120
|
+
/**
|
|
121
|
+
* Check if periodic collection is running
|
|
122
|
+
*/
|
|
123
|
+
isCollecting(): boolean;
|
|
124
|
+
/**
|
|
125
|
+
* Get historical metrics snapshots
|
|
126
|
+
*/
|
|
127
|
+
getHistory(): RuntimeMetrics[];
|
|
128
|
+
/**
|
|
129
|
+
* Get the most recent metrics
|
|
130
|
+
*/
|
|
131
|
+
getLatest(): RuntimeMetrics | null;
|
|
132
|
+
/**
|
|
133
|
+
* Get averaged metrics over time
|
|
134
|
+
*/
|
|
135
|
+
getAverage(): AveragedMetrics | null;
|
|
136
|
+
/**
|
|
137
|
+
* Clear history
|
|
138
|
+
*/
|
|
139
|
+
reset(): void;
|
|
140
|
+
/**
|
|
141
|
+
* Get the number of samples in history
|
|
142
|
+
*/
|
|
143
|
+
getHistorySize(): number;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Export metrics in Prometheus text format
|
|
147
|
+
* @param metrics Runtime metrics to export
|
|
148
|
+
* @returns Prometheus formatted string
|
|
149
|
+
*/
|
|
150
|
+
export declare function toPrometheusFormat(metrics: RuntimeMetrics): string;
|
|
151
|
+
/**
|
|
152
|
+
* Export averaged metrics in Prometheus format
|
|
153
|
+
*/
|
|
154
|
+
export declare function averagedMetricsToPrometheus(averaged: AveragedMetrics): string;
|
|
155
|
+
/**
|
|
156
|
+
* Create a new metrics collector
|
|
157
|
+
*/
|
|
158
|
+
export declare function createMetricsCollector(options?: MetricsCollectorOptions): MetricsCollector;
|
|
159
|
+
/**
|
|
160
|
+
* Collect metrics once without a collector
|
|
161
|
+
*/
|
|
162
|
+
export declare function collectMetrics(): Promise<RuntimeMetrics>;
|
|
163
|
+
//# sourceMappingURL=index.d.ts.map
|