@cadenza.io/service 1.14.0 → 1.15.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 +92 -58
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +92 -58
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -403,7 +403,7 @@ var ServiceRegistry = class _ServiceRegistry {
|
|
|
403
403
|
}
|
|
404
404
|
return true;
|
|
405
405
|
},
|
|
406
|
-
"Handles instance
|
|
406
|
+
"Handles instance updates to service instances"
|
|
407
407
|
).emits("meta.service_registry.service_discovered").doOn(
|
|
408
408
|
"meta.initializing_service",
|
|
409
409
|
"CadenzaDB.meta.service_instance.inserted",
|
|
@@ -472,6 +472,7 @@ var ServiceRegistry = class _ServiceRegistry {
|
|
|
472
472
|
for (const instance of instances != null ? instances : []) {
|
|
473
473
|
instance.isActive = false;
|
|
474
474
|
instance.isNonResponsive = true;
|
|
475
|
+
instance.clientCreated = false;
|
|
475
476
|
emit("meta.service_registry.service_not_responding", {
|
|
476
477
|
data: {
|
|
477
478
|
isActive: false,
|
|
@@ -485,7 +486,7 @@ var ServiceRegistry = class _ServiceRegistry {
|
|
|
485
486
|
return true;
|
|
486
487
|
},
|
|
487
488
|
"Handles service not responding"
|
|
488
|
-
).doOn("meta.fetch.handshake_failed");
|
|
489
|
+
).doOn("meta.fetch.handshake_failed", "meta.socket_client.disconnected");
|
|
489
490
|
this.handleServiceHandshakeTask = CadenzaService.createMetaTask(
|
|
490
491
|
"Handle service handshake",
|
|
491
492
|
(ctx, emit) => {
|
|
@@ -503,8 +504,6 @@ var ServiceRegistry = class _ServiceRegistry {
|
|
|
503
504
|
(i) => i.address === serviceAddress && i.port === servicePort
|
|
504
505
|
);
|
|
505
506
|
for (const instance of instances != null ? instances : []) {
|
|
506
|
-
instance.isActive = serviceInstanceId === instance.uuid;
|
|
507
|
-
instance.isNonResponsive = serviceInstanceId !== instance.uuid;
|
|
508
507
|
emit("meta.service_registry.service_handshake", {
|
|
509
508
|
data: {
|
|
510
509
|
isActive: instance.isActive,
|
|
@@ -553,7 +552,7 @@ var ServiceRegistry = class _ServiceRegistry {
|
|
|
553
552
|
"exposed",
|
|
554
553
|
"created"
|
|
555
554
|
]
|
|
556
|
-
}).doOn("meta.sync_requested").then(
|
|
555
|
+
}).doOn("meta.sync_requested").emits("meta.service_registry.synced_instances").then(
|
|
557
556
|
CadenzaService.createMetaTask(
|
|
558
557
|
"Split service instances",
|
|
559
558
|
function* (ctx) {
|
|
@@ -1176,7 +1175,7 @@ var RestController = class _RestController {
|
|
|
1176
1175
|
).doAfter(CadenzaService.serviceRegistry.getStatusTask);
|
|
1177
1176
|
CadenzaService.broker.emit(
|
|
1178
1177
|
"meta.rest.status_check_requested",
|
|
1179
|
-
req.query
|
|
1178
|
+
req.body.query
|
|
1180
1179
|
);
|
|
1181
1180
|
});
|
|
1182
1181
|
return true;
|
|
@@ -1286,7 +1285,7 @@ var RestController = class _RestController {
|
|
|
1286
1285
|
const URL = `${protocol}://${serviceAddress}:${port}`;
|
|
1287
1286
|
const fetchId = `${serviceAddress}_${port}`;
|
|
1288
1287
|
console.log("Fetch connecting to", URL);
|
|
1289
|
-
CadenzaService.createMetaTask(
|
|
1288
|
+
const handshakeTask = CadenzaService.createMetaTask(
|
|
1290
1289
|
`Send Handshake to ${URL}`,
|
|
1291
1290
|
(ctx2, emit2) => __async(null, null, function* () {
|
|
1292
1291
|
var _a2;
|
|
@@ -1303,6 +1302,7 @@ var RestController = class _RestController {
|
|
|
1303
1302
|
if (result.__status !== "success") {
|
|
1304
1303
|
const error = (_a2 = result.__error) != null ? _a2 : `Failed to connect to service ${serviceName} ${ctx2.serviceInstanceId}`;
|
|
1305
1304
|
console.error(error);
|
|
1305
|
+
emit2(`meta.fetch.handshake_failed:${fetchId}`, result);
|
|
1306
1306
|
return __spreadProps(__spreadValues({}, ctx2), { __error: error, errored: true });
|
|
1307
1307
|
}
|
|
1308
1308
|
ctx2.serviceInstanceId = result.__serviceInstanceId;
|
|
@@ -1319,8 +1319,8 @@ var RestController = class _RestController {
|
|
|
1319
1319
|
return ctx2;
|
|
1320
1320
|
}),
|
|
1321
1321
|
"Sends handshake request"
|
|
1322
|
-
).doOn(`meta.fetch.handshake_requested:${fetchId}`).emits("meta.fetch.handshake_complete")
|
|
1323
|
-
CadenzaService.createMetaTask(
|
|
1322
|
+
).doOn(`meta.fetch.handshake_requested:${fetchId}`).emits("meta.fetch.handshake_complete");
|
|
1323
|
+
const delegateTask = CadenzaService.createMetaTask(
|
|
1324
1324
|
`Delegate flow to REST server ${URL}`,
|
|
1325
1325
|
(ctx2, emit2) => __async(null, null, function* () {
|
|
1326
1326
|
if (ctx2.__remoteRoutineName === void 0) {
|
|
@@ -1355,7 +1355,7 @@ var RestController = class _RestController {
|
|
|
1355
1355
|
`meta.service_registry.selected_instance_for_fetch:${fetchId}`,
|
|
1356
1356
|
`meta.service_registry.socket_failed:${fetchId}`
|
|
1357
1357
|
).emitsOnFail("meta.fetch.delegate_failed");
|
|
1358
|
-
CadenzaService.createMetaTask(
|
|
1358
|
+
const transmitTask = CadenzaService.createMetaTask(
|
|
1359
1359
|
`Transmit signal to server ${URL}`,
|
|
1360
1360
|
(ctx2, emit2) => __async(null, null, function* () {
|
|
1361
1361
|
if (ctx2.__signalName === void 0) {
|
|
@@ -1389,12 +1389,14 @@ var RestController = class _RestController {
|
|
|
1389
1389
|
`meta.signal_controller.remote_signal_registered:${serviceName}`,
|
|
1390
1390
|
"meta.signal_controller.wildcard_signal_registered"
|
|
1391
1391
|
).emitsOnFail("meta.fetch.signal_transmission_failed");
|
|
1392
|
-
CadenzaService.createMetaTask(
|
|
1392
|
+
const statusTask = CadenzaService.createMetaTask(
|
|
1393
1393
|
`Request status from ${URL}`,
|
|
1394
1394
|
(ctx2) => __async(null, null, function* () {
|
|
1395
1395
|
let status;
|
|
1396
1396
|
try {
|
|
1397
|
-
const response = yield (0, import_node_fetch.default)(`${URL}/status`, {
|
|
1397
|
+
const response = yield (0, import_node_fetch.default)(`${URL}/status`, {
|
|
1398
|
+
method: "GET"
|
|
1399
|
+
});
|
|
1398
1400
|
status = yield response.json();
|
|
1399
1401
|
} catch (e) {
|
|
1400
1402
|
status = __spreadValues({
|
|
@@ -1406,6 +1408,17 @@ var RestController = class _RestController {
|
|
|
1406
1408
|
}),
|
|
1407
1409
|
"Requests status"
|
|
1408
1410
|
).doOn("meta.fetch.status_check_requested").emits("meta.fetch.status_checked").emitsOnFail("meta.fetch.status_check_failed");
|
|
1411
|
+
CadenzaService.createEphemeralMetaTask("Destroy fetch client", (ctx2, emit2) => {
|
|
1412
|
+
console.log("Destroying fetch client");
|
|
1413
|
+
handshakeTask.destroy();
|
|
1414
|
+
delegateTask.destroy();
|
|
1415
|
+
transmitTask.destroy();
|
|
1416
|
+
statusTask.destroy();
|
|
1417
|
+
}).doOn(
|
|
1418
|
+
"meta.fetch.destroy_requested",
|
|
1419
|
+
`meta.socket_client.disconnected:${fetchId}`,
|
|
1420
|
+
`meta.fetch.handshake_failed:${fetchId}`
|
|
1421
|
+
).emits("meta.fetch.destroyed");
|
|
1409
1422
|
return true;
|
|
1410
1423
|
},
|
|
1411
1424
|
"Manages REST client requests as fallback"
|
|
@@ -1655,72 +1668,94 @@ var SocketController = class _SocketController {
|
|
|
1655
1668
|
});
|
|
1656
1669
|
socket.on("disconnect", () => {
|
|
1657
1670
|
console.log("SocketClient: Disconnected", URL);
|
|
1658
|
-
CadenzaService.broker.emit(
|
|
1659
|
-
|
|
1671
|
+
CadenzaService.broker.emit(`meta.socket_client.disconnected:${fetchId}`, {
|
|
1672
|
+
serviceName,
|
|
1673
|
+
serviceAddress,
|
|
1674
|
+
servicePort
|
|
1660
1675
|
});
|
|
1661
1676
|
});
|
|
1662
|
-
CadenzaService.createMetaTask(
|
|
1677
|
+
const delegateTask = CadenzaService.createMetaTask(
|
|
1663
1678
|
`Delegate flow to ${URL}`,
|
|
1664
1679
|
(ctx2, emit) => __async(null, null, function* () {
|
|
1665
1680
|
if (ctx2.__remoteRoutineName === void 0) {
|
|
1666
1681
|
return;
|
|
1667
1682
|
}
|
|
1668
|
-
|
|
1669
|
-
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
1683
|
+
return new Promise((resolve, reject) => {
|
|
1684
|
+
console.log("Socket Delegate:", ctx2);
|
|
1685
|
+
socket.timeout(1e4).emit(
|
|
1686
|
+
"delegation",
|
|
1687
|
+
ctx2,
|
|
1688
|
+
(err, resultContext) => {
|
|
1689
|
+
if (err) {
|
|
1690
|
+
console.log("socket error:", err);
|
|
1691
|
+
resultContext = __spreadValues(__spreadValues({
|
|
1692
|
+
__error: `Timeout error: ${err}`,
|
|
1693
|
+
errored: true
|
|
1694
|
+
}, ctx2), ctx2.__metadata);
|
|
1695
|
+
emit(`meta.socket_client.delegate_failed`, resultContext);
|
|
1696
|
+
resolve(resultContext);
|
|
1697
|
+
return;
|
|
1698
|
+
}
|
|
1699
|
+
const metadata = resultContext.__metadata;
|
|
1700
|
+
delete resultContext.__metadata;
|
|
1701
|
+
emit(
|
|
1702
|
+
`meta.socket_client.delegated:${ctx2.__metadata.__deputyExecId}`,
|
|
1703
|
+
__spreadValues(__spreadValues({}, resultContext), metadata)
|
|
1704
|
+
);
|
|
1705
|
+
resolve(resultContext);
|
|
1706
|
+
}
|
|
1684
1707
|
);
|
|
1685
1708
|
});
|
|
1686
1709
|
}),
|
|
1687
1710
|
`Delegate flow to service ${serviceName} with address ${URL}`
|
|
1688
1711
|
).doOn(`meta.service_registry.selected_instance_for_socket:${fetchId}`);
|
|
1689
|
-
CadenzaService.createMetaTask(
|
|
1712
|
+
const transmitTask = CadenzaService.createMetaTask(
|
|
1690
1713
|
`Transmit signal to ${URL}`,
|
|
1691
1714
|
(ctx2, emit) => __async(null, null, function* () {
|
|
1692
|
-
var _a2;
|
|
1693
1715
|
if (ctx2.__signalName === void 0) {
|
|
1694
1716
|
return;
|
|
1695
1717
|
}
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1718
|
+
return new Promise((resolve, reject) => {
|
|
1719
|
+
var _a2;
|
|
1720
|
+
socket.timeout((_a2 = ctx2.__timeout) != null ? _a2 : 1e4).emit("signal", ctx2, (err, response) => {
|
|
1721
|
+
if (err) {
|
|
1722
|
+
console.log("socket error:", err);
|
|
1723
|
+
response = __spreadValues(__spreadValues({
|
|
1724
|
+
__error: `Timeout error: ${err}`,
|
|
1725
|
+
errored: true
|
|
1726
|
+
}, ctx2), ctx2.__metadata);
|
|
1727
|
+
emit(
|
|
1728
|
+
`meta.socket_client.signal_transmission_failed`,
|
|
1729
|
+
response
|
|
1730
|
+
);
|
|
1731
|
+
resolve(response);
|
|
1732
|
+
return;
|
|
1733
|
+
}
|
|
1734
|
+
if (ctx2.__routineExecId) {
|
|
1735
|
+
emit(
|
|
1736
|
+
`meta.socket_client.transmitted:${ctx2.__routineExecId}`,
|
|
1737
|
+
response
|
|
1738
|
+
);
|
|
1739
|
+
}
|
|
1740
|
+
resolve(response);
|
|
1741
|
+
});
|
|
1715
1742
|
});
|
|
1716
1743
|
}),
|
|
1717
1744
|
`Transmits signal to service ${serviceName} with address ${URL}`
|
|
1718
1745
|
).doOn(`meta.service_registry.selected_instance_for_socket:${fetchId}`);
|
|
1719
|
-
CadenzaService.
|
|
1746
|
+
CadenzaService.createEphemeralMetaTask(
|
|
1720
1747
|
`Shutdown SocketClient ${URL}`,
|
|
1721
|
-
() =>
|
|
1748
|
+
() => {
|
|
1749
|
+
socket == null ? void 0 : socket.close();
|
|
1750
|
+
delegateTask.destroy();
|
|
1751
|
+
transmitTask.destroy();
|
|
1752
|
+
},
|
|
1722
1753
|
"Shuts down the socket client"
|
|
1723
|
-
).doOn(
|
|
1754
|
+
).doOn(
|
|
1755
|
+
`meta.socket_shutdown_requested:${fetchId}`,
|
|
1756
|
+
`meta.socket_client.disconnected:${fetchId}`,
|
|
1757
|
+
`meta.fetch.handshake_failed:${fetchId}`
|
|
1758
|
+
).emits("meta.socket_client_shutdown_complete");
|
|
1724
1759
|
return true;
|
|
1725
1760
|
},
|
|
1726
1761
|
"Connects to a specified socket server"
|
|
@@ -3116,8 +3151,7 @@ var GraphSyncController = class _GraphSyncController {
|
|
|
3116
3151
|
}
|
|
3117
3152
|
constructor() {
|
|
3118
3153
|
var _a2;
|
|
3119
|
-
(_a2 = CadenzaService.broker.getSignalsTask) == null ? void 0 : _a2.doOn("meta.
|
|
3120
|
-
CadenzaService.registry.getAllTasks.doAfter(CadenzaService.broker.getSignalsTask);
|
|
3154
|
+
(_a2 = CadenzaService.broker.getSignalsTask) == null ? void 0 : _a2.doOn("meta.service_registry.synced_instances").then(CadenzaService.registry.getAllTasks.then(CadenzaService.registry.getAllRoutines));
|
|
3121
3155
|
CadenzaService.createMetaTask("Split routines for registration", (ctx, emit) => {
|
|
3122
3156
|
const { __routines } = ctx;
|
|
3123
3157
|
if (!__routines) return;
|
|
@@ -3261,7 +3295,7 @@ var GraphSyncController = class _GraphSyncController {
|
|
|
3261
3295
|
);
|
|
3262
3296
|
}
|
|
3263
3297
|
return true;
|
|
3264
|
-
}).doAfter(CadenzaService.registry.getAllTasks)
|
|
3298
|
+
}).doAfter(CadenzaService.registry.getAllTasks);
|
|
3265
3299
|
}
|
|
3266
3300
|
};
|
|
3267
3301
|
|