@gravito/stream 1.0.0-alpha.6 → 1.0.0-beta.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 (150) hide show
  1. package/README.md +94 -5
  2. package/dist/index.cjs +2265 -31639
  3. package/dist/index.d.cts +1814 -0
  4. package/dist/index.d.ts +1805 -36
  5. package/dist/index.js +2700 -0
  6. package/package.json +11 -7
  7. package/dist/Consumer.d.ts +0 -67
  8. package/dist/Consumer.d.ts.map +0 -1
  9. package/dist/Job.d.ts +0 -76
  10. package/dist/Job.d.ts.map +0 -1
  11. package/dist/OrbitQueue.d.ts +0 -74
  12. package/dist/OrbitQueue.d.ts.map +0 -1
  13. package/dist/QueueManager.d.ts +0 -86
  14. package/dist/QueueManager.d.ts.map +0 -1
  15. package/dist/Queueable.d.ts +0 -63
  16. package/dist/Queueable.d.ts.map +0 -1
  17. package/dist/Worker.d.ts +0 -48
  18. package/dist/Worker.d.ts.map +0 -1
  19. package/dist/core/src/ConfigManager.d.ts +0 -26
  20. package/dist/core/src/ConfigManager.d.ts.map +0 -1
  21. package/dist/core/src/Container.d.ts +0 -39
  22. package/dist/core/src/Container.d.ts.map +0 -1
  23. package/dist/core/src/Event.d.ts +0 -6
  24. package/dist/core/src/Event.d.ts.map +0 -1
  25. package/dist/core/src/EventManager.d.ts +0 -124
  26. package/dist/core/src/EventManager.d.ts.map +0 -1
  27. package/dist/core/src/GlobalErrorHandlers.d.ts +0 -32
  28. package/dist/core/src/GlobalErrorHandlers.d.ts.map +0 -1
  29. package/dist/core/src/HookManager.d.ts +0 -29
  30. package/dist/core/src/HookManager.d.ts.map +0 -1
  31. package/dist/core/src/Listener.d.ts +0 -5
  32. package/dist/core/src/Listener.d.ts.map +0 -1
  33. package/dist/core/src/Logger.d.ts +0 -21
  34. package/dist/core/src/Logger.d.ts.map +0 -1
  35. package/dist/core/src/PlanetCore.d.ts +0 -116
  36. package/dist/core/src/PlanetCore.d.ts.map +0 -1
  37. package/dist/core/src/Route.d.ts +0 -13
  38. package/dist/core/src/Route.d.ts.map +0 -1
  39. package/dist/core/src/Router.d.ts +0 -168
  40. package/dist/core/src/Router.d.ts.map +0 -1
  41. package/dist/core/src/ServiceProvider.d.ts +0 -17
  42. package/dist/core/src/ServiceProvider.d.ts.map +0 -1
  43. package/dist/core/src/exceptions/AuthenticationException.d.ts +0 -5
  44. package/dist/core/src/exceptions/AuthenticationException.d.ts.map +0 -1
  45. package/dist/core/src/exceptions/AuthorizationException.d.ts +0 -5
  46. package/dist/core/src/exceptions/AuthorizationException.d.ts.map +0 -1
  47. package/dist/core/src/exceptions/GravitoException.d.ts +0 -15
  48. package/dist/core/src/exceptions/GravitoException.d.ts.map +0 -1
  49. package/dist/core/src/exceptions/ModelNotFoundException.d.ts +0 -7
  50. package/dist/core/src/exceptions/ModelNotFoundException.d.ts.map +0 -1
  51. package/dist/core/src/exceptions/ValidationException.d.ts +0 -15
  52. package/dist/core/src/exceptions/ValidationException.d.ts.map +0 -1
  53. package/dist/core/src/exceptions/index.d.ts +0 -6
  54. package/dist/core/src/exceptions/index.d.ts.map +0 -1
  55. package/dist/core/src/helpers/Arr.d.ts +0 -15
  56. package/dist/core/src/helpers/Arr.d.ts.map +0 -1
  57. package/dist/core/src/helpers/Str.d.ts +0 -19
  58. package/dist/core/src/helpers/Str.d.ts.map +0 -1
  59. package/dist/core/src/helpers/data.d.ts +0 -6
  60. package/dist/core/src/helpers/data.d.ts.map +0 -1
  61. package/dist/core/src/helpers/errors.d.ts +0 -13
  62. package/dist/core/src/helpers/errors.d.ts.map +0 -1
  63. package/dist/core/src/helpers/response.d.ts +0 -19
  64. package/dist/core/src/helpers/response.d.ts.map +0 -1
  65. package/dist/core/src/helpers.d.ts +0 -39
  66. package/dist/core/src/helpers.d.ts.map +0 -1
  67. package/dist/core/src/http/CookieJar.d.ts +0 -34
  68. package/dist/core/src/http/CookieJar.d.ts.map +0 -1
  69. package/dist/core/src/http/middleware/ThrottleRequests.d.ts +0 -13
  70. package/dist/core/src/http/middleware/ThrottleRequests.d.ts.map +0 -1
  71. package/dist/core/src/index.d.ts +0 -32
  72. package/dist/core/src/index.d.ts.map +0 -1
  73. package/dist/core/src/security/Encrypter.d.ts +0 -25
  74. package/dist/core/src/security/Encrypter.d.ts.map +0 -1
  75. package/dist/core/src/security/Hasher.d.ts +0 -30
  76. package/dist/core/src/security/Hasher.d.ts.map +0 -1
  77. package/dist/core/src/types/events.d.ts +0 -95
  78. package/dist/core/src/types/events.d.ts.map +0 -1
  79. package/dist/drivers/DatabaseDriver.d.ts +0 -60
  80. package/dist/drivers/DatabaseDriver.d.ts.map +0 -1
  81. package/dist/drivers/KafkaDriver.d.ts +0 -134
  82. package/dist/drivers/KafkaDriver.d.ts.map +0 -1
  83. package/dist/drivers/MemoryDriver.d.ts +0 -45
  84. package/dist/drivers/MemoryDriver.d.ts.map +0 -1
  85. package/dist/drivers/QueueDriver.d.ts +0 -89
  86. package/dist/drivers/QueueDriver.d.ts.map +0 -1
  87. package/dist/drivers/RedisDriver.d.ts +0 -79
  88. package/dist/drivers/RedisDriver.d.ts.map +0 -1
  89. package/dist/drivers/SQSDriver.d.ts +0 -100
  90. package/dist/drivers/SQSDriver.d.ts.map +0 -1
  91. package/dist/index.cjs.map +0 -422
  92. package/dist/index.d.ts.map +0 -1
  93. package/dist/index.mjs +0 -32096
  94. package/dist/index.mjs.map +0 -422
  95. package/dist/orbit-db/src/DBService.d.ts +0 -270
  96. package/dist/orbit-db/src/DBService.d.ts.map +0 -1
  97. package/dist/orbit-db/src/EventBus.d.ts +0 -53
  98. package/dist/orbit-db/src/EventBus.d.ts.map +0 -1
  99. package/dist/orbit-db/src/MigrationDriver.d.ts +0 -55
  100. package/dist/orbit-db/src/MigrationDriver.d.ts.map +0 -1
  101. package/dist/orbit-db/src/Model.d.ts +0 -564
  102. package/dist/orbit-db/src/Model.d.ts.map +0 -1
  103. package/dist/orbit-db/src/ModelCollection.d.ts +0 -35
  104. package/dist/orbit-db/src/ModelCollection.d.ts.map +0 -1
  105. package/dist/orbit-db/src/index.d.ts +0 -34
  106. package/dist/orbit-db/src/index.d.ts.map +0 -1
  107. package/dist/orbit-db/src/types.d.ts +0 -146
  108. package/dist/orbit-db/src/types.d.ts.map +0 -1
  109. package/dist/orbit-queue/src/Consumer.d.ts +0 -67
  110. package/dist/orbit-queue/src/Consumer.d.ts.map +0 -1
  111. package/dist/orbit-queue/src/Job.d.ts +0 -76
  112. package/dist/orbit-queue/src/Job.d.ts.map +0 -1
  113. package/dist/orbit-queue/src/OrbitQueue.d.ts +0 -74
  114. package/dist/orbit-queue/src/OrbitQueue.d.ts.map +0 -1
  115. package/dist/orbit-queue/src/QueueManager.d.ts +0 -86
  116. package/dist/orbit-queue/src/QueueManager.d.ts.map +0 -1
  117. package/dist/orbit-queue/src/Queueable.d.ts +0 -63
  118. package/dist/orbit-queue/src/Queueable.d.ts.map +0 -1
  119. package/dist/orbit-queue/src/Worker.d.ts +0 -48
  120. package/dist/orbit-queue/src/Worker.d.ts.map +0 -1
  121. package/dist/orbit-queue/src/drivers/DatabaseDriver.d.ts +0 -60
  122. package/dist/orbit-queue/src/drivers/DatabaseDriver.d.ts.map +0 -1
  123. package/dist/orbit-queue/src/drivers/KafkaDriver.d.ts +0 -134
  124. package/dist/orbit-queue/src/drivers/KafkaDriver.d.ts.map +0 -1
  125. package/dist/orbit-queue/src/drivers/MemoryDriver.d.ts +0 -45
  126. package/dist/orbit-queue/src/drivers/MemoryDriver.d.ts.map +0 -1
  127. package/dist/orbit-queue/src/drivers/QueueDriver.d.ts +0 -89
  128. package/dist/orbit-queue/src/drivers/QueueDriver.d.ts.map +0 -1
  129. package/dist/orbit-queue/src/drivers/RedisDriver.d.ts +0 -79
  130. package/dist/orbit-queue/src/drivers/RedisDriver.d.ts.map +0 -1
  131. package/dist/orbit-queue/src/drivers/SQSDriver.d.ts +0 -100
  132. package/dist/orbit-queue/src/drivers/SQSDriver.d.ts.map +0 -1
  133. package/dist/orbit-queue/src/index.d.ts +0 -45
  134. package/dist/orbit-queue/src/index.d.ts.map +0 -1
  135. package/dist/orbit-queue/src/serializers/ClassNameSerializer.d.ts +0 -46
  136. package/dist/orbit-queue/src/serializers/ClassNameSerializer.d.ts.map +0 -1
  137. package/dist/orbit-queue/src/serializers/JobSerializer.d.ts +0 -36
  138. package/dist/orbit-queue/src/serializers/JobSerializer.d.ts.map +0 -1
  139. package/dist/orbit-queue/src/serializers/JsonSerializer.d.ts +0 -32
  140. package/dist/orbit-queue/src/serializers/JsonSerializer.d.ts.map +0 -1
  141. package/dist/orbit-queue/src/types.d.ts +0 -85
  142. package/dist/orbit-queue/src/types.d.ts.map +0 -1
  143. package/dist/serializers/ClassNameSerializer.d.ts +0 -46
  144. package/dist/serializers/ClassNameSerializer.d.ts.map +0 -1
  145. package/dist/serializers/JobSerializer.d.ts +0 -36
  146. package/dist/serializers/JobSerializer.d.ts.map +0 -1
  147. package/dist/serializers/JsonSerializer.d.ts +0 -32
  148. package/dist/serializers/JsonSerializer.d.ts.map +0 -1
  149. package/dist/types.d.ts +0 -85
  150. package/dist/types.d.ts.map +0 -1
@@ -1,134 +0,0 @@
1
- import type { SerializedJob, TopicOptions } from '../types';
2
- import type { QueueDriver } from './QueueDriver';
3
- /**
4
- * Kafka driver configuration.
5
- */
6
- export interface KafkaDriverConfig {
7
- /**
8
- * Kafka client instance (kafkajs).
9
- */
10
- client: {
11
- producer: () => {
12
- connect: () => Promise<void>;
13
- send: (args: {
14
- topic: string;
15
- messages: Array<{
16
- key?: string;
17
- value: string;
18
- }>;
19
- }) => Promise<void>;
20
- disconnect: () => Promise<void>;
21
- };
22
- admin: () => {
23
- connect: () => Promise<void>;
24
- createTopics: (args: {
25
- topics: Array<{
26
- topic: string;
27
- numPartitions?: number;
28
- replicationFactor?: number;
29
- }>;
30
- }) => Promise<void>;
31
- deleteTopics: (args: {
32
- topics: string[];
33
- }) => Promise<void>;
34
- disconnect: () => Promise<void>;
35
- };
36
- consumer: (args: {
37
- groupId: string;
38
- }) => {
39
- connect: () => Promise<void>;
40
- subscribe: (args: {
41
- topics: string[];
42
- }) => Promise<void>;
43
- run: (args: {
44
- eachMessage: (args: {
45
- topic: string;
46
- partition: number;
47
- message: {
48
- key?: Buffer;
49
- value: Buffer;
50
- offset: string;
51
- };
52
- }) => Promise<void>;
53
- }) => Promise<void>;
54
- disconnect: () => Promise<void>;
55
- };
56
- };
57
- /**
58
- * Consumer group ID (for consuming messages).
59
- */
60
- consumerGroupId?: string;
61
- }
62
- /**
63
- * Kafka Driver
64
- *
65
- * Uses Apache Kafka as the queue backend.
66
- * Supports topic management, consumer groups, and batch operations.
67
- *
68
- * Requires `kafkajs`.
69
- *
70
- * @example
71
- * ```typescript
72
- * import { Kafka } from 'kafkajs'
73
- *
74
- * const kafka = new Kafka({
75
- * brokers: ['localhost:9092'],
76
- * clientId: 'gravito-app'
77
- * })
78
- *
79
- * const driver = new KafkaDriver({ client: kafka, consumerGroupId: 'workers' })
80
- * await driver.push('default', serializedJob)
81
- * ```
82
- */
83
- export declare class KafkaDriver implements QueueDriver {
84
- private client;
85
- private consumerGroupId;
86
- private producer?;
87
- private admin?;
88
- constructor(config: KafkaDriverConfig);
89
- /**
90
- * Ensure the producer is connected.
91
- */
92
- private ensureProducer;
93
- /**
94
- * Ensure the admin client is connected.
95
- */
96
- private ensureAdmin;
97
- /**
98
- * Push a job to a topic.
99
- */
100
- push(queue: string, job: SerializedJob): Promise<void>;
101
- /**
102
- * Pop is not supported for Kafka.
103
- *
104
- * Note: Kafka uses a push-based model, so you should use `subscribe()`.
105
- */
106
- pop(_queue: string): Promise<SerializedJob | null>;
107
- /**
108
- * Kafka does not provide a direct queue size.
109
- *
110
- * Returns 0; use Kafka tooling/metrics for lag/size insights.
111
- */
112
- size(_queue: string): Promise<number>;
113
- /**
114
- * Clear a queue by deleting the topic.
115
- */
116
- clear(queue: string): Promise<void>;
117
- /**
118
- * Push multiple jobs.
119
- */
120
- pushMany(queue: string, jobs: SerializedJob[]): Promise<void>;
121
- /**
122
- * Create a topic.
123
- */
124
- createTopic(topic: string, options?: TopicOptions): Promise<void>;
125
- /**
126
- * Delete a topic.
127
- */
128
- deleteTopic(topic: string): Promise<void>;
129
- /**
130
- * Subscribe to a topic (push-based model).
131
- */
132
- subscribe(queue: string, callback: (job: SerializedJob) => Promise<void>): Promise<void>;
133
- }
134
- //# sourceMappingURL=KafkaDriver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"KafkaDriver.d.ts","sourceRoot":"","sources":["../../../../src/drivers/KafkaDriver.ts"],"names":[],"mappings":"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"}
@@ -1,45 +0,0 @@
1
- import type { SerializedJob } from '../types';
2
- import type { QueueDriver } from './QueueDriver';
3
- /**
4
- * Memory Driver
5
- *
6
- * In-memory driver for development and testing.
7
- * All data is stored in memory and will be lost when the process restarts.
8
- *
9
- * Zero-config: works out of the box.
10
- *
11
- * @example
12
- * ```typescript
13
- * const driver = new MemoryDriver()
14
- * await driver.push('default', serializedJob)
15
- * const job = await driver.pop('default')
16
- * ```
17
- */
18
- export declare class MemoryDriver implements QueueDriver {
19
- private queues;
20
- /**
21
- * Push a job to a queue.
22
- */
23
- push(queue: string, job: SerializedJob): Promise<void>;
24
- /**
25
- * Pop a job from a queue (FIFO).
26
- */
27
- pop(queue: string): Promise<SerializedJob | null>;
28
- /**
29
- * Get queue size.
30
- */
31
- size(queue: string): Promise<number>;
32
- /**
33
- * Clear a queue.
34
- */
35
- clear(queue: string): Promise<void>;
36
- /**
37
- * Push multiple jobs.
38
- */
39
- pushMany(queue: string, jobs: SerializedJob[]): Promise<void>;
40
- /**
41
- * Pop multiple jobs.
42
- */
43
- popMany(queue: string, count: number): Promise<SerializedJob[]>;
44
- }
45
- //# sourceMappingURL=MemoryDriver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MemoryDriver.d.ts","sourceRoot":"","sources":["../../../../src/drivers/MemoryDriver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,YAAa,YAAW,WAAW;IAC9C,OAAO,CAAC,MAAM,CAAqC;IAEnD;;OAEG;IACG,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAO5D;;OAEG;IACG,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAmBvD;;OAEG;IACG,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1C;;OAEG;IACG,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC;;OAEG;IACG,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnE;;OAEG;IACG,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;CAYtE"}
@@ -1,89 +0,0 @@
1
- import type { SerializedJob, TopicOptions } from '../types';
2
- /**
3
- * Queue driver interface.
4
- *
5
- * All queue drivers must implement this interface.
6
- * Defines basic queue operations plus optional enterprise-grade capabilities.
7
- *
8
- * @example
9
- * ```typescript
10
- * class MyDriver implements QueueDriver {
11
- * async push(queue: string, job: SerializedJob): Promise<void> {
12
- * // push a job
13
- * }
14
- *
15
- * async pop(queue: string): Promise<SerializedJob | null> {
16
- * // pop a job
17
- * }
18
- *
19
- * async size(queue: string): Promise<number> {
20
- * // queue size
21
- * }
22
- *
23
- * async clear(queue: string): Promise<void> {
24
- * // clear queue
25
- * }
26
- * }
27
- * ```
28
- */
29
- export interface QueueDriver {
30
- /**
31
- * Push a job to a queue.
32
- * @param queue - Queue name
33
- * @param job - Serialized job
34
- */
35
- push(queue: string, job: SerializedJob): Promise<void>;
36
- /**
37
- * Pop a job from a queue (non-blocking).
38
- * @param queue - Queue name
39
- * @returns Serialized job, or `null` if the queue is empty
40
- */
41
- pop(queue: string): Promise<SerializedJob | null>;
42
- /**
43
- * Get queue size.
44
- * @param queue - Queue name
45
- * @returns Number of jobs in the queue
46
- */
47
- size(queue: string): Promise<number>;
48
- /**
49
- * Clear a queue.
50
- * @param queue - Queue name
51
- */
52
- clear(queue: string): Promise<void>;
53
- /**
54
- * Push multiple jobs (optional, higher throughput).
55
- * @param queue - Queue name
56
- * @param jobs - Serialized job array
57
- */
58
- pushMany?(queue: string, jobs: SerializedJob[]): Promise<void>;
59
- /**
60
- * Pop multiple jobs (optional, higher throughput).
61
- * @param queue - Queue name
62
- * @param count - Max number of jobs to pop
63
- * @returns Serialized job array
64
- */
65
- popMany?(queue: string, count: number): Promise<SerializedJob[]>;
66
- /**
67
- * Acknowledge a message (enterprise capability, e.g. Kafka/SQS).
68
- * @param messageId - Message ID
69
- */
70
- acknowledge?(messageId: string): Promise<void>;
71
- /**
72
- * Subscribe to a queue (push-based model, e.g. Kafka/SQS).
73
- * @param queue - Queue name
74
- * @param callback - Callback to process jobs
75
- */
76
- subscribe?(queue: string, callback: (job: SerializedJob) => Promise<void>): Promise<void>;
77
- /**
78
- * Create a topic (Kafka, etc.).
79
- * @param topic - Topic name
80
- * @param options - Topic options
81
- */
82
- createTopic?(topic: string, options?: TopicOptions): Promise<void>;
83
- /**
84
- * Delete a topic (Kafka, etc.).
85
- * @param topic - Topic name
86
- */
87
- deleteTopic?(topic: string): Promise<void>;
88
- }
89
- //# sourceMappingURL=QueueDriver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"QueueDriver.d.ts","sourceRoot":"","sources":["../../../../src/drivers/QueueDriver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEtD;;;;OAIG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAA;IAEjD;;;;OAIG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAEpC;;;OAGG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEnC;;;;OAIG;IACH,QAAQ,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE9D;;;;;OAKG;IACH,OAAO,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAA;IAEhE;;;OAGG;IACH,WAAW,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE9C;;;;OAIG;IACH,SAAS,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEzF;;;;OAIG;IACH,WAAW,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAElE;;;OAGG;IACH,WAAW,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3C"}
@@ -1,79 +0,0 @@
1
- import type { SerializedJob } from '../types';
2
- import type { QueueDriver } from './QueueDriver';
3
- /**
4
- * Redis driver configuration.
5
- */
6
- export interface RedisDriverConfig {
7
- /**
8
- * Redis client instance (ioredis or node-redis).
9
- */
10
- client: {
11
- lpush: (key: string, ...values: string[]) => Promise<number>;
12
- rpop: (key: string) => Promise<string | null>;
13
- llen: (key: string) => Promise<number>;
14
- del: (key: string) => Promise<number>;
15
- lpushx?: (key: string, ...values: string[]) => Promise<number>;
16
- rpoplpush?: (src: string, dst: string) => Promise<string | null>;
17
- [key: string]: unknown;
18
- };
19
- /**
20
- * Key prefix (default: `queue:`).
21
- */
22
- prefix?: string;
23
- }
24
- /**
25
- * Redis Driver
26
- *
27
- * Uses Redis as the queue backend.
28
- * Implements FIFO via Redis Lists (LPUSH/RPOP).
29
- *
30
- * Requires `ioredis` or `redis`.
31
- *
32
- * @example
33
- * ```typescript
34
- * import Redis from 'ioredis'
35
- *
36
- * const redis = new Redis('redis://localhost:6379')
37
- * const driver = new RedisDriver({ client: redis })
38
- *
39
- * await driver.push('default', serializedJob)
40
- * ```
41
- */
42
- export declare class RedisDriver implements QueueDriver {
43
- private prefix;
44
- private client;
45
- constructor(config: RedisDriverConfig);
46
- /**
47
- * Get full Redis key for a queue.
48
- */
49
- private getKey;
50
- /**
51
- * Push a job (LPUSH).
52
- */
53
- push(queue: string, job: SerializedJob): Promise<void>;
54
- /**
55
- * Pop a job (RPOP, FIFO).
56
- */
57
- pop(queue: string): Promise<SerializedJob | null>;
58
- /**
59
- * Parse Redis payload.
60
- */
61
- private parsePayload;
62
- /**
63
- * Get queue size.
64
- */
65
- size(queue: string): Promise<number>;
66
- /**
67
- * Clear a queue.
68
- */
69
- clear(queue: string): Promise<void>;
70
- /**
71
- * Push multiple jobs.
72
- */
73
- pushMany(queue: string, jobs: SerializedJob[]): Promise<void>;
74
- /**
75
- * Pop multiple jobs.
76
- */
77
- popMany(queue: string, count: number): Promise<SerializedJob[]>;
78
- }
79
- //# sourceMappingURL=RedisDriver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RedisDriver.d.ts","sourceRoot":"","sources":["../../../../src/drivers/RedisDriver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,MAAM,EAAE;QACN,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;QAC5D,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;QAC7C,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;QACtC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;QACrC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;QAC9D,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;QAChE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KACvB,CAAA;IAED;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,WAAY,YAAW,WAAW;IAC7C,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,MAAM,CAA6B;gBAE/B,MAAM,EAAE,iBAAiB;IAWrC;;OAEG;IACH,OAAO,CAAC,MAAM;IAId;;OAEG;IACG,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA6B5D;;OAEG;IACG,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IA4BvD;;OAEG;IACH,OAAO,CAAC,YAAY;IAcpB;;OAEG;IACG,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK1C;;OAEG;IACG,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASzC;;OAEG;IACG,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBnE;;OAEG;IACG,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;CAetE"}
@@ -1,100 +0,0 @@
1
- import type { SerializedJob } from '../types';
2
- import type { QueueDriver } from './QueueDriver';
3
- /**
4
- * SQS driver configuration.
5
- */
6
- export interface SQSDriverConfig {
7
- /**
8
- * SQS client instance (`@aws-sdk/client-sqs`).
9
- */
10
- client: {
11
- send: (command: unknown) => Promise<{
12
- MessageId?: string;
13
- Messages?: Array<{
14
- MessageId?: string;
15
- ReceiptHandle?: string;
16
- Body?: string;
17
- }>;
18
- }>;
19
- };
20
- /**
21
- * Queue URL prefix (used to build full queue URLs).
22
- */
23
- queueUrlPrefix?: string;
24
- /**
25
- * Visibility timeout (seconds, default: 30).
26
- */
27
- visibilityTimeout?: number;
28
- /**
29
- * Long-polling duration (seconds, default: 20).
30
- */
31
- waitTimeSeconds?: number;
32
- }
33
- /**
34
- * SQS Driver
35
- *
36
- * Uses AWS SQS as the queue backend.
37
- * Supports standard/FIFO queues, long polling, DLQ setups, etc.
38
- *
39
- * Requires `@aws-sdk/client-sqs`.
40
- *
41
- * @example
42
- * ```typescript
43
- * import { SQSClient } from '@aws-sdk/client-sqs'
44
- *
45
- * const sqs = new SQSClient({
46
- * region: 'us-east-1',
47
- * credentials: {
48
- * accessKeyId: process.env.AWS_ACCESS_KEY_ID!,
49
- * secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY!,
50
- * }
51
- * })
52
- *
53
- * const driver = new SQSDriver({ client: sqs })
54
- * await driver.push('default', serializedJob)
55
- * ```
56
- */
57
- export declare class SQSDriver implements QueueDriver {
58
- private client;
59
- private queueUrlPrefix;
60
- private visibilityTimeout;
61
- private waitTimeSeconds;
62
- private queueUrls;
63
- constructor(config: SQSDriverConfig);
64
- /**
65
- * Resolve the full queue URL.
66
- */
67
- private getQueueUrl;
68
- /**
69
- * Push a job to SQS.
70
- */
71
- push(queue: string, job: SerializedJob): Promise<void>;
72
- /**
73
- * Pop a job (long polling).
74
- */
75
- pop(queue: string): Promise<SerializedJob | null>;
76
- /**
77
- * Get queue size (approximate).
78
- */
79
- size(queue: string): Promise<number>;
80
- /**
81
- * Clear a queue by receiving and deleting messages.
82
- *
83
- * Note: SQS does not provide a direct "purge" API via this wrapper. This method will
84
- * keep receiving and deleting messages until the queue is empty.
85
- */
86
- clear(queue: string): Promise<void>;
87
- /**
88
- * Push multiple jobs.
89
- */
90
- pushMany(queue: string, jobs: SerializedJob[]): Promise<void>;
91
- /**
92
- * Acknowledge is not supported via messageId.
93
- */
94
- acknowledge(_messageId: string): Promise<void>;
95
- /**
96
- * Delete a message (acknowledge processing completion).
97
- */
98
- deleteMessage(queue: string, receiptHandle: string): Promise<void>;
99
- }
100
- //# sourceMappingURL=SQSDriver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SQSDriver.d.ts","sourceRoot":"","sources":["../../../../src/drivers/SQSDriver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,MAAM,EAAE;QACN,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC;YAClC,SAAS,CAAC,EAAE,MAAM,CAAA;YAClB,QAAQ,CAAC,EAAE,KAAK,CAAC;gBACf,SAAS,CAAC,EAAE,MAAM,CAAA;gBAClB,aAAa,CAAC,EAAE,MAAM,CAAA;gBACtB,IAAI,CAAC,EAAE,MAAM,CAAA;aACd,CAAC,CAAA;SACH,CAAC,CAAA;KACH,CAAA;IAED;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAE1B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,SAAU,YAAW,WAAW;IAC3C,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,iBAAiB,CAAQ;IACjC,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,SAAS,CAA4B;gBAEjC,MAAM,EAAE,eAAe;IAanC;;OAEG;YACW,WAAW;IAiBzB;;OAEG;IACG,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B5D;;OAEG;IACG,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAkCvD;;OAEG;IACG,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAmB1C;;;;;OAKG;IACG,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBzC;;OAEG;IACG,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAwCnE;;OAEG;IACG,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpD;;OAEG;IACG,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAWzE"}
@@ -1,45 +0,0 @@
1
- /**
2
- * @gravito/orbit-queue
3
- *
4
- * Lightweight, high-performance queue system inspired by Laravel while keeping Gravito's core values.
5
- * Supports multiple storage drivers, embedded/standalone consumer modes, and multiple job serialization strategies.
6
- *
7
- * @example
8
- * ```typescript
9
- * import { OrbitQueue, Job } from '@gravito/orbit-queue'
10
- *
11
- * // Create a Job
12
- * class SendEmail extends Job {
13
- * async handle() {
14
- * // handle logic
15
- * }
16
- * }
17
- *
18
- * // Push a Job
19
- * await queue.push(new SendEmail())
20
- * ```
21
- */
22
- export type { ConsumerOptions } from './Consumer';
23
- export { Consumer } from './Consumer';
24
- export type { DatabaseDriverConfig } from './drivers/DatabaseDriver';
25
- export { DatabaseDriver } from './drivers/DatabaseDriver';
26
- export type { KafkaDriverConfig } from './drivers/KafkaDriver';
27
- export { KafkaDriver } from './drivers/KafkaDriver';
28
- export { MemoryDriver } from './drivers/MemoryDriver';
29
- export type { QueueDriver } from './drivers/QueueDriver';
30
- export type { RedisDriverConfig } from './drivers/RedisDriver';
31
- export { RedisDriver } from './drivers/RedisDriver';
32
- export type { SQSDriverConfig } from './drivers/SQSDriver';
33
- export { SQSDriver } from './drivers/SQSDriver';
34
- export { Job } from './Job';
35
- export type { OrbitQueueOptions } from './OrbitQueue';
36
- export { OrbitQueue } from './OrbitQueue';
37
- export type { Queueable } from './Queueable';
38
- export { QueueManager } from './QueueManager';
39
- export { ClassNameSerializer } from './serializers/ClassNameSerializer';
40
- export type { JobSerializer } from './serializers/JobSerializer';
41
- export { JsonSerializer } from './serializers/JsonSerializer';
42
- export type { QueueConfig, QueueConnectionConfig, SerializedJob, TopicOptions, } from './types';
43
- export type { WorkerOptions } from './Worker';
44
- export { Worker } from './Worker';
45
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,YAAY,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAErD,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAG/C,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAEvE,YAAY,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,YAAY,EACV,WAAW,EACX,qBAAqB,EACrB,aAAa,EACb,YAAY,GACb,MAAM,SAAS,CAAA;AAEhB,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA"}
@@ -1,46 +0,0 @@
1
- import type { Job } from '../Job';
2
- import type { SerializedJob } from '../types';
3
- import type { JobSerializer } from './JobSerializer';
4
- /**
5
- * Class name serializer (Laravel-style).
6
- *
7
- * Stores the class name and properties, then recreates an instance at runtime.
8
- * This is the recommended serializer because it can restore class instances correctly.
9
- *
10
- * Requirement: Job classes must be dynamically loadable (by class name).
11
- *
12
- * @example
13
- * ```typescript
14
- * const serializer = new ClassNameSerializer()
15
- * const serialized = serializer.serialize(new SendEmail('user@example.com'))
16
- * // serialized.data contains class name and properties
17
- *
18
- * const job = serializer.deserialize(serialized)
19
- * // job is an instance of SendEmail
20
- * ```
21
- */
22
- export declare class ClassNameSerializer implements JobSerializer {
23
- /**
24
- * Job class registry (for resolving classes by name).
25
- */
26
- private jobClasses;
27
- /**
28
- * Register a Job class.
29
- * @param jobClass - Job class
30
- */
31
- register(jobClass: new (...args: unknown[]) => Job): void;
32
- /**
33
- * Register multiple Job classes.
34
- * @param jobClasses - Job class array
35
- */
36
- registerMany(jobClasses: Array<new (...args: unknown[]) => Job>): void;
37
- /**
38
- * Serialize a Job.
39
- */
40
- serialize(job: Job): SerializedJob;
41
- /**
42
- * Deserialize a Job.
43
- */
44
- deserialize(serialized: SerializedJob): Job;
45
- }
46
- //# sourceMappingURL=ClassNameSerializer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ClassNameSerializer.d.ts","sourceRoot":"","sources":["../../../../src/serializers/ClassNameSerializer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEpD;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,mBAAoB,YAAW,aAAa;IACvD;;OAEG;IACH,OAAO,CAAC,UAAU,CAAqD;IAEvE;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,GAAG,GAAG,IAAI;IAIzD;;;OAGG;IACH,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,GAAG,CAAC,GAAG,IAAI;IAMtE;;OAEG;IACH,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,aAAa;IA8BlC;;OAEG;IACH,WAAW,CAAC,UAAU,EAAE,aAAa,GAAG,GAAG;CAqC5C"}
@@ -1,36 +0,0 @@
1
- import type { Job } from '../Job';
2
- import type { SerializedJob } from '../types';
3
- /**
4
- * Job serializer interface.
5
- *
6
- * Responsible for serializing and deserializing jobs.
7
- * Supports multiple strategies (JSON, class-name, etc.).
8
- *
9
- * @example
10
- * ```typescript
11
- * class MySerializer implements JobSerializer {
12
- * serialize(job: Job): SerializedJob {
13
- * // serialization logic
14
- * }
15
- *
16
- * deserialize(serialized: SerializedJob): Job {
17
- * // deserialization logic
18
- * }
19
- * }
20
- * ```
21
- */
22
- export interface JobSerializer {
23
- /**
24
- * Serialize a job.
25
- * @param job - Job instance
26
- * @returns Serialized job payload
27
- */
28
- serialize(job: Job): SerializedJob;
29
- /**
30
- * Deserialize a job.
31
- * @param serialized - Serialized job payload
32
- * @returns Job instance
33
- */
34
- deserialize(serialized: SerializedJob): Job;
35
- }
36
- //# sourceMappingURL=JobSerializer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"JobSerializer.d.ts","sourceRoot":"","sources":["../../../../src/serializers/JobSerializer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAE7C;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,aAAa,CAAA;IAElC;;;;OAIG;IACH,WAAW,CAAC,UAAU,EAAE,aAAa,GAAG,GAAG,CAAA;CAC5C"}
@@ -1,32 +0,0 @@
1
- import type { Job } from '../Job';
2
- import type { SerializedJob } from '../types';
3
- import type { JobSerializer } from './JobSerializer';
4
- /**
5
- * JSON Serializer
6
- *
7
- * Serializes jobs using JSON.
8
- * Suitable for simple scenarios where you only need to persist plain properties.
9
- *
10
- * Limitation: cannot restore class instances, functions, or complex objects.
11
- *
12
- * @example
13
- * ```typescript
14
- * const serializer = new JsonSerializer()
15
- * const serialized = serializer.serialize(job)
16
- * const job = serializer.deserialize(serialized)
17
- * ```
18
- */
19
- export declare class JsonSerializer implements JobSerializer {
20
- /**
21
- * Serialize a job.
22
- */
23
- serialize(job: Job): SerializedJob;
24
- /**
25
- * Deserialize a job.
26
- *
27
- * Note: this implementation only restores properties and does not recreate class instances.
28
- * For class instances, use `ClassNameSerializer`.
29
- */
30
- deserialize(serialized: SerializedJob): Job;
31
- }
32
- //# sourceMappingURL=JsonSerializer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"JsonSerializer.d.ts","sourceRoot":"","sources":["../../../../src/serializers/JsonSerializer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEpD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,cAAe,YAAW,aAAa;IAClD;;OAEG;IACH,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,aAAa;IAiBlC;;;;;OAKG;IACH,WAAW,CAAC,UAAU,EAAE,aAAa,GAAG,GAAG;CAW5C"}