@gravito/echo 3.1.1 → 3.1.2

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.
Files changed (292) hide show
  1. package/README.md +24 -9
  2. package/dist/OrbitEcho.d.ts +76 -60
  3. package/dist/index.d.ts +31 -16
  4. package/dist/index.js +1 -1596
  5. package/dist/index.js.map +3 -28
  6. package/dist/{echo/src/middleware → middleware}/RequestBufferMiddleware.d.ts +3 -3
  7. package/dist/providers/GenericProvider.d.ts +37 -19
  8. package/dist/providers/GitHubProvider.d.ts +21 -13
  9. package/dist/providers/StripeProvider.d.ts +20 -13
  10. package/dist/providers/index.d.ts +14 -4
  11. package/dist/receive/SignatureValidator.d.ts +33 -1
  12. package/dist/receive/WebhookReceiver.d.ts +139 -22
  13. package/dist/receive/index.d.ts +0 -1
  14. package/dist/send/WebhookDispatcher.d.ts +159 -16
  15. package/dist/send/index.d.ts +0 -1
  16. package/dist/types.d.ts +669 -57
  17. package/package.json +5 -2
  18. package/dist/OrbitEcho.d.ts.map +0 -1
  19. package/dist/atlas/src/DB.d.ts +0 -348
  20. package/dist/atlas/src/OrbitAtlas.d.ts +0 -9
  21. package/dist/atlas/src/config/defineConfig.d.ts +0 -14
  22. package/dist/atlas/src/config/index.d.ts +0 -7
  23. package/dist/atlas/src/config/loadConfig.d.ts +0 -41
  24. package/dist/atlas/src/connection/Connection.d.ts +0 -112
  25. package/dist/atlas/src/connection/ConnectionManager.d.ts +0 -180
  26. package/dist/atlas/src/connection/ReplicaConnectionPool.d.ts +0 -54
  27. package/dist/atlas/src/drivers/BunSQLDriver.d.ts +0 -32
  28. package/dist/atlas/src/drivers/BunSQLPreparedStatement.d.ts +0 -118
  29. package/dist/atlas/src/drivers/MongoDBDriver.d.ts +0 -36
  30. package/dist/atlas/src/drivers/MySQLDriver.d.ts +0 -79
  31. package/dist/atlas/src/drivers/PostgresDriver.d.ts +0 -96
  32. package/dist/atlas/src/drivers/RedisDriver.d.ts +0 -43
  33. package/dist/atlas/src/drivers/SQLiteDriver.d.ts +0 -45
  34. package/dist/atlas/src/drivers/types.d.ts +0 -260
  35. package/dist/atlas/src/errors/index.d.ts +0 -45
  36. package/dist/atlas/src/grammar/Grammar.d.ts +0 -342
  37. package/dist/atlas/src/grammar/MongoGrammar.d.ts +0 -47
  38. package/dist/atlas/src/grammar/MySQLGrammar.d.ts +0 -54
  39. package/dist/atlas/src/grammar/NullGrammar.d.ts +0 -35
  40. package/dist/atlas/src/grammar/PostgresGrammar.d.ts +0 -62
  41. package/dist/atlas/src/grammar/SQLiteGrammar.d.ts +0 -32
  42. package/dist/atlas/src/index.d.ts +0 -79
  43. package/dist/atlas/src/migration/Migration.d.ts +0 -64
  44. package/dist/atlas/src/migration/MigrationRepository.d.ts +0 -65
  45. package/dist/atlas/src/migration/Migrator.d.ts +0 -110
  46. package/dist/atlas/src/migration/index.d.ts +0 -6
  47. package/dist/atlas/src/observability/AtlasMetrics.d.ts +0 -33
  48. package/dist/atlas/src/observability/AtlasObservability.d.ts +0 -15
  49. package/dist/atlas/src/observability/AtlasTracer.d.ts +0 -12
  50. package/dist/atlas/src/observability/index.d.ts +0 -9
  51. package/dist/atlas/src/orm/Repository.d.ts +0 -247
  52. package/dist/atlas/src/orm/index.d.ts +0 -6
  53. package/dist/atlas/src/orm/model/DirtyTracker.d.ts +0 -121
  54. package/dist/atlas/src/orm/model/Model.d.ts +0 -458
  55. package/dist/atlas/src/orm/model/ModelRegistry.d.ts +0 -20
  56. package/dist/atlas/src/orm/model/concerns/HasAttributes.d.ts +0 -150
  57. package/dist/atlas/src/orm/model/concerns/HasEvents.d.ts +0 -36
  58. package/dist/atlas/src/orm/model/concerns/HasPersistence.d.ts +0 -92
  59. package/dist/atlas/src/orm/model/concerns/HasRelationships.d.ts +0 -117
  60. package/dist/atlas/src/orm/model/concerns/HasSerialization.d.ts +0 -64
  61. package/dist/atlas/src/orm/model/concerns/applyMixins.d.ts +0 -15
  62. package/dist/atlas/src/orm/model/concerns/index.d.ts +0 -12
  63. package/dist/atlas/src/orm/model/decorators.d.ts +0 -138
  64. package/dist/atlas/src/orm/model/errors.d.ts +0 -52
  65. package/dist/atlas/src/orm/model/index.d.ts +0 -10
  66. package/dist/atlas/src/orm/model/relationships.d.ts +0 -207
  67. package/dist/atlas/src/orm/model/types.d.ts +0 -12
  68. package/dist/atlas/src/orm/schema/SchemaRegistry.d.ts +0 -124
  69. package/dist/atlas/src/orm/schema/SchemaSniffer.d.ts +0 -54
  70. package/dist/atlas/src/orm/schema/index.d.ts +0 -6
  71. package/dist/atlas/src/orm/schema/types.d.ts +0 -85
  72. package/dist/atlas/src/pool/AdaptivePoolManager.d.ts +0 -98
  73. package/dist/atlas/src/pool/PoolHealthChecker.d.ts +0 -91
  74. package/dist/atlas/src/pool/PoolStrategy.d.ts +0 -129
  75. package/dist/atlas/src/pool/PoolWarmer.d.ts +0 -92
  76. package/dist/atlas/src/query/Expression.d.ts +0 -60
  77. package/dist/atlas/src/query/NPlusOneDetector.d.ts +0 -10
  78. package/dist/atlas/src/query/QueryBuilder.d.ts +0 -643
  79. package/dist/atlas/src/query/RelationshipResolver.d.ts +0 -23
  80. package/dist/atlas/src/query/clauses/GroupByClause.d.ts +0 -51
  81. package/dist/atlas/src/query/clauses/HavingClause.d.ts +0 -70
  82. package/dist/atlas/src/query/clauses/JoinClause.d.ts +0 -87
  83. package/dist/atlas/src/query/clauses/LimitClause.d.ts +0 -82
  84. package/dist/atlas/src/query/clauses/OrderByClause.d.ts +0 -69
  85. package/dist/atlas/src/query/clauses/SelectClause.d.ts +0 -71
  86. package/dist/atlas/src/query/clauses/WhereClause.d.ts +0 -167
  87. package/dist/atlas/src/query/clauses/index.d.ts +0 -11
  88. package/dist/atlas/src/schema/Blueprint.d.ts +0 -276
  89. package/dist/atlas/src/schema/ColumnDefinition.d.ts +0 -154
  90. package/dist/atlas/src/schema/ForeignKeyDefinition.d.ts +0 -37
  91. package/dist/atlas/src/schema/MigrationGenerator.d.ts +0 -45
  92. package/dist/atlas/src/schema/Schema.d.ts +0 -131
  93. package/dist/atlas/src/schema/SchemaDiff.d.ts +0 -73
  94. package/dist/atlas/src/schema/TypeGenerator.d.ts +0 -57
  95. package/dist/atlas/src/schema/TypeWriter.d.ts +0 -42
  96. package/dist/atlas/src/schema/grammars/MySQLSchemaGrammar.d.ts +0 -23
  97. package/dist/atlas/src/schema/grammars/PostgresSchemaGrammar.d.ts +0 -26
  98. package/dist/atlas/src/schema/grammars/SQLiteSchemaGrammar.d.ts +0 -28
  99. package/dist/atlas/src/schema/grammars/SchemaGrammar.d.ts +0 -97
  100. package/dist/atlas/src/schema/grammars/index.d.ts +0 -7
  101. package/dist/atlas/src/schema/index.d.ts +0 -8
  102. package/dist/atlas/src/seed/Factory.d.ts +0 -90
  103. package/dist/atlas/src/seed/Seeder.d.ts +0 -28
  104. package/dist/atlas/src/seed/SeederRunner.d.ts +0 -74
  105. package/dist/atlas/src/seed/index.d.ts +0 -6
  106. package/dist/atlas/src/sharding/ShardingManager.d.ts +0 -59
  107. package/dist/atlas/src/types/index.d.ts +0 -1182
  108. package/dist/atlas/src/utils/CursorEncoding.d.ts +0 -63
  109. package/dist/atlas/src/utils/levenshtein.d.ts +0 -9
  110. package/dist/core/src/Application.d.ts +0 -215
  111. package/dist/core/src/CommandKernel.d.ts +0 -33
  112. package/dist/core/src/ConfigManager.d.ts +0 -65
  113. package/dist/core/src/Container/RequestScopeManager.d.ts +0 -62
  114. package/dist/core/src/Container/RequestScopeMetrics.d.ts +0 -144
  115. package/dist/core/src/Container.d.ts +0 -153
  116. package/dist/core/src/ErrorHandler.d.ts +0 -66
  117. package/dist/core/src/Event.d.ts +0 -5
  118. package/dist/core/src/EventManager.d.ts +0 -123
  119. package/dist/core/src/GlobalErrorHandlers.d.ts +0 -47
  120. package/dist/core/src/GravitoServer.d.ts +0 -28
  121. package/dist/core/src/HookManager.d.ts +0 -591
  122. package/dist/core/src/Listener.d.ts +0 -4
  123. package/dist/core/src/Logger.d.ts +0 -20
  124. package/dist/core/src/PlanetCore.d.ts +0 -378
  125. package/dist/core/src/RequestContext.d.ts +0 -97
  126. package/dist/core/src/Route.d.ts +0 -36
  127. package/dist/core/src/Router.d.ts +0 -284
  128. package/dist/core/src/ServiceProvider.d.ts +0 -178
  129. package/dist/core/src/adapters/GravitoEngineAdapter.d.ts +0 -27
  130. package/dist/core/src/adapters/PhotonAdapter.d.ts +0 -175
  131. package/dist/core/src/adapters/bun/BunContext.d.ts +0 -49
  132. package/dist/core/src/adapters/bun/BunNativeAdapter.d.ts +0 -31
  133. package/dist/core/src/adapters/bun/BunRequest.d.ts +0 -31
  134. package/dist/core/src/adapters/bun/RadixNode.d.ts +0 -19
  135. package/dist/core/src/adapters/bun/RadixRouter.d.ts +0 -31
  136. package/dist/core/src/adapters/bun/types.d.ts +0 -20
  137. package/dist/core/src/adapters/photon-types.d.ts +0 -73
  138. package/dist/core/src/adapters/types.d.ts +0 -235
  139. package/dist/core/src/cli/queue-commands.d.ts +0 -6
  140. package/dist/core/src/engine/AOTRouter.d.ts +0 -129
  141. package/dist/core/src/engine/FastContext.d.ts +0 -123
  142. package/dist/core/src/engine/Gravito.d.ts +0 -136
  143. package/dist/core/src/engine/MinimalContext.d.ts +0 -100
  144. package/dist/core/src/engine/analyzer.d.ts +0 -27
  145. package/dist/core/src/engine/constants.d.ts +0 -23
  146. package/dist/core/src/engine/index.d.ts +0 -26
  147. package/dist/core/src/engine/path.d.ts +0 -26
  148. package/dist/core/src/engine/pool.d.ts +0 -83
  149. package/dist/core/src/engine/types.d.ts +0 -146
  150. package/dist/core/src/error-handling/RequestScopeErrorContext.d.ts +0 -126
  151. package/dist/core/src/events/BackpressureManager.d.ts +0 -215
  152. package/dist/core/src/events/CircuitBreaker.d.ts +0 -229
  153. package/dist/core/src/events/DeadLetterQueue.d.ts +0 -219
  154. package/dist/core/src/events/EventBackend.d.ts +0 -12
  155. package/dist/core/src/events/EventOptions.d.ts +0 -204
  156. package/dist/core/src/events/EventPriorityQueue.d.ts +0 -301
  157. package/dist/core/src/events/FlowControlStrategy.d.ts +0 -109
  158. package/dist/core/src/events/IdempotencyCache.d.ts +0 -60
  159. package/dist/core/src/events/MessageQueueBridge.d.ts +0 -184
  160. package/dist/core/src/events/PriorityEscalationManager.d.ts +0 -82
  161. package/dist/core/src/events/RetryScheduler.d.ts +0 -104
  162. package/dist/core/src/events/WorkerPool.d.ts +0 -98
  163. package/dist/core/src/events/WorkerPoolConfig.d.ts +0 -153
  164. package/dist/core/src/events/WorkerPoolMetrics.d.ts +0 -65
  165. package/dist/core/src/events/aggregation/AggregationWindow.d.ts +0 -77
  166. package/dist/core/src/events/aggregation/DeduplicationManager.d.ts +0 -135
  167. package/dist/core/src/events/aggregation/EventAggregationManager.d.ts +0 -108
  168. package/dist/core/src/events/aggregation/EventBatcher.d.ts +0 -99
  169. package/dist/core/src/events/aggregation/types.d.ts +0 -117
  170. package/dist/core/src/events/index.d.ts +0 -25
  171. package/dist/core/src/events/observability/EventMetrics.d.ts +0 -132
  172. package/dist/core/src/events/observability/EventTracer.d.ts +0 -68
  173. package/dist/core/src/events/observability/EventTracing.d.ts +0 -161
  174. package/dist/core/src/events/observability/OTelEventMetrics.d.ts +0 -332
  175. package/dist/core/src/events/observability/ObservableHookManager.d.ts +0 -108
  176. package/dist/core/src/events/observability/StreamWorkerMetrics.d.ts +0 -76
  177. package/dist/core/src/events/observability/index.d.ts +0 -24
  178. package/dist/core/src/events/observability/metrics-types.d.ts +0 -16
  179. package/dist/core/src/events/types.d.ts +0 -134
  180. package/dist/core/src/exceptions/AuthenticationException.d.ts +0 -8
  181. package/dist/core/src/exceptions/AuthorizationException.d.ts +0 -8
  182. package/dist/core/src/exceptions/CircularDependencyException.d.ts +0 -9
  183. package/dist/core/src/exceptions/GravitoException.d.ts +0 -23
  184. package/dist/core/src/exceptions/HttpException.d.ts +0 -9
  185. package/dist/core/src/exceptions/ModelNotFoundException.d.ts +0 -10
  186. package/dist/core/src/exceptions/ValidationException.d.ts +0 -22
  187. package/dist/core/src/exceptions/index.d.ts +0 -7
  188. package/dist/core/src/health/HealthProvider.d.ts +0 -67
  189. package/dist/core/src/helpers/Arr.d.ts +0 -19
  190. package/dist/core/src/helpers/Str.d.ts +0 -23
  191. package/dist/core/src/helpers/data.d.ts +0 -25
  192. package/dist/core/src/helpers/errors.d.ts +0 -34
  193. package/dist/core/src/helpers/response.d.ts +0 -41
  194. package/dist/core/src/helpers.d.ts +0 -338
  195. package/dist/core/src/http/CookieJar.d.ts +0 -51
  196. package/dist/core/src/http/cookie.d.ts +0 -29
  197. package/dist/core/src/http/middleware/BodySizeLimit.d.ts +0 -16
  198. package/dist/core/src/http/middleware/Cors.d.ts +0 -24
  199. package/dist/core/src/http/middleware/Csrf.d.ts +0 -23
  200. package/dist/core/src/http/middleware/HeaderTokenGate.d.ts +0 -28
  201. package/dist/core/src/http/middleware/SecurityHeaders.d.ts +0 -29
  202. package/dist/core/src/http/middleware/ThrottleRequests.d.ts +0 -18
  203. package/dist/core/src/http/types.d.ts +0 -374
  204. package/dist/core/src/index.d.ts +0 -88
  205. package/dist/core/src/instrumentation/index.d.ts +0 -35
  206. package/dist/core/src/instrumentation/opentelemetry.d.ts +0 -178
  207. package/dist/core/src/instrumentation/types.d.ts +0 -182
  208. package/dist/core/src/observability/Metrics.d.ts +0 -244
  209. package/dist/core/src/observability/QueueDashboard.d.ts +0 -136
  210. package/dist/core/src/reliability/DeadLetterQueueManager.d.ts +0 -350
  211. package/dist/core/src/reliability/RetryPolicy.d.ts +0 -217
  212. package/dist/core/src/reliability/index.d.ts +0 -6
  213. package/dist/core/src/router/ControllerDispatcher.d.ts +0 -12
  214. package/dist/core/src/router/RequestValidator.d.ts +0 -20
  215. package/dist/core/src/runtime.d.ts +0 -119
  216. package/dist/core/src/security/Encrypter.d.ts +0 -33
  217. package/dist/core/src/security/Hasher.d.ts +0 -29
  218. package/dist/core/src/testing/HttpTester.d.ts +0 -39
  219. package/dist/core/src/testing/TestResponse.d.ts +0 -78
  220. package/dist/core/src/testing/index.d.ts +0 -2
  221. package/dist/core/src/types/events.d.ts +0 -94
  222. package/dist/echo/src/OrbitEcho.d.ts +0 -115
  223. package/dist/echo/src/index.d.ts +0 -64
  224. package/dist/echo/src/providers/GenericProvider.d.ts +0 -53
  225. package/dist/echo/src/providers/GitHubProvider.d.ts +0 -35
  226. package/dist/echo/src/providers/StripeProvider.d.ts +0 -38
  227. package/dist/echo/src/providers/index.d.ts +0 -14
  228. package/dist/echo/src/receive/SignatureValidator.d.ts +0 -67
  229. package/dist/echo/src/receive/WebhookReceiver.d.ts +0 -185
  230. package/dist/echo/src/receive/index.d.ts +0 -2
  231. package/dist/echo/src/send/WebhookDispatcher.d.ts +0 -198
  232. package/dist/echo/src/send/index.d.ts +0 -1
  233. package/dist/echo/src/types.d.ts +0 -756
  234. package/dist/index.d.ts.map +0 -1
  235. package/dist/monitor/src/MonitorOrbit.d.ts +0 -43
  236. package/dist/monitor/src/config.d.ts +0 -106
  237. package/dist/monitor/src/health/HealthController.d.ts +0 -28
  238. package/dist/monitor/src/health/HealthRegistry.d.ts +0 -80
  239. package/dist/monitor/src/health/index.d.ts +0 -36
  240. package/dist/monitor/src/index.d.ts +0 -13
  241. package/dist/monitor/src/metrics/MetricsController.d.ts +0 -22
  242. package/dist/monitor/src/metrics/MetricsRegistry.d.ts +0 -136
  243. package/dist/monitor/src/metrics/index.d.ts +0 -11
  244. package/dist/monitor/src/tracing/TracingManager.d.ts +0 -97
  245. package/dist/monitor/src/tracing/index.d.ts +0 -10
  246. package/dist/photon/src/index.d.ts +0 -89
  247. package/dist/photon/src/middleware/binary.d.ts +0 -31
  248. package/dist/photon/src/middleware/htmx.d.ts +0 -39
  249. package/dist/photon/src/middleware/ratelimit-redis.d.ts +0 -50
  250. package/dist/photon/src/middleware/ratelimit.d.ts +0 -161
  251. package/dist/photon/src/openapi.d.ts +0 -19
  252. package/dist/providers/GenericProvider.d.ts.map +0 -1
  253. package/dist/providers/GitHubProvider.d.ts.map +0 -1
  254. package/dist/providers/StripeProvider.d.ts.map +0 -1
  255. package/dist/providers/index.d.ts.map +0 -1
  256. package/dist/receive/SignatureValidator.d.ts.map +0 -1
  257. package/dist/receive/WebhookReceiver.d.ts.map +0 -1
  258. package/dist/receive/index.d.ts.map +0 -1
  259. package/dist/send/WebhookDispatcher.d.ts.map +0 -1
  260. package/dist/send/index.d.ts.map +0 -1
  261. package/dist/types.d.ts.map +0 -1
  262. /package/dist/{echo/src/dlq → dlq}/DeadLetterQueue.d.ts +0 -0
  263. /package/dist/{echo/src/dlq → dlq}/MemoryDeadLetterQueue.d.ts +0 -0
  264. /package/dist/{echo/src/dlq → dlq}/index.d.ts +0 -0
  265. /package/dist/{echo/src/middleware → middleware}/index.d.ts +0 -0
  266. /package/dist/{echo/src/observability → observability}/index.d.ts +0 -0
  267. /package/dist/{echo/src/observability → observability}/logging/ConsoleEchoLogger.d.ts +0 -0
  268. /package/dist/{echo/src/observability → observability}/logging/EchoLogger.d.ts +0 -0
  269. /package/dist/{echo/src/observability → observability}/logging/index.d.ts +0 -0
  270. /package/dist/{echo/src/observability → observability}/metrics/MetricsProvider.d.ts +0 -0
  271. /package/dist/{echo/src/observability → observability}/metrics/NoopMetricsProvider.d.ts +0 -0
  272. /package/dist/{echo/src/observability → observability}/metrics/PrometheusMetricsProvider.d.ts +0 -0
  273. /package/dist/{echo/src/observability → observability}/metrics/index.d.ts +0 -0
  274. /package/dist/{echo/src/observability → observability}/tracing/NoopTracer.d.ts +0 -0
  275. /package/dist/{echo/src/observability → observability}/tracing/Tracer.d.ts +0 -0
  276. /package/dist/{echo/src/observability → observability}/tracing/index.d.ts +0 -0
  277. /package/dist/{echo/src/providers → providers}/LinearProvider.d.ts +0 -0
  278. /package/dist/{echo/src/providers → providers}/PaddleProvider.d.ts +0 -0
  279. /package/dist/{echo/src/providers → providers}/ShopifyProvider.d.ts +0 -0
  280. /package/dist/{echo/src/providers → providers}/SlackProvider.d.ts +0 -0
  281. /package/dist/{echo/src/providers → providers}/TwilioProvider.d.ts +0 -0
  282. /package/dist/{echo/src/providers → providers}/base/BaseProvider.d.ts +0 -0
  283. /package/dist/{echo/src/providers → providers}/base/HeaderUtils.d.ts +0 -0
  284. /package/dist/{echo/src/replay → replay}/WebhookReplayService.d.ts +0 -0
  285. /package/dist/{echo/src/replay → replay}/index.d.ts +0 -0
  286. /package/dist/{echo/src/resilience → resilience}/CircuitBreaker.d.ts +0 -0
  287. /package/dist/{echo/src/resilience → resilience}/index.d.ts +0 -0
  288. /package/dist/{echo/src/rotation → rotation}/KeyRotationManager.d.ts +0 -0
  289. /package/dist/{echo/src/rotation → rotation}/index.d.ts +0 -0
  290. /package/dist/{echo/src/storage → storage}/MemoryWebhookStore.d.ts +0 -0
  291. /package/dist/{echo/src/storage → storage}/WebhookStore.d.ts +0 -0
  292. /package/dist/{echo/src/storage → storage}/index.d.ts +0 -0
@@ -1,301 +0,0 @@
1
- import type { Span } from '@opentelemetry/api';
2
- import type { ActionCallback } from '../HookManager';
3
- import { BackpressureManager } from './BackpressureManager';
4
- import { CircuitBreaker } from './CircuitBreaker';
5
- import type { DeadLetterQueue } from './DeadLetterQueue';
6
- import type { EventBackend } from './EventBackend';
7
- import type { EventOptions } from './EventOptions';
8
- import type { EventMetrics } from './observability/EventMetrics';
9
- import type { EventTracing } from './observability/EventTracing';
10
- import type { OTelEventMetrics } from './observability/OTelEventMetrics';
11
- import { type PriorityStatistics } from './PriorityEscalationManager';
12
- import type { RetryScheduler } from './RetryScheduler';
13
- import type { BackpressureStrategy, EventQueueConfig, EventTask, MultiPriorityQueueDepth } from './types';
14
- import type { WorkerPool } from './WorkerPool';
15
- export type { EventTask, EventQueueConfig, BackpressureStrategy };
16
- /**
17
- * Priority queue for event processing.
18
- * Events are processed based on their priority level:
19
- * - Critical priority events are processed first (< 1ms)
20
- * - High priority events are processed second (< 50ms)
21
- * - Normal priority events are processed third (< 200ms)
22
- * - Low priority events are processed last (< 500ms)
23
- *
24
- * Supports automatic priority escalation based on wait time.
25
- *
26
- * @internal
27
- */
28
- export declare class EventPriorityQueue implements EventBackend {
29
- private criticalPriority;
30
- private highPriority;
31
- private normalPriority;
32
- private lowPriority;
33
- private processing;
34
- private taskIdCounter;
35
- private dlq?;
36
- private persistentDLQHandler?;
37
- private config;
38
- private processingPartitions;
39
- private eventCircuitBreakers;
40
- private eventMetrics?;
41
- private otelEventMetrics?;
42
- private eventTracing?;
43
- private currentDispatchSpan?;
44
- private backpressureManager?;
45
- private workerPool?;
46
- private retryScheduler?;
47
- private priorityStats?;
48
- constructor(config?: EventQueueConfig);
49
- /**
50
- * Set the Dead Letter Queue for failed events.
51
- *
52
- * @param dlq - Dead Letter Queue instance
53
- */
54
- setDeadLetterQueue(dlq: DeadLetterQueue): void;
55
- /**
56
- * Set the persistent DLQ handler for failed events.
57
- *
58
- * @param handler - Async handler function for persistent DLQ
59
- */
60
- setPersistentDLQHandler(handler: (hook: string, args: unknown, options: EventOptions, error: Error, retryCount: number, firstFailedAt: number) => Promise<void>): void;
61
- /**
62
- * Set the EventMetrics instance for recording circuit breaker metrics.
63
- *
64
- * @param metrics - EventMetrics instance
65
- * @internal
66
- */
67
- setEventMetrics(metrics: EventMetrics): void;
68
- /**
69
- * Set the OTelEventMetrics instance for recording DLQ and backpressure metrics.
70
- *
71
- * @param metrics - OTelEventMetrics instance
72
- * @internal
73
- */
74
- setOTelEventMetrics(metrics: OTelEventMetrics): void;
75
- /**
76
- * Set the PriorityStatistics instance for tracking priority distribution.
77
- *
78
- * @param stats - PriorityStatistics instance
79
- * @internal
80
- */
81
- setPriorityStatistics(stats: PriorityStatistics): void;
82
- /**
83
- * Get the PriorityStatistics instance.
84
- *
85
- * @returns PriorityStatistics instance or undefined
86
- * @internal
87
- */
88
- getPriorityStatistics(): PriorityStatistics | undefined;
89
- /**
90
- * Set the EventTracing instance for distributed tracing.
91
- *
92
- * @param tracing - EventTracing instance
93
- * @internal
94
- */
95
- setEventTracing(tracing: EventTracing): void;
96
- /**
97
- * Set the current dispatch span for creating child spans.
98
- *
99
- * @param span - Parent dispatch span
100
- * @internal
101
- */
102
- setCurrentDispatchSpan(span: Span | undefined): void;
103
- /**
104
- * Get the current dispatch span.
105
- *
106
- * @returns Current dispatch span or undefined
107
- * @internal
108
- */
109
- getCurrentDispatchSpan(): Span | undefined;
110
- /**
111
- * Set the RetryScheduler for async distributed retries.
112
- *
113
- * @param scheduler - RetryScheduler instance
114
- * @internal
115
- */
116
- setRetryScheduler(scheduler: RetryScheduler): void;
117
- /**
118
- * Get the RetryScheduler instance.
119
- *
120
- * @returns RetryScheduler instance or undefined
121
- * @internal
122
- */
123
- getRetryScheduler(): RetryScheduler | undefined;
124
- /**
125
- * Get or create a circuit breaker for an event hook.
126
- *
127
- * @param hook - Event hook name
128
- * @param config - Circuit breaker configuration
129
- * @returns Circuit breaker instance or undefined if not configured
130
- * @internal
131
- */
132
- private getOrCreateEventCircuitBreaker;
133
- /**
134
- * Enqueue an event task for processing.
135
- *
136
- * @param hook - Event hook name
137
- * @param args - Event arguments
138
- * @param callbacks - Callbacks to execute
139
- * @param options - Event options
140
- * @returns Task ID
141
- */
142
- enqueue(task: EventTask): string;
143
- enqueue(hook: string, args: unknown, callbacks: ActionCallback[], options: EventOptions): string;
144
- /**
145
- * Handle backpressure when queue is full.
146
- * @returns True if space was made, false if event should be dropped
147
- */
148
- private handleBackpressure;
149
- /**
150
- * Drop the oldest event from the queue, prioritizing low priority events.
151
- * Drops in order: LOW → NORMAL → HIGH → CRITICAL
152
- */
153
- private dropOldest;
154
- /**
155
- * Process the next task in the queue.
156
- * Tasks are processed in priority order: high > normal > low
157
- * If WorkerPool is configured, tasks are submitted to the pool for concurrent execution.
158
- *
159
- * @internal
160
- */
161
- private processNext;
162
- /**
163
- * Dequeue the next task based on priority and partition ordering.
164
- * Priority order: CRITICAL > HIGH > NORMAL > LOW
165
- *
166
- * @returns Next task to process, or undefined if queue is empty
167
- * @internal
168
- */
169
- private dequeue;
170
- /**
171
- * Dequeue a task from a priority queue, respecting partition ordering.
172
- *
173
- * @param queue - Priority queue to dequeue from
174
- * @returns Next task to process, or undefined if all tasks are blocked by partition locks
175
- * @internal
176
- */
177
- private dequeueFromPriority;
178
- /**
179
- * Execute an event task by running all its callbacks.
180
- * Implements circuit breaker protection, retry logic with exponential backoff, and DLQ integration.
181
- * Also handles partition ordering by acquiring and releasing partition locks.
182
- *
183
- * @param task - Event task to execute
184
- * @internal
185
- */
186
- private executeTask;
187
- /**
188
- * Calculate retry delay based on backoff strategy.
189
- *
190
- * @param retryCount - Current retry attempt number
191
- * @param backoff - Backoff strategy
192
- * @param initialDelay - Initial delay in ms
193
- * @param maxDelay - Maximum delay in ms
194
- * @returns Delay in milliseconds
195
- * @internal
196
- */
197
- private calculateRetryDelay;
198
- /**
199
- * Re-enqueue a task for retry.
200
- *
201
- * @param task - Task to retry
202
- * @internal
203
- */
204
- private enqueueRetry;
205
- /**
206
- * Execute a callback with timeout.
207
- *
208
- * @param callback - Callback to execute
209
- * @param args - Arguments to pass to callback
210
- * @param timeoutMs - Timeout in milliseconds
211
- * @internal
212
- */
213
- private executeWithTimeout;
214
- /**
215
- * Get the current depth of the queue.
216
- *
217
- * @returns Total number of tasks in the queue
218
- */
219
- getDepth(): number;
220
- /**
221
- * Get the depth of a specific priority queue.
222
- *
223
- * @param priority - Priority level
224
- * @returns Number of tasks in the specified priority queue
225
- */
226
- getDepthByPriority(priority: 'critical' | 'high' | 'normal' | 'low'): number;
227
- /**
228
- * Get the BackpressureManager instance if enabled.
229
- *
230
- * @returns BackpressureManager instance or undefined if not enabled
231
- * @internal
232
- */
233
- getBackpressureManager(): BackpressureManager | undefined;
234
- /**
235
- * Set the WorkerPool for concurrent task execution.
236
- *
237
- * @param pool - WorkerPool instance
238
- * @internal
239
- */
240
- setWorkerPool(pool: WorkerPool): void;
241
- /**
242
- * Get the WorkerPool instance if set.
243
- *
244
- * @returns WorkerPool instance or undefined if not set
245
- * @internal
246
- */
247
- getWorkerPool(): WorkerPool | undefined;
248
- /**
249
- * Clear all tasks from the queue.
250
- */
251
- clear(): void;
252
- /**
253
- * Get circuit breaker for an event hook.
254
- *
255
- * @param hook - Event hook name
256
- * @returns Circuit breaker instance or undefined
257
- * @internal
258
- */
259
- getCircuitBreaker(hook: string): CircuitBreaker | undefined;
260
- /**
261
- * Get all circuit breakers.
262
- *
263
- * @returns Map of circuit breakers keyed by hook name
264
- * @internal
265
- */
266
- getCircuitBreakers(): Map<string, CircuitBreaker>;
267
- /**
268
- * Reset a circuit breaker for an event hook.
269
- *
270
- * @param hook - Event hook name
271
- * @returns True if reset, false if circuit breaker not found
272
- * @internal
273
- */
274
- resetCircuitBreaker(hook: string): boolean;
275
- /**
276
- * Batch enqueue multiple tasks (FS-102).
277
- * Supports aggregation layer batch submission.
278
- *
279
- * @param tasks - Array of tasks to enqueue
280
- * @returns Array of task IDs
281
- * @internal
282
- */
283
- enqueueBatch(tasks: EventTask[]): string[];
284
- /**
285
- * Get queue depth for each priority level (FS-103).
286
- * Used by BackpressureManager for multi-priority depth monitoring.
287
- *
288
- * @returns Queue depth snapshot with depths for each priority
289
- * @internal
290
- */
291
- getQueueDepthByPriority(): MultiPriorityQueueDepth;
292
- /**
293
- * Sync queue depth to BackpressureManager (FS-103).
294
- * Called whenever queue depth changes to keep BackpressureManager
295
- * synchronized with real-time queue state.
296
- *
297
- * @private
298
- * @internal
299
- */
300
- private syncBackpressure;
301
- }
@@ -1,109 +0,0 @@
1
- /**
2
- * @gravito/core - Flow Control Strategies
3
- *
4
- * Implements various flow control strategies for backpressure management.
5
- * Strategies can be composed to create flexible backpressure policies.
6
- *
7
- * 流控策略:支援多種組合策略進行靈活的背壓管理。
8
- */
9
- import { type BackpressureConfig, type BackpressureDecision, BackpressureState } from './BackpressureManager';
10
- /**
11
- * 流控評估上下文。
12
- *
13
- * @public
14
- */
15
- export interface FlowControlContext {
16
- /** 當前背壓狀態 */
17
- state: BackpressureState;
18
- /** 事件優先級 */
19
- priority: 'high' | 'normal' | 'low';
20
- /** 總隊列深度 */
21
- totalDepth: number;
22
- /** 分優先級隊列深度 */
23
- depthByPriority: {
24
- high: number;
25
- normal: number;
26
- low: number;
27
- };
28
- /** 當前入隊速率(events/sec) */
29
- currentRate: number;
30
- /** 配置 */
31
- config: Omit<BackpressureConfig, 'onRejected' | 'onStateChange'>;
32
- }
33
- /**
34
- * 流控策略介面。
35
- *
36
- * @public
37
- */
38
- export interface FlowControlStrategy {
39
- /** 策略名稱 */
40
- readonly name: string;
41
- /** 評估是否應該限制此事件 */
42
- evaluate(context: FlowControlContext): BackpressureDecision;
43
- }
44
- /**
45
- * 隊列深度策略。
46
- *
47
- * 根據總隊列深度和分優先級隊列深度決定是否限制事件入隊。
48
- */
49
- export declare class QueueDepthStrategy implements FlowControlStrategy {
50
- readonly name = "queue-depth";
51
- evaluate(context: FlowControlContext): BackpressureDecision;
52
- }
53
- /**
54
- * 速率限制策略。
55
- *
56
- * 根據每秒入隊速率限制事件入隊。
57
- */
58
- export declare class RateLimitStrategy implements FlowControlStrategy {
59
- readonly name = "rate-limit";
60
- evaluate(context: FlowControlContext): BackpressureDecision;
61
- }
62
- /**
63
- * 優先級平衡策略。
64
- *
65
- * 在 WARNING 和 CRITICAL 狀態下降級低優先級事件,防止高優先級飢餓。
66
- */
67
- export declare class PriorityRebalanceStrategy implements FlowControlStrategy {
68
- readonly name = "priority-rebalance";
69
- evaluate(context: FlowControlContext): BackpressureDecision;
70
- }
71
- /**
72
- * 反飢餓保護策略。
73
- *
74
- * 防止低優先級事件被長期壓制。
75
- * 當事件等待超過 starvationTimeoutMs 時,自動提升其優先級。
76
- */
77
- export declare class StarvationProtectionStrategy implements FlowControlStrategy {
78
- readonly name = "starvation-protection";
79
- evaluate(_context: FlowControlContext): BackpressureDecision;
80
- }
81
- /**
82
- * 組合策略。
83
- *
84
- * 組合多個策略。評估時所有子策略必須允許,否則拒絕。
85
- * 取最嚴格的決策(拒絕 > 延遲 > 允許)。
86
- */
87
- export declare class CompositeStrategy implements FlowControlStrategy {
88
- readonly name: string;
89
- private strategies;
90
- constructor(name: string, strategies: FlowControlStrategy[]);
91
- evaluate(context: FlowControlContext): BackpressureDecision;
92
- /**
93
- * 新增子策略。
94
- */
95
- addStrategy(strategy: FlowControlStrategy): void;
96
- /**
97
- * 移除指定名稱的子策略。
98
- */
99
- removeStrategy(name: string): boolean;
100
- }
101
- /**
102
- * 工廠方法:建立預設流控策略組合。
103
- *
104
- * @param config 背壓配置
105
- * @returns 組合策略實例
106
- *
107
- * @public
108
- */
109
- export declare function createDefaultStrategies(_config: Omit<BackpressureConfig, 'onRejected' | 'onStateChange'>): FlowControlStrategy[];
@@ -1,60 +0,0 @@
1
- /**
2
- * Idempotency cache for deduplicating events.
3
- * Prevents duplicate events from being processed within a configurable TTL window.
4
- * @internal
5
- */
6
- export declare class IdempotencyCache {
7
- private cache;
8
- private cleanupInterval;
9
- private readonly defaultCleanupIntervalMs;
10
- constructor();
11
- /**
12
- * Check if an event with the given idempotency key is a duplicate.
13
- * @param key - Idempotency key
14
- * @param ttlMs - Time-to-live in milliseconds
15
- * @returns True if this is a duplicate, false if it's a new event
16
- */
17
- isDuplicate(key: string, ttlMs: number): boolean;
18
- /**
19
- * Record an event in the cache.
20
- * @param key - Idempotency key
21
- */
22
- recordEvent(key: string): void;
23
- /**
24
- * Remove an entry from the cache.
25
- * @param key - Idempotency key
26
- * @returns True if entry was removed, false if not found
27
- */
28
- remove(key: string): boolean;
29
- /**
30
- * Clear all entries from the cache.
31
- */
32
- clear(): void;
33
- /**
34
- * Get the current cache size.
35
- * @returns Number of entries in cache
36
- */
37
- getSize(): number;
38
- /**
39
- * Start periodic cleanup of expired entries.
40
- * @internal
41
- */
42
- private startCleanup;
43
- /**
44
- * Stop the periodic cleanup.
45
- * @internal
46
- */
47
- stopCleanup(): void;
48
- /**
49
- * Clean up expired entries from the cache.
50
- * This is called periodically and doesn't use strict TTL checking,
51
- * so entries older than a reasonable default (24 hours) are removed.
52
- * @internal
53
- */
54
- private cleanup;
55
- /**
56
- * Destructor to clean up resources.
57
- * @internal
58
- */
59
- destroy(): void;
60
- }
@@ -1,184 +0,0 @@
1
- /**
2
- * @gravito/core - Message Queue Bridge
3
- *
4
- * 橋接層,連接 HookManager 與 Bull Queue (via StreamEventBackend)
5
- * 支持分佈式事件流:HookManager → Bull Queue → Worker → 完成/DLQ
6
- */
7
- import type { HookManager } from '../HookManager';
8
- import type { DeadLetterQueueManager } from '../reliability/DeadLetterQueueManager';
9
- import type { EventBackend } from './EventBackend';
10
- import type { EventTask } from './types';
11
- import type { WorkerPool } from './WorkerPool';
12
- /**
13
- * 事件執行狀態
14
- */
15
- export interface EventStatus {
16
- eventId: string;
17
- status: 'pending' | 'processing' | 'completed' | 'failed' | 'in_dlq';
18
- attempts: number;
19
- lastError?: string;
20
- createdAt: number;
21
- processedAt?: number;
22
- }
23
- /**
24
- * MessageQueueBridge 配置
25
- */
26
- export interface MessageQueueBridgeConfig {
27
- /**
28
- * HookManager 實例
29
- */
30
- hookManager: HookManager;
31
- /**
32
- * Worker 線程池(可選)
33
- */
34
- workerPool?: WorkerPool;
35
- /**
36
- * 分佈式事件後端(Bull Queue)
37
- */
38
- eventBackend: EventBackend;
39
- /**
40
- * Dead Letter Queue 管理器
41
- */
42
- dlqManager: DeadLetterQueueManager;
43
- /**
44
- * 是否啟用 CircuitBreaker 檢查
45
- * @default false
46
- */
47
- enableCircuitBreaker?: boolean;
48
- }
49
- /**
50
- * MessageQueueBridge - 連接 HookManager 與 Bull Queue 的橋接層
51
- *
52
- * 功能:
53
- * 1. 通過 Bull Queue 分發事件(dispatchWithQueue)
54
- * 2. Worker 中處理隊列事件(processQueuedEvent)
55
- * 3. 失敗任務轉移至 DLQ(handleJobFailure)
56
- * 4. 查詢事件執行狀態(getEventStatus)
57
- *
58
- * @example
59
- * ```typescript
60
- * const bridge = new MessageQueueBridge({
61
- * hookManager,
62
- * eventBackend: streamEventBackend,
63
- * dlqManager,
64
- * enableCircuitBreaker: true
65
- * })
66
- *
67
- * // 分發事件至 Bull Queue
68
- * const jobId = await bridge.dispatchWithQueue('order:created', { orderId: 123 })
69
- *
70
- * // Worker 處理事件
71
- * await bridge.processQueuedEvent(jobId, task)
72
- * ```
73
- */
74
- export declare class MessageQueueBridge {
75
- private config;
76
- constructor(config: MessageQueueBridgeConfig);
77
- /**
78
- * 通過 Bull Queue 分發事件(分佈式異步處理)
79
- *
80
- * 流程:
81
- * 1. 驗證事件 listeners 存在
82
- * 2. 檢查 CircuitBreaker 狀態(如果啟用)
83
- * 3. 構建 EventTask
84
- * 4. 入隊到 eventBackend (Bull Queue)
85
- *
86
- * @param eventName - 事件名稱
87
- * @param args - 事件參數
88
- * @param options - 事件選項(可選)
89
- * @returns Job ID
90
- * @throws 如果沒有 listeners 或 CircuitBreaker 打開
91
- *
92
- * @example
93
- * ```typescript
94
- * const jobId = await bridge.dispatchWithQueue('order:created', {
95
- * orderId: 'ORD-123',
96
- * amount: 999.99
97
- * })
98
- * ```
99
- */
100
- dispatchWithQueue<TArgs = unknown>(eventName: string, args: TArgs, options?: any): Promise<string>;
101
- /**
102
- * 處理隊列事件(由 Bull Queue Worker 調用)
103
- *
104
- * 重要:使用 doActionSync() 避免遞迴
105
- * - 不能使用 doActionAsync()(會導致事件再次入隊)
106
- * - Worker 中直接同步執行 callbacks
107
- *
108
- * 流程:
109
- * 1. 直接執行 callbacks(不使用 doActionSync,避免吞掉錯誤)
110
- * 2. 記錄成功或失敗
111
- * 3. 拋出錯誤讓 Bull Queue 處理重試
112
- *
113
- * @param jobId - Bull Queue Job ID
114
- * @param task - 事件任務
115
- * @throws 如果 callback 執行失敗,讓 Bull Queue 處理重試
116
- *
117
- * @example
118
- * ```typescript
119
- * // 在 Bull Queue Worker 中:
120
- * await bridge.processQueuedEvent(jobId, task)
121
- * ```
122
- */
123
- processQueuedEvent(jobId: string, task: EventTask): Promise<void>;
124
- /**
125
- * 處理 Bull Queue 任務失敗(由 onFailed callback 調用)
126
- *
127
- * 流程:
128
- * 1. 記錄警告日誌
129
- * 2. 移至 persistent DLQ(DeadLetterQueueManager)
130
- * 3. 持久化到 event_dlq 表,支持延遲重試
131
- *
132
- * @param jobId - Bull Queue Job ID
133
- * @param task - 事件任務
134
- * @param error - 導致失敗的錯誤
135
- * @param retryCount - 已重試次數(可選)
136
- *
137
- * @example
138
- * ```typescript
139
- * // 在 Bull Queue onFailed callback 中:
140
- * await bridge.handleJobFailure(jobId, task, error, 3)
141
- * ```
142
- */
143
- handleJobFailure(jobId: string, task: EventTask, error: Error, retryCount?: number): Promise<void>;
144
- /**
145
- * 查詢事件執行狀態
146
- *
147
- * 支持查詢:
148
- * 1. 待處理事件
149
- * 2. 正在處理的事件
150
- * 3. 已完成事件
151
- * 4. 失敗事件(在 DLQ 中)
152
- *
153
- * @param eventId - 事件 ID(task.id 或 jobId)
154
- * @returns 事件狀態
155
- *
156
- * @example
157
- * ```typescript
158
- * const status = await bridge.getEventStatus('queue-1707000000000-abc123')
159
- * console.log(status) // { eventId, status, attempts, ... }
160
- * ```
161
- */
162
- getEventStatus(eventId: string): Promise<EventStatus>;
163
- /**
164
- * 獲取 EventBackend 實例(用於高級操作)
165
- *
166
- * @returns EventBackend 實例
167
- * @internal
168
- */
169
- getEventBackend(): EventBackend;
170
- /**
171
- * 獲取 DLQ 管理器實例(用於高級操作)
172
- *
173
- * @returns DeadLetterQueueManager 實例
174
- * @internal
175
- */
176
- getDLQManager(): DeadLetterQueueManager;
177
- /**
178
- * 獲取 HookManager 實例(用於高級操作)
179
- *
180
- * @returns HookManager 實例
181
- * @internal
182
- */
183
- getHookManager(): HookManager;
184
- }