@defai.digital/contracts 13.0.3
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/LICENSE +214 -0
- package/dist/ability/v1/index.d.ts +5 -0
- package/dist/ability/v1/index.d.ts.map +1 -0
- package/dist/ability/v1/index.js +5 -0
- package/dist/ability/v1/index.js.map +1 -0
- package/dist/ability/v1/schema.d.ts +288 -0
- package/dist/ability/v1/schema.d.ts.map +1 -0
- package/dist/ability/v1/schema.js +138 -0
- package/dist/ability/v1/schema.js.map +1 -0
- package/dist/agent/v1/index.d.ts +8 -0
- package/dist/agent/v1/index.d.ts.map +1 -0
- package/dist/agent/v1/index.js +31 -0
- package/dist/agent/v1/index.js.map +1 -0
- package/dist/agent/v1/schema.d.ts +4055 -0
- package/dist/agent/v1/schema.d.ts.map +1 -0
- package/dist/agent/v1/schema.js +970 -0
- package/dist/agent/v1/schema.js.map +1 -0
- package/dist/agent/v1/storage-port.d.ts +172 -0
- package/dist/agent/v1/storage-port.d.ts.map +1 -0
- package/dist/agent/v1/storage-port.js +10 -0
- package/dist/agent/v1/storage-port.js.map +1 -0
- package/dist/analysis/v1/index.d.ts +7 -0
- package/dist/analysis/v1/index.d.ts.map +1 -0
- package/dist/analysis/v1/index.js +21 -0
- package/dist/analysis/v1/index.js.map +1 -0
- package/dist/analysis/v1/schema.d.ts +348 -0
- package/dist/analysis/v1/schema.d.ts.map +1 -0
- package/dist/analysis/v1/schema.js +252 -0
- package/dist/analysis/v1/schema.js.map +1 -0
- package/dist/cli/v1/index.d.ts +8 -0
- package/dist/cli/v1/index.d.ts.map +1 -0
- package/dist/cli/v1/index.js +46 -0
- package/dist/cli/v1/index.js.map +1 -0
- package/dist/cli/v1/output.d.ts +347 -0
- package/dist/cli/v1/output.d.ts.map +1 -0
- package/dist/cli/v1/output.js +288 -0
- package/dist/cli/v1/output.js.map +1 -0
- package/dist/cli/v1/schema.d.ts +494 -0
- package/dist/cli/v1/schema.d.ts.map +1 -0
- package/dist/cli/v1/schema.js +342 -0
- package/dist/cli/v1/schema.js.map +1 -0
- package/dist/config/v1/config.d.ts +887 -0
- package/dist/config/v1/config.d.ts.map +1 -0
- package/dist/config/v1/config.js +348 -0
- package/dist/config/v1/config.js.map +1 -0
- package/dist/config/v1/errors.d.ts +84 -0
- package/dist/config/v1/errors.d.ts.map +1 -0
- package/dist/config/v1/errors.js +150 -0
- package/dist/config/v1/errors.js.map +1 -0
- package/dist/config/v1/events.d.ts +416 -0
- package/dist/config/v1/events.d.ts.map +1 -0
- package/dist/config/v1/events.js +204 -0
- package/dist/config/v1/events.js.map +1 -0
- package/dist/config/v1/index.d.ts +11 -0
- package/dist/config/v1/index.d.ts.map +1 -0
- package/dist/config/v1/index.js +49 -0
- package/dist/config/v1/index.js.map +1 -0
- package/dist/config/v1/operations.d.ts +293 -0
- package/dist/config/v1/operations.d.ts.map +1 -0
- package/dist/config/v1/operations.js +172 -0
- package/dist/config/v1/operations.js.map +1 -0
- package/dist/config/v1/provider-config.d.ts +124 -0
- package/dist/config/v1/provider-config.d.ts.map +1 -0
- package/dist/config/v1/provider-config.js +123 -0
- package/dist/config/v1/provider-config.js.map +1 -0
- package/dist/constants.d.ts +292 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +370 -0
- package/dist/constants.js.map +1 -0
- package/dist/context/v1/index.d.ts +5 -0
- package/dist/context/v1/index.d.ts.map +1 -0
- package/dist/context/v1/index.js +13 -0
- package/dist/context/v1/index.js.map +1 -0
- package/dist/context/v1/schema.d.ts +289 -0
- package/dist/context/v1/schema.d.ts.map +1 -0
- package/dist/context/v1/schema.js +145 -0
- package/dist/context/v1/schema.js.map +1 -0
- package/dist/cross-cutting/v1/dead-letter.d.ts +305 -0
- package/dist/cross-cutting/v1/dead-letter.d.ts.map +1 -0
- package/dist/cross-cutting/v1/dead-letter.js +172 -0
- package/dist/cross-cutting/v1/dead-letter.js.map +1 -0
- package/dist/cross-cutting/v1/idempotency.d.ts +222 -0
- package/dist/cross-cutting/v1/idempotency.d.ts.map +1 -0
- package/dist/cross-cutting/v1/idempotency.js +170 -0
- package/dist/cross-cutting/v1/idempotency.js.map +1 -0
- package/dist/cross-cutting/v1/index.d.ts +14 -0
- package/dist/cross-cutting/v1/index.d.ts.map +1 -0
- package/dist/cross-cutting/v1/index.js +18 -0
- package/dist/cross-cutting/v1/index.js.map +1 -0
- package/dist/cross-cutting/v1/retention.d.ts +347 -0
- package/dist/cross-cutting/v1/retention.d.ts.map +1 -0
- package/dist/cross-cutting/v1/retention.js +178 -0
- package/dist/cross-cutting/v1/retention.js.map +1 -0
- package/dist/cross-cutting/v1/saga.d.ts +358 -0
- package/dist/cross-cutting/v1/saga.d.ts.map +1 -0
- package/dist/cross-cutting/v1/saga.js +219 -0
- package/dist/cross-cutting/v1/saga.js.map +1 -0
- package/dist/design/v1/index.d.ts +5 -0
- package/dist/design/v1/index.d.ts.map +1 -0
- package/dist/design/v1/index.js +5 -0
- package/dist/design/v1/index.js.map +1 -0
- package/dist/design/v1/schema.d.ts +748 -0
- package/dist/design/v1/schema.d.ts.map +1 -0
- package/dist/design/v1/schema.js +316 -0
- package/dist/design/v1/schema.js.map +1 -0
- package/dist/discussion/v1/index.d.ts +10 -0
- package/dist/discussion/v1/index.d.ts.map +1 -0
- package/dist/discussion/v1/index.js +21 -0
- package/dist/discussion/v1/index.js.map +1 -0
- package/dist/discussion/v1/schema.d.ts +1186 -0
- package/dist/discussion/v1/schema.d.ts.map +1 -0
- package/dist/discussion/v1/schema.js +560 -0
- package/dist/discussion/v1/schema.js.map +1 -0
- package/dist/file-system/v1/index.d.ts +7 -0
- package/dist/file-system/v1/index.d.ts.map +1 -0
- package/dist/file-system/v1/index.js +7 -0
- package/dist/file-system/v1/index.js.map +1 -0
- package/dist/file-system/v1/schema.d.ts +644 -0
- package/dist/file-system/v1/schema.d.ts.map +1 -0
- package/dist/file-system/v1/schema.js +278 -0
- package/dist/file-system/v1/schema.js.map +1 -0
- package/dist/guard/v1/index.d.ts +9 -0
- package/dist/guard/v1/index.d.ts.map +1 -0
- package/dist/guard/v1/index.js +10 -0
- package/dist/guard/v1/index.js.map +1 -0
- package/dist/guard/v1/schema.d.ts +308 -0
- package/dist/guard/v1/schema.d.ts.map +1 -0
- package/dist/guard/v1/schema.js +267 -0
- package/dist/guard/v1/schema.js.map +1 -0
- package/dist/index.d.ts +68 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +117 -0
- package/dist/index.js.map +1 -0
- package/dist/iterate/v1/index.d.ts +5 -0
- package/dist/iterate/v1/index.d.ts.map +1 -0
- package/dist/iterate/v1/index.js +13 -0
- package/dist/iterate/v1/index.js.map +1 -0
- package/dist/iterate/v1/schema.d.ts +693 -0
- package/dist/iterate/v1/schema.d.ts.map +1 -0
- package/dist/iterate/v1/schema.js +244 -0
- package/dist/iterate/v1/schema.js.map +1 -0
- package/dist/mcp/v1/index.d.ts +8 -0
- package/dist/mcp/v1/index.d.ts.map +1 -0
- package/dist/mcp/v1/index.js +20 -0
- package/dist/mcp/v1/index.js.map +1 -0
- package/dist/mcp/v1/prompts/index.d.ts +5 -0
- package/dist/mcp/v1/prompts/index.d.ts.map +1 -0
- package/dist/mcp/v1/prompts/index.js +5 -0
- package/dist/mcp/v1/prompts/index.js.map +1 -0
- package/dist/mcp/v1/prompts/schema.d.ts +266 -0
- package/dist/mcp/v1/prompts/schema.d.ts.map +1 -0
- package/dist/mcp/v1/prompts/schema.js +138 -0
- package/dist/mcp/v1/prompts/schema.js.map +1 -0
- package/dist/mcp/v1/rate-limit.schema.d.ts +175 -0
- package/dist/mcp/v1/rate-limit.schema.d.ts.map +1 -0
- package/dist/mcp/v1/rate-limit.schema.js +164 -0
- package/dist/mcp/v1/rate-limit.schema.js.map +1 -0
- package/dist/mcp/v1/resources/index.d.ts +5 -0
- package/dist/mcp/v1/resources/index.d.ts.map +1 -0
- package/dist/mcp/v1/resources/index.js +5 -0
- package/dist/mcp/v1/resources/index.js.map +1 -0
- package/dist/mcp/v1/resources/schema.d.ts +169 -0
- package/dist/mcp/v1/resources/schema.d.ts.map +1 -0
- package/dist/mcp/v1/resources/schema.js +118 -0
- package/dist/mcp/v1/resources/schema.js.map +1 -0
- package/dist/mcp/v1/runtime/cache.d.ts +204 -0
- package/dist/mcp/v1/runtime/cache.d.ts.map +1 -0
- package/dist/mcp/v1/runtime/cache.js +92 -0
- package/dist/mcp/v1/runtime/cache.js.map +1 -0
- package/dist/mcp/v1/runtime/index.d.ts +5 -0
- package/dist/mcp/v1/runtime/index.d.ts.map +1 -0
- package/dist/mcp/v1/runtime/index.js +9 -0
- package/dist/mcp/v1/runtime/index.js.map +1 -0
- package/dist/mcp/v1/runtime/limits.d.ts +113 -0
- package/dist/mcp/v1/runtime/limits.d.ts.map +1 -0
- package/dist/mcp/v1/runtime/limits.js +95 -0
- package/dist/mcp/v1/runtime/limits.js.map +1 -0
- package/dist/mcp/v1/runtime/response.d.ts +467 -0
- package/dist/mcp/v1/runtime/response.d.ts.map +1 -0
- package/dist/mcp/v1/runtime/response.js +130 -0
- package/dist/mcp/v1/runtime/response.js.map +1 -0
- package/dist/mcp/v1/runtime/timeout.d.ts +116 -0
- package/dist/mcp/v1/runtime/timeout.d.ts.map +1 -0
- package/dist/mcp/v1/runtime/timeout.js +116 -0
- package/dist/mcp/v1/runtime/timeout.js.map +1 -0
- package/dist/mcp/v1/schema.d.ts +171 -0
- package/dist/mcp/v1/schema.d.ts.map +1 -0
- package/dist/mcp/v1/schema.js +97 -0
- package/dist/mcp/v1/schema.js.map +1 -0
- package/dist/mcp/v1/tools/agent.d.ts +485 -0
- package/dist/mcp/v1/tools/agent.d.ts.map +1 -0
- package/dist/mcp/v1/tools/agent.js +264 -0
- package/dist/mcp/v1/tools/agent.js.map +1 -0
- package/dist/mcp/v1/tools/guard.d.ts +243 -0
- package/dist/mcp/v1/tools/guard.d.ts.map +1 -0
- package/dist/mcp/v1/tools/guard.js +136 -0
- package/dist/mcp/v1/tools/guard.js.map +1 -0
- package/dist/mcp/v1/tools/index.d.ts +15 -0
- package/dist/mcp/v1/tools/index.d.ts.map +1 -0
- package/dist/mcp/v1/tools/index.js +22 -0
- package/dist/mcp/v1/tools/index.js.map +1 -0
- package/dist/mcp/v1/tools/memory.d.ts +569 -0
- package/dist/mcp/v1/tools/memory.d.ts.map +1 -0
- package/dist/mcp/v1/tools/memory.js +319 -0
- package/dist/mcp/v1/tools/memory.js.map +1 -0
- package/dist/mcp/v1/tools/session.d.ts +545 -0
- package/dist/mcp/v1/tools/session.d.ts.map +1 -0
- package/dist/mcp/v1/tools/session.js +309 -0
- package/dist/mcp/v1/tools/session.js.map +1 -0
- package/dist/mcp/v1/tools/tool-list-schemas.d.ts +354 -0
- package/dist/mcp/v1/tools/tool-list-schemas.d.ts.map +1 -0
- package/dist/mcp/v1/tools/tool-list-schemas.js +140 -0
- package/dist/mcp/v1/tools/tool-list-schemas.js.map +1 -0
- package/dist/mcp/v1/tools/trace.d.ts +282 -0
- package/dist/mcp/v1/tools/trace.d.ts.map +1 -0
- package/dist/mcp/v1/tools/trace.js +94 -0
- package/dist/mcp/v1/tools/trace.js.map +1 -0
- package/dist/mcp/v1/tools/workflow.d.ts +146 -0
- package/dist/mcp/v1/tools/workflow.d.ts.map +1 -0
- package/dist/mcp/v1/tools/workflow.js +68 -0
- package/dist/mcp/v1/tools/workflow.js.map +1 -0
- package/dist/mcp/v1/trace/index.d.ts +5 -0
- package/dist/mcp/v1/trace/index.d.ts.map +1 -0
- package/dist/mcp/v1/trace/index.js +5 -0
- package/dist/mcp/v1/trace/index.js.map +1 -0
- package/dist/mcp/v1/trace/tool-trace.d.ts +107 -0
- package/dist/mcp/v1/trace/tool-trace.d.ts.map +1 -0
- package/dist/mcp/v1/trace/tool-trace.js +91 -0
- package/dist/mcp/v1/trace/tool-trace.js.map +1 -0
- package/dist/memory/v1/index.d.ts +2 -0
- package/dist/memory/v1/index.d.ts.map +1 -0
- package/dist/memory/v1/index.js +2 -0
- package/dist/memory/v1/index.js.map +1 -0
- package/dist/memory/v1/schema.d.ts +188 -0
- package/dist/memory/v1/schema.d.ts.map +1 -0
- package/dist/memory/v1/schema.js +108 -0
- package/dist/memory/v1/schema.js.map +1 -0
- package/dist/ml-lifecycle/v1/index.d.ts +12 -0
- package/dist/ml-lifecycle/v1/index.d.ts.map +1 -0
- package/dist/ml-lifecycle/v1/index.js +12 -0
- package/dist/ml-lifecycle/v1/index.js.map +1 -0
- package/dist/ml-lifecycle/v1/schema.d.ts +1207 -0
- package/dist/ml-lifecycle/v1/schema.d.ts.map +1 -0
- package/dist/ml-lifecycle/v1/schema.js +481 -0
- package/dist/ml-lifecycle/v1/schema.js.map +1 -0
- package/dist/orchestration/v1/index.d.ts +5 -0
- package/dist/orchestration/v1/index.d.ts.map +1 -0
- package/dist/orchestration/v1/index.js +23 -0
- package/dist/orchestration/v1/index.js.map +1 -0
- package/dist/orchestration/v1/schema.d.ts +1384 -0
- package/dist/orchestration/v1/schema.d.ts.map +1 -0
- package/dist/orchestration/v1/schema.js +394 -0
- package/dist/orchestration/v1/schema.js.map +1 -0
- package/dist/provider/v1/circuit-breaker.d.ts +151 -0
- package/dist/provider/v1/circuit-breaker.d.ts.map +1 -0
- package/dist/provider/v1/circuit-breaker.js +119 -0
- package/dist/provider/v1/circuit-breaker.js.map +1 -0
- package/dist/provider/v1/health.d.ts +246 -0
- package/dist/provider/v1/health.d.ts.map +1 -0
- package/dist/provider/v1/health.js +190 -0
- package/dist/provider/v1/health.js.map +1 -0
- package/dist/provider/v1/index.d.ts +13 -0
- package/dist/provider/v1/index.d.ts.map +1 -0
- package/dist/provider/v1/index.js +17 -0
- package/dist/provider/v1/index.js.map +1 -0
- package/dist/provider/v1/port.d.ts +237 -0
- package/dist/provider/v1/port.d.ts.map +1 -0
- package/dist/provider/v1/port.js +113 -0
- package/dist/provider/v1/port.js.map +1 -0
- package/dist/provider/v1/rate-limit.d.ts +214 -0
- package/dist/provider/v1/rate-limit.d.ts.map +1 -0
- package/dist/provider/v1/rate-limit.js +165 -0
- package/dist/provider/v1/rate-limit.js.map +1 -0
- package/dist/resilience/v1/circuit-breaker.d.ts +135 -0
- package/dist/resilience/v1/circuit-breaker.d.ts.map +1 -0
- package/dist/resilience/v1/circuit-breaker.js +105 -0
- package/dist/resilience/v1/circuit-breaker.js.map +1 -0
- package/dist/resilience/v1/index.d.ts +17 -0
- package/dist/resilience/v1/index.d.ts.map +1 -0
- package/dist/resilience/v1/index.js +17 -0
- package/dist/resilience/v1/index.js.map +1 -0
- package/dist/resilience/v1/loop-guard.d.ts +123 -0
- package/dist/resilience/v1/loop-guard.d.ts.map +1 -0
- package/dist/resilience/v1/loop-guard.js +96 -0
- package/dist/resilience/v1/loop-guard.js.map +1 -0
- package/dist/resilience/v1/metrics.d.ts +323 -0
- package/dist/resilience/v1/metrics.d.ts.map +1 -0
- package/dist/resilience/v1/metrics.js +183 -0
- package/dist/resilience/v1/metrics.js.map +1 -0
- package/dist/resilience/v1/rate-limiter.d.ts +122 -0
- package/dist/resilience/v1/rate-limiter.d.ts.map +1 -0
- package/dist/resilience/v1/rate-limiter.js +119 -0
- package/dist/resilience/v1/rate-limiter.js.map +1 -0
- package/dist/resilience/v1/resource-limits.d.ts +146 -0
- package/dist/resilience/v1/resource-limits.d.ts.map +1 -0
- package/dist/resilience/v1/resource-limits.js +130 -0
- package/dist/resilience/v1/resource-limits.js.map +1 -0
- package/dist/review/v1/index.d.ts +7 -0
- package/dist/review/v1/index.d.ts.map +1 -0
- package/dist/review/v1/index.js +23 -0
- package/dist/review/v1/index.js.map +1 -0
- package/dist/review/v1/schema.d.ts +1284 -0
- package/dist/review/v1/schema.d.ts.map +1 -0
- package/dist/review/v1/schema.js +423 -0
- package/dist/review/v1/schema.js.map +1 -0
- package/dist/routing/v1/index.d.ts +2 -0
- package/dist/routing/v1/index.d.ts.map +1 -0
- package/dist/routing/v1/index.js +2 -0
- package/dist/routing/v1/index.js.map +1 -0
- package/dist/routing/v1/schema.d.ts +315 -0
- package/dist/routing/v1/schema.d.ts.map +1 -0
- package/dist/routing/v1/schema.js +103 -0
- package/dist/routing/v1/schema.js.map +1 -0
- package/dist/scaffold/v1/index.d.ts +7 -0
- package/dist/scaffold/v1/index.d.ts.map +1 -0
- package/dist/scaffold/v1/index.js +7 -0
- package/dist/scaffold/v1/index.js.map +1 -0
- package/dist/scaffold/v1/schema.d.ts +351 -0
- package/dist/scaffold/v1/schema.d.ts.map +1 -0
- package/dist/scaffold/v1/schema.js +238 -0
- package/dist/scaffold/v1/schema.js.map +1 -0
- package/dist/session/v1/index.d.ts +7 -0
- package/dist/session/v1/index.d.ts.map +1 -0
- package/dist/session/v1/index.js +23 -0
- package/dist/session/v1/index.js.map +1 -0
- package/dist/session/v1/schema.d.ts +1156 -0
- package/dist/session/v1/schema.d.ts.map +1 -0
- package/dist/session/v1/schema.js +315 -0
- package/dist/session/v1/schema.js.map +1 -0
- package/dist/storage/v1/index.d.ts +9 -0
- package/dist/storage/v1/index.d.ts.map +1 -0
- package/dist/storage/v1/index.js +21 -0
- package/dist/storage/v1/index.js.map +1 -0
- package/dist/storage/v1/schema.d.ts +411 -0
- package/dist/storage/v1/schema.d.ts.map +1 -0
- package/dist/storage/v1/schema.js +167 -0
- package/dist/storage/v1/schema.js.map +1 -0
- package/dist/telemetry/v1/index.d.ts +5 -0
- package/dist/telemetry/v1/index.d.ts.map +1 -0
- package/dist/telemetry/v1/index.js +5 -0
- package/dist/telemetry/v1/index.js.map +1 -0
- package/dist/telemetry/v1/schema.d.ts +747 -0
- package/dist/telemetry/v1/schema.d.ts.map +1 -0
- package/dist/telemetry/v1/schema.js +300 -0
- package/dist/telemetry/v1/schema.js.map +1 -0
- package/dist/token-budget/v1/index.d.ts +7 -0
- package/dist/token-budget/v1/index.d.ts.map +1 -0
- package/dist/token-budget/v1/index.js +25 -0
- package/dist/token-budget/v1/index.js.map +1 -0
- package/dist/token-budget/v1/schema.d.ts +588 -0
- package/dist/token-budget/v1/schema.d.ts.map +1 -0
- package/dist/token-budget/v1/schema.js +239 -0
- package/dist/token-budget/v1/schema.js.map +1 -0
- package/dist/trace/v1/index.d.ts +2 -0
- package/dist/trace/v1/index.d.ts.map +1 -0
- package/dist/trace/v1/index.js +4 -0
- package/dist/trace/v1/index.js.map +1 -0
- package/dist/trace/v1/schema.d.ts +531 -0
- package/dist/trace/v1/schema.d.ts.map +1 -0
- package/dist/trace/v1/schema.js +243 -0
- package/dist/trace/v1/schema.js.map +1 -0
- package/dist/workflow/v1/index.d.ts +3 -0
- package/dist/workflow/v1/index.d.ts.map +1 -0
- package/dist/workflow/v1/index.js +8 -0
- package/dist/workflow/v1/index.js.map +1 -0
- package/dist/workflow/v1/schema.d.ts +267 -0
- package/dist/workflow/v1/schema.d.ts.map +1 -0
- package/dist/workflow/v1/schema.js +95 -0
- package/dist/workflow/v1/schema.js.map +1 -0
- package/dist/workflow/v1/step-guard.d.ts +571 -0
- package/dist/workflow/v1/step-guard.d.ts.map +1 -0
- package/dist/workflow/v1/step-guard.js +305 -0
- package/dist/workflow/v1/step-guard.js.map +1 -0
- package/dist/workflow-templates/v1/index.d.ts +8 -0
- package/dist/workflow-templates/v1/index.d.ts.map +1 -0
- package/dist/workflow-templates/v1/index.js +8 -0
- package/dist/workflow-templates/v1/index.js.map +1 -0
- package/dist/workflow-templates/v1/schema.d.ts +714 -0
- package/dist/workflow-templates/v1/schema.d.ts.map +1 -0
- package/dist/workflow-templates/v1/schema.js +168 -0
- package/dist/workflow-templates/v1/schema.js.map +1 -0
- package/package.json +142 -0
- package/src/guard/v1/policy.schema.json +56 -0
- package/src/mcp/v1/tools.schema.json +108 -0
- package/src/memory/v1/event.schema.json +136 -0
- package/src/routing/v1/decision.schema.json +155 -0
- package/src/trace/v1/event.schema.json +197 -0
- package/src/workflow/v1/workflow.schema.json +142 -0
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dead Letter Queue Contract V1
|
|
3
|
+
*
|
|
4
|
+
* Provides contracts for capturing and managing failed events.
|
|
5
|
+
* Enables retry, investigation, and resolution of failed operations.
|
|
6
|
+
*
|
|
7
|
+
* Invariants:
|
|
8
|
+
* - INV-DLQ-001: Failed events captured with full context
|
|
9
|
+
* - INV-DLQ-002: Retries respect maxRetries limit
|
|
10
|
+
* - INV-DLQ-003: Exhausted entries marked appropriately
|
|
11
|
+
*/
|
|
12
|
+
import { z } from 'zod';
|
|
13
|
+
/**
|
|
14
|
+
* Dead letter entry status
|
|
15
|
+
*/
|
|
16
|
+
export declare const DeadLetterStatusSchema: z.ZodEnum<["pending", "retrying", "exhausted", "resolved", "discarded"]>;
|
|
17
|
+
export type DeadLetterStatus = z.infer<typeof DeadLetterStatusSchema>;
|
|
18
|
+
/**
|
|
19
|
+
* Dead letter error information
|
|
20
|
+
*/
|
|
21
|
+
export declare const DeadLetterErrorSchema: z.ZodObject<{
|
|
22
|
+
code: z.ZodString;
|
|
23
|
+
message: z.ZodString;
|
|
24
|
+
stack: z.ZodOptional<z.ZodString>;
|
|
25
|
+
originalError: z.ZodOptional<z.ZodString>;
|
|
26
|
+
}, "strip", z.ZodTypeAny, {
|
|
27
|
+
code: string;
|
|
28
|
+
message: string;
|
|
29
|
+
stack?: string | undefined;
|
|
30
|
+
originalError?: string | undefined;
|
|
31
|
+
}, {
|
|
32
|
+
code: string;
|
|
33
|
+
message: string;
|
|
34
|
+
stack?: string | undefined;
|
|
35
|
+
originalError?: string | undefined;
|
|
36
|
+
}>;
|
|
37
|
+
export type DeadLetterError = z.infer<typeof DeadLetterErrorSchema>;
|
|
38
|
+
/**
|
|
39
|
+
* Dead letter entry schema
|
|
40
|
+
*/
|
|
41
|
+
export declare const DeadLetterEntrySchema: z.ZodObject<{
|
|
42
|
+
/** Unique entry identifier */
|
|
43
|
+
entryId: z.ZodString;
|
|
44
|
+
/** Original event/request identifier */
|
|
45
|
+
originalEventId: z.ZodString;
|
|
46
|
+
/** Type of the original event */
|
|
47
|
+
eventType: z.ZodString;
|
|
48
|
+
/** Original event payload */
|
|
49
|
+
eventPayload: z.ZodUnknown;
|
|
50
|
+
/** Error information */
|
|
51
|
+
error: z.ZodObject<{
|
|
52
|
+
code: z.ZodString;
|
|
53
|
+
message: z.ZodString;
|
|
54
|
+
stack: z.ZodOptional<z.ZodString>;
|
|
55
|
+
originalError: z.ZodOptional<z.ZodString>;
|
|
56
|
+
}, "strip", z.ZodTypeAny, {
|
|
57
|
+
code: string;
|
|
58
|
+
message: string;
|
|
59
|
+
stack?: string | undefined;
|
|
60
|
+
originalError?: string | undefined;
|
|
61
|
+
}, {
|
|
62
|
+
code: string;
|
|
63
|
+
message: string;
|
|
64
|
+
stack?: string | undefined;
|
|
65
|
+
originalError?: string | undefined;
|
|
66
|
+
}>;
|
|
67
|
+
/** Number of retry attempts */
|
|
68
|
+
retryCount: z.ZodNumber;
|
|
69
|
+
/** Maximum retries allowed */
|
|
70
|
+
maxRetries: z.ZodNumber;
|
|
71
|
+
/** Last retry timestamp */
|
|
72
|
+
lastRetryAt: z.ZodOptional<z.ZodString>;
|
|
73
|
+
/** Next scheduled retry timestamp */
|
|
74
|
+
nextRetryAt: z.ZodOptional<z.ZodString>;
|
|
75
|
+
/** Current status */
|
|
76
|
+
status: z.ZodEnum<["pending", "retrying", "exhausted", "resolved", "discarded"]>;
|
|
77
|
+
/** Entry creation timestamp */
|
|
78
|
+
createdAt: z.ZodString;
|
|
79
|
+
/** Correlation ID for tracing */
|
|
80
|
+
correlationId: z.ZodOptional<z.ZodString>;
|
|
81
|
+
/** Source component that produced the error */
|
|
82
|
+
source: z.ZodString;
|
|
83
|
+
/** Additional context */
|
|
84
|
+
context: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
85
|
+
/** Resolution notes (if resolved/discarded) */
|
|
86
|
+
resolutionNotes: z.ZodOptional<z.ZodString>;
|
|
87
|
+
/** User who resolved/discarded (if applicable) */
|
|
88
|
+
resolvedBy: z.ZodOptional<z.ZodString>;
|
|
89
|
+
/** Resolution timestamp */
|
|
90
|
+
resolvedAt: z.ZodOptional<z.ZodString>;
|
|
91
|
+
}, "strip", z.ZodTypeAny, {
|
|
92
|
+
status: "pending" | "retrying" | "exhausted" | "resolved" | "discarded";
|
|
93
|
+
error: {
|
|
94
|
+
code: string;
|
|
95
|
+
message: string;
|
|
96
|
+
stack?: string | undefined;
|
|
97
|
+
originalError?: string | undefined;
|
|
98
|
+
};
|
|
99
|
+
createdAt: string;
|
|
100
|
+
source: string;
|
|
101
|
+
retryCount: number;
|
|
102
|
+
entryId: string;
|
|
103
|
+
originalEventId: string;
|
|
104
|
+
eventType: string;
|
|
105
|
+
maxRetries: number;
|
|
106
|
+
context?: Record<string, unknown> | undefined;
|
|
107
|
+
correlationId?: string | undefined;
|
|
108
|
+
eventPayload?: unknown;
|
|
109
|
+
lastRetryAt?: string | undefined;
|
|
110
|
+
nextRetryAt?: string | undefined;
|
|
111
|
+
resolutionNotes?: string | undefined;
|
|
112
|
+
resolvedBy?: string | undefined;
|
|
113
|
+
resolvedAt?: string | undefined;
|
|
114
|
+
}, {
|
|
115
|
+
status: "pending" | "retrying" | "exhausted" | "resolved" | "discarded";
|
|
116
|
+
error: {
|
|
117
|
+
code: string;
|
|
118
|
+
message: string;
|
|
119
|
+
stack?: string | undefined;
|
|
120
|
+
originalError?: string | undefined;
|
|
121
|
+
};
|
|
122
|
+
createdAt: string;
|
|
123
|
+
source: string;
|
|
124
|
+
retryCount: number;
|
|
125
|
+
entryId: string;
|
|
126
|
+
originalEventId: string;
|
|
127
|
+
eventType: string;
|
|
128
|
+
maxRetries: number;
|
|
129
|
+
context?: Record<string, unknown> | undefined;
|
|
130
|
+
correlationId?: string | undefined;
|
|
131
|
+
eventPayload?: unknown;
|
|
132
|
+
lastRetryAt?: string | undefined;
|
|
133
|
+
nextRetryAt?: string | undefined;
|
|
134
|
+
resolutionNotes?: string | undefined;
|
|
135
|
+
resolvedBy?: string | undefined;
|
|
136
|
+
resolvedAt?: string | undefined;
|
|
137
|
+
}>;
|
|
138
|
+
export type DeadLetterEntry = z.infer<typeof DeadLetterEntrySchema>;
|
|
139
|
+
/**
|
|
140
|
+
* DLQ configuration
|
|
141
|
+
*/
|
|
142
|
+
export declare const DLQConfigSchema: z.ZodObject<{
|
|
143
|
+
/** Enable DLQ */
|
|
144
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
145
|
+
/** Maximum retry attempts */
|
|
146
|
+
maxRetries: z.ZodDefault<z.ZodNumber>;
|
|
147
|
+
/** Initial retry delay in ms */
|
|
148
|
+
retryDelayMs: z.ZodDefault<z.ZodNumber>;
|
|
149
|
+
/** Backoff multiplier for exponential backoff */
|
|
150
|
+
retryBackoffMultiplier: z.ZodDefault<z.ZodNumber>;
|
|
151
|
+
/** Maximum backoff delay in ms */
|
|
152
|
+
maxRetryDelayMs: z.ZodDefault<z.ZodNumber>;
|
|
153
|
+
/** Retention period in days */
|
|
154
|
+
retentionDays: z.ZodDefault<z.ZodNumber>;
|
|
155
|
+
/** Maximum entries to retain */
|
|
156
|
+
maxEntries: z.ZodDefault<z.ZodNumber>;
|
|
157
|
+
/** Enable automatic retry processing */
|
|
158
|
+
autoRetry: z.ZodDefault<z.ZodBoolean>;
|
|
159
|
+
/** Batch size for retry processing */
|
|
160
|
+
retryBatchSize: z.ZodDefault<z.ZodNumber>;
|
|
161
|
+
}, "strip", z.ZodTypeAny, {
|
|
162
|
+
enabled: boolean;
|
|
163
|
+
maxEntries: number;
|
|
164
|
+
maxRetries: number;
|
|
165
|
+
retryDelayMs: number;
|
|
166
|
+
retryBackoffMultiplier: number;
|
|
167
|
+
maxRetryDelayMs: number;
|
|
168
|
+
retentionDays: number;
|
|
169
|
+
autoRetry: boolean;
|
|
170
|
+
retryBatchSize: number;
|
|
171
|
+
}, {
|
|
172
|
+
enabled?: boolean | undefined;
|
|
173
|
+
maxEntries?: number | undefined;
|
|
174
|
+
maxRetries?: number | undefined;
|
|
175
|
+
retryDelayMs?: number | undefined;
|
|
176
|
+
retryBackoffMultiplier?: number | undefined;
|
|
177
|
+
maxRetryDelayMs?: number | undefined;
|
|
178
|
+
retentionDays?: number | undefined;
|
|
179
|
+
autoRetry?: boolean | undefined;
|
|
180
|
+
retryBatchSize?: number | undefined;
|
|
181
|
+
}>;
|
|
182
|
+
export type DLQConfig = z.infer<typeof DLQConfigSchema>;
|
|
183
|
+
/**
|
|
184
|
+
* DLQ processing result
|
|
185
|
+
*/
|
|
186
|
+
export declare const DLQProcessResultSchema: z.ZodObject<{
|
|
187
|
+
/** Number of entries processed */
|
|
188
|
+
processed: z.ZodNumber;
|
|
189
|
+
/** Number of successful retries */
|
|
190
|
+
succeeded: z.ZodNumber;
|
|
191
|
+
/** Number of failed retries */
|
|
192
|
+
failed: z.ZodNumber;
|
|
193
|
+
/** Number of entries exhausted */
|
|
194
|
+
exhausted: z.ZodNumber;
|
|
195
|
+
/** Processing duration in ms */
|
|
196
|
+
durationMs: z.ZodNumber;
|
|
197
|
+
/** Errors encountered */
|
|
198
|
+
errors: z.ZodArray<z.ZodString, "many">;
|
|
199
|
+
}, "strip", z.ZodTypeAny, {
|
|
200
|
+
durationMs: number;
|
|
201
|
+
failed: number;
|
|
202
|
+
errors: string[];
|
|
203
|
+
exhausted: number;
|
|
204
|
+
processed: number;
|
|
205
|
+
succeeded: number;
|
|
206
|
+
}, {
|
|
207
|
+
durationMs: number;
|
|
208
|
+
failed: number;
|
|
209
|
+
errors: string[];
|
|
210
|
+
exhausted: number;
|
|
211
|
+
processed: number;
|
|
212
|
+
succeeded: number;
|
|
213
|
+
}>;
|
|
214
|
+
export type DLQProcessResult = z.infer<typeof DLQProcessResultSchema>;
|
|
215
|
+
/**
|
|
216
|
+
* DLQ list options
|
|
217
|
+
*/
|
|
218
|
+
export declare const DLQListOptionsSchema: z.ZodObject<{
|
|
219
|
+
status: z.ZodOptional<z.ZodEnum<["pending", "retrying", "exhausted", "resolved", "discarded"]>>;
|
|
220
|
+
source: z.ZodOptional<z.ZodString>;
|
|
221
|
+
eventType: z.ZodOptional<z.ZodString>;
|
|
222
|
+
nextRetryBefore: z.ZodOptional<z.ZodString>;
|
|
223
|
+
createdAfter: z.ZodOptional<z.ZodString>;
|
|
224
|
+
createdBefore: z.ZodOptional<z.ZodString>;
|
|
225
|
+
limit: z.ZodDefault<z.ZodNumber>;
|
|
226
|
+
offset: z.ZodDefault<z.ZodNumber>;
|
|
227
|
+
}, "strip", z.ZodTypeAny, {
|
|
228
|
+
limit: number;
|
|
229
|
+
offset: number;
|
|
230
|
+
status?: "pending" | "retrying" | "exhausted" | "resolved" | "discarded" | undefined;
|
|
231
|
+
source?: string | undefined;
|
|
232
|
+
eventType?: string | undefined;
|
|
233
|
+
nextRetryBefore?: string | undefined;
|
|
234
|
+
createdAfter?: string | undefined;
|
|
235
|
+
createdBefore?: string | undefined;
|
|
236
|
+
}, {
|
|
237
|
+
status?: "pending" | "retrying" | "exhausted" | "resolved" | "discarded" | undefined;
|
|
238
|
+
limit?: number | undefined;
|
|
239
|
+
source?: string | undefined;
|
|
240
|
+
offset?: number | undefined;
|
|
241
|
+
eventType?: string | undefined;
|
|
242
|
+
nextRetryBefore?: string | undefined;
|
|
243
|
+
createdAfter?: string | undefined;
|
|
244
|
+
createdBefore?: string | undefined;
|
|
245
|
+
}>;
|
|
246
|
+
export type DLQListOptions = z.infer<typeof DLQListOptionsSchema>;
|
|
247
|
+
/**
|
|
248
|
+
* DLQ statistics
|
|
249
|
+
*/
|
|
250
|
+
export declare const DLQStatsSchema: z.ZodObject<{
|
|
251
|
+
totalEntries: z.ZodNumber;
|
|
252
|
+
pendingCount: z.ZodNumber;
|
|
253
|
+
retryingCount: z.ZodNumber;
|
|
254
|
+
exhaustedCount: z.ZodNumber;
|
|
255
|
+
resolvedCount: z.ZodNumber;
|
|
256
|
+
discardedCount: z.ZodNumber;
|
|
257
|
+
oldestEntry: z.ZodOptional<z.ZodString>;
|
|
258
|
+
newestEntry: z.ZodOptional<z.ZodString>;
|
|
259
|
+
}, "strip", z.ZodTypeAny, {
|
|
260
|
+
totalEntries: number;
|
|
261
|
+
pendingCount: number;
|
|
262
|
+
retryingCount: number;
|
|
263
|
+
exhaustedCount: number;
|
|
264
|
+
resolvedCount: number;
|
|
265
|
+
discardedCount: number;
|
|
266
|
+
oldestEntry?: string | undefined;
|
|
267
|
+
newestEntry?: string | undefined;
|
|
268
|
+
}, {
|
|
269
|
+
totalEntries: number;
|
|
270
|
+
pendingCount: number;
|
|
271
|
+
retryingCount: number;
|
|
272
|
+
exhaustedCount: number;
|
|
273
|
+
resolvedCount: number;
|
|
274
|
+
discardedCount: number;
|
|
275
|
+
oldestEntry?: string | undefined;
|
|
276
|
+
newestEntry?: string | undefined;
|
|
277
|
+
}>;
|
|
278
|
+
export type DLQStats = z.infer<typeof DLQStatsSchema>;
|
|
279
|
+
/**
|
|
280
|
+
* DLQ error codes
|
|
281
|
+
*/
|
|
282
|
+
export declare const DLQErrorCodes: {
|
|
283
|
+
readonly ENTRY_NOT_FOUND: "DLQ_ENTRY_NOT_FOUND";
|
|
284
|
+
readonly MAX_ENTRIES_EXCEEDED: "DLQ_MAX_ENTRIES_EXCEEDED";
|
|
285
|
+
readonly RETRY_FAILED: "DLQ_RETRY_FAILED";
|
|
286
|
+
readonly INVALID_STATUS_TRANSITION: "DLQ_INVALID_STATUS_TRANSITION";
|
|
287
|
+
};
|
|
288
|
+
export type DLQErrorCode = (typeof DLQErrorCodes)[keyof typeof DLQErrorCodes];
|
|
289
|
+
/**
|
|
290
|
+
* Validates DLQ configuration
|
|
291
|
+
*/
|
|
292
|
+
export declare function validateDLQConfig(data: unknown): DLQConfig;
|
|
293
|
+
/**
|
|
294
|
+
* Validates a dead letter entry
|
|
295
|
+
*/
|
|
296
|
+
export declare function validateDeadLetterEntry(data: unknown): DeadLetterEntry;
|
|
297
|
+
/**
|
|
298
|
+
* Creates default DLQ configuration
|
|
299
|
+
*/
|
|
300
|
+
export declare function createDefaultDLQConfig(): DLQConfig;
|
|
301
|
+
/**
|
|
302
|
+
* Calculates next retry delay with exponential backoff
|
|
303
|
+
*/
|
|
304
|
+
export declare function calculateRetryDelay(retryCount: number, config: DLQConfig): number;
|
|
305
|
+
//# sourceMappingURL=dead-letter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dead-letter.d.ts","sourceRoot":"","sources":["../../../src/cross-cutting/v1/dead-letter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB;;GAEG;AACH,eAAO,MAAM,sBAAsB,0EAMjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;EAKhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,qBAAqB;IAChC,8BAA8B;;IAG9B,wCAAwC;;IAGxC,iCAAiC;;IAGjC,6BAA6B;;IAG7B,wBAAwB;;;;;;;;;;;;;;;;;IAGxB,+BAA+B;;IAG/B,8BAA8B;;IAG9B,2BAA2B;;IAG3B,qCAAqC;;IAGrC,qBAAqB;;IAGrB,+BAA+B;;IAG/B,iCAAiC;;IAGjC,+CAA+C;;IAG/C,yBAAyB;;IAGzB,+CAA+C;;IAG/C,kDAAkD;;IAGlD,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE3B,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,eAAe;IAC1B,iBAAiB;;IAGjB,6BAA6B;;IAG7B,gCAAgC;;IAGhC,iDAAiD;;IAGjD,kCAAkC;;IAGlC,+BAA+B;;IAG/B,gCAAgC;;IAGhC,wCAAwC;;IAGxC,sCAAsC;;;;;;;;;;;;;;;;;;;;;;EAEtC,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD;;GAEG;AACH,eAAO,MAAM,sBAAsB;IACjC,kCAAkC;;IAGlC,mCAAmC;;IAGnC,+BAA+B;;IAG/B,kCAAkC;;IAGlC,gCAAgC;;IAGhC,yBAAyB;;;;;;;;;;;;;;;;EAEzB,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;EASzB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAE9E;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,CAE1D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,eAAe,CAEtE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,SAAS,CAElD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,SAAS,GAChB,MAAM,CAGR"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dead Letter Queue Contract V1
|
|
3
|
+
*
|
|
4
|
+
* Provides contracts for capturing and managing failed events.
|
|
5
|
+
* Enables retry, investigation, and resolution of failed operations.
|
|
6
|
+
*
|
|
7
|
+
* Invariants:
|
|
8
|
+
* - INV-DLQ-001: Failed events captured with full context
|
|
9
|
+
* - INV-DLQ-002: Retries respect maxRetries limit
|
|
10
|
+
* - INV-DLQ-003: Exhausted entries marked appropriately
|
|
11
|
+
*/
|
|
12
|
+
import { z } from 'zod';
|
|
13
|
+
import { RETRY_MAX_DEFAULT, RETRY_MAX_LIMIT, TIMEOUT_EXTENDED, TIMEOUT_SESSION, BACKOFF_MULTIPLIER_DEFAULT, RETENTION_DAYS_DEFAULT, LIMIT_STORE_ENTRIES, LIMIT_RETRY_BATCH, LIMIT_DEAD_LETTER, } from '../../constants.js';
|
|
14
|
+
/**
|
|
15
|
+
* Dead letter entry status
|
|
16
|
+
*/
|
|
17
|
+
export const DeadLetterStatusSchema = z.enum([
|
|
18
|
+
'pending', // Awaiting retry
|
|
19
|
+
'retrying', // Currently being retried
|
|
20
|
+
'exhausted', // Max retries reached
|
|
21
|
+
'resolved', // Successfully processed
|
|
22
|
+
'discarded', // Manually discarded
|
|
23
|
+
]);
|
|
24
|
+
/**
|
|
25
|
+
* Dead letter error information
|
|
26
|
+
*/
|
|
27
|
+
export const DeadLetterErrorSchema = z.object({
|
|
28
|
+
code: z.string(),
|
|
29
|
+
message: z.string(),
|
|
30
|
+
stack: z.string().optional(),
|
|
31
|
+
originalError: z.string().optional(),
|
|
32
|
+
});
|
|
33
|
+
/**
|
|
34
|
+
* Dead letter entry schema
|
|
35
|
+
*/
|
|
36
|
+
export const DeadLetterEntrySchema = z.object({
|
|
37
|
+
/** Unique entry identifier */
|
|
38
|
+
entryId: z.string().uuid(),
|
|
39
|
+
/** Original event/request identifier */
|
|
40
|
+
originalEventId: z.string(),
|
|
41
|
+
/** Type of the original event */
|
|
42
|
+
eventType: z.string(),
|
|
43
|
+
/** Original event payload */
|
|
44
|
+
eventPayload: z.unknown(),
|
|
45
|
+
/** Error information */
|
|
46
|
+
error: DeadLetterErrorSchema,
|
|
47
|
+
/** Number of retry attempts */
|
|
48
|
+
retryCount: z.number().int().min(0),
|
|
49
|
+
/** Maximum retries allowed */
|
|
50
|
+
maxRetries: z.number().int().min(0),
|
|
51
|
+
/** Last retry timestamp */
|
|
52
|
+
lastRetryAt: z.string().datetime().optional(),
|
|
53
|
+
/** Next scheduled retry timestamp */
|
|
54
|
+
nextRetryAt: z.string().datetime().optional(),
|
|
55
|
+
/** Current status */
|
|
56
|
+
status: DeadLetterStatusSchema,
|
|
57
|
+
/** Entry creation timestamp */
|
|
58
|
+
createdAt: z.string().datetime(),
|
|
59
|
+
/** Correlation ID for tracing */
|
|
60
|
+
correlationId: z.string().optional(),
|
|
61
|
+
/** Source component that produced the error */
|
|
62
|
+
source: z.string(),
|
|
63
|
+
/** Additional context */
|
|
64
|
+
context: z.record(z.string(), z.unknown()).optional(),
|
|
65
|
+
/** Resolution notes (if resolved/discarded) */
|
|
66
|
+
resolutionNotes: z.string().optional(),
|
|
67
|
+
/** User who resolved/discarded (if applicable) */
|
|
68
|
+
resolvedBy: z.string().optional(),
|
|
69
|
+
/** Resolution timestamp */
|
|
70
|
+
resolvedAt: z.string().datetime().optional(),
|
|
71
|
+
});
|
|
72
|
+
/**
|
|
73
|
+
* DLQ configuration
|
|
74
|
+
*/
|
|
75
|
+
export const DLQConfigSchema = z.object({
|
|
76
|
+
/** Enable DLQ */
|
|
77
|
+
enabled: z.boolean().default(true),
|
|
78
|
+
/** Maximum retry attempts */
|
|
79
|
+
maxRetries: z.number().int().min(0).max(RETRY_MAX_LIMIT).default(RETRY_MAX_DEFAULT),
|
|
80
|
+
/** Initial retry delay in ms */
|
|
81
|
+
retryDelayMs: z.number().int().min(1000).max(TIMEOUT_SESSION).default(TIMEOUT_EXTENDED),
|
|
82
|
+
/** Backoff multiplier for exponential backoff */
|
|
83
|
+
retryBackoffMultiplier: z.number().min(1).max(5).default(BACKOFF_MULTIPLIER_DEFAULT),
|
|
84
|
+
/** Maximum backoff delay in ms */
|
|
85
|
+
maxRetryDelayMs: z.number().int().min(1000).max(86400000).default(TIMEOUT_SESSION),
|
|
86
|
+
/** Retention period in days */
|
|
87
|
+
retentionDays: z.number().int().min(1).max(90).default(RETENTION_DAYS_DEFAULT),
|
|
88
|
+
/** Maximum entries to retain */
|
|
89
|
+
maxEntries: z.number().int().min(100).max(100000).default(LIMIT_STORE_ENTRIES),
|
|
90
|
+
/** Enable automatic retry processing */
|
|
91
|
+
autoRetry: z.boolean().default(true),
|
|
92
|
+
/** Batch size for retry processing */
|
|
93
|
+
retryBatchSize: z.number().int().min(1).max(100).default(LIMIT_RETRY_BATCH),
|
|
94
|
+
});
|
|
95
|
+
/**
|
|
96
|
+
* DLQ processing result
|
|
97
|
+
*/
|
|
98
|
+
export const DLQProcessResultSchema = z.object({
|
|
99
|
+
/** Number of entries processed */
|
|
100
|
+
processed: z.number().int().min(0),
|
|
101
|
+
/** Number of successful retries */
|
|
102
|
+
succeeded: z.number().int().min(0),
|
|
103
|
+
/** Number of failed retries */
|
|
104
|
+
failed: z.number().int().min(0),
|
|
105
|
+
/** Number of entries exhausted */
|
|
106
|
+
exhausted: z.number().int().min(0),
|
|
107
|
+
/** Processing duration in ms */
|
|
108
|
+
durationMs: z.number().int().min(0),
|
|
109
|
+
/** Errors encountered */
|
|
110
|
+
errors: z.array(z.string()),
|
|
111
|
+
});
|
|
112
|
+
/**
|
|
113
|
+
* DLQ list options
|
|
114
|
+
*/
|
|
115
|
+
export const DLQListOptionsSchema = z.object({
|
|
116
|
+
status: DeadLetterStatusSchema.optional(),
|
|
117
|
+
source: z.string().optional(),
|
|
118
|
+
eventType: z.string().optional(),
|
|
119
|
+
nextRetryBefore: z.string().datetime().optional(),
|
|
120
|
+
createdAfter: z.string().datetime().optional(),
|
|
121
|
+
createdBefore: z.string().datetime().optional(),
|
|
122
|
+
limit: z.number().int().min(1).max(1000).default(LIMIT_DEAD_LETTER),
|
|
123
|
+
offset: z.number().int().min(0).default(0),
|
|
124
|
+
});
|
|
125
|
+
/**
|
|
126
|
+
* DLQ statistics
|
|
127
|
+
*/
|
|
128
|
+
export const DLQStatsSchema = z.object({
|
|
129
|
+
totalEntries: z.number().int().min(0),
|
|
130
|
+
pendingCount: z.number().int().min(0),
|
|
131
|
+
retryingCount: z.number().int().min(0),
|
|
132
|
+
exhaustedCount: z.number().int().min(0),
|
|
133
|
+
resolvedCount: z.number().int().min(0),
|
|
134
|
+
discardedCount: z.number().int().min(0),
|
|
135
|
+
oldestEntry: z.string().datetime().optional(),
|
|
136
|
+
newestEntry: z.string().datetime().optional(),
|
|
137
|
+
});
|
|
138
|
+
/**
|
|
139
|
+
* DLQ error codes
|
|
140
|
+
*/
|
|
141
|
+
export const DLQErrorCodes = {
|
|
142
|
+
ENTRY_NOT_FOUND: 'DLQ_ENTRY_NOT_FOUND',
|
|
143
|
+
MAX_ENTRIES_EXCEEDED: 'DLQ_MAX_ENTRIES_EXCEEDED',
|
|
144
|
+
RETRY_FAILED: 'DLQ_RETRY_FAILED',
|
|
145
|
+
INVALID_STATUS_TRANSITION: 'DLQ_INVALID_STATUS_TRANSITION',
|
|
146
|
+
};
|
|
147
|
+
/**
|
|
148
|
+
* Validates DLQ configuration
|
|
149
|
+
*/
|
|
150
|
+
export function validateDLQConfig(data) {
|
|
151
|
+
return DLQConfigSchema.parse(data);
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Validates a dead letter entry
|
|
155
|
+
*/
|
|
156
|
+
export function validateDeadLetterEntry(data) {
|
|
157
|
+
return DeadLetterEntrySchema.parse(data);
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Creates default DLQ configuration
|
|
161
|
+
*/
|
|
162
|
+
export function createDefaultDLQConfig() {
|
|
163
|
+
return DLQConfigSchema.parse({});
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Calculates next retry delay with exponential backoff
|
|
167
|
+
*/
|
|
168
|
+
export function calculateRetryDelay(retryCount, config) {
|
|
169
|
+
const delay = config.retryDelayMs * Math.pow(config.retryBackoffMultiplier, retryCount);
|
|
170
|
+
return Math.min(delay, config.maxRetryDelayMs);
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=dead-letter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dead-letter.js","sourceRoot":"","sources":["../../../src/cross-cutting/v1/dead-letter.ts"],"names":[],"mappings":"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"}
|