@cadenza.io/service 1.9.54 → 1.10.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/dist/index.js +69 -55
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +69 -55
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -142,9 +142,11 @@ var DeputyTask = class extends import_core.Task {
|
|
|
142
142
|
return new Promise((resolve, reject) => {
|
|
143
143
|
if (context.__metadata.__blockRemoteExecution) {
|
|
144
144
|
reject(new Error("Blocked remote execution"));
|
|
145
|
+
return;
|
|
145
146
|
}
|
|
146
147
|
if (context.__metadata.__skipRemoteExecution) {
|
|
147
148
|
resolve(true);
|
|
149
|
+
return;
|
|
148
150
|
}
|
|
149
151
|
const processId = (0, import_uuid.v4)();
|
|
150
152
|
context.__metadata.__deputyExecId = processId;
|
|
@@ -418,11 +420,14 @@ var ServiceRegistry = class _ServiceRegistry {
|
|
|
418
420
|
let remoteSignals = (_a2 = this.remoteSignals.get(serviceName)) != null ? _a2 : [];
|
|
419
421
|
remoteSignals = remoteSignals.concat((_b2 = this.remoteSignals.get("*")) != null ? _b2 : []);
|
|
420
422
|
return __spreadValues({
|
|
421
|
-
|
|
423
|
+
remoteSignals
|
|
422
424
|
}, ctx);
|
|
423
425
|
},
|
|
424
426
|
"Gets remote signals"
|
|
425
|
-
).doOn(
|
|
427
|
+
).doOn(
|
|
428
|
+
"meta.register_remote_signals_requested",
|
|
429
|
+
"meta.fetch.handshake_complete"
|
|
430
|
+
);
|
|
426
431
|
this.handleSocketStatusUpdateTask = CadenzaService.createMetaTask(
|
|
427
432
|
"Handle Socket Status Update",
|
|
428
433
|
(ctx) => {
|
|
@@ -456,10 +461,7 @@ var ServiceRegistry = class _ServiceRegistry {
|
|
|
456
461
|
"health",
|
|
457
462
|
"exposed"
|
|
458
463
|
]
|
|
459
|
-
}).doOn(
|
|
460
|
-
"meta.service_registry_sync_requested",
|
|
461
|
-
"meta.service_registry.instance_inserted"
|
|
462
|
-
).then(
|
|
464
|
+
}).doOn("meta.service_registry_sync_requested").then(
|
|
463
465
|
CadenzaService.createMetaTask("Split service instances", function* (ctx) {
|
|
464
466
|
const { serviceInstances } = ctx;
|
|
465
467
|
if (!serviceInstances) return;
|
|
@@ -467,6 +469,7 @@ var ServiceRegistry = class _ServiceRegistry {
|
|
|
467
469
|
yield { serviceInstance };
|
|
468
470
|
}
|
|
469
471
|
}).then(this.handleInstanceUpdateTask)
|
|
472
|
+
// .emits("meta.process_signal_queue_requested"), // TODO Has to happen after the endpoints has been created...
|
|
470
473
|
);
|
|
471
474
|
this.updateInstanceId = CadenzaService.createMetaTask(
|
|
472
475
|
"Update instance id",
|
|
@@ -749,11 +752,11 @@ var ServiceRegistry = class _ServiceRegistry {
|
|
|
749
752
|
"Setup service",
|
|
750
753
|
(ctx) => {
|
|
751
754
|
var _a2, _b2;
|
|
752
|
-
const {
|
|
753
|
-
this.serviceInstanceId = (_a2 =
|
|
755
|
+
const { service_instance, data, __useSocket, __retryCount } = ctx;
|
|
756
|
+
this.serviceInstanceId = (_a2 = service_instance == null ? void 0 : service_instance.uuid) != null ? _a2 : data == null ? void 0 : data.uuid;
|
|
754
757
|
this.instances.set(
|
|
755
|
-
(_b2 = data == null ? void 0 : data.service_name) != null ? _b2 :
|
|
756
|
-
[__spreadValues({},
|
|
758
|
+
(_b2 = data == null ? void 0 : data.service_name) != null ? _b2 : service_instance == null ? void 0 : service_instance.service_name,
|
|
759
|
+
[__spreadValues({}, service_instance != null ? service_instance : data)]
|
|
757
760
|
);
|
|
758
761
|
this.useSocket = __useSocket;
|
|
759
762
|
this.retryCount = __retryCount;
|
|
@@ -761,10 +764,7 @@ var ServiceRegistry = class _ServiceRegistry {
|
|
|
761
764
|
return true;
|
|
762
765
|
},
|
|
763
766
|
"Sets service instance id after insertion"
|
|
764
|
-
).emits(
|
|
765
|
-
"meta.service_registry.instance_inserted",
|
|
766
|
-
"meta.process_signal_queue_requested"
|
|
767
|
-
)
|
|
767
|
+
).emits("meta.service_registry.instance_inserted")
|
|
768
768
|
);
|
|
769
769
|
CadenzaService.createMetaTask(
|
|
770
770
|
"Handle service creation",
|
|
@@ -913,8 +913,14 @@ var RestController = class _RestController {
|
|
|
913
913
|
return this._instance;
|
|
914
914
|
}
|
|
915
915
|
constructor() {
|
|
916
|
-
CadenzaService.registry.getTaskByName.doOn(
|
|
917
|
-
|
|
916
|
+
CadenzaService.registry.getTaskByName.doOn(
|
|
917
|
+
"meta.rest.delegation_requested",
|
|
918
|
+
"meta.socket.delegation_requested"
|
|
919
|
+
);
|
|
920
|
+
CadenzaService.registry.getRoutineByName.doOn(
|
|
921
|
+
"meta.rest.delegation_requested",
|
|
922
|
+
"meta.socket.delegation_requested"
|
|
923
|
+
);
|
|
918
924
|
CadenzaService.createMetaRoutine(
|
|
919
925
|
"RestServer",
|
|
920
926
|
[
|
|
@@ -1391,16 +1397,23 @@ var SocketController = class _SocketController {
|
|
|
1391
1397
|
(ctx) => {
|
|
1392
1398
|
const server = ctx.__socketServer;
|
|
1393
1399
|
server.on("connection", (ws) => {
|
|
1400
|
+
ws.on("handshake", (ctx2) => {
|
|
1401
|
+
console.log("Socket HANDSHAKE", ctx2.serviceInstanceId);
|
|
1402
|
+
ws.emit("handshake", {
|
|
1403
|
+
serviceInstanceId: CadenzaService.serviceRegistry.serviceInstanceId,
|
|
1404
|
+
__status: "success"
|
|
1405
|
+
});
|
|
1406
|
+
CadenzaService.broker.emit("meta.socket.handshake", ctx2);
|
|
1407
|
+
});
|
|
1394
1408
|
ws.on(
|
|
1395
1409
|
"delegation",
|
|
1396
1410
|
(ctx2, callback) => {
|
|
1411
|
+
const deputyExecId = ctx2.__metadata.__deputyExecId;
|
|
1397
1412
|
CadenzaService.createEphemeralMetaTask(
|
|
1398
1413
|
"Resolve delegation",
|
|
1399
1414
|
callback,
|
|
1400
1415
|
"Resolves a delegation request using the provided callback from the client (.emitWithAck())"
|
|
1401
|
-
).doOn(`meta.node.graph_completed:${
|
|
1402
|
-
`meta.socket.delegation_resolved:${ctx2.__routineExecId}`
|
|
1403
|
-
);
|
|
1416
|
+
).doOn(`meta.node.graph_completed:${deputyExecId}`).emits(`meta.socket.delegation_resolved:${deputyExecId}`);
|
|
1404
1417
|
CadenzaService.createEphemeralMetaTask(
|
|
1405
1418
|
"Delegation progress update",
|
|
1406
1419
|
(ctx3) => {
|
|
@@ -1416,10 +1429,10 @@ var SocketController = class _SocketController {
|
|
|
1416
1429
|
}
|
|
1417
1430
|
}
|
|
1418
1431
|
).doOn(
|
|
1419
|
-
`meta.node.routine_execution_progress:${
|
|
1420
|
-
`meta.node.graph_completed:${
|
|
1432
|
+
`meta.node.routine_execution_progress:${deputyExecId}`,
|
|
1433
|
+
`meta.node.graph_completed:${deputyExecId}`
|
|
1421
1434
|
).emitsOnFail(
|
|
1422
|
-
`meta.socket.progress_failed:${
|
|
1435
|
+
`meta.socket.progress_failed:${deputyExecId}`
|
|
1423
1436
|
);
|
|
1424
1437
|
CadenzaService.broker.emit(
|
|
1425
1438
|
"meta.socket.delegation_requested",
|
|
@@ -1488,15 +1501,15 @@ var SocketController = class _SocketController {
|
|
|
1488
1501
|
"Connect to socket server",
|
|
1489
1502
|
(ctx) => {
|
|
1490
1503
|
const {
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
|
|
1504
|
+
serviceName,
|
|
1505
|
+
serviceInstanceId,
|
|
1506
|
+
serviceAddress,
|
|
1507
|
+
servicePort,
|
|
1508
|
+
protocol
|
|
1496
1509
|
} = ctx;
|
|
1497
|
-
const socketProtocol =
|
|
1498
|
-
const port =
|
|
1499
|
-
const socket = (0, import_socket2.io)(`${socketProtocol}://${
|
|
1510
|
+
const socketProtocol = protocol === "https" ? "wss" : "ws";
|
|
1511
|
+
const port = protocol === "https" ? 443 : servicePort;
|
|
1512
|
+
const socket = (0, import_socket2.io)(`${socketProtocol}://${serviceAddress}:${port}`, {
|
|
1500
1513
|
reconnection: true,
|
|
1501
1514
|
reconnectionAttempts: 20,
|
|
1502
1515
|
reconnectionDelay: 1e3,
|
|
@@ -1507,13 +1520,17 @@ var SocketController = class _SocketController {
|
|
|
1507
1520
|
socket.on("connect", () => {
|
|
1508
1521
|
CadenzaService.broker.emit("meta.socket_client.connected", ctx);
|
|
1509
1522
|
socket.emit("handshake", {
|
|
1510
|
-
|
|
1523
|
+
serviceInstanceId
|
|
1511
1524
|
});
|
|
1512
1525
|
});
|
|
1526
|
+
socket.on("handshake", (ctx2) => {
|
|
1527
|
+
console.log("Socket client HANDSHAKE", ctx2);
|
|
1528
|
+
CadenzaService.broker.emit("meta.socket_client.handshake", ctx2);
|
|
1529
|
+
});
|
|
1513
1530
|
socket.on("delegation_progress", (ctx2) => {
|
|
1514
1531
|
CadenzaService.broker.emit(
|
|
1515
|
-
`meta.socket_client.delegation_progress:${ctx2.__deputyExecId}`,
|
|
1516
|
-
__spreadValues({
|
|
1532
|
+
`meta.socket_client.delegation_progress:${ctx2.__metadata.__deputyExecId}`,
|
|
1533
|
+
__spreadValues({ serviceInstanceId }, ctx2)
|
|
1517
1534
|
);
|
|
1518
1535
|
});
|
|
1519
1536
|
socket.on("status_update", (status) => {
|
|
@@ -1521,16 +1538,17 @@ var SocketController = class _SocketController {
|
|
|
1521
1538
|
});
|
|
1522
1539
|
socket.on("disconnect", () => {
|
|
1523
1540
|
CadenzaService.broker.emit("meta.socket_client.disconnected", {
|
|
1524
|
-
|
|
1541
|
+
serviceInstanceId
|
|
1525
1542
|
});
|
|
1526
1543
|
});
|
|
1527
1544
|
CadenzaService.createMetaTask(
|
|
1528
|
-
`Delegate flow to ${
|
|
1545
|
+
`Delegate flow to ${serviceInstanceId}`,
|
|
1529
1546
|
(ctx2, emit) => __async(null, null, function* () {
|
|
1530
1547
|
var _a2;
|
|
1531
1548
|
if (ctx2.__remoteRoutineName === void 0) {
|
|
1532
1549
|
return;
|
|
1533
1550
|
}
|
|
1551
|
+
console.log("Socket Delegate:", ctx2);
|
|
1534
1552
|
let resultContext;
|
|
1535
1553
|
try {
|
|
1536
1554
|
resultContext = yield socket.timeout((_a2 = ctx2.__timeout) != null ? _a2 : 0).emitWithAck("delegation", ctx2);
|
|
@@ -1541,6 +1559,7 @@ var SocketController = class _SocketController {
|
|
|
1541
1559
|
__spreadValues(__spreadValues({}, resultContext), metadata)
|
|
1542
1560
|
);
|
|
1543
1561
|
} catch (e) {
|
|
1562
|
+
console.log("socket error:", e);
|
|
1544
1563
|
resultContext = __spreadValues(__spreadValues({
|
|
1545
1564
|
__error: `Timeout error: ${e}`,
|
|
1546
1565
|
errored: true
|
|
@@ -1548,14 +1567,14 @@ var SocketController = class _SocketController {
|
|
|
1548
1567
|
}
|
|
1549
1568
|
return resultContext;
|
|
1550
1569
|
}),
|
|
1551
|
-
`Delegate flow to instance ${
|
|
1570
|
+
`Delegate flow to instance ${serviceInstanceId} of service ${serviceName} with address ${serviceAddress}:${servicePort}`
|
|
1552
1571
|
).doOn(
|
|
1553
|
-
`meta.service_registry.selected_instance_for_socket:${
|
|
1572
|
+
`meta.service_registry.selected_instance_for_socket:${serviceInstanceId}`
|
|
1554
1573
|
).emitsOnFail(
|
|
1555
|
-
`meta.socket_client.delegate_failed:${
|
|
1574
|
+
`meta.socket_client.delegate_failed:${serviceInstanceId}`
|
|
1556
1575
|
);
|
|
1557
1576
|
CadenzaService.createMetaTask(
|
|
1558
|
-
`Transmit signal to ${
|
|
1577
|
+
`Transmit signal to ${serviceInstanceId}`,
|
|
1559
1578
|
(ctx2, emit) => __async(null, null, function* () {
|
|
1560
1579
|
var _a2;
|
|
1561
1580
|
if (ctx2.__signalName === void 0) {
|
|
@@ -1578,11 +1597,11 @@ var SocketController = class _SocketController {
|
|
|
1578
1597
|
}
|
|
1579
1598
|
return response;
|
|
1580
1599
|
}),
|
|
1581
|
-
`Transmits signal to instance ${
|
|
1600
|
+
`Transmits signal to instance ${serviceInstanceId} of service ${serviceName} with address ${serviceAddress}:${servicePort}`
|
|
1582
1601
|
).doOn(
|
|
1583
|
-
`meta.service_registry.selected_instance_for_socket:${
|
|
1602
|
+
`meta.service_registry.selected_instance_for_socket:${serviceInstanceId}`
|
|
1584
1603
|
).emitsOnFail(
|
|
1585
|
-
`meta.socket_client.signal_transmission_failed:${
|
|
1604
|
+
`meta.socket_client.signal_transmission_failed:${serviceInstanceId}`
|
|
1586
1605
|
);
|
|
1587
1606
|
CadenzaService.createMetaTask(
|
|
1588
1607
|
"Shutdown SocketClient",
|
|
@@ -1650,19 +1669,12 @@ var SignalController = class _SignalController {
|
|
|
1650
1669
|
CadenzaService.createMetaTask(
|
|
1651
1670
|
"Forward signal observations to remote service",
|
|
1652
1671
|
(ctx, emit) => {
|
|
1653
|
-
const {
|
|
1654
|
-
for (const remoteSignal of
|
|
1655
|
-
|
|
1656
|
-
|
|
1657
|
-
|
|
1658
|
-
|
|
1659
|
-
);
|
|
1660
|
-
} else {
|
|
1661
|
-
emit(
|
|
1662
|
-
`meta.signal_controller.remote_signal_registered:${remoteSignal.__remoteServiceName}`,
|
|
1663
|
-
remoteSignal
|
|
1664
|
-
);
|
|
1665
|
-
}
|
|
1672
|
+
const { remoteSignals, serviceName } = ctx;
|
|
1673
|
+
for (const remoteSignal of remoteSignals) {
|
|
1674
|
+
emit(
|
|
1675
|
+
`meta.signal_controller.remote_signal_registered:${serviceName}`,
|
|
1676
|
+
remoteSignal
|
|
1677
|
+
);
|
|
1666
1678
|
}
|
|
1667
1679
|
return true;
|
|
1668
1680
|
},
|
|
@@ -3681,6 +3693,8 @@ var CadenzaService = class {
|
|
|
3681
3693
|
(ctx, emit) => {
|
|
3682
3694
|
SignalController.instance;
|
|
3683
3695
|
GraphMetadataController.instance;
|
|
3696
|
+
emit("meta.service_registry_sync_requested", {});
|
|
3697
|
+
emit("meta.register_remote_signals_requested", { serviceName });
|
|
3684
3698
|
emit("meta.register_all_routines", {});
|
|
3685
3699
|
emit("meta.register_all_tasks", {});
|
|
3686
3700
|
emit("meta.register_all_signals", {});
|