@xtrape/capsule-contracts-node 0.3.0 → 0.4.0
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 +24 -0
- package/dist/index.cjs +121 -0
- package/dist/index.d.cts +807 -15
- package/dist/index.d.ts +807 -15
- package/dist/index.js +101 -0
- package/dist/src/index.d.ts +4245 -0
- package/dist/src/index.js +210 -0
- package/dist/tests/bus.spec.d.ts +1 -0
- package/dist/tests/bus.spec.js +52 -0
- package/dist/tests/schema-validation.spec.d.ts +1 -0
- package/dist/tests/schema-validation.spec.js +155 -0
- package/dist/tests/schema.spec.d.ts +1 -0
- package/dist/tests/schema.spec.js +223 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -404,3 +404,27 @@ contract validation safety guidance.
|
|
|
404
404
|
|
|
405
405
|
Apache-2.0. "Xtrape", "Xtrape Capsule", and "Opstage" are trademarks of their
|
|
406
406
|
respective owners; the open-source license does not grant trademark rights.
|
|
407
|
+
|
|
408
|
+
## v0.4 Capsule Bus Experimental
|
|
409
|
+
|
|
410
|
+
`v0.4` adds an experimental Capsule Bus contract surface for CE's built-in SQLite-backed in-process event-to-command router. It is intentionally small, single-node, and disabled by default; it is **not** a standalone Bus Server, external broker (NATS / RabbitMQ / Redis Streams / Kafka), workflow DSL, or service mesh. No fan-out (`maxCommandsPerEvent`) in v0.4 — one matched route produces at most one `ACTION_EXECUTE` command.
|
|
411
|
+
|
|
412
|
+
Key exports:
|
|
413
|
+
|
|
414
|
+
- `BusEventEnvelopeSchema`
|
|
415
|
+
- `PublishBusEventRequestSchema`
|
|
416
|
+
- `PublishBusEventResponseSchema`
|
|
417
|
+
- `BusRouteRuleSchema`
|
|
418
|
+
- `CreateBusRouteRuleRequestSchema`
|
|
419
|
+
|
|
420
|
+
Minimal event payload:
|
|
421
|
+
|
|
422
|
+
```ts
|
|
423
|
+
BusEventEnvelopeSchema.parse({
|
|
424
|
+
eventType: "demo.item.created",
|
|
425
|
+
sourceServiceCode: "demo-worker",
|
|
426
|
+
payload: { itemId: "item-1" },
|
|
427
|
+
});
|
|
428
|
+
```
|
|
429
|
+
|
|
430
|
+
All schemas include or default `experimental: "v0.4-experimental"`; consumers should treat the wire surface as unstable until v1.0.
|
package/dist/index.cjs
CHANGED
|
@@ -36,6 +36,16 @@ __export(index_exports, {
|
|
|
36
36
|
AuditActorType: () => AuditActorType,
|
|
37
37
|
AuditEventSchema: () => AuditEventSchema,
|
|
38
38
|
AuditResult: () => AuditResult,
|
|
39
|
+
BusCommandRequestSchema: () => BusCommandRequestSchema,
|
|
40
|
+
BusErrorCode: () => BusErrorCode,
|
|
41
|
+
BusEventEnvelopeSchema: () => BusEventEnvelopeSchema,
|
|
42
|
+
BusEventRecordSchema: () => BusEventRecordSchema,
|
|
43
|
+
BusRouteRuleSchema: () => BusRouteRuleSchema,
|
|
44
|
+
BusRouteStatus: () => BusRouteStatus,
|
|
45
|
+
BusRouteStatusSchema: () => BusRouteStatusSchema,
|
|
46
|
+
BusRoutedCommandSchema: () => BusRoutedCommandSchema,
|
|
47
|
+
BusRoutingRuleSchema: () => BusRoutingRuleSchema,
|
|
48
|
+
CapsuleBusExperimentalSchema: () => CapsuleBusExperimentalSchema,
|
|
39
49
|
CapsuleManifestSchema: () => CapsuleManifestSchema,
|
|
40
50
|
CapsuleServiceDetailSchema: () => CapsuleServiceDetailSchema,
|
|
41
51
|
CapsuleServiceSchema: () => CapsuleServiceSchema,
|
|
@@ -50,6 +60,7 @@ __export(index_exports, {
|
|
|
50
60
|
ConfigItemInputSchema: () => ConfigItemInputSchema,
|
|
51
61
|
ConfigItemSchema: () => ConfigItemSchema,
|
|
52
62
|
CreateActionCommandRequestSchema: () => CreateActionCommandRequestSchema,
|
|
63
|
+
CreateBusRouteRuleRequestSchema: () => CreateBusRouteRuleRequestSchema,
|
|
53
64
|
CreateRegistrationTokenRequestSchema: () => CreateRegistrationTokenRequestSchema,
|
|
54
65
|
CreateRegistrationTokenResponseSchema: () => CreateRegistrationTokenResponseSchema,
|
|
55
66
|
DangerLevel: () => DangerLevel,
|
|
@@ -63,6 +74,8 @@ __export(index_exports, {
|
|
|
63
74
|
HealthStatusSchema: () => HealthStatusSchema,
|
|
64
75
|
HttpError: () => HttpError,
|
|
65
76
|
ListQueryBase: () => ListQueryBase,
|
|
77
|
+
PublishBusEventRequestSchema: () => PublishBusEventRequestSchema,
|
|
78
|
+
PublishBusEventResponseSchema: () => PublishBusEventResponseSchema,
|
|
66
79
|
RegisterAgentRequestSchema: () => RegisterAgentRequestSchema,
|
|
67
80
|
RegisterAgentResponseSchema: () => RegisterAgentResponseSchema,
|
|
68
81
|
RegistrationTokenSchema: () => RegistrationTokenSchema,
|
|
@@ -82,14 +95,21 @@ __export(index_exports, {
|
|
|
82
95
|
actionPrepareResultSchema: () => actionPrepareResultSchema,
|
|
83
96
|
adminLoginRequestSchema: () => adminLoginRequestSchema,
|
|
84
97
|
agentHeartbeatRequestSchema: () => agentHeartbeatRequestSchema,
|
|
98
|
+
busCommandRequestSchema: () => busCommandRequestSchema,
|
|
99
|
+
busEventEnvelopeSchema: () => busEventEnvelopeSchema,
|
|
100
|
+
busRouteRuleSchema: () => busRouteRuleSchema,
|
|
101
|
+
busRoutingRuleSchema: () => busRoutingRuleSchema,
|
|
85
102
|
configItemInputSchema: () => configItemInputSchema,
|
|
86
103
|
createActionCommandRequestSchema: () => createActionCommandRequestSchema,
|
|
104
|
+
createBusRouteRuleRequestSchema: () => createBusRouteRuleRequestSchema,
|
|
87
105
|
createRegistrationTokenRequestSchema: () => createRegistrationTokenRequestSchema,
|
|
88
106
|
createUserRequestSchema: () => createUserRequestSchema,
|
|
89
107
|
eventMetadataSchema: () => eventMetadataSchema,
|
|
90
108
|
healthReportInputSchema: () => healthReportInputSchema,
|
|
91
109
|
paginate: () => paginate,
|
|
92
110
|
parseSort: () => parseSort,
|
|
111
|
+
publishBusEventRequestSchema: () => publishBusEventRequestSchema,
|
|
112
|
+
publishBusEventResponseSchema: () => publishBusEventResponseSchema,
|
|
93
113
|
registerAgentRequestSchema: () => registerAgentRequestSchema,
|
|
94
114
|
reportCommandResultRequestSchema: () => reportCommandResultRequestSchema,
|
|
95
115
|
reportedServiceSchema: () => reportedServiceSchema,
|
|
@@ -179,6 +199,87 @@ var ActionPrepareResultSchema = import_zod.z.object({
|
|
|
179
199
|
currentState: AnyJson.optional()
|
|
180
200
|
});
|
|
181
201
|
var actionPrepareResultSchema = ActionPrepareResultSchema;
|
|
202
|
+
var CapsuleBusExperimentalSchema = import_zod.z.literal("v0.4-experimental");
|
|
203
|
+
var BusRouteStatus = ["ENABLED", "DISABLED", "DRY_RUN"];
|
|
204
|
+
var BusRouteStatusSchema = import_zod.z.enum(BusRouteStatus);
|
|
205
|
+
var BusEventEnvelopeSchema = import_zod.z.object({
|
|
206
|
+
id: import_zod.z.string().startsWith("bev_").optional(),
|
|
207
|
+
experimental: CapsuleBusExperimentalSchema.default("v0.4-experimental"),
|
|
208
|
+
eventType: import_zod.z.string().min(1).max(160),
|
|
209
|
+
sourceServiceCode: import_zod.z.string().min(1).max(80),
|
|
210
|
+
sourceServiceId: import_zod.z.string().startsWith("svc_").optional(),
|
|
211
|
+
occurredAt: import_zod.z.string().datetime().optional(),
|
|
212
|
+
correlationId: import_zod.z.string().min(1).max(160).optional(),
|
|
213
|
+
causationId: import_zod.z.string().min(1).max(160).optional(),
|
|
214
|
+
payload: AnyJson.default({}).optional(),
|
|
215
|
+
metadata: AnyJson.default({}).optional()
|
|
216
|
+
});
|
|
217
|
+
var PublishBusEventRequestSchema = BusEventEnvelopeSchema.omit({ id: true }).extend({
|
|
218
|
+
routePolicy: import_zod.z.object({ dryRun: import_zod.z.boolean().optional() }).optional()
|
|
219
|
+
});
|
|
220
|
+
var BusRouteRuleSchema = import_zod.z.object({
|
|
221
|
+
id: import_zod.z.string().startsWith("brt_").optional(),
|
|
222
|
+
name: import_zod.z.string().min(1).max(160),
|
|
223
|
+
description: import_zod.z.string().max(1e3).optional(),
|
|
224
|
+
status: BusRouteStatusSchema.optional().default("DISABLED"),
|
|
225
|
+
match: import_zod.z.object({
|
|
226
|
+
eventType: import_zod.z.string().min(1).max(160),
|
|
227
|
+
sourceServiceCode: import_zod.z.string().min(1).max(80).optional()
|
|
228
|
+
}),
|
|
229
|
+
target: import_zod.z.object({
|
|
230
|
+
serviceCode: import_zod.z.string().min(1).max(80),
|
|
231
|
+
actionName: import_zod.z.string().min(1).max(128)
|
|
232
|
+
}),
|
|
233
|
+
inputMapping: AnyJson.default({}).optional(),
|
|
234
|
+
metadata: AnyJson.default({}).optional()
|
|
235
|
+
});
|
|
236
|
+
var CreateBusRouteRuleRequestSchema = BusRouteRuleSchema.omit({ id: true });
|
|
237
|
+
var BusCommandRequestSchema = import_zod.z.object({
|
|
238
|
+
commandId: import_zod.z.string().startsWith("cmd_").optional(),
|
|
239
|
+
commandType: import_zod.z.literal("ACTION_EXECUTE").default("ACTION_EXECUTE"),
|
|
240
|
+
targetService: import_zod.z.string().min(1).max(80),
|
|
241
|
+
actionName: import_zod.z.string().min(1).max(128),
|
|
242
|
+
sourceEventId: import_zod.z.string().startsWith("bev_").optional(),
|
|
243
|
+
payload: AnyJson.default({}).optional(),
|
|
244
|
+
metadata: import_zod.z.object({
|
|
245
|
+
routingRuleId: import_zod.z.string().startsWith("brt_").optional(),
|
|
246
|
+
correlationId: import_zod.z.string().min(1).max(160).optional()
|
|
247
|
+
}).catchall(import_zod.z.any()).optional()
|
|
248
|
+
});
|
|
249
|
+
var busCommandRequestSchema = BusCommandRequestSchema;
|
|
250
|
+
var BusRoutingRuleSchema = BusRouteRuleSchema;
|
|
251
|
+
var busRoutingRuleSchema = BusRoutingRuleSchema;
|
|
252
|
+
var BusRoutedCommandSchema = import_zod.z.object({
|
|
253
|
+
routeId: import_zod.z.string().startsWith("brt_"),
|
|
254
|
+
commandId: import_zod.z.string().startsWith("cmd_").optional(),
|
|
255
|
+
dryRun: import_zod.z.boolean(),
|
|
256
|
+
targetServiceCode: import_zod.z.string(),
|
|
257
|
+
actionName: import_zod.z.string(),
|
|
258
|
+
status: import_zod.z.enum(["CREATED", "DRY_RUN", "SKIPPED", "FAILED"]),
|
|
259
|
+
errorCode: import_zod.z.string().optional(),
|
|
260
|
+
errorMessage: import_zod.z.string().optional()
|
|
261
|
+
});
|
|
262
|
+
var PublishBusEventResponseSchema = import_zod.z.object({
|
|
263
|
+
eventId: import_zod.z.string().startsWith("bev_"),
|
|
264
|
+
experimental: CapsuleBusExperimentalSchema,
|
|
265
|
+
routedCommands: import_zod.z.array(BusRoutedCommandSchema)
|
|
266
|
+
});
|
|
267
|
+
var BusEventRecordSchema = BusEventEnvelopeSchema.extend({
|
|
268
|
+
id: import_zod.z.string().startsWith("bev_"),
|
|
269
|
+
agentId: import_zod.z.string().startsWith("agt_"),
|
|
270
|
+
acceptedAt: import_zod.z.string(),
|
|
271
|
+
routeCount: import_zod.z.number().int()
|
|
272
|
+
});
|
|
273
|
+
var BusErrorCode = {
|
|
274
|
+
CAPSULE_BUS_DISABLED: "CAPSULE_BUS_DISABLED",
|
|
275
|
+
BUS_RATE_LIMITED: "BUS_RATE_LIMITED",
|
|
276
|
+
BUS_DEPTH_EXCEEDED: "BUS_DEPTH_EXCEEDED"
|
|
277
|
+
};
|
|
278
|
+
var publishBusEventRequestSchema = PublishBusEventRequestSchema;
|
|
279
|
+
var publishBusEventResponseSchema = PublishBusEventResponseSchema;
|
|
280
|
+
var busEventEnvelopeSchema = BusEventEnvelopeSchema;
|
|
281
|
+
var busRouteRuleSchema = BusRouteRuleSchema;
|
|
282
|
+
var createBusRouteRuleRequestSchema = CreateBusRouteRuleRequestSchema;
|
|
182
283
|
var CreateActionCommandRequestSchema = import_zod.z.object({ payload: AnyJson.optional(), confirmation: import_zod.z.boolean().optional() });
|
|
183
284
|
var createActionCommandRequestSchema = CreateActionCommandRequestSchema;
|
|
184
285
|
var CommandTypeSchema = import_zod.z.enum(["ACTION_PREPARE", "ACTION_EXECUTE"]);
|
|
@@ -250,6 +351,16 @@ var ErrorCode = {
|
|
|
250
351
|
AuditActorType,
|
|
251
352
|
AuditEventSchema,
|
|
252
353
|
AuditResult,
|
|
354
|
+
BusCommandRequestSchema,
|
|
355
|
+
BusErrorCode,
|
|
356
|
+
BusEventEnvelopeSchema,
|
|
357
|
+
BusEventRecordSchema,
|
|
358
|
+
BusRouteRuleSchema,
|
|
359
|
+
BusRouteStatus,
|
|
360
|
+
BusRouteStatusSchema,
|
|
361
|
+
BusRoutedCommandSchema,
|
|
362
|
+
BusRoutingRuleSchema,
|
|
363
|
+
CapsuleBusExperimentalSchema,
|
|
253
364
|
CapsuleManifestSchema,
|
|
254
365
|
CapsuleServiceDetailSchema,
|
|
255
366
|
CapsuleServiceSchema,
|
|
@@ -264,6 +375,7 @@ var ErrorCode = {
|
|
|
264
375
|
ConfigItemInputSchema,
|
|
265
376
|
ConfigItemSchema,
|
|
266
377
|
CreateActionCommandRequestSchema,
|
|
378
|
+
CreateBusRouteRuleRequestSchema,
|
|
267
379
|
CreateRegistrationTokenRequestSchema,
|
|
268
380
|
CreateRegistrationTokenResponseSchema,
|
|
269
381
|
DangerLevel,
|
|
@@ -277,6 +389,8 @@ var ErrorCode = {
|
|
|
277
389
|
HealthStatusSchema,
|
|
278
390
|
HttpError,
|
|
279
391
|
ListQueryBase,
|
|
392
|
+
PublishBusEventRequestSchema,
|
|
393
|
+
PublishBusEventResponseSchema,
|
|
280
394
|
RegisterAgentRequestSchema,
|
|
281
395
|
RegisterAgentResponseSchema,
|
|
282
396
|
RegistrationTokenSchema,
|
|
@@ -296,14 +410,21 @@ var ErrorCode = {
|
|
|
296
410
|
actionPrepareResultSchema,
|
|
297
411
|
adminLoginRequestSchema,
|
|
298
412
|
agentHeartbeatRequestSchema,
|
|
413
|
+
busCommandRequestSchema,
|
|
414
|
+
busEventEnvelopeSchema,
|
|
415
|
+
busRouteRuleSchema,
|
|
416
|
+
busRoutingRuleSchema,
|
|
299
417
|
configItemInputSchema,
|
|
300
418
|
createActionCommandRequestSchema,
|
|
419
|
+
createBusRouteRuleRequestSchema,
|
|
301
420
|
createRegistrationTokenRequestSchema,
|
|
302
421
|
createUserRequestSchema,
|
|
303
422
|
eventMetadataSchema,
|
|
304
423
|
healthReportInputSchema,
|
|
305
424
|
paginate,
|
|
306
425
|
parseSort,
|
|
426
|
+
publishBusEventRequestSchema,
|
|
427
|
+
publishBusEventResponseSchema,
|
|
307
428
|
registerAgentRequestSchema,
|
|
308
429
|
reportCommandResultRequestSchema,
|
|
309
430
|
reportedServiceSchema,
|