@crossdelta/cloudevents 0.5.0 → 0.5.1

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/README.md CHANGED
@@ -58,21 +58,20 @@ export default handleEvent(
58
58
  **2. Ensure stream exists** (once, during setup):
59
59
 
60
60
  ```typescript
61
- import { ensureJetStreamStream } from '@crossdelta/cloudevents'
61
+ import { ensureJetStreams } from '@crossdelta/cloudevents'
62
62
 
63
- await ensureJetStreamStream({
64
- stream: 'ORDERS',
65
- subjects: ['orders.*'],
63
+ await ensureJetStreams({
64
+ streams: [{ stream: 'ORDERS', subjects: ['orders.*'] }],
66
65
  })
67
66
  ```
68
67
 
69
68
  **3. Start consuming:**
70
69
 
71
70
  ```typescript
72
- import { consumeJetStreamEvents } from '@crossdelta/cloudevents'
71
+ import { consumeJetStreams } from '@crossdelta/cloudevents'
73
72
 
74
- await consumeJetStreamEvents({
75
- stream: 'ORDERS',
73
+ consumeJetStreams({
74
+ streams: ['ORDERS'],
76
75
  consumer: 'my-service',
77
76
  discover: './src/events/**/*.event.ts',
78
77
  })
@@ -162,27 +161,32 @@ await publish('orders.created', orderData)
162
161
  Create the stream once during infrastructure setup:
163
162
 
164
163
  ```typescript
165
- import { ensureJetStreamStream } from '@crossdelta/cloudevents'
166
-
167
- await ensureJetStreamStream({
168
- stream: 'ORDERS',
169
- subjects: ['orders.>'],
170
- config: {
171
- maxAge: 7 * 24 * 60 * 60 * 1000, // 7 days retention
172
- replicas: 3, // For HA
173
- }
164
+ import { ensureJetStreams } from '@crossdelta/cloudevents'
165
+
166
+ await ensureJetStreams({
167
+ streams: [
168
+ {
169
+ stream: 'ORDERS',
170
+ subjects: ['orders.>'],
171
+ config: {
172
+ maxAge: 7 * 24 * 60 * 60 * 1000, // 7 days retention
173
+ replicas: 3, // For HA
174
+ },
175
+ },
176
+ ],
174
177
  })
175
178
  ```
176
179
 
177
180
  ### Consuming
178
181
 
179
182
  ```typescript
183
+ import { consumeJetStreams } from '@crossdelta/cloudevents'
184
+
180
185
  // JetStream (recommended) — persistent, retries, exactly-once
181
- await consumeJetStreamEvents({
182
- stream: 'ORDERS',
186
+ consumeJetStreams({
187
+ streams: ['ORDERS'],
183
188
  consumer: 'billing',
184
189
  discover: './src/events/**/*.event.ts',
185
- filterSubjects: ['orders.created', 'orders.updated'], // Optional: filter at consumer level
186
190
  })
187
191
 
188
192
  // Core NATS — fire-and-forget, simpler
@@ -207,28 +211,33 @@ NATS_PASSWORD=mypass # optional
207
211
  ### Stream Options
208
212
 
209
213
  ```typescript
210
- await ensureJetStreamStream({
211
- // Required
212
- stream: 'ORDERS',
213
- subjects: ['orders.>'],
214
-
214
+ await ensureJetStreams({
215
+ streams: [
216
+ {
217
+ // Required
218
+ stream: 'ORDERS',
219
+ subjects: ['orders.>'],
220
+
221
+ // Optional
222
+ config: {
223
+ maxAge: 7 * 24 * 60 * 60 * 1000, // Message retention (ms)
224
+ replicas: 1, // Replication factor
225
+ storage: 'file', // 'file' or 'memory'
226
+ retention: 'limits', // 'limits', 'interest', or 'workqueue'
227
+ },
228
+ },
229
+ ],
215
230
  // Optional
216
231
  servers: 'nats://localhost:4222',
217
- config: {
218
- maxAge: 7 * 24 * 60 * 60 * 1000, // Message retention (ms)
219
- replicas: 1, // Replication factor
220
- storage: 'file', // 'file' or 'memory'
221
- retention: 'limits', // 'limits', 'interest', or 'workqueue'
222
- }
223
232
  })
224
233
  ```
225
234
 
226
235
  ### Consumer Options
227
236
 
228
237
  ```typescript
229
- await consumeJetStreamEvents({
238
+ consumeJetStreams({
230
239
  // Required
231
- stream: 'ORDERS',
240
+ streams: ['ORDERS'],
232
241
  consumer: 'my-service',
233
242
  discover: './src/events/**/*.event.ts',
234
243
 
@@ -375,8 +384,9 @@ app.use('/events', cloudEvents({ discover: 'src/events/**/*.event.ts' }))
375
384
  |----------|---------|
376
385
  | `handleEvent(options, handler)` | Create a handler |
377
386
  | `createContract(options)` | Create shared event contract |
378
- | `ensureJetStreamStream(options)` | Create/update JetStream stream |
379
- | `consumeJetStreamEvents(options)` | Consume with persistence |
387
+ | `ensureJetStreams(options)` | Create/update JetStream streams (preferred) |
388
+ | `consumeJetStreams(options)` | Consume from multiple streams (preferred) |
389
+ | `consumeJetStreamEvents(options)` | Consume single stream (legacy) |
380
390
  | `consumeNatsEvents(options)` | Consume fire-and-forget |
381
391
  | `publish(type, data)` | Publish event |
382
392
 
package/dist/index.d.ts CHANGED
@@ -6,4 +6,4 @@ export { clearHandlerCache, cloudEvents } from './middlewares';
6
6
  export { checkAndMarkProcessed, createInMemoryIdempotencyStore, getDefaultIdempotencyStore, resetDefaultIdempotencyStore, } from './processing/idempotency';
7
7
  export * from './publishing';
8
8
  export type { JetStreamConsumerOptions, JetStreamStreamOptions, JetStreamStreamsConsumerOptions, JetStreamStreamsOptions, StreamConfig, StreamDefinition, } from './transports/nats';
9
- export { consumeJetStreamEvents, consumeJetStreamStreams, consumeNatsEvents, ensureJetStreamStream, ensureJetStreamStreams, } from './transports/nats';
9
+ export { consumeJetStreamEvents, consumeJetStreamStreams, consumeJetStreams, consumeNatsEvents, ensureJetStreamStream, ensureJetStreamStreams, ensureJetStreams, } from './transports/nats';
package/dist/index.js CHANGED
@@ -3,4 +3,4 @@ export { createContract, eventSchema, extractTypeFromSchema, handleEvent } from
3
3
  export { clearHandlerCache, cloudEvents } from './middlewares';
4
4
  export { checkAndMarkProcessed, createInMemoryIdempotencyStore, getDefaultIdempotencyStore, resetDefaultIdempotencyStore, } from './processing/idempotency';
5
5
  export * from './publishing';
6
- export { consumeJetStreamEvents, consumeJetStreamStreams, consumeNatsEvents, ensureJetStreamStream, ensureJetStreamStreams, } from './transports/nats';
6
+ export { consumeJetStreamEvents, consumeJetStreamStreams, consumeJetStreams, consumeNatsEvents, ensureJetStreamStream, ensureJetStreamStreams, ensureJetStreams, } from './transports/nats';
@@ -205,3 +205,13 @@ export interface JetStreamStreamsConsumerOptions extends Pick<CloudEventsOptions
205
205
  * ```
206
206
  */
207
207
  export declare function consumeJetStreamStreams(options: JetStreamStreamsConsumerOptions): Promise<ConsumerMessages[]>;
208
+ /**
209
+ * Alias for ensureJetStreamStreams - shorter name
210
+ * @see ensureJetStreamStreams
211
+ */
212
+ export declare const ensureJetStreams: typeof ensureJetStreamStreams;
213
+ /**
214
+ * Alias for consumeJetStreamStreams - shorter name
215
+ * @see consumeJetStreamStreams
216
+ */
217
+ export declare const consumeJetStreams: typeof consumeJetStreamStreams;
@@ -355,3 +355,13 @@ export async function consumeJetStreamStreams(options) {
355
355
  }
356
356
  return allMessages;
357
357
  }
358
+ /**
359
+ * Alias for ensureJetStreamStreams - shorter name
360
+ * @see ensureJetStreamStreams
361
+ */
362
+ export const ensureJetStreams = ensureJetStreamStreams;
363
+ /**
364
+ * Alias for consumeJetStreamStreams - shorter name
365
+ * @see consumeJetStreamStreams
366
+ */
367
+ export const consumeJetStreams = consumeJetStreamStreams;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crossdelta/cloudevents",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "description": "CloudEvents toolkit for TypeScript - Zod validation, handler discovery, NATS JetStream",
5
5
  "author": "crossdelta",
6
6
  "license": "MIT",