@buenojs/bueno 0.8.6 → 0.8.8
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 +132 -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 +483 -155
- 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/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/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/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/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/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/package.json +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 +62 -11
- package/tsconfig.declaration.json +14 -0
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Storage Layer
|
|
3
|
+
*
|
|
4
|
+
* Unified interface over Bun.s3 for S3-compatible storage with local filesystem fallback.
|
|
5
|
+
* Uses Bun 1.3+ native S3 client for cloud storage.
|
|
6
|
+
*/
|
|
7
|
+
export interface StorageConfig {
|
|
8
|
+
driver?: "s3" | "local";
|
|
9
|
+
bucket?: string;
|
|
10
|
+
region?: string;
|
|
11
|
+
endpoint?: string;
|
|
12
|
+
localPath?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface UploadOptions {
|
|
15
|
+
key: string;
|
|
16
|
+
body: string | Buffer | ArrayBuffer | Blob | File;
|
|
17
|
+
contentType?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface DownloadOptions {
|
|
20
|
+
key: string;
|
|
21
|
+
}
|
|
22
|
+
export interface PresignedURLOptions {
|
|
23
|
+
key: string;
|
|
24
|
+
expiresIn?: number;
|
|
25
|
+
method?: "GET" | "PUT";
|
|
26
|
+
}
|
|
27
|
+
export interface FileInfo {
|
|
28
|
+
key: string;
|
|
29
|
+
size: number;
|
|
30
|
+
lastModified?: Date;
|
|
31
|
+
}
|
|
32
|
+
export interface ListOptions {
|
|
33
|
+
prefix?: string;
|
|
34
|
+
}
|
|
35
|
+
export interface ListResult {
|
|
36
|
+
files: FileInfo[];
|
|
37
|
+
directories: string[];
|
|
38
|
+
}
|
|
39
|
+
export declare class Storage {
|
|
40
|
+
private driver;
|
|
41
|
+
private s3Storage;
|
|
42
|
+
private localStorage;
|
|
43
|
+
private _isConnected;
|
|
44
|
+
constructor(config?: StorageConfig);
|
|
45
|
+
connect(): Promise<void>;
|
|
46
|
+
get isConnected(): boolean;
|
|
47
|
+
getDriver(): "s3" | "local";
|
|
48
|
+
upload(options: UploadOptions): Promise<{
|
|
49
|
+
key: string;
|
|
50
|
+
}>;
|
|
51
|
+
download(options: DownloadOptions): Promise<Blob>;
|
|
52
|
+
downloadText(key: string): Promise<string>;
|
|
53
|
+
downloadBuffer(key: string): Promise<ArrayBuffer>;
|
|
54
|
+
stream(key: string): Promise<ReadableStream<Uint8Array>>;
|
|
55
|
+
delete(key: string): Promise<void>;
|
|
56
|
+
deleteMany(keys: string[]): Promise<void>;
|
|
57
|
+
exists(key: string): Promise<boolean>;
|
|
58
|
+
info(key: string): Promise<FileInfo | null>;
|
|
59
|
+
copy(sourceKey: string, destKey: string): Promise<void>;
|
|
60
|
+
move(sourceKey: string, destKey: string): Promise<void>;
|
|
61
|
+
list(options?: ListOptions): Promise<ListResult>;
|
|
62
|
+
getPresignedUrl(options: PresignedURLOptions): string;
|
|
63
|
+
getPublicUrl(key: string): string;
|
|
64
|
+
uploadFile(localPath: string, key: string): Promise<{
|
|
65
|
+
key: string;
|
|
66
|
+
}>;
|
|
67
|
+
}
|
|
68
|
+
export interface SecretOptions {
|
|
69
|
+
service: string;
|
|
70
|
+
name: string;
|
|
71
|
+
}
|
|
72
|
+
export interface SetSecretOptions extends SecretOptions {
|
|
73
|
+
value: string;
|
|
74
|
+
allowUnrestrictedAccess?: boolean;
|
|
75
|
+
}
|
|
76
|
+
export declare const Secrets: {
|
|
77
|
+
/**
|
|
78
|
+
* Get a secret from OS credential storage
|
|
79
|
+
*/
|
|
80
|
+
get(options: SecretOptions): Promise<string | null>;
|
|
81
|
+
/**
|
|
82
|
+
* Store a secret in OS credential storage
|
|
83
|
+
*/
|
|
84
|
+
set(options: SetSecretOptions): Promise<void>;
|
|
85
|
+
/**
|
|
86
|
+
* Delete a secret from OS credential storage
|
|
87
|
+
*/
|
|
88
|
+
delete(options: SecretOptions): Promise<void>;
|
|
89
|
+
/**
|
|
90
|
+
* Get a secret or throw if not found
|
|
91
|
+
*/
|
|
92
|
+
getOrThrow(options: SecretOptions): Promise<string>;
|
|
93
|
+
/**
|
|
94
|
+
* Get a secret or use a default value
|
|
95
|
+
*/
|
|
96
|
+
getOrDefault(options: SecretOptions, defaultValue: string): Promise<string>;
|
|
97
|
+
};
|
|
98
|
+
export declare function createStorage(config?: StorageConfig): Storage;
|
|
99
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenTelemetry OTLP Trace Exporter
|
|
3
|
+
*
|
|
4
|
+
* Provides distributed tracing with OpenTelemetry Protocol (OTLP) export.
|
|
5
|
+
* Part of Layer 7 (Testing & Observability) implementation.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Span kind enumeration
|
|
9
|
+
*/
|
|
10
|
+
export type SpanKind = "server" | "client" | "producer" | "consumer" | "internal";
|
|
11
|
+
/**
|
|
12
|
+
* Span status code
|
|
13
|
+
*/
|
|
14
|
+
export type StatusCode = "ok" | "error" | "unset";
|
|
15
|
+
/**
|
|
16
|
+
* Event attached to a span
|
|
17
|
+
*/
|
|
18
|
+
export interface SpanEvent {
|
|
19
|
+
/** Event name */
|
|
20
|
+
name: string;
|
|
21
|
+
/** Event timestamp in nanoseconds */
|
|
22
|
+
timestamp: number;
|
|
23
|
+
/** Event attributes */
|
|
24
|
+
attributes?: Record<string, string | number | boolean>;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Span status
|
|
28
|
+
*/
|
|
29
|
+
export interface SpanStatus {
|
|
30
|
+
/** Status code */
|
|
31
|
+
code: StatusCode;
|
|
32
|
+
/** Optional status message */
|
|
33
|
+
message?: string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Span represents a unit of work in distributed tracing
|
|
37
|
+
*/
|
|
38
|
+
export interface Span {
|
|
39
|
+
/** Unique trace identifier (32 hex characters) */
|
|
40
|
+
traceId: string;
|
|
41
|
+
/** Unique span identifier (16 hex characters) */
|
|
42
|
+
spanId: string;
|
|
43
|
+
/** Parent span identifier if this is a child span */
|
|
44
|
+
parentSpanId?: string;
|
|
45
|
+
/** Span name (operation name) */
|
|
46
|
+
name: string;
|
|
47
|
+
/** Span kind */
|
|
48
|
+
kind: SpanKind;
|
|
49
|
+
/** Start time in nanoseconds */
|
|
50
|
+
startTime: number;
|
|
51
|
+
/** End time in nanoseconds */
|
|
52
|
+
endTime?: number;
|
|
53
|
+
/** Duration in nanoseconds */
|
|
54
|
+
duration?: number;
|
|
55
|
+
/** Span attributes */
|
|
56
|
+
attributes: Record<string, string | number | boolean>;
|
|
57
|
+
/** Events recorded during the span */
|
|
58
|
+
events: SpanEvent[];
|
|
59
|
+
/** Span status */
|
|
60
|
+
status: SpanStatus;
|
|
61
|
+
/** Whether the span has ended */
|
|
62
|
+
ended: boolean;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Options for starting a new span
|
|
66
|
+
*/
|
|
67
|
+
export interface SpanOptions {
|
|
68
|
+
/** Span kind */
|
|
69
|
+
kind?: SpanKind;
|
|
70
|
+
/** Parent span (if any) */
|
|
71
|
+
parent?: Span;
|
|
72
|
+
/** Initial attributes */
|
|
73
|
+
attributes?: Record<string, string | number | boolean>;
|
|
74
|
+
/** Links to other spans */
|
|
75
|
+
links?: Array<{
|
|
76
|
+
traceId: string;
|
|
77
|
+
spanId: string;
|
|
78
|
+
attributes?: Record<string, string | number | boolean>;
|
|
79
|
+
}>;
|
|
80
|
+
/** Start time in nanoseconds (defaults to current time) */
|
|
81
|
+
startTime?: number;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* OTLP Exporter options
|
|
85
|
+
*/
|
|
86
|
+
export interface OTLPExporterOptions {
|
|
87
|
+
/** OTLP endpoint URL (e.g., http://localhost:4318/v1/traces) */
|
|
88
|
+
endpoint: string;
|
|
89
|
+
/** Additional headers to send with requests */
|
|
90
|
+
headers?: Record<string, string>;
|
|
91
|
+
/** Export interval in milliseconds (default: 5000) */
|
|
92
|
+
exportInterval?: number;
|
|
93
|
+
/** Maximum batch size before forcing export (default: 100) */
|
|
94
|
+
maxBatchSize?: number;
|
|
95
|
+
/** Maximum retry attempts on failure (default: 3) */
|
|
96
|
+
maxRetries?: number;
|
|
97
|
+
/** Initial retry delay in milliseconds (default: 1000) */
|
|
98
|
+
retryDelay?: number;
|
|
99
|
+
/** Timeout for export requests in milliseconds (default: 30000) */
|
|
100
|
+
timeout?: number;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Sampler type
|
|
104
|
+
*/
|
|
105
|
+
export type SamplerType = "always" | "never" | "probabilistic";
|
|
106
|
+
/**
|
|
107
|
+
* Tracer options
|
|
108
|
+
*/
|
|
109
|
+
export interface TracerOptions {
|
|
110
|
+
/** OTLP exporter instance */
|
|
111
|
+
exporter?: OTLPExporter;
|
|
112
|
+
/** Sampling strategy (default: "always") */
|
|
113
|
+
sampler?: SamplerType;
|
|
114
|
+
/** Probability for probabilistic sampling (0.0 to 1.0) */
|
|
115
|
+
probability?: number;
|
|
116
|
+
/** Service name for resource attributes */
|
|
117
|
+
serviceName?: string;
|
|
118
|
+
/** Additional resource attributes */
|
|
119
|
+
resourceAttributes?: Record<string, string | number | boolean>;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Trace context for propagation
|
|
123
|
+
*/
|
|
124
|
+
export interface TraceContext {
|
|
125
|
+
traceId: string;
|
|
126
|
+
spanId: string;
|
|
127
|
+
traceFlags: number;
|
|
128
|
+
traceState?: string;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Generate a random trace ID (32 hex characters / 16 bytes)
|
|
132
|
+
*/
|
|
133
|
+
export declare function generateTraceId(): string;
|
|
134
|
+
/**
|
|
135
|
+
* Generate a random span ID (16 hex characters / 8 bytes)
|
|
136
|
+
*/
|
|
137
|
+
export declare function generateSpanId(): string;
|
|
138
|
+
/**
|
|
139
|
+
* Get current time in nanoseconds using Bun.nanoseconds()
|
|
140
|
+
*/
|
|
141
|
+
export declare function nowNanoseconds(): number;
|
|
142
|
+
/**
|
|
143
|
+
* OTLP HTTP Trace Exporter
|
|
144
|
+
*
|
|
145
|
+
* Exports traces to an OTLP-compatible endpoint using HTTP/JSON.
|
|
146
|
+
*/
|
|
147
|
+
export declare class OTLPExporter {
|
|
148
|
+
private endpoint;
|
|
149
|
+
private headers;
|
|
150
|
+
private exportInterval;
|
|
151
|
+
private maxBatchSize;
|
|
152
|
+
private maxRetries;
|
|
153
|
+
private retryDelay;
|
|
154
|
+
private timeout;
|
|
155
|
+
private pendingSpans;
|
|
156
|
+
private exportTimer;
|
|
157
|
+
private isShuttingDown;
|
|
158
|
+
private serviceName;
|
|
159
|
+
private resourceAttributes;
|
|
160
|
+
constructor(options: OTLPExporterOptions);
|
|
161
|
+
/**
|
|
162
|
+
* Set service name for resource attributes
|
|
163
|
+
*/
|
|
164
|
+
setServiceName(name: string): void;
|
|
165
|
+
/**
|
|
166
|
+
* Set resource attributes
|
|
167
|
+
*/
|
|
168
|
+
setResourceAttributes(attributes: Record<string, string | number | boolean>): void;
|
|
169
|
+
/**
|
|
170
|
+
* Start periodic export
|
|
171
|
+
*/
|
|
172
|
+
start(): void;
|
|
173
|
+
/**
|
|
174
|
+
* Stop periodic export
|
|
175
|
+
*/
|
|
176
|
+
stop(): void;
|
|
177
|
+
/**
|
|
178
|
+
* Add a span to the pending batch
|
|
179
|
+
*/
|
|
180
|
+
addSpan(span: Span): void;
|
|
181
|
+
/**
|
|
182
|
+
* Export spans to OTLP endpoint
|
|
183
|
+
*/
|
|
184
|
+
export(spans: Span[]): Promise<boolean>;
|
|
185
|
+
/**
|
|
186
|
+
* Flush all pending spans
|
|
187
|
+
*/
|
|
188
|
+
flush(): Promise<void>;
|
|
189
|
+
/**
|
|
190
|
+
* Close the exporter and flush remaining spans
|
|
191
|
+
*/
|
|
192
|
+
close(): Promise<void>;
|
|
193
|
+
/**
|
|
194
|
+
* Build OTLP export request from spans
|
|
195
|
+
*/
|
|
196
|
+
private buildExportRequest;
|
|
197
|
+
/**
|
|
198
|
+
* Delay helper
|
|
199
|
+
*/
|
|
200
|
+
private delay;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Tracer creates and manages spans for distributed tracing
|
|
204
|
+
*/
|
|
205
|
+
export declare class Tracer {
|
|
206
|
+
private serviceName;
|
|
207
|
+
private exporter?;
|
|
208
|
+
private sampler;
|
|
209
|
+
private probability;
|
|
210
|
+
private resourceAttributes;
|
|
211
|
+
private currentSpan;
|
|
212
|
+
private spanStack;
|
|
213
|
+
constructor(options?: TracerOptions);
|
|
214
|
+
/**
|
|
215
|
+
* Check if a span should be sampled
|
|
216
|
+
*/
|
|
217
|
+
private shouldSample;
|
|
218
|
+
/**
|
|
219
|
+
* Start a new span
|
|
220
|
+
*/
|
|
221
|
+
startSpan(name: string, options?: SpanOptions): Span;
|
|
222
|
+
/**
|
|
223
|
+
* End a span
|
|
224
|
+
*/
|
|
225
|
+
endSpan(span: Span, endTime?: number): void;
|
|
226
|
+
/**
|
|
227
|
+
* Get the current active span
|
|
228
|
+
*/
|
|
229
|
+
getCurrentSpan(): Span | null;
|
|
230
|
+
/**
|
|
231
|
+
* Run a function within span context
|
|
232
|
+
*/
|
|
233
|
+
withSpan<T>(name: string, fn: (span: Span) => T | Promise<T>, options?: SpanOptions): Promise<T>;
|
|
234
|
+
/**
|
|
235
|
+
* Add an event to a span
|
|
236
|
+
*/
|
|
237
|
+
addEvent(span: Span, name: string, attributes?: Record<string, string | number | boolean>): void;
|
|
238
|
+
/**
|
|
239
|
+
* Set an attribute on a span
|
|
240
|
+
*/
|
|
241
|
+
setAttribute(span: Span, key: string, value: string | number | boolean): void;
|
|
242
|
+
/**
|
|
243
|
+
* Set multiple attributes on a span
|
|
244
|
+
*/
|
|
245
|
+
setAttributes(span: Span, attributes: Record<string, string | number | boolean>): void;
|
|
246
|
+
/**
|
|
247
|
+
* Set span status
|
|
248
|
+
*/
|
|
249
|
+
setStatus(span: Span, code: StatusCode, message?: string): void;
|
|
250
|
+
/**
|
|
251
|
+
* Record an error on a span
|
|
252
|
+
*/
|
|
253
|
+
setError(span: Span, error: Error): void;
|
|
254
|
+
/**
|
|
255
|
+
* Update span name
|
|
256
|
+
*/
|
|
257
|
+
updateName(span: Span, name: string): void;
|
|
258
|
+
/**
|
|
259
|
+
* Inject trace context into a carrier (for W3C TraceContext propagation)
|
|
260
|
+
*/
|
|
261
|
+
injectContext(carrier: Record<string, string>, span?: Span): void;
|
|
262
|
+
/**
|
|
263
|
+
* Extract trace context from a carrier (for W3C TraceContext propagation)
|
|
264
|
+
*/
|
|
265
|
+
extractContext(carrier: Record<string, string>): TraceContext | null;
|
|
266
|
+
/**
|
|
267
|
+
* Create a child span from extracted context
|
|
268
|
+
*/
|
|
269
|
+
startSpanFromContext(name: string, context: TraceContext, options?: SpanOptions): Span;
|
|
270
|
+
/**
|
|
271
|
+
* Flush pending spans
|
|
272
|
+
*/
|
|
273
|
+
flush(): Promise<void>;
|
|
274
|
+
/**
|
|
275
|
+
* Close the tracer
|
|
276
|
+
*/
|
|
277
|
+
close(): Promise<void>;
|
|
278
|
+
/**
|
|
279
|
+
* Create a no-op span (not sampled)
|
|
280
|
+
*/
|
|
281
|
+
private createNoopSpan;
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Create a configured tracer
|
|
285
|
+
*/
|
|
286
|
+
export declare function createTracer(serviceName: string, options?: Omit<TracerOptions, "serviceName">): Tracer;
|
|
287
|
+
/**
|
|
288
|
+
* Request context for middleware
|
|
289
|
+
*/
|
|
290
|
+
interface RequestContext {
|
|
291
|
+
method: string;
|
|
292
|
+
path: string;
|
|
293
|
+
url: URL;
|
|
294
|
+
headers: Record<string, string>;
|
|
295
|
+
getHeader: (name: string) => string | undefined;
|
|
296
|
+
setHeader: (name: string, value: string) => void;
|
|
297
|
+
status?: number;
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Response context for middleware
|
|
301
|
+
*/
|
|
302
|
+
interface ResponseContext {
|
|
303
|
+
status: number;
|
|
304
|
+
headers?: Record<string, string>;
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Create middleware for automatic HTTP tracing
|
|
308
|
+
*/
|
|
309
|
+
export declare function traceMiddleware(tracer: Tracer): (ctx: RequestContext, next: () => Promise<ResponseContext>) => Promise<ResponseContext>;
|
|
310
|
+
/**
|
|
311
|
+
* Database interface for tracing
|
|
312
|
+
*/
|
|
313
|
+
interface TracedDatabase {
|
|
314
|
+
query?: (sql: string, params?: unknown[]) => Promise<unknown>;
|
|
315
|
+
execute?: (sql: string, params?: unknown[]) => Promise<unknown>;
|
|
316
|
+
[key: string]: unknown;
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* Wrap database with tracing
|
|
320
|
+
*/
|
|
321
|
+
export declare function traceDatabase(tracer: Tracer, db: TracedDatabase, system?: string): TracedDatabase;
|
|
322
|
+
/**
|
|
323
|
+
* Options for traced fetch
|
|
324
|
+
*/
|
|
325
|
+
interface TracedFetchOptions extends RequestInit {
|
|
326
|
+
/** Span to use as parent */
|
|
327
|
+
parentSpan?: Span;
|
|
328
|
+
/** Additional attributes to add to span */
|
|
329
|
+
attributes?: Record<string, string | number | boolean>;
|
|
330
|
+
}
|
|
331
|
+
/**
|
|
332
|
+
* Create a traced fetch function
|
|
333
|
+
*/
|
|
334
|
+
export declare function createTracedFetch(tracer: Tracer): (url: string | URL, options?: TracedFetchOptions) => Promise<Response>;
|
|
335
|
+
/**
|
|
336
|
+
* Span builder for fluent API
|
|
337
|
+
*/
|
|
338
|
+
export declare class SpanBuilder {
|
|
339
|
+
private span;
|
|
340
|
+
private tracer;
|
|
341
|
+
constructor(tracer: Tracer, name: string, options?: SpanOptions);
|
|
342
|
+
/**
|
|
343
|
+
* Set an attribute
|
|
344
|
+
*/
|
|
345
|
+
setAttribute(key: string, value: string | number | boolean): this;
|
|
346
|
+
/**
|
|
347
|
+
* Set multiple attributes
|
|
348
|
+
*/
|
|
349
|
+
setAttributes(attributes: Record<string, string | number | boolean>): this;
|
|
350
|
+
/**
|
|
351
|
+
* Add an event
|
|
352
|
+
*/
|
|
353
|
+
addEvent(name: string, attributes?: Record<string, string | number | boolean>): this;
|
|
354
|
+
/**
|
|
355
|
+
* Set status
|
|
356
|
+
*/
|
|
357
|
+
setStatus(code: StatusCode, message?: string): this;
|
|
358
|
+
/**
|
|
359
|
+
* Record error
|
|
360
|
+
*/
|
|
361
|
+
setError(error: Error): this;
|
|
362
|
+
/**
|
|
363
|
+
* End the span
|
|
364
|
+
*/
|
|
365
|
+
end(): Span;
|
|
366
|
+
/**
|
|
367
|
+
* Get the underlying span
|
|
368
|
+
*/
|
|
369
|
+
getSpan(): Span;
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* Create a span builder
|
|
373
|
+
*/
|
|
374
|
+
export declare function span(tracer: Tracer, name: string, options?: SpanOptions): SpanBuilder;
|
|
375
|
+
export {};
|
|
376
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/telemetry/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/template/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Template Engine
|
|
3
|
+
*
|
|
4
|
+
* Main orchestration class for:
|
|
5
|
+
* - Loading templates (with caching)
|
|
6
|
+
* - Rendering with variable interpolation
|
|
7
|
+
* - Converting Markdown to HTML/text
|
|
8
|
+
* - Channel-specific variant selection
|
|
9
|
+
*/
|
|
10
|
+
import type { RenderOptions, TemplateData, TemplateEngineConfig, TemplateEngineMetrics } from "./types";
|
|
11
|
+
/**
|
|
12
|
+
* Template engine
|
|
13
|
+
*/
|
|
14
|
+
export declare class TemplateEngine {
|
|
15
|
+
private config;
|
|
16
|
+
private loader;
|
|
17
|
+
private simpleRenderer;
|
|
18
|
+
private metrics;
|
|
19
|
+
private renderTimes;
|
|
20
|
+
private channelVariantMap;
|
|
21
|
+
constructor(config: TemplateEngineConfig);
|
|
22
|
+
/**
|
|
23
|
+
* Render a template with data
|
|
24
|
+
*/
|
|
25
|
+
render(templateId: string, data: TemplateData, options?: RenderOptions): Promise<string>;
|
|
26
|
+
/**
|
|
27
|
+
* Render template to HTML (convenience method)
|
|
28
|
+
*/
|
|
29
|
+
renderToHtml(templateId: string, data: TemplateData, variant?: string): Promise<string>;
|
|
30
|
+
/**
|
|
31
|
+
* Render template to plain text (convenience method)
|
|
32
|
+
*/
|
|
33
|
+
renderToText(templateId: string, data: TemplateData, variant?: string): Promise<string>;
|
|
34
|
+
/**
|
|
35
|
+
* Get variant for rendering
|
|
36
|
+
*/
|
|
37
|
+
private _getVariant;
|
|
38
|
+
/**
|
|
39
|
+
* Get variant for a specific channel
|
|
40
|
+
* Useful for NotificationService to auto-detect correct variant
|
|
41
|
+
*/
|
|
42
|
+
getVariantForChannel(channel: string): string;
|
|
43
|
+
/**
|
|
44
|
+
* Register custom filter
|
|
45
|
+
*/
|
|
46
|
+
registerFilter(name: string, fn: (value: unknown, ...args: unknown[]) => unknown): void;
|
|
47
|
+
/**
|
|
48
|
+
* Update metrics
|
|
49
|
+
*/
|
|
50
|
+
private _updateMetrics;
|
|
51
|
+
/**
|
|
52
|
+
* Get engine metrics
|
|
53
|
+
*/
|
|
54
|
+
getMetrics(): TemplateEngineMetrics;
|
|
55
|
+
/**
|
|
56
|
+
* Clear caches
|
|
57
|
+
*/
|
|
58
|
+
clear(): void;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/templates/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EACX,aAAa,EAEb,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,MAAM,SAAS,CAAC;AAcjB;;GAEG;AACH,qBAAa,cAAc;IAad,OAAO,CAAC,MAAM;IAZ1B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,OAAO,CAMb;IACF,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,iBAAiB,CAAyB;gBAE9B,MAAM,EAAE,oBAAoB;IAchD;;OAEG;IACG,MAAM,CACX,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,CAAC;IAmDlB;;OAEG;IACG,YAAY,CACjB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC;IAOlB;;OAEG;IACG,YAAY,CACjB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC;IAOlB;;OAEG;IACH,OAAO,CAAC,WAAW;IAkBnB;;;OAGG;IACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAI7C;;OAEG;IACH,cAAc,CACb,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,GACjD,IAAI;IAIP;;OAEG;IACH,OAAO,CAAC,cAAc;IAmBtB;;OAEG;IACH,UAAU,IAAI,qBAAqB;IAInC;;OAEG;IACH,KAAK,IAAI,IAAI;CAGb"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Template System Public API
|
|
3
|
+
*/
|
|
4
|
+
export * from "./types";
|
|
5
|
+
export { TemplateEngine } from "./engine";
|
|
6
|
+
export { TemplateLoader } from "./loader";
|
|
7
|
+
export { SimpleRenderer } from "./renderers/simple";
|
|
8
|
+
export { MarkdownRenderer } from "./renderers/markdown";
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Template Loader
|
|
3
|
+
*
|
|
4
|
+
* Loads templates from the filesystem with support for:
|
|
5
|
+
* - YAML front matter (metadata)
|
|
6
|
+
* - Template variants (channel-specific sections)
|
|
7
|
+
* - In-memory caching with TTL
|
|
8
|
+
* - Hot reload in development mode
|
|
9
|
+
*/
|
|
10
|
+
import type { Template, TemplateLoaderOptions } from "./types";
|
|
11
|
+
/**
|
|
12
|
+
* Template loader with caching and hot reload
|
|
13
|
+
*/
|
|
14
|
+
export declare class TemplateLoader {
|
|
15
|
+
private options;
|
|
16
|
+
private cache;
|
|
17
|
+
private watchers;
|
|
18
|
+
private metrics;
|
|
19
|
+
constructor(options: TemplateLoaderOptions);
|
|
20
|
+
/**
|
|
21
|
+
* Load a template by ID (path like "emails/welcome")
|
|
22
|
+
*/
|
|
23
|
+
load(templateId: string): Template;
|
|
24
|
+
/**
|
|
25
|
+
* Load template from disk with variant parsing
|
|
26
|
+
*/
|
|
27
|
+
private _loadFromDisk;
|
|
28
|
+
/**
|
|
29
|
+
* Watch template file for changes (development mode)
|
|
30
|
+
*/
|
|
31
|
+
private _watchTemplate;
|
|
32
|
+
/**
|
|
33
|
+
* Clear all caches and watchers
|
|
34
|
+
*/
|
|
35
|
+
clear(): void;
|
|
36
|
+
/**
|
|
37
|
+
* Get loader metrics
|
|
38
|
+
*/
|
|
39
|
+
getMetrics(): {
|
|
40
|
+
loads: number;
|
|
41
|
+
cacheHits: number;
|
|
42
|
+
cacheMisses: number;
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/templates/loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EACX,QAAQ,EACR,qBAAqB,EAErB,MAAM,SAAS,CAAC;AAuJjB;;GAEG;AACH,qBAAa,cAAc;IAUd,OAAO,CAAC,OAAO;IAT3B,OAAO,CAAC,KAAK,CACF;IACX,OAAO,CAAC,QAAQ,CAAoD;IACpE,OAAO,CAAC,OAAO,CAIb;gBAEkB,OAAO,EAAE,qBAAqB;IAQlD;;OAEG;IACH,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ;IA+ClC;;OAEG;IACH,OAAO,CAAC,aAAa;IAiDrB;;OAEG;IACH,OAAO,CAAC,cAAc;IAmBtB;;OAEG;IACH,KAAK,IAAI,IAAI;IAQb;;OAEG;IACH,UAAU;;;;;CAGV"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Markdown Renderer
|
|
3
|
+
*
|
|
4
|
+
* Converts Markdown to HTML or plain text.
|
|
5
|
+
* Lightweight implementation supporting:
|
|
6
|
+
* - Headings (# ## ###)
|
|
7
|
+
* - Bold/italic (*text*, **text**)
|
|
8
|
+
* - Lists (- item, 1. item)
|
|
9
|
+
* - Links [text](url)
|
|
10
|
+
* - Code (`inline`)
|
|
11
|
+
* - Blockquotes (> quote)
|
|
12
|
+
* - Paragraphs (blank line separated)
|
|
13
|
+
*
|
|
14
|
+
* NOT supported (kept lightweight):
|
|
15
|
+
* - Tables
|
|
16
|
+
* - Code blocks with syntax highlighting
|
|
17
|
+
* - Complex nesting
|
|
18
|
+
* - Strikethrough
|
|
19
|
+
* - Footnotes
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* Markdown to HTML renderer
|
|
23
|
+
*/
|
|
24
|
+
export declare class MarkdownRenderer {
|
|
25
|
+
/**
|
|
26
|
+
* Convert Markdown string to HTML
|
|
27
|
+
*/
|
|
28
|
+
static toHtml(markdown: string): string;
|
|
29
|
+
/**
|
|
30
|
+
* Convert Markdown string to plain text
|
|
31
|
+
*/
|
|
32
|
+
static toText(markdown: string): string;
|
|
33
|
+
/**
|
|
34
|
+
* Process ordered lists (1. 2. 3.)
|
|
35
|
+
*/
|
|
36
|
+
private static _processOrderedLists;
|
|
37
|
+
/**
|
|
38
|
+
* Process unordered lists (- * +)
|
|
39
|
+
*/
|
|
40
|
+
private static _processUnorderedLists;
|
|
41
|
+
/**
|
|
42
|
+
* Process paragraphs (blank line separated)
|
|
43
|
+
*/
|
|
44
|
+
private static _processParagraphs;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=markdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../../src/templates/renderers/markdown.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH;;GAEG;AACH,qBAAa,gBAAgB;IAC5B;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAiDvC;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAiCvC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAmCnC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAmCrC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;CAmBjC"}
|