@crossdelta/cloudevents 0.6.4 → 0.6.7

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
@@ -556,7 +556,8 @@ app.use('/events', cloudEvents({ discover: 'src/events/**/*.handler.ts' }))
556
556
  | `consumeJetStreams(options)` | Consume from multiple streams |
557
557
  | `consumeNatsEvents(options)` | Consume fire-and-forget |
558
558
  | `publish(type, data)` | Publish event |
559
-
559
+ | `isNatsConnected()` | Check if NATS connection is live (for health checks) |
560
+ | `closeConnection()` | Drain and close the NATS connection (for CLI tools) |
560
561
  ---
561
562
 
562
563
  ## License
package/bin/cli.js CHANGED
@@ -734,13 +734,15 @@ var nats_publisher_exports = {};
734
734
  __export(nats_publisher_exports, {
735
735
  __resetNatsPublisher: () => __resetNatsPublisher,
736
736
  closeConnection: () => closeConnection,
737
+ connectNats: () => connectNats,
737
738
  deriveStreamFromType: () => deriveStreamFromType,
738
739
  deriveSubjectFromType: () => deriveSubjectFromType,
740
+ isNatsConnected: () => isNatsConnected,
739
741
  publish: () => publish,
740
742
  publishNatsEvent: () => publishNatsEvent,
741
743
  publishNatsRawEvent: () => publishNatsRawEvent
742
744
  });
743
- var sc, natsConnectionPromise, deriveSubjectFromEventType, getNatsConnection, closeConnection, __resetNatsPublisher, deriveSubjectFromType, deriveStreamFromType, publishNatsRawEvent, publishNatsEvent, publish;
745
+ var sc, natsConnectionPromise, deriveSubjectFromEventType, getNatsConnection, closeConnection, connectNats, isNatsConnected, __resetNatsPublisher, deriveSubjectFromType, deriveStreamFromType, publishNatsRawEvent, publishNatsEvent, publish;
744
746
  var init_nats_publisher = __esm({
745
747
  "src/publishing/nats.publisher.ts"() {
746
748
  init_domain();
@@ -784,6 +786,18 @@ var init_nats_publisher = __esm({
784
786
  }
785
787
  }
786
788
  };
789
+ connectNats = async () => {
790
+ await getNatsConnection();
791
+ };
792
+ isNatsConnected = async () => {
793
+ if (!natsConnectionPromise) return false;
794
+ try {
795
+ const nc = await natsConnectionPromise;
796
+ return !nc.isClosed() && !nc.isDraining();
797
+ } catch {
798
+ return false;
799
+ }
800
+ };
787
801
  __resetNatsPublisher = async () => {
788
802
  await closeConnection();
789
803
  };
package/dist/index.cjs CHANGED
@@ -1383,13 +1383,15 @@ var nats_publisher_exports = {};
1383
1383
  __export(nats_publisher_exports, {
1384
1384
  __resetNatsPublisher: () => exports.__resetNatsPublisher,
1385
1385
  closeConnection: () => exports.closeConnection,
1386
+ connectNats: () => exports.connectNats,
1386
1387
  deriveStreamFromType: () => exports.deriveStreamFromType,
1387
1388
  deriveSubjectFromType: () => exports.deriveSubjectFromType,
1389
+ isNatsConnected: () => exports.isNatsConnected,
1388
1390
  publish: () => exports.publish,
1389
1391
  publishNatsEvent: () => exports.publishNatsEvent,
1390
1392
  publishNatsRawEvent: () => exports.publishNatsRawEvent
1391
1393
  });
1392
- var sc, natsConnectionPromise, deriveSubjectFromEventType, getNatsConnection; exports.closeConnection = void 0; exports.__resetNatsPublisher = void 0; exports.deriveSubjectFromType = void 0; exports.deriveStreamFromType = void 0; exports.publishNatsRawEvent = void 0; exports.publishNatsEvent = void 0; exports.publish = void 0;
1394
+ var sc, natsConnectionPromise, deriveSubjectFromEventType, getNatsConnection; exports.closeConnection = void 0; exports.connectNats = void 0; exports.isNatsConnected = void 0; exports.__resetNatsPublisher = void 0; exports.deriveSubjectFromType = void 0; exports.deriveStreamFromType = void 0; exports.publishNatsRawEvent = void 0; exports.publishNatsEvent = void 0; exports.publish = void 0;
1393
1395
  var init_nats_publisher = __esm({
1394
1396
  "src/publishing/nats.publisher.ts"() {
1395
1397
  init_domain();
@@ -1433,6 +1435,18 @@ var init_nats_publisher = __esm({
1433
1435
  }
1434
1436
  }
1435
1437
  };
1438
+ exports.connectNats = async () => {
1439
+ await getNatsConnection();
1440
+ };
1441
+ exports.isNatsConnected = async () => {
1442
+ if (!natsConnectionPromise) return false;
1443
+ try {
1444
+ const nc = await natsConnectionPromise;
1445
+ return !nc.isClosed() && !nc.isDraining();
1446
+ } catch {
1447
+ return false;
1448
+ }
1449
+ };
1436
1450
  exports.__resetNatsPublisher = async () => {
1437
1451
  await exports.closeConnection();
1438
1452
  };
@@ -2154,7 +2168,7 @@ function cloudEvents(options = {}) {
2154
2168
  // package.json
2155
2169
  var package_default = {
2156
2170
  name: "@crossdelta/cloudevents",
2157
- version: "0.6.4",
2171
+ version: "0.6.7",
2158
2172
  description: "CloudEvents toolkit for TypeScript - Zod validation, handler discovery, NATS JetStream"};
2159
2173
 
2160
2174
  // src/plugin.ts
package/dist/index.d.cts CHANGED
@@ -1207,6 +1207,15 @@ interface PublishNatsEventOptions {
1207
1207
  * Close the NATS connection and reset state
1208
1208
  */
1209
1209
  declare const closeConnection: () => Promise<void>;
1210
+ /**
1211
+ * Eagerly establishes the NATS connection. Call this on application startup
1212
+ * so that `isNatsConnected()` reflects real connectivity from the first probe.
1213
+ */
1214
+ declare const connectNats: () => Promise<void>;
1215
+ /**
1216
+ * Returns true if a NATS connection is currently established and healthy.
1217
+ */
1218
+ declare const isNatsConnected: () => Promise<boolean>;
1210
1219
  /**
1211
1220
  * Reset publisher state (for testing only)
1212
1221
  * @internal
@@ -1492,4 +1501,4 @@ interface NatsConsumerOptions extends Pick<CloudEventsOptions, 'quarantineTopic'
1492
1501
  */
1493
1502
  declare function consumeNatsEvents(options: NatsConsumerOptions): Promise<Subscription>;
1494
1503
 
1495
- export { type ChannelConfig, type ChannelMetadata, type CloudEventsPfPluginOptions, type ContractCreatedEffect, type ContractPaths, type CreateEventContext, type CreateEventOptions, type DomainEffect, type EnrichedEvent, type EventContext, type EventNames, type EventTypeValidation, type FileSystem, type HandleEventOptions, type HandlerCreatedEffect, type IdempotencyStore, type InferEventData, type JetStreamConsumerOptions, type JetStreamStreamOptions, type JetStreamStreamsConsumerOptions, type JetStreamStreamsOptions, type ListEventsContext, type PublishEventContext, type PublishEventOptions, type PublishNatsEventOptions, type RoutingConfig, type SchemaField, type StreamConfig, type StreamDefinition, type StreamWiredEffect, __resetNatsPublisher, checkAndMarkProcessed, clearHandlerCache, closeConnection, cloudEvents, consumeJetStreamEvents, consumeJetStreamStreams, consumeJetStreams, consumeNatsEvents, contractCreated, createContract, createEvent, createEventFlowSteps, createInMemoryIdempotencyStore, createMemoryFileSystem, createPfPlugin, deriveEventNames, deriveStreamFromType, deriveSubjectFromType, discoverEventTypes, ensureJetStreamStream, ensureJetStreamStreams, ensureJetStreams, eventSchema, extractTypeFromSchema, generateContract, generateContractContent, generateEventHandler, generateEventHandlerContent, generateJsonMock, generateJsonMockFromContract, generateMock, generateMockContent, getContractFilePath, getContractPaths, getDefaultIdempotencyStore, getHandlerFilePath, getHandlerPath, getJsonMockPath, getMockFilePath, getStreamName, handleEvent, handlerCreated, initFaker, isValidEventType, jsonMockExists, listEvents, listEventsFlowSteps, loadJsonMock, normalizeSubject, parseDataInput, parseEventFromContext, parseEventTypeFromContract, parseEventTypeFromHandler, parseFieldsInput, pluralize, publish, publishEvent, publishEventFlowSteps, publishNatsEvent, publishNatsRawEvent, publishRawEvent, resetDefaultIdempotencyStore, singularize, streamWired, toKebabCase, toPascalCase, validateEventType };
1504
+ export { type ChannelConfig, type ChannelMetadata, type CloudEventsPfPluginOptions, type ContractCreatedEffect, type ContractPaths, type CreateEventContext, type CreateEventOptions, type DomainEffect, type EnrichedEvent, type EventContext, type EventNames, type EventTypeValidation, type FileSystem, type HandleEventOptions, type HandlerCreatedEffect, type IdempotencyStore, type InferEventData, type JetStreamConsumerOptions, type JetStreamStreamOptions, type JetStreamStreamsConsumerOptions, type JetStreamStreamsOptions, type ListEventsContext, type PublishEventContext, type PublishEventOptions, type PublishNatsEventOptions, type RoutingConfig, type SchemaField, type StreamConfig, type StreamDefinition, type StreamWiredEffect, __resetNatsPublisher, checkAndMarkProcessed, clearHandlerCache, closeConnection, cloudEvents, connectNats, consumeJetStreamEvents, consumeJetStreamStreams, consumeJetStreams, consumeNatsEvents, contractCreated, createContract, createEvent, createEventFlowSteps, createInMemoryIdempotencyStore, createMemoryFileSystem, createPfPlugin, deriveEventNames, deriveStreamFromType, deriveSubjectFromType, discoverEventTypes, ensureJetStreamStream, ensureJetStreamStreams, ensureJetStreams, eventSchema, extractTypeFromSchema, generateContract, generateContractContent, generateEventHandler, generateEventHandlerContent, generateJsonMock, generateJsonMockFromContract, generateMock, generateMockContent, getContractFilePath, getContractPaths, getDefaultIdempotencyStore, getHandlerFilePath, getHandlerPath, getJsonMockPath, getMockFilePath, getStreamName, handleEvent, handlerCreated, initFaker, isNatsConnected, isValidEventType, jsonMockExists, listEvents, listEventsFlowSteps, loadJsonMock, normalizeSubject, parseDataInput, parseEventFromContext, parseEventTypeFromContract, parseEventTypeFromHandler, parseFieldsInput, pluralize, publish, publishEvent, publishEventFlowSteps, publishNatsEvent, publishNatsRawEvent, publishRawEvent, resetDefaultIdempotencyStore, singularize, streamWired, toKebabCase, toPascalCase, validateEventType };
package/dist/index.d.ts CHANGED
@@ -1207,6 +1207,15 @@ interface PublishNatsEventOptions {
1207
1207
  * Close the NATS connection and reset state
1208
1208
  */
1209
1209
  declare const closeConnection: () => Promise<void>;
1210
+ /**
1211
+ * Eagerly establishes the NATS connection. Call this on application startup
1212
+ * so that `isNatsConnected()` reflects real connectivity from the first probe.
1213
+ */
1214
+ declare const connectNats: () => Promise<void>;
1215
+ /**
1216
+ * Returns true if a NATS connection is currently established and healthy.
1217
+ */
1218
+ declare const isNatsConnected: () => Promise<boolean>;
1210
1219
  /**
1211
1220
  * Reset publisher state (for testing only)
1212
1221
  * @internal
@@ -1492,4 +1501,4 @@ interface NatsConsumerOptions extends Pick<CloudEventsOptions, 'quarantineTopic'
1492
1501
  */
1493
1502
  declare function consumeNatsEvents(options: NatsConsumerOptions): Promise<Subscription>;
1494
1503
 
1495
- export { type ChannelConfig, type ChannelMetadata, type CloudEventsPfPluginOptions, type ContractCreatedEffect, type ContractPaths, type CreateEventContext, type CreateEventOptions, type DomainEffect, type EnrichedEvent, type EventContext, type EventNames, type EventTypeValidation, type FileSystem, type HandleEventOptions, type HandlerCreatedEffect, type IdempotencyStore, type InferEventData, type JetStreamConsumerOptions, type JetStreamStreamOptions, type JetStreamStreamsConsumerOptions, type JetStreamStreamsOptions, type ListEventsContext, type PublishEventContext, type PublishEventOptions, type PublishNatsEventOptions, type RoutingConfig, type SchemaField, type StreamConfig, type StreamDefinition, type StreamWiredEffect, __resetNatsPublisher, checkAndMarkProcessed, clearHandlerCache, closeConnection, cloudEvents, consumeJetStreamEvents, consumeJetStreamStreams, consumeJetStreams, consumeNatsEvents, contractCreated, createContract, createEvent, createEventFlowSteps, createInMemoryIdempotencyStore, createMemoryFileSystem, createPfPlugin, deriveEventNames, deriveStreamFromType, deriveSubjectFromType, discoverEventTypes, ensureJetStreamStream, ensureJetStreamStreams, ensureJetStreams, eventSchema, extractTypeFromSchema, generateContract, generateContractContent, generateEventHandler, generateEventHandlerContent, generateJsonMock, generateJsonMockFromContract, generateMock, generateMockContent, getContractFilePath, getContractPaths, getDefaultIdempotencyStore, getHandlerFilePath, getHandlerPath, getJsonMockPath, getMockFilePath, getStreamName, handleEvent, handlerCreated, initFaker, isValidEventType, jsonMockExists, listEvents, listEventsFlowSteps, loadJsonMock, normalizeSubject, parseDataInput, parseEventFromContext, parseEventTypeFromContract, parseEventTypeFromHandler, parseFieldsInput, pluralize, publish, publishEvent, publishEventFlowSteps, publishNatsEvent, publishNatsRawEvent, publishRawEvent, resetDefaultIdempotencyStore, singularize, streamWired, toKebabCase, toPascalCase, validateEventType };
1504
+ export { type ChannelConfig, type ChannelMetadata, type CloudEventsPfPluginOptions, type ContractCreatedEffect, type ContractPaths, type CreateEventContext, type CreateEventOptions, type DomainEffect, type EnrichedEvent, type EventContext, type EventNames, type EventTypeValidation, type FileSystem, type HandleEventOptions, type HandlerCreatedEffect, type IdempotencyStore, type InferEventData, type JetStreamConsumerOptions, type JetStreamStreamOptions, type JetStreamStreamsConsumerOptions, type JetStreamStreamsOptions, type ListEventsContext, type PublishEventContext, type PublishEventOptions, type PublishNatsEventOptions, type RoutingConfig, type SchemaField, type StreamConfig, type StreamDefinition, type StreamWiredEffect, __resetNatsPublisher, checkAndMarkProcessed, clearHandlerCache, closeConnection, cloudEvents, connectNats, consumeJetStreamEvents, consumeJetStreamStreams, consumeJetStreams, consumeNatsEvents, contractCreated, createContract, createEvent, createEventFlowSteps, createInMemoryIdempotencyStore, createMemoryFileSystem, createPfPlugin, deriveEventNames, deriveStreamFromType, deriveSubjectFromType, discoverEventTypes, ensureJetStreamStream, ensureJetStreamStreams, ensureJetStreams, eventSchema, extractTypeFromSchema, generateContract, generateContractContent, generateEventHandler, generateEventHandlerContent, generateJsonMock, generateJsonMockFromContract, generateMock, generateMockContent, getContractFilePath, getContractPaths, getDefaultIdempotencyStore, getHandlerFilePath, getHandlerPath, getJsonMockPath, getMockFilePath, getStreamName, handleEvent, handlerCreated, initFaker, isNatsConnected, isValidEventType, jsonMockExists, listEvents, listEventsFlowSteps, loadJsonMock, normalizeSubject, parseDataInput, parseEventFromContext, parseEventTypeFromContract, parseEventTypeFromHandler, parseFieldsInput, pluralize, publish, publishEvent, publishEventFlowSteps, publishNatsEvent, publishNatsRawEvent, publishRawEvent, resetDefaultIdempotencyStore, singularize, streamWired, toKebabCase, toPascalCase, validateEventType };
package/dist/index.js CHANGED
@@ -1358,13 +1358,15 @@ var nats_publisher_exports = {};
1358
1358
  __export(nats_publisher_exports, {
1359
1359
  __resetNatsPublisher: () => __resetNatsPublisher,
1360
1360
  closeConnection: () => closeConnection,
1361
+ connectNats: () => connectNats,
1361
1362
  deriveStreamFromType: () => deriveStreamFromType,
1362
1363
  deriveSubjectFromType: () => deriveSubjectFromType,
1364
+ isNatsConnected: () => isNatsConnected,
1363
1365
  publish: () => publish,
1364
1366
  publishNatsEvent: () => publishNatsEvent,
1365
1367
  publishNatsRawEvent: () => publishNatsRawEvent
1366
1368
  });
1367
- var sc, natsConnectionPromise, deriveSubjectFromEventType, getNatsConnection, closeConnection, __resetNatsPublisher, deriveSubjectFromType, deriveStreamFromType, publishNatsRawEvent, publishNatsEvent, publish;
1369
+ var sc, natsConnectionPromise, deriveSubjectFromEventType, getNatsConnection, closeConnection, connectNats, isNatsConnected, __resetNatsPublisher, deriveSubjectFromType, deriveStreamFromType, publishNatsRawEvent, publishNatsEvent, publish;
1368
1370
  var init_nats_publisher = __esm({
1369
1371
  "src/publishing/nats.publisher.ts"() {
1370
1372
  init_domain();
@@ -1408,6 +1410,18 @@ var init_nats_publisher = __esm({
1408
1410
  }
1409
1411
  }
1410
1412
  };
1413
+ connectNats = async () => {
1414
+ await getNatsConnection();
1415
+ };
1416
+ isNatsConnected = async () => {
1417
+ if (!natsConnectionPromise) return false;
1418
+ try {
1419
+ const nc = await natsConnectionPromise;
1420
+ return !nc.isClosed() && !nc.isDraining();
1421
+ } catch {
1422
+ return false;
1423
+ }
1424
+ };
1411
1425
  __resetNatsPublisher = async () => {
1412
1426
  await closeConnection();
1413
1427
  };
@@ -2129,7 +2143,7 @@ function cloudEvents(options = {}) {
2129
2143
  // package.json
2130
2144
  var package_default = {
2131
2145
  name: "@crossdelta/cloudevents",
2132
- version: "0.6.4",
2146
+ version: "0.6.7",
2133
2147
  description: "CloudEvents toolkit for TypeScript - Zod validation, handler discovery, NATS JetStream"};
2134
2148
 
2135
2149
  // src/plugin.ts
@@ -2741,4 +2755,4 @@ async function consumeNatsEvents(options) {
2741
2755
  // src/index.ts
2742
2756
  init_utils();
2743
2757
 
2744
- export { __resetNatsPublisher, checkAndMarkProcessed, clearHandlerCache, closeConnection, cloudEvents, consumeJetStreamEvents, consumeJetStreamStreams, consumeJetStreams, consumeNatsEvents, contractCreated, createContract, createEvent, createEventFlowSteps, createInMemoryIdempotencyStore, createMemoryFileSystem, createPfPlugin, deriveEventNames, deriveStreamFromType, deriveSubjectFromType, discoverEventTypes, ensureJetStreamStream, ensureJetStreamStreams, ensureJetStreams, eventSchema, extractTypeFromSchema, generateContract, generateContractContent, generateEventHandler, generateEventHandlerContent, generateJsonMock, generateJsonMockFromContract, generateMock, generateMockContent, getContractFilePath, getContractPaths, getDefaultIdempotencyStore, getHandlerFilePath, getHandlerPath, getJsonMockPath, getMockFilePath, getStreamName, handleEvent, handlerCreated, initFaker, isValidEventType, jsonMockExists, listEvents, listEventsFlowSteps, loadJsonMock, normalizeSubject, parseDataInput, parseEventFromContext, parseEventTypeFromContract, parseEventTypeFromHandler, parseFieldsInput, pluralize, publish, publishEvent, publishEventFlowSteps, publishNatsEvent, publishNatsRawEvent, publishRawEvent, resetDefaultIdempotencyStore, singularize, streamWired, toKebabCase, toPascalCase, validateEventType };
2758
+ export { __resetNatsPublisher, checkAndMarkProcessed, clearHandlerCache, closeConnection, cloudEvents, connectNats, consumeJetStreamEvents, consumeJetStreamStreams, consumeJetStreams, consumeNatsEvents, contractCreated, createContract, createEvent, createEventFlowSteps, createInMemoryIdempotencyStore, createMemoryFileSystem, createPfPlugin, deriveEventNames, deriveStreamFromType, deriveSubjectFromType, discoverEventTypes, ensureJetStreamStream, ensureJetStreamStreams, ensureJetStreams, eventSchema, extractTypeFromSchema, generateContract, generateContractContent, generateEventHandler, generateEventHandlerContent, generateJsonMock, generateJsonMockFromContract, generateMock, generateMockContent, getContractFilePath, getContractPaths, getDefaultIdempotencyStore, getHandlerFilePath, getHandlerPath, getJsonMockPath, getMockFilePath, getStreamName, handleEvent, handlerCreated, initFaker, isNatsConnected, isValidEventType, jsonMockExists, listEvents, listEventsFlowSteps, loadJsonMock, normalizeSubject, parseDataInput, parseEventFromContext, parseEventTypeFromContract, parseEventTypeFromHandler, parseFieldsInput, pluralize, publish, publishEvent, publishEventFlowSteps, publishNatsEvent, publishNatsRawEvent, publishRawEvent, resetDefaultIdempotencyStore, singularize, streamWired, toKebabCase, toPascalCase, validateEventType };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crossdelta/cloudevents",
3
- "version": "0.6.4",
3
+ "version": "0.6.7",
4
4
  "description": "CloudEvents toolkit for TypeScript - Zod validation, handler discovery, NATS JetStream",
5
5
  "author": "crossdelta",
6
6
  "license": "MIT",
@@ -71,7 +71,7 @@
71
71
  }
72
72
  },
73
73
  "devDependencies": {
74
- "@crossdelta/platform-sdk": "0.19.0",
74
+ "@crossdelta/platform-sdk": "0.19.5",
75
75
  "@faker-js/faker": "^9.7.0",
76
76
  "@google-cloud/pubsub": "^4.9.0",
77
77
  "@stryker-mutator/core": "^9.1.1",