@cadenza.io/service 2.17.13 → 2.17.15
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/dist/browser/index.js +145 -62
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/index.mjs +145 -62
- package/dist/browser/index.mjs.map +1 -1
- package/dist/index.d.mts +3 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +149 -68
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +149 -68
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -276,7 +276,10 @@ declare class ServiceRegistry {
|
|
|
276
276
|
collectTransportDiagnosticsTask: Task;
|
|
277
277
|
collectReadinessTask: Task;
|
|
278
278
|
private buildRemoteIntentDeputyKey;
|
|
279
|
+
private readArrayPayload;
|
|
280
|
+
private normalizeSignalMaps;
|
|
279
281
|
private normalizeIntentMaps;
|
|
282
|
+
private normalizeServiceInstancesFromSync;
|
|
280
283
|
private registerRemoteIntentDeputy;
|
|
281
284
|
private unregisterRemoteIntentDeputy;
|
|
282
285
|
getInquiryResponderDescriptor(task: Task): InquiryResponderDescriptor;
|
package/dist/index.d.ts
CHANGED
|
@@ -276,7 +276,10 @@ declare class ServiceRegistry {
|
|
|
276
276
|
collectTransportDiagnosticsTask: Task;
|
|
277
277
|
collectReadinessTask: Task;
|
|
278
278
|
private buildRemoteIntentDeputyKey;
|
|
279
|
+
private readArrayPayload;
|
|
280
|
+
private normalizeSignalMaps;
|
|
279
281
|
private normalizeIntentMaps;
|
|
282
|
+
private normalizeServiceInstancesFromSync;
|
|
280
283
|
private registerRemoteIntentDeputy;
|
|
281
284
|
private unregisterRemoteIntentDeputy;
|
|
282
285
|
getInquiryResponderDescriptor(task: Task): InquiryResponderDescriptor;
|
package/dist/index.js
CHANGED
|
@@ -433,16 +433,16 @@ function normalizeServiceTransportConfig(value) {
|
|
|
433
433
|
}
|
|
434
434
|
function normalizeServiceTransportDescriptor(value) {
|
|
435
435
|
const raw = value ?? {};
|
|
436
|
-
const
|
|
436
|
+
const uuid7 = normalizeString(raw.uuid);
|
|
437
437
|
const serviceInstanceId = normalizeString(
|
|
438
438
|
raw.serviceInstanceId ?? raw.service_instance_id
|
|
439
439
|
);
|
|
440
440
|
const config = normalizeServiceTransportConfig(raw);
|
|
441
|
-
if (!
|
|
441
|
+
if (!uuid7 || !serviceInstanceId || !config) {
|
|
442
442
|
return null;
|
|
443
443
|
}
|
|
444
444
|
return {
|
|
445
|
-
uuid:
|
|
445
|
+
uuid: uuid7,
|
|
446
446
|
serviceInstanceId,
|
|
447
447
|
role: config.role,
|
|
448
448
|
origin: config.origin,
|
|
@@ -504,14 +504,14 @@ function normalizeTransportArray(value, serviceInstanceId) {
|
|
|
504
504
|
}
|
|
505
505
|
function normalizeServiceInstanceDescriptor(value) {
|
|
506
506
|
const raw = value ?? {};
|
|
507
|
-
const
|
|
507
|
+
const uuid7 = normalizeString2(raw.uuid);
|
|
508
508
|
const serviceName = normalizeString2(raw.serviceName ?? raw.service_name);
|
|
509
|
-
if (!
|
|
509
|
+
if (!uuid7 || !serviceName) {
|
|
510
510
|
return null;
|
|
511
511
|
}
|
|
512
|
-
const transports = normalizeTransportArray(raw.transports,
|
|
512
|
+
const transports = normalizeTransportArray(raw.transports, uuid7);
|
|
513
513
|
return {
|
|
514
|
-
uuid:
|
|
514
|
+
uuid: uuid7,
|
|
515
515
|
serviceName,
|
|
516
516
|
numberOfRunningGraphs: Math.max(
|
|
517
517
|
0,
|
|
@@ -542,6 +542,22 @@ function getRouteableTransport(instance, role, protocol) {
|
|
|
542
542
|
return selectTransportForRole(instance.transports ?? [], role, protocol);
|
|
543
543
|
}
|
|
544
544
|
|
|
545
|
+
// src/utils/delegation.ts
|
|
546
|
+
var import_uuid2 = require("uuid");
|
|
547
|
+
function ensureDelegationContextMetadata(input) {
|
|
548
|
+
const context = input && typeof input === "object" ? { ...input } : {};
|
|
549
|
+
const metadata = context.__metadata && typeof context.__metadata === "object" ? { ...context.__metadata } : {};
|
|
550
|
+
const deputyExecId = typeof metadata.__deputyExecId === "string" && metadata.__deputyExecId.length > 0 ? metadata.__deputyExecId : typeof context.__deputyExecId === "string" && context.__deputyExecId.length > 0 ? context.__deputyExecId : (0, import_uuid2.v4)();
|
|
551
|
+
return {
|
|
552
|
+
...context,
|
|
553
|
+
__deputyExecId: deputyExecId,
|
|
554
|
+
__metadata: {
|
|
555
|
+
...metadata,
|
|
556
|
+
__deputyExecId: deputyExecId
|
|
557
|
+
}
|
|
558
|
+
};
|
|
559
|
+
}
|
|
560
|
+
|
|
545
561
|
// src/utils/readiness.ts
|
|
546
562
|
function evaluateDependencyReadiness(input) {
|
|
547
563
|
const missedHeartbeats = Math.max(
|
|
@@ -954,15 +970,15 @@ var ServiceRegistry = class _ServiceRegistry {
|
|
|
954
970
|
if (!serviceInstance) {
|
|
955
971
|
return false;
|
|
956
972
|
}
|
|
957
|
-
const
|
|
973
|
+
const uuid7 = serviceInstance.uuid;
|
|
958
974
|
const serviceName = serviceInstance.serviceName;
|
|
959
975
|
const deleted = Boolean(
|
|
960
976
|
ctx.deleted ?? ctx.serviceInstance?.deleted ?? ctx.data?.deleted
|
|
961
977
|
);
|
|
962
|
-
if (
|
|
978
|
+
if (uuid7 === this.serviceInstanceId) return;
|
|
963
979
|
if (deleted) {
|
|
964
|
-
const existingInstance = this.instances.get(serviceName)?.find((instance) => instance.uuid ===
|
|
965
|
-
const indexToDelete = this.instances.get(serviceName)?.findIndex((i) => i.uuid ===
|
|
980
|
+
const existingInstance = this.instances.get(serviceName)?.find((instance) => instance.uuid === uuid7);
|
|
981
|
+
const indexToDelete = this.instances.get(serviceName)?.findIndex((i) => i.uuid === uuid7) ?? -1;
|
|
966
982
|
if (indexToDelete >= 0 && existingInstance) {
|
|
967
983
|
this.instances.get(serviceName)?.splice(indexToDelete, 1);
|
|
968
984
|
for (const transport of existingInstance.transports) {
|
|
@@ -974,13 +990,13 @@ var ServiceRegistry = class _ServiceRegistry {
|
|
|
974
990
|
if (this.instances.get(serviceName)?.length === 0) {
|
|
975
991
|
this.instances.delete(serviceName);
|
|
976
992
|
}
|
|
977
|
-
this.unregisterDependee(
|
|
993
|
+
this.unregisterDependee(uuid7, serviceName);
|
|
978
994
|
return;
|
|
979
995
|
}
|
|
980
996
|
if (!this.instances.has(serviceName))
|
|
981
997
|
this.instances.set(serviceName, []);
|
|
982
998
|
const instances = this.instances.get(serviceName);
|
|
983
|
-
const existing = instances.find((i) => i.uuid ===
|
|
999
|
+
const existing = instances.find((i) => i.uuid === uuid7);
|
|
984
1000
|
if (existing) {
|
|
985
1001
|
Object.assign(existing, {
|
|
986
1002
|
...serviceInstance,
|
|
@@ -990,7 +1006,7 @@ var ServiceRegistry = class _ServiceRegistry {
|
|
|
990
1006
|
} else {
|
|
991
1007
|
instances.push(serviceInstance);
|
|
992
1008
|
}
|
|
993
|
-
const trackedInstance = existing ?? instances.find((instance) => instance.uuid ===
|
|
1009
|
+
const trackedInstance = existing ?? instances.find((instance) => instance.uuid === uuid7);
|
|
994
1010
|
if (trackedInstance) {
|
|
995
1011
|
const snapshot = this.resolveRuntimeStatusSnapshot(
|
|
996
1012
|
trackedInstance.numberOfRunningGraphs ?? 0,
|
|
@@ -1003,7 +1019,7 @@ var ServiceRegistry = class _ServiceRegistry {
|
|
|
1003
1019
|
trackedInstance.reportedAt = trackedInstance.reportedAt ?? (/* @__PURE__ */ new Date()).toISOString();
|
|
1004
1020
|
}
|
|
1005
1021
|
if (!serviceInstance.isBootstrapPlaceholder) {
|
|
1006
|
-
this.reconcileBootstrapPlaceholderInstance(serviceName,
|
|
1022
|
+
this.reconcileBootstrapPlaceholderInstance(serviceName, uuid7, emit);
|
|
1007
1023
|
}
|
|
1008
1024
|
if (this.serviceName === serviceName) {
|
|
1009
1025
|
return false;
|
|
@@ -1029,7 +1045,7 @@ var ServiceRegistry = class _ServiceRegistry {
|
|
|
1029
1045
|
if (!clientCreated) {
|
|
1030
1046
|
emit("meta.service_registry.dependee_registered", {
|
|
1031
1047
|
serviceName,
|
|
1032
|
-
serviceInstanceId:
|
|
1048
|
+
serviceInstanceId: uuid7,
|
|
1033
1049
|
serviceTransportId: trackedTransport.uuid,
|
|
1034
1050
|
serviceOrigin: trackedTransport.origin,
|
|
1035
1051
|
transportProtocols: trackedTransport.protocols,
|
|
@@ -1043,7 +1059,7 @@ var ServiceRegistry = class _ServiceRegistry {
|
|
|
1043
1059
|
} else {
|
|
1044
1060
|
emit("meta.service_registry.routeable_transport_missing", {
|
|
1045
1061
|
serviceName,
|
|
1046
|
-
serviceInstanceId:
|
|
1062
|
+
serviceInstanceId: uuid7,
|
|
1047
1063
|
requiredRole: this.getRoutingTransportRole(),
|
|
1048
1064
|
isFrontend: this.isFrontend
|
|
1049
1065
|
});
|
|
@@ -1167,8 +1183,7 @@ var ServiceRegistry = class _ServiceRegistry {
|
|
|
1167
1183
|
this.handleGlobalSignalRegistrationTask = CadenzaService.createMetaTask(
|
|
1168
1184
|
"Handle global Signal Registration",
|
|
1169
1185
|
(ctx) => {
|
|
1170
|
-
const
|
|
1171
|
-
const sortedSignalToTaskMap = signalToTaskMaps.sort(
|
|
1186
|
+
const sortedSignalToTaskMap = this.normalizeSignalMaps(ctx).sort(
|
|
1172
1187
|
(a, b) => {
|
|
1173
1188
|
if (a.deleted && !b.deleted) return -1;
|
|
1174
1189
|
if (!a.deleted && b.deleted) return 1;
|
|
@@ -1406,22 +1421,14 @@ var ServiceRegistry = class _ServiceRegistry {
|
|
|
1406
1421
|
},
|
|
1407
1422
|
ctx.inquiryOptions ?? ctx.__inquiryOptions ?? {}
|
|
1408
1423
|
);
|
|
1409
|
-
const signalToTaskMaps =
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
const intentToTaskMaps = (inquiryResult.intentToTaskMaps ?? []).map(
|
|
1415
|
-
(m) => ({
|
|
1416
|
-
intentName: m.intentName,
|
|
1417
|
-
taskName: m.taskName,
|
|
1418
|
-
taskVersion: m.taskVersion ?? 1,
|
|
1419
|
-
serviceName: m.serviceName,
|
|
1420
|
-
deleted: !!m.deleted
|
|
1421
|
-
})
|
|
1424
|
+
const signalToTaskMaps = this.normalizeSignalMaps(
|
|
1425
|
+
inquiryResult
|
|
1426
|
+
).filter((m) => !!m.isGlobal);
|
|
1427
|
+
const intentToTaskMaps = this.normalizeIntentMaps(
|
|
1428
|
+
inquiryResult
|
|
1422
1429
|
);
|
|
1423
|
-
const serviceInstances =
|
|
1424
|
-
|
|
1430
|
+
const serviceInstances = this.normalizeServiceInstancesFromSync(
|
|
1431
|
+
inquiryResult
|
|
1425
1432
|
);
|
|
1426
1433
|
return {
|
|
1427
1434
|
...ctx,
|
|
@@ -1506,6 +1513,9 @@ var ServiceRegistry = class _ServiceRegistry {
|
|
|
1506
1513
|
this.getBalancedInstance = CadenzaService.createMetaTask(
|
|
1507
1514
|
"Get balanced instance",
|
|
1508
1515
|
(context, emit) => {
|
|
1516
|
+
if (context.__remoteRoutineName !== void 0) {
|
|
1517
|
+
context = ensureDelegationContextMetadata(context);
|
|
1518
|
+
}
|
|
1509
1519
|
const {
|
|
1510
1520
|
__serviceName,
|
|
1511
1521
|
__triedInstances,
|
|
@@ -2244,9 +2254,47 @@ var ServiceRegistry = class _ServiceRegistry {
|
|
|
2244
2254
|
buildRemoteIntentDeputyKey(map) {
|
|
2245
2255
|
return `${map.intentName}|${map.serviceName}|${map.taskName}|${map.taskVersion ?? 1}`;
|
|
2246
2256
|
}
|
|
2257
|
+
readArrayPayload(ctx, keys) {
|
|
2258
|
+
for (const key of keys) {
|
|
2259
|
+
const value = ctx?.[key];
|
|
2260
|
+
if (Array.isArray(value)) {
|
|
2261
|
+
return value;
|
|
2262
|
+
}
|
|
2263
|
+
}
|
|
2264
|
+
if (Array.isArray(ctx?.rows)) {
|
|
2265
|
+
return ctx.rows;
|
|
2266
|
+
}
|
|
2267
|
+
if (Array.isArray(ctx?.data)) {
|
|
2268
|
+
return ctx.data;
|
|
2269
|
+
}
|
|
2270
|
+
return [];
|
|
2271
|
+
}
|
|
2272
|
+
normalizeSignalMaps(ctx) {
|
|
2273
|
+
return this.readArrayPayload(ctx, [
|
|
2274
|
+
"signalToTaskMaps",
|
|
2275
|
+
"signal_to_task_maps",
|
|
2276
|
+
"signalToTaskMap",
|
|
2277
|
+
"signal_to_task_map"
|
|
2278
|
+
]).map((map) => ({
|
|
2279
|
+
signalName: String(
|
|
2280
|
+
map.signalName ?? map.signal_name ?? ""
|
|
2281
|
+
).trim(),
|
|
2282
|
+
serviceName: String(
|
|
2283
|
+
map.serviceName ?? map.service_name ?? ""
|
|
2284
|
+
).trim(),
|
|
2285
|
+
isGlobal: Boolean(map.isGlobal ?? map.is_global ?? false),
|
|
2286
|
+
deleted: Boolean(map.deleted)
|
|
2287
|
+
})).filter((map) => map.signalName && map.serviceName);
|
|
2288
|
+
}
|
|
2247
2289
|
normalizeIntentMaps(ctx) {
|
|
2248
|
-
|
|
2249
|
-
|
|
2290
|
+
const arrayPayload = this.readArrayPayload(ctx, [
|
|
2291
|
+
"intentToTaskMaps",
|
|
2292
|
+
"intent_to_task_maps",
|
|
2293
|
+
"intentToTaskMap",
|
|
2294
|
+
"intent_to_task_map"
|
|
2295
|
+
]);
|
|
2296
|
+
if (arrayPayload.length > 0) {
|
|
2297
|
+
return arrayPayload.map((m) => ({
|
|
2250
2298
|
intentName: m.intentName ?? m.intent_name,
|
|
2251
2299
|
serviceName: m.serviceName ?? m.service_name,
|
|
2252
2300
|
taskName: m.taskName ?? m.task_name,
|
|
@@ -2254,7 +2302,7 @@ var ServiceRegistry = class _ServiceRegistry {
|
|
|
2254
2302
|
deleted: !!m.deleted
|
|
2255
2303
|
})).filter((m) => m.intentName && m.serviceName && m.taskName);
|
|
2256
2304
|
}
|
|
2257
|
-
const single = ctx.intentToTaskMap ?? ctx.data ?? (ctx.intentName ? ctx : void 0);
|
|
2305
|
+
const single = ctx.intentToTaskMap ?? ctx.intent_to_task_map ?? ctx.data ?? (ctx.intentName ? ctx : void 0);
|
|
2258
2306
|
if (!single) return [];
|
|
2259
2307
|
const normalized = {
|
|
2260
2308
|
intentName: single.intentName ?? single.intent_name,
|
|
@@ -2267,6 +2315,40 @@ var ServiceRegistry = class _ServiceRegistry {
|
|
|
2267
2315
|
return [];
|
|
2268
2316
|
return [normalized];
|
|
2269
2317
|
}
|
|
2318
|
+
normalizeServiceInstancesFromSync(ctx) {
|
|
2319
|
+
const rawTransports = this.readArrayPayload(ctx, [
|
|
2320
|
+
"serviceInstanceTransports",
|
|
2321
|
+
"service_instance_transports",
|
|
2322
|
+
"serviceInstanceTransport",
|
|
2323
|
+
"service_instance_transport"
|
|
2324
|
+
]).map((transport) => normalizeServiceTransportDescriptor(transport)).filter(
|
|
2325
|
+
(transport) => !!transport && !transport.deleted
|
|
2326
|
+
);
|
|
2327
|
+
const transportsByInstance = /* @__PURE__ */ new Map();
|
|
2328
|
+
for (const transport of rawTransports) {
|
|
2329
|
+
if (!transportsByInstance.has(transport.serviceInstanceId)) {
|
|
2330
|
+
transportsByInstance.set(transport.serviceInstanceId, []);
|
|
2331
|
+
}
|
|
2332
|
+
transportsByInstance.get(transport.serviceInstanceId).push(transport);
|
|
2333
|
+
}
|
|
2334
|
+
return this.readArrayPayload(ctx, [
|
|
2335
|
+
"serviceInstances",
|
|
2336
|
+
"service_instances",
|
|
2337
|
+
"serviceInstance",
|
|
2338
|
+
"service_instance"
|
|
2339
|
+
]).map(
|
|
2340
|
+
(instance) => normalizeServiceInstanceDescriptor({
|
|
2341
|
+
...instance,
|
|
2342
|
+
transports: Array.isArray(instance?.transports) && instance.transports.length > 0 ? instance.transports : transportsByInstance.get(
|
|
2343
|
+
String(
|
|
2344
|
+
instance?.uuid ?? instance?.serviceInstanceId ?? instance?.service_instance_id ?? ""
|
|
2345
|
+
).trim()
|
|
2346
|
+
) ?? []
|
|
2347
|
+
})
|
|
2348
|
+
).filter(
|
|
2349
|
+
(instance) => !!instance && !!instance.isActive && !instance.isNonResponsive && !instance.isBlocked
|
|
2350
|
+
);
|
|
2351
|
+
}
|
|
2270
2352
|
registerRemoteIntentDeputy(map) {
|
|
2271
2353
|
if (!this.serviceName || map.serviceName === this.serviceName) {
|
|
2272
2354
|
return;
|
|
@@ -3185,7 +3267,7 @@ var ServiceRegistry = class _ServiceRegistry {
|
|
|
3185
3267
|
|
|
3186
3268
|
// src/graph/definition/SignalTransmissionTask.ts
|
|
3187
3269
|
var import_core2 = require("@cadenza.io/core");
|
|
3188
|
-
var
|
|
3270
|
+
var import_uuid3 = require("uuid");
|
|
3189
3271
|
var SignalTransmissionTask = class extends import_core2.Task {
|
|
3190
3272
|
/**
|
|
3191
3273
|
* Constructs a new instance of the class and initializes it with the provided parameters.
|
|
@@ -3214,7 +3296,7 @@ var SignalTransmissionTask = class extends import_core2.Task {
|
|
|
3214
3296
|
*/
|
|
3215
3297
|
constructor(name, signalName, serviceName, description = "", concurrency = 0, timeout = 0, register = true, isUnique = false, isMeta = true, isSubMeta = false, isHidden = false, getTagCallback = void 0, inputSchema = void 0, validateInputContext = false, outputSchema = void 0, validateOutputContext = false, retryCount = 0, retryDelay = 0, retryDelayMax = 0, retryDelayFactor = 1) {
|
|
3216
3298
|
const taskFunction = (context) => {
|
|
3217
|
-
context.__routineExecId = (0,
|
|
3299
|
+
context.__routineExecId = (0, import_uuid3.v4)();
|
|
3218
3300
|
return context;
|
|
3219
3301
|
};
|
|
3220
3302
|
super(
|
|
@@ -3284,7 +3366,7 @@ var import_node_http = __toESM(require("http"));
|
|
|
3284
3366
|
var import_node_fs = __toESM(require("fs"));
|
|
3285
3367
|
var import_node_https = __toESM(require("https"));
|
|
3286
3368
|
var import_node_fetch = __toESM(require("node-fetch"));
|
|
3287
|
-
var
|
|
3369
|
+
var import_uuid4 = require("uuid");
|
|
3288
3370
|
var RestController = class _RestController {
|
|
3289
3371
|
/**
|
|
3290
3372
|
* Constructor for initializing the REST server and related configurations.
|
|
@@ -3460,10 +3542,8 @@ var RestController = class _RestController {
|
|
|
3460
3542
|
}
|
|
3461
3543
|
});
|
|
3462
3544
|
app.post("/delegation", (req, res) => {
|
|
3463
|
-
|
|
3464
|
-
|
|
3465
|
-
ctx2 = req.body;
|
|
3466
|
-
deputyExecId = ctx2.__metadata.__deputyExecId;
|
|
3545
|
+
const ctx2 = ensureDelegationContextMetadata(req.body);
|
|
3546
|
+
const deputyExecId = ctx2.__metadata.__deputyExecId;
|
|
3467
3547
|
const remoteRoutineName = ctx2.__remoteRoutineName;
|
|
3468
3548
|
const targetNotFoundSignal = `meta.rest.delegation_target_not_found:${deputyExecId}`;
|
|
3469
3549
|
let resolved = false;
|
|
@@ -3646,7 +3726,7 @@ var RestController = class _RestController {
|
|
|
3646
3726
|
const internalOrigin = httpOrigin ?? httpsOrigin;
|
|
3647
3727
|
if (internalOrigin) {
|
|
3648
3728
|
transportData.unshift({
|
|
3649
|
-
uuid: (0,
|
|
3729
|
+
uuid: (0, import_uuid4.v4)(),
|
|
3650
3730
|
service_instance_id: ctx.__serviceInstanceId,
|
|
3651
3731
|
role: "internal",
|
|
3652
3732
|
origin: internalOrigin,
|
|
@@ -3812,6 +3892,8 @@ var RestController = class _RestController {
|
|
|
3812
3892
|
if (ctx2.__remoteRoutineName === void 0) {
|
|
3813
3893
|
return;
|
|
3814
3894
|
}
|
|
3895
|
+
const delegateCtx = ensureDelegationContextMetadata(ctx2);
|
|
3896
|
+
const deputyExecId = delegateCtx.__metadata.__deputyExecId;
|
|
3815
3897
|
fetchDiagnostics.delegationRequests++;
|
|
3816
3898
|
fetchDiagnostics.updatedAt = Date.now();
|
|
3817
3899
|
let resultContext;
|
|
@@ -3823,7 +3905,7 @@ var RestController = class _RestController {
|
|
|
3823
3905
|
"Content-Type": "application/json"
|
|
3824
3906
|
},
|
|
3825
3907
|
method: "POST",
|
|
3826
|
-
body: JSON.stringify(
|
|
3908
|
+
body: JSON.stringify(delegateCtx)
|
|
3827
3909
|
},
|
|
3828
3910
|
3e4
|
|
3829
3911
|
);
|
|
@@ -3845,14 +3927,11 @@ var RestController = class _RestController {
|
|
|
3845
3927
|
resultContext = {
|
|
3846
3928
|
__error: `Error: ${e}`,
|
|
3847
3929
|
errored: true,
|
|
3848
|
-
...
|
|
3849
|
-
...
|
|
3930
|
+
...delegateCtx,
|
|
3931
|
+
...delegateCtx.__metadata
|
|
3850
3932
|
};
|
|
3851
3933
|
} finally {
|
|
3852
|
-
emit(
|
|
3853
|
-
`meta.fetch.delegated:${ctx2.__metadata.__deputyExecId}`,
|
|
3854
|
-
resultContext
|
|
3855
|
-
);
|
|
3934
|
+
emit(`meta.fetch.delegated:${deputyExecId}`, resultContext);
|
|
3856
3935
|
}
|
|
3857
3936
|
return resultContext;
|
|
3858
3937
|
},
|
|
@@ -4561,11 +4640,12 @@ var SocketController = class _SocketController {
|
|
|
4561
4640
|
CadenzaService.emit("meta.socket.handshake", ctx);
|
|
4562
4641
|
});
|
|
4563
4642
|
ws.on("delegation", (ctx, callback) => {
|
|
4564
|
-
const
|
|
4643
|
+
const delegationCtx = ensureDelegationContextMetadata(ctx);
|
|
4644
|
+
const deputyExecId = delegationCtx.__metadata.__deputyExecId;
|
|
4565
4645
|
CadenzaService.createEphemeralMetaTask(
|
|
4566
4646
|
"Resolve delegation",
|
|
4567
|
-
(
|
|
4568
|
-
callback(
|
|
4647
|
+
(delegationCtx2) => {
|
|
4648
|
+
callback(delegationCtx2);
|
|
4569
4649
|
},
|
|
4570
4650
|
"Resolves a delegation request using client callback.",
|
|
4571
4651
|
{ register: false }
|
|
@@ -4588,8 +4668,8 @@ var SocketController = class _SocketController {
|
|
|
4588
4668
|
`meta.node.graph_completed:${deputyExecId}`
|
|
4589
4669
|
).emitsOnFail(`meta.socket.progress_failed:${deputyExecId}`);
|
|
4590
4670
|
CadenzaService.emit("meta.socket.delegation_requested", {
|
|
4591
|
-
...
|
|
4592
|
-
__name:
|
|
4671
|
+
...delegationCtx,
|
|
4672
|
+
__name: delegationCtx.__remoteRoutineName
|
|
4593
4673
|
});
|
|
4594
4674
|
});
|
|
4595
4675
|
ws.on("signal", (ctx, callback) => {
|
|
@@ -5209,9 +5289,10 @@ var SocketController = class _SocketController {
|
|
|
5209
5289
|
if (delegateCtx.__remoteRoutineName === void 0) {
|
|
5210
5290
|
return;
|
|
5211
5291
|
}
|
|
5212
|
-
|
|
5213
|
-
delete
|
|
5214
|
-
|
|
5292
|
+
const normalizedDelegateCtx = ensureDelegationContextMetadata(delegateCtx);
|
|
5293
|
+
delete normalizedDelegateCtx.__isSubMeta;
|
|
5294
|
+
delete normalizedDelegateCtx.__broadcast;
|
|
5295
|
+
const deputyExecId = normalizedDelegateCtx.__metadata?.__deputyExecId;
|
|
5215
5296
|
const requestSentAt = Date.now();
|
|
5216
5297
|
if (deputyExecId) {
|
|
5217
5298
|
runtimeHandle.pendingDelegationIds.add(deputyExecId);
|
|
@@ -5220,8 +5301,8 @@ var SocketController = class _SocketController {
|
|
|
5220
5301
|
try {
|
|
5221
5302
|
const resultContext = await runtimeHandle.emitWhenReady?.(
|
|
5222
5303
|
"delegation",
|
|
5223
|
-
|
|
5224
|
-
|
|
5304
|
+
normalizedDelegateCtx,
|
|
5305
|
+
normalizedDelegateCtx.__timeout ?? 6e4
|
|
5225
5306
|
) ?? {
|
|
5226
5307
|
errored: true,
|
|
5227
5308
|
__error: "Socket delegation returned no response"
|
|
@@ -8068,7 +8149,7 @@ function tableFieldTypeToSchemaType(type) {
|
|
|
8068
8149
|
}
|
|
8069
8150
|
|
|
8070
8151
|
// src/Cadenza.ts
|
|
8071
|
-
var
|
|
8152
|
+
var import_uuid5 = require("uuid");
|
|
8072
8153
|
|
|
8073
8154
|
// src/graph/controllers/GraphSyncController.ts
|
|
8074
8155
|
var ACTOR_TASK_METADATA = /* @__PURE__ */ Symbol.for("@cadenza.io/core/actor-task-meta");
|
|
@@ -9176,7 +9257,7 @@ var CadenzaService = class {
|
|
|
9176
9257
|
(transport) => !!transport
|
|
9177
9258
|
).map((transport) => ({
|
|
9178
9259
|
...transport,
|
|
9179
|
-
uuid: (0,
|
|
9260
|
+
uuid: (0, import_uuid5.v4)()
|
|
9180
9261
|
}));
|
|
9181
9262
|
}
|
|
9182
9263
|
static createBootstrapTransport(serviceInstanceId, role, endpoint) {
|
|
@@ -9420,7 +9501,7 @@ var CadenzaService = class {
|
|
|
9420
9501
|
}
|
|
9421
9502
|
for (const responder of responders) {
|
|
9422
9503
|
const { task, descriptor } = responder;
|
|
9423
|
-
const inquiryId = (0,
|
|
9504
|
+
const inquiryId = (0, import_uuid5.v4)();
|
|
9424
9505
|
startTimeByTask.set(task, Date.now());
|
|
9425
9506
|
const resolverTask = this.createEphemeralMetaTask(
|
|
9426
9507
|
`Resolve inquiry ${inquiry} for ${descriptor.localTaskName}`,
|
|
@@ -9911,7 +9992,7 @@ var CadenzaService = class {
|
|
|
9911
9992
|
this.bootstrap();
|
|
9912
9993
|
this.validateName(serviceName);
|
|
9913
9994
|
this.validateServiceName(serviceName);
|
|
9914
|
-
const serviceId = options.customServiceId ?? (0,
|
|
9995
|
+
const serviceId = options.customServiceId ?? (0, import_uuid5.v4)();
|
|
9915
9996
|
this.serviceRegistry.serviceName = serviceName;
|
|
9916
9997
|
this.serviceRegistry.serviceInstanceId = serviceId;
|
|
9917
9998
|
this.setHydrationResults(options.hydration);
|
|
@@ -10739,7 +10820,7 @@ CadenzaService.frontendSyncScheduled = false;
|
|
|
10739
10820
|
var import_core5 = require("@cadenza.io/core");
|
|
10740
10821
|
|
|
10741
10822
|
// src/ssr/createSSRInquiryBridge.ts
|
|
10742
|
-
var
|
|
10823
|
+
var import_uuid6 = require("uuid");
|
|
10743
10824
|
function ensureFetch() {
|
|
10744
10825
|
if (typeof globalThis.fetch !== "function") {
|
|
10745
10826
|
throw new Error("SSR inquiry bridge requires global fetch support.");
|
|
@@ -10828,7 +10909,7 @@ function createSSRInquiryBridge(options = {}) {
|
|
|
10828
10909
|
__remoteRoutineName: remoteRoutineName,
|
|
10829
10910
|
__metadata: {
|
|
10830
10911
|
...context.__metadata ?? {},
|
|
10831
|
-
__deputyExecId: (0,
|
|
10912
|
+
__deputyExecId: (0, import_uuid6.v4)()
|
|
10832
10913
|
}
|
|
10833
10914
|
}),
|
|
10834
10915
|
signal
|