@crossdelta/cloudevents 0.6.5 → 0.6.8
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/bin/cli.js +8 -3
- package/dist/index.cjs +8 -3
- package/dist/index.d.cts +110 -5
- package/dist/index.d.ts +110 -5
- package/dist/index.js +10 -5
- package/package.json +3 -4
package/bin/cli.js
CHANGED
|
@@ -4,7 +4,7 @@ import * as fs from 'fs';
|
|
|
4
4
|
import { existsSync, readdirSync, statSync } from 'fs';
|
|
5
5
|
import * as path from 'path';
|
|
6
6
|
import { join } from 'path';
|
|
7
|
-
import { createFlow, createGenerationResult, input, initGenerationContext, trackChange, printGenerationSummary,
|
|
7
|
+
import { createFlow, createGenerationResult, input, initGenerationContext, trackChange, printGenerationSummary, runFlow, change } from '@crossdelta/flowcore';
|
|
8
8
|
import 'url';
|
|
9
9
|
import 'glob';
|
|
10
10
|
import 'zod';
|
|
@@ -734,6 +734,7 @@ 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,
|
|
739
740
|
isNatsConnected: () => isNatsConnected,
|
|
@@ -741,7 +742,7 @@ __export(nats_publisher_exports, {
|
|
|
741
742
|
publishNatsEvent: () => publishNatsEvent,
|
|
742
743
|
publishNatsRawEvent: () => publishNatsRawEvent
|
|
743
744
|
});
|
|
744
|
-
var sc, natsConnectionPromise, deriveSubjectFromEventType, getNatsConnection, closeConnection, isNatsConnected, __resetNatsPublisher, deriveSubjectFromType, deriveStreamFromType, publishNatsRawEvent, publishNatsEvent, publish;
|
|
745
|
+
var sc, natsConnectionPromise, deriveSubjectFromEventType, getNatsConnection, closeConnection, connectNats, isNatsConnected, __resetNatsPublisher, deriveSubjectFromType, deriveStreamFromType, publishNatsRawEvent, publishNatsEvent, publish;
|
|
745
746
|
var init_nats_publisher = __esm({
|
|
746
747
|
"src/publishing/nats.publisher.ts"() {
|
|
747
748
|
init_domain();
|
|
@@ -785,9 +786,13 @@ var init_nats_publisher = __esm({
|
|
|
785
786
|
}
|
|
786
787
|
}
|
|
787
788
|
};
|
|
789
|
+
connectNats = async () => {
|
|
790
|
+
await getNatsConnection();
|
|
791
|
+
};
|
|
788
792
|
isNatsConnected = async () => {
|
|
793
|
+
if (!natsConnectionPromise) return false;
|
|
789
794
|
try {
|
|
790
|
-
const nc = await
|
|
795
|
+
const nc = await natsConnectionPromise;
|
|
791
796
|
return !nc.isClosed() && !nc.isDraining();
|
|
792
797
|
} catch {
|
|
793
798
|
return false;
|
package/dist/index.cjs
CHANGED
|
@@ -1383,6 +1383,7 @@ 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,
|
|
1388
1389
|
isNatsConnected: () => exports.isNatsConnected,
|
|
@@ -1390,7 +1391,7 @@ __export(nats_publisher_exports, {
|
|
|
1390
1391
|
publishNatsEvent: () => exports.publishNatsEvent,
|
|
1391
1392
|
publishNatsRawEvent: () => exports.publishNatsRawEvent
|
|
1392
1393
|
});
|
|
1393
|
-
var sc, natsConnectionPromise, deriveSubjectFromEventType, getNatsConnection; exports.closeConnection = 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;
|
|
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;
|
|
1394
1395
|
var init_nats_publisher = __esm({
|
|
1395
1396
|
"src/publishing/nats.publisher.ts"() {
|
|
1396
1397
|
init_domain();
|
|
@@ -1434,9 +1435,13 @@ var init_nats_publisher = __esm({
|
|
|
1434
1435
|
}
|
|
1435
1436
|
}
|
|
1436
1437
|
};
|
|
1438
|
+
exports.connectNats = async () => {
|
|
1439
|
+
await getNatsConnection();
|
|
1440
|
+
};
|
|
1437
1441
|
exports.isNatsConnected = async () => {
|
|
1442
|
+
if (!natsConnectionPromise) return false;
|
|
1438
1443
|
try {
|
|
1439
|
-
const nc = await
|
|
1444
|
+
const nc = await natsConnectionPromise;
|
|
1440
1445
|
return !nc.isClosed() && !nc.isDraining();
|
|
1441
1446
|
} catch {
|
|
1442
1447
|
return false;
|
|
@@ -2163,7 +2168,7 @@ function cloudEvents(options = {}) {
|
|
|
2163
2168
|
// package.json
|
|
2164
2169
|
var package_default = {
|
|
2165
2170
|
name: "@crossdelta/cloudevents",
|
|
2166
|
-
version: "0.6.
|
|
2171
|
+
version: "0.6.8",
|
|
2167
2172
|
description: "CloudEvents toolkit for TypeScript - Zod validation, handler discovery, NATS JetStream"};
|
|
2168
2173
|
|
|
2169
2174
|
// src/plugin.ts
|
package/dist/index.d.cts
CHANGED
|
@@ -2,7 +2,6 @@ import { Context } from 'hono';
|
|
|
2
2
|
import { CloudEventV1 } from 'cloudevents';
|
|
3
3
|
import { ZodTypeAny, z } from 'zod';
|
|
4
4
|
import { ChangeResult, FlowContext, FsContextMixin, GenerationContextMixin, FlowStep } from '@crossdelta/flowcore';
|
|
5
|
-
import { PfPlugin } from '@crossdelta/platform-sdk';
|
|
6
5
|
import { ConsumerMessages, Subscription } from 'nats';
|
|
7
6
|
|
|
8
7
|
/**
|
|
@@ -1176,6 +1175,109 @@ interface CloudEventsOptions {
|
|
|
1176
1175
|
*/
|
|
1177
1176
|
declare function cloudEvents(options?: CloudEventsOptions): (ctx: Context, next: () => Promise<void>) => Promise<void | Response>;
|
|
1178
1177
|
|
|
1178
|
+
/**
|
|
1179
|
+
* Plugin System Types
|
|
1180
|
+
*
|
|
1181
|
+
* pf owns and defines these interfaces.
|
|
1182
|
+
* Plugins MUST adapt to these interfaces.
|
|
1183
|
+
* pf is strict and predictable - no duck-typing, no fallbacks.
|
|
1184
|
+
*/
|
|
1185
|
+
/**
|
|
1186
|
+
* Base effect type - all domain effects must have a kind
|
|
1187
|
+
* pf handles effects generically via kind-based handler registry
|
|
1188
|
+
*/
|
|
1189
|
+
interface PfEffect {
|
|
1190
|
+
readonly kind: string;
|
|
1191
|
+
}
|
|
1192
|
+
/**
|
|
1193
|
+
* Result of running a command
|
|
1194
|
+
*/
|
|
1195
|
+
interface PfCommandResult {
|
|
1196
|
+
/** Domain effects to be applied by the runtime */
|
|
1197
|
+
effects: PfEffect[];
|
|
1198
|
+
/** Optional output to display (for read-only commands) */
|
|
1199
|
+
output?: string | string[];
|
|
1200
|
+
}
|
|
1201
|
+
/**
|
|
1202
|
+
* Command argument definition
|
|
1203
|
+
*/
|
|
1204
|
+
interface PfCommandArg {
|
|
1205
|
+
name: string;
|
|
1206
|
+
description: string;
|
|
1207
|
+
required: boolean;
|
|
1208
|
+
}
|
|
1209
|
+
/**
|
|
1210
|
+
* Command option definition
|
|
1211
|
+
*/
|
|
1212
|
+
interface PfCommandOption {
|
|
1213
|
+
flags: string;
|
|
1214
|
+
description: string;
|
|
1215
|
+
default?: unknown;
|
|
1216
|
+
}
|
|
1217
|
+
/**
|
|
1218
|
+
* A CLI command provided by a plugin
|
|
1219
|
+
*
|
|
1220
|
+
* Plugins MUST implement this exact interface.
|
|
1221
|
+
*/
|
|
1222
|
+
interface PfCommand {
|
|
1223
|
+
name: string;
|
|
1224
|
+
description: string;
|
|
1225
|
+
args: PfCommandArg[];
|
|
1226
|
+
options: PfCommandOption[];
|
|
1227
|
+
run(args: Record<string, unknown>, options: Record<string, unknown>): Promise<PfCommandResult>;
|
|
1228
|
+
}
|
|
1229
|
+
/**
|
|
1230
|
+
* An interactive flow provided by a plugin
|
|
1231
|
+
*/
|
|
1232
|
+
interface PfFlow {
|
|
1233
|
+
name: string;
|
|
1234
|
+
description: string;
|
|
1235
|
+
getSteps(initialContext?: Record<string, unknown>): Promise<unknown[]>;
|
|
1236
|
+
}
|
|
1237
|
+
/**
|
|
1238
|
+
* Workspace context with all discovered information
|
|
1239
|
+
* pf owns this - plugins receive it during setup
|
|
1240
|
+
*/
|
|
1241
|
+
interface PfWorkspaceContext {
|
|
1242
|
+
/** Absolute path to workspace root */
|
|
1243
|
+
workspaceRoot: string;
|
|
1244
|
+
/** Discovered services (relative paths like 'services/api-gateway') */
|
|
1245
|
+
availableServices: string[];
|
|
1246
|
+
/** Contracts package configuration */
|
|
1247
|
+
contracts: {
|
|
1248
|
+
/** Relative path to contracts source (e.g., 'packages/contracts/src') */
|
|
1249
|
+
path: string;
|
|
1250
|
+
/** Package name (e.g., '@my-platform/contracts') */
|
|
1251
|
+
packageName?: string;
|
|
1252
|
+
};
|
|
1253
|
+
}
|
|
1254
|
+
/**
|
|
1255
|
+
* Plugin context provided by pf during setup
|
|
1256
|
+
*/
|
|
1257
|
+
interface PfPluginContext {
|
|
1258
|
+
workspace: PfWorkspaceContext;
|
|
1259
|
+
logger: {
|
|
1260
|
+
debug: (message: string) => void;
|
|
1261
|
+
info: (message: string) => void;
|
|
1262
|
+
warn: (message: string) => void;
|
|
1263
|
+
error: (message: string) => void;
|
|
1264
|
+
};
|
|
1265
|
+
}
|
|
1266
|
+
/**
|
|
1267
|
+
* A plugin that can be loaded by pf
|
|
1268
|
+
*
|
|
1269
|
+
* Plugins MUST implement this exact interface.
|
|
1270
|
+
* If a plugin has a different internal API, it must provide an adapter.
|
|
1271
|
+
*/
|
|
1272
|
+
interface PfPlugin {
|
|
1273
|
+
name: string;
|
|
1274
|
+
version: string;
|
|
1275
|
+
description?: string;
|
|
1276
|
+
commands: PfCommand[];
|
|
1277
|
+
flows: PfFlow[];
|
|
1278
|
+
setup: (context: PfPluginContext) => Promise<void> | void;
|
|
1279
|
+
}
|
|
1280
|
+
|
|
1179
1281
|
/**
|
|
1180
1282
|
* PfPlugin Adapter
|
|
1181
1283
|
*
|
|
@@ -1208,9 +1310,12 @@ interface PublishNatsEventOptions {
|
|
|
1208
1310
|
*/
|
|
1209
1311
|
declare const closeConnection: () => Promise<void>;
|
|
1210
1312
|
/**
|
|
1211
|
-
*
|
|
1212
|
-
*
|
|
1213
|
-
|
|
1313
|
+
* Eagerly establishes the NATS connection. Call this on application startup
|
|
1314
|
+
* so that `isNatsConnected()` reflects real connectivity from the first probe.
|
|
1315
|
+
*/
|
|
1316
|
+
declare const connectNats: () => Promise<void>;
|
|
1317
|
+
/**
|
|
1318
|
+
* Returns true if a NATS connection is currently established and healthy.
|
|
1214
1319
|
*/
|
|
1215
1320
|
declare const isNatsConnected: () => Promise<boolean>;
|
|
1216
1321
|
/**
|
|
@@ -1498,4 +1603,4 @@ interface NatsConsumerOptions extends Pick<CloudEventsOptions, 'quarantineTopic'
|
|
|
1498
1603
|
*/
|
|
1499
1604
|
declare function consumeNatsEvents(options: NatsConsumerOptions): Promise<Subscription>;
|
|
1500
1605
|
|
|
1501
|
-
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, 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 };
|
|
1606
|
+
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
|
@@ -2,7 +2,6 @@ import { Context } from 'hono';
|
|
|
2
2
|
import { CloudEventV1 } from 'cloudevents';
|
|
3
3
|
import { ZodTypeAny, z } from 'zod';
|
|
4
4
|
import { ChangeResult, FlowContext, FsContextMixin, GenerationContextMixin, FlowStep } from '@crossdelta/flowcore';
|
|
5
|
-
import { PfPlugin } from '@crossdelta/platform-sdk';
|
|
6
5
|
import { ConsumerMessages, Subscription } from 'nats';
|
|
7
6
|
|
|
8
7
|
/**
|
|
@@ -1176,6 +1175,109 @@ interface CloudEventsOptions {
|
|
|
1176
1175
|
*/
|
|
1177
1176
|
declare function cloudEvents(options?: CloudEventsOptions): (ctx: Context, next: () => Promise<void>) => Promise<void | Response>;
|
|
1178
1177
|
|
|
1178
|
+
/**
|
|
1179
|
+
* Plugin System Types
|
|
1180
|
+
*
|
|
1181
|
+
* pf owns and defines these interfaces.
|
|
1182
|
+
* Plugins MUST adapt to these interfaces.
|
|
1183
|
+
* pf is strict and predictable - no duck-typing, no fallbacks.
|
|
1184
|
+
*/
|
|
1185
|
+
/**
|
|
1186
|
+
* Base effect type - all domain effects must have a kind
|
|
1187
|
+
* pf handles effects generically via kind-based handler registry
|
|
1188
|
+
*/
|
|
1189
|
+
interface PfEffect {
|
|
1190
|
+
readonly kind: string;
|
|
1191
|
+
}
|
|
1192
|
+
/**
|
|
1193
|
+
* Result of running a command
|
|
1194
|
+
*/
|
|
1195
|
+
interface PfCommandResult {
|
|
1196
|
+
/** Domain effects to be applied by the runtime */
|
|
1197
|
+
effects: PfEffect[];
|
|
1198
|
+
/** Optional output to display (for read-only commands) */
|
|
1199
|
+
output?: string | string[];
|
|
1200
|
+
}
|
|
1201
|
+
/**
|
|
1202
|
+
* Command argument definition
|
|
1203
|
+
*/
|
|
1204
|
+
interface PfCommandArg {
|
|
1205
|
+
name: string;
|
|
1206
|
+
description: string;
|
|
1207
|
+
required: boolean;
|
|
1208
|
+
}
|
|
1209
|
+
/**
|
|
1210
|
+
* Command option definition
|
|
1211
|
+
*/
|
|
1212
|
+
interface PfCommandOption {
|
|
1213
|
+
flags: string;
|
|
1214
|
+
description: string;
|
|
1215
|
+
default?: unknown;
|
|
1216
|
+
}
|
|
1217
|
+
/**
|
|
1218
|
+
* A CLI command provided by a plugin
|
|
1219
|
+
*
|
|
1220
|
+
* Plugins MUST implement this exact interface.
|
|
1221
|
+
*/
|
|
1222
|
+
interface PfCommand {
|
|
1223
|
+
name: string;
|
|
1224
|
+
description: string;
|
|
1225
|
+
args: PfCommandArg[];
|
|
1226
|
+
options: PfCommandOption[];
|
|
1227
|
+
run(args: Record<string, unknown>, options: Record<string, unknown>): Promise<PfCommandResult>;
|
|
1228
|
+
}
|
|
1229
|
+
/**
|
|
1230
|
+
* An interactive flow provided by a plugin
|
|
1231
|
+
*/
|
|
1232
|
+
interface PfFlow {
|
|
1233
|
+
name: string;
|
|
1234
|
+
description: string;
|
|
1235
|
+
getSteps(initialContext?: Record<string, unknown>): Promise<unknown[]>;
|
|
1236
|
+
}
|
|
1237
|
+
/**
|
|
1238
|
+
* Workspace context with all discovered information
|
|
1239
|
+
* pf owns this - plugins receive it during setup
|
|
1240
|
+
*/
|
|
1241
|
+
interface PfWorkspaceContext {
|
|
1242
|
+
/** Absolute path to workspace root */
|
|
1243
|
+
workspaceRoot: string;
|
|
1244
|
+
/** Discovered services (relative paths like 'services/api-gateway') */
|
|
1245
|
+
availableServices: string[];
|
|
1246
|
+
/** Contracts package configuration */
|
|
1247
|
+
contracts: {
|
|
1248
|
+
/** Relative path to contracts source (e.g., 'packages/contracts/src') */
|
|
1249
|
+
path: string;
|
|
1250
|
+
/** Package name (e.g., '@my-platform/contracts') */
|
|
1251
|
+
packageName?: string;
|
|
1252
|
+
};
|
|
1253
|
+
}
|
|
1254
|
+
/**
|
|
1255
|
+
* Plugin context provided by pf during setup
|
|
1256
|
+
*/
|
|
1257
|
+
interface PfPluginContext {
|
|
1258
|
+
workspace: PfWorkspaceContext;
|
|
1259
|
+
logger: {
|
|
1260
|
+
debug: (message: string) => void;
|
|
1261
|
+
info: (message: string) => void;
|
|
1262
|
+
warn: (message: string) => void;
|
|
1263
|
+
error: (message: string) => void;
|
|
1264
|
+
};
|
|
1265
|
+
}
|
|
1266
|
+
/**
|
|
1267
|
+
* A plugin that can be loaded by pf
|
|
1268
|
+
*
|
|
1269
|
+
* Plugins MUST implement this exact interface.
|
|
1270
|
+
* If a plugin has a different internal API, it must provide an adapter.
|
|
1271
|
+
*/
|
|
1272
|
+
interface PfPlugin {
|
|
1273
|
+
name: string;
|
|
1274
|
+
version: string;
|
|
1275
|
+
description?: string;
|
|
1276
|
+
commands: PfCommand[];
|
|
1277
|
+
flows: PfFlow[];
|
|
1278
|
+
setup: (context: PfPluginContext) => Promise<void> | void;
|
|
1279
|
+
}
|
|
1280
|
+
|
|
1179
1281
|
/**
|
|
1180
1282
|
* PfPlugin Adapter
|
|
1181
1283
|
*
|
|
@@ -1208,9 +1310,12 @@ interface PublishNatsEventOptions {
|
|
|
1208
1310
|
*/
|
|
1209
1311
|
declare const closeConnection: () => Promise<void>;
|
|
1210
1312
|
/**
|
|
1211
|
-
*
|
|
1212
|
-
*
|
|
1213
|
-
|
|
1313
|
+
* Eagerly establishes the NATS connection. Call this on application startup
|
|
1314
|
+
* so that `isNatsConnected()` reflects real connectivity from the first probe.
|
|
1315
|
+
*/
|
|
1316
|
+
declare const connectNats: () => Promise<void>;
|
|
1317
|
+
/**
|
|
1318
|
+
* Returns true if a NATS connection is currently established and healthy.
|
|
1214
1319
|
*/
|
|
1215
1320
|
declare const isNatsConnected: () => Promise<boolean>;
|
|
1216
1321
|
/**
|
|
@@ -1498,4 +1603,4 @@ interface NatsConsumerOptions extends Pick<CloudEventsOptions, 'quarantineTopic'
|
|
|
1498
1603
|
*/
|
|
1499
1604
|
declare function consumeNatsEvents(options: NatsConsumerOptions): Promise<Subscription>;
|
|
1500
1605
|
|
|
1501
|
-
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, 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 };
|
|
1606
|
+
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
|
@@ -4,7 +4,7 @@ import * as fs from 'fs';
|
|
|
4
4
|
import { existsSync, readdirSync, statSync } from 'fs';
|
|
5
5
|
import * as path from 'path';
|
|
6
6
|
import { join, dirname } from 'path';
|
|
7
|
-
import { createFlow, createGenerationResult, input, initGenerationContext, trackChange, printGenerationSummary,
|
|
7
|
+
import { createFlow, createGenerationResult, input, initGenerationContext, trackChange, printGenerationSummary, runFlow, change } from '@crossdelta/flowcore';
|
|
8
8
|
import { fileURLToPath } from 'url';
|
|
9
9
|
import { glob } from 'glob';
|
|
10
10
|
import { z } from 'zod';
|
|
@@ -1358,6 +1358,7 @@ 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,
|
|
1363
1364
|
isNatsConnected: () => isNatsConnected,
|
|
@@ -1365,7 +1366,7 @@ __export(nats_publisher_exports, {
|
|
|
1365
1366
|
publishNatsEvent: () => publishNatsEvent,
|
|
1366
1367
|
publishNatsRawEvent: () => publishNatsRawEvent
|
|
1367
1368
|
});
|
|
1368
|
-
var sc, natsConnectionPromise, deriveSubjectFromEventType, getNatsConnection, closeConnection, isNatsConnected, __resetNatsPublisher, deriveSubjectFromType, deriveStreamFromType, publishNatsRawEvent, publishNatsEvent, publish;
|
|
1369
|
+
var sc, natsConnectionPromise, deriveSubjectFromEventType, getNatsConnection, closeConnection, connectNats, isNatsConnected, __resetNatsPublisher, deriveSubjectFromType, deriveStreamFromType, publishNatsRawEvent, publishNatsEvent, publish;
|
|
1369
1370
|
var init_nats_publisher = __esm({
|
|
1370
1371
|
"src/publishing/nats.publisher.ts"() {
|
|
1371
1372
|
init_domain();
|
|
@@ -1409,9 +1410,13 @@ var init_nats_publisher = __esm({
|
|
|
1409
1410
|
}
|
|
1410
1411
|
}
|
|
1411
1412
|
};
|
|
1413
|
+
connectNats = async () => {
|
|
1414
|
+
await getNatsConnection();
|
|
1415
|
+
};
|
|
1412
1416
|
isNatsConnected = async () => {
|
|
1417
|
+
if (!natsConnectionPromise) return false;
|
|
1413
1418
|
try {
|
|
1414
|
-
const nc = await
|
|
1419
|
+
const nc = await natsConnectionPromise;
|
|
1415
1420
|
return !nc.isClosed() && !nc.isDraining();
|
|
1416
1421
|
} catch {
|
|
1417
1422
|
return false;
|
|
@@ -2138,7 +2143,7 @@ function cloudEvents(options = {}) {
|
|
|
2138
2143
|
// package.json
|
|
2139
2144
|
var package_default = {
|
|
2140
2145
|
name: "@crossdelta/cloudevents",
|
|
2141
|
-
version: "0.6.
|
|
2146
|
+
version: "0.6.8",
|
|
2142
2147
|
description: "CloudEvents toolkit for TypeScript - Zod validation, handler discovery, NATS JetStream"};
|
|
2143
2148
|
|
|
2144
2149
|
// src/plugin.ts
|
|
@@ -2750,4 +2755,4 @@ async function consumeNatsEvents(options) {
|
|
|
2750
2755
|
// src/index.ts
|
|
2751
2756
|
init_utils();
|
|
2752
2757
|
|
|
2753
|
-
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, 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 };
|
|
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.
|
|
3
|
+
"version": "0.6.8",
|
|
4
4
|
"description": "CloudEvents toolkit for TypeScript - Zod validation, handler discovery, NATS JetStream",
|
|
5
5
|
"author": "crossdelta",
|
|
6
6
|
"license": "MIT",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"peerDependencies": {
|
|
57
57
|
"@faker-js/faker": ">=9.0.0",
|
|
58
58
|
"@google-cloud/pubsub": ">=4.0.0",
|
|
59
|
-
"hono": "^4.
|
|
59
|
+
"hono": "^4.12.3",
|
|
60
60
|
"zod": "^4.0.0"
|
|
61
61
|
},
|
|
62
62
|
"peerDependenciesMeta": {
|
|
@@ -71,13 +71,12 @@
|
|
|
71
71
|
}
|
|
72
72
|
},
|
|
73
73
|
"devDependencies": {
|
|
74
|
-
"@crossdelta/platform-sdk": "0.19.5",
|
|
75
74
|
"@faker-js/faker": "^9.7.0",
|
|
76
75
|
"@google-cloud/pubsub": "^4.9.0",
|
|
77
76
|
"@stryker-mutator/core": "^9.1.1",
|
|
78
77
|
"@types/bun": "^1.3.3",
|
|
79
78
|
"@types/pluralize": "^0.0.33",
|
|
80
|
-
"hono": "^4.12.
|
|
79
|
+
"hono": "^4.12.3",
|
|
81
80
|
"stryker-mutator-bun-runner": "^0.4.0",
|
|
82
81
|
"tsup": "^8.3.5",
|
|
83
82
|
"typescript": "^5.9.2"
|