@cadenza.io/service 1.14.0 → 1.15.1
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 +98 -58
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +98 -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",
|
|
@@ -469,9 +469,16 @@ var ServiceRegistry = class _ServiceRegistry {
|
|
|
469
469
|
const instances = serviceInstances == null ? void 0 : serviceInstances.filter(
|
|
470
470
|
(i) => i.address === serviceAddress && i.port === servicePort
|
|
471
471
|
);
|
|
472
|
+
console.log(
|
|
473
|
+
"Service not responding",
|
|
474
|
+
serviceAddress,
|
|
475
|
+
servicePort,
|
|
476
|
+
instances
|
|
477
|
+
);
|
|
472
478
|
for (const instance of instances != null ? instances : []) {
|
|
473
479
|
instance.isActive = false;
|
|
474
480
|
instance.isNonResponsive = true;
|
|
481
|
+
instance.clientCreated = false;
|
|
475
482
|
emit("meta.service_registry.service_not_responding", {
|
|
476
483
|
data: {
|
|
477
484
|
isActive: false,
|
|
@@ -485,7 +492,7 @@ var ServiceRegistry = class _ServiceRegistry {
|
|
|
485
492
|
return true;
|
|
486
493
|
},
|
|
487
494
|
"Handles service not responding"
|
|
488
|
-
).doOn("meta.fetch.handshake_failed");
|
|
495
|
+
).doOn("meta.fetch.handshake_failed", "meta.socket_client.disconnected");
|
|
489
496
|
this.handleServiceHandshakeTask = CadenzaService.createMetaTask(
|
|
490
497
|
"Handle service handshake",
|
|
491
498
|
(ctx, emit) => {
|
|
@@ -503,8 +510,6 @@ var ServiceRegistry = class _ServiceRegistry {
|
|
|
503
510
|
(i) => i.address === serviceAddress && i.port === servicePort
|
|
504
511
|
);
|
|
505
512
|
for (const instance of instances != null ? instances : []) {
|
|
506
|
-
instance.isActive = serviceInstanceId === instance.uuid;
|
|
507
|
-
instance.isNonResponsive = serviceInstanceId !== instance.uuid;
|
|
508
513
|
emit("meta.service_registry.service_handshake", {
|
|
509
514
|
data: {
|
|
510
515
|
isActive: instance.isActive,
|
|
@@ -553,7 +558,7 @@ var ServiceRegistry = class _ServiceRegistry {
|
|
|
553
558
|
"exposed",
|
|
554
559
|
"created"
|
|
555
560
|
]
|
|
556
|
-
}).doOn("meta.sync_requested").then(
|
|
561
|
+
}).doOn("meta.sync_requested").emits("meta.service_registry.synced_instances").then(
|
|
557
562
|
CadenzaService.createMetaTask(
|
|
558
563
|
"Split service instances",
|
|
559
564
|
function* (ctx) {
|
|
@@ -1176,7 +1181,7 @@ var RestController = class _RestController {
|
|
|
1176
1181
|
).doAfter(CadenzaService.serviceRegistry.getStatusTask);
|
|
1177
1182
|
CadenzaService.broker.emit(
|
|
1178
1183
|
"meta.rest.status_check_requested",
|
|
1179
|
-
req.query
|
|
1184
|
+
req.body.query
|
|
1180
1185
|
);
|
|
1181
1186
|
});
|
|
1182
1187
|
return true;
|
|
@@ -1286,7 +1291,7 @@ var RestController = class _RestController {
|
|
|
1286
1291
|
const URL = `${protocol}://${serviceAddress}:${port}`;
|
|
1287
1292
|
const fetchId = `${serviceAddress}_${port}`;
|
|
1288
1293
|
console.log("Fetch connecting to", URL);
|
|
1289
|
-
CadenzaService.createMetaTask(
|
|
1294
|
+
const handshakeTask = CadenzaService.createMetaTask(
|
|
1290
1295
|
`Send Handshake to ${URL}`,
|
|
1291
1296
|
(ctx2, emit2) => __async(null, null, function* () {
|
|
1292
1297
|
var _a2;
|
|
@@ -1303,6 +1308,7 @@ var RestController = class _RestController {
|
|
|
1303
1308
|
if (result.__status !== "success") {
|
|
1304
1309
|
const error = (_a2 = result.__error) != null ? _a2 : `Failed to connect to service ${serviceName} ${ctx2.serviceInstanceId}`;
|
|
1305
1310
|
console.error(error);
|
|
1311
|
+
emit2(`meta.fetch.handshake_failed:${fetchId}`, result);
|
|
1306
1312
|
return __spreadProps(__spreadValues({}, ctx2), { __error: error, errored: true });
|
|
1307
1313
|
}
|
|
1308
1314
|
ctx2.serviceInstanceId = result.__serviceInstanceId;
|
|
@@ -1319,8 +1325,8 @@ var RestController = class _RestController {
|
|
|
1319
1325
|
return ctx2;
|
|
1320
1326
|
}),
|
|
1321
1327
|
"Sends handshake request"
|
|
1322
|
-
).doOn(`meta.fetch.handshake_requested:${fetchId}`).emits("meta.fetch.handshake_complete")
|
|
1323
|
-
CadenzaService.createMetaTask(
|
|
1328
|
+
).doOn(`meta.fetch.handshake_requested:${fetchId}`).emits("meta.fetch.handshake_complete");
|
|
1329
|
+
const delegateTask = CadenzaService.createMetaTask(
|
|
1324
1330
|
`Delegate flow to REST server ${URL}`,
|
|
1325
1331
|
(ctx2, emit2) => __async(null, null, function* () {
|
|
1326
1332
|
if (ctx2.__remoteRoutineName === void 0) {
|
|
@@ -1355,7 +1361,7 @@ var RestController = class _RestController {
|
|
|
1355
1361
|
`meta.service_registry.selected_instance_for_fetch:${fetchId}`,
|
|
1356
1362
|
`meta.service_registry.socket_failed:${fetchId}`
|
|
1357
1363
|
).emitsOnFail("meta.fetch.delegate_failed");
|
|
1358
|
-
CadenzaService.createMetaTask(
|
|
1364
|
+
const transmitTask = CadenzaService.createMetaTask(
|
|
1359
1365
|
`Transmit signal to server ${URL}`,
|
|
1360
1366
|
(ctx2, emit2) => __async(null, null, function* () {
|
|
1361
1367
|
if (ctx2.__signalName === void 0) {
|
|
@@ -1389,12 +1395,14 @@ var RestController = class _RestController {
|
|
|
1389
1395
|
`meta.signal_controller.remote_signal_registered:${serviceName}`,
|
|
1390
1396
|
"meta.signal_controller.wildcard_signal_registered"
|
|
1391
1397
|
).emitsOnFail("meta.fetch.signal_transmission_failed");
|
|
1392
|
-
CadenzaService.createMetaTask(
|
|
1398
|
+
const statusTask = CadenzaService.createMetaTask(
|
|
1393
1399
|
`Request status from ${URL}`,
|
|
1394
1400
|
(ctx2) => __async(null, null, function* () {
|
|
1395
1401
|
let status;
|
|
1396
1402
|
try {
|
|
1397
|
-
const response = yield (0, import_node_fetch.default)(`${URL}/status`, {
|
|
1403
|
+
const response = yield (0, import_node_fetch.default)(`${URL}/status`, {
|
|
1404
|
+
method: "GET"
|
|
1405
|
+
});
|
|
1398
1406
|
status = yield response.json();
|
|
1399
1407
|
} catch (e) {
|
|
1400
1408
|
status = __spreadValues({
|
|
@@ -1406,6 +1414,17 @@ var RestController = class _RestController {
|
|
|
1406
1414
|
}),
|
|
1407
1415
|
"Requests status"
|
|
1408
1416
|
).doOn("meta.fetch.status_check_requested").emits("meta.fetch.status_checked").emitsOnFail("meta.fetch.status_check_failed");
|
|
1417
|
+
CadenzaService.createEphemeralMetaTask("Destroy fetch client", (ctx2, emit2) => {
|
|
1418
|
+
console.log("Destroying fetch client");
|
|
1419
|
+
handshakeTask.destroy();
|
|
1420
|
+
delegateTask.destroy();
|
|
1421
|
+
transmitTask.destroy();
|
|
1422
|
+
statusTask.destroy();
|
|
1423
|
+
}).doOn(
|
|
1424
|
+
"meta.fetch.destroy_requested",
|
|
1425
|
+
`meta.socket_client.disconnected:${fetchId}`,
|
|
1426
|
+
`meta.fetch.handshake_failed:${fetchId}`
|
|
1427
|
+
).emits("meta.fetch.destroyed");
|
|
1409
1428
|
return true;
|
|
1410
1429
|
},
|
|
1411
1430
|
"Manages REST client requests as fallback"
|
|
@@ -1655,72 +1674,94 @@ var SocketController = class _SocketController {
|
|
|
1655
1674
|
});
|
|
1656
1675
|
socket.on("disconnect", () => {
|
|
1657
1676
|
console.log("SocketClient: Disconnected", URL);
|
|
1658
|
-
CadenzaService.broker.emit(
|
|
1659
|
-
|
|
1677
|
+
CadenzaService.broker.emit(`meta.socket_client.disconnected:${fetchId}`, {
|
|
1678
|
+
serviceName,
|
|
1679
|
+
serviceAddress,
|
|
1680
|
+
servicePort
|
|
1660
1681
|
});
|
|
1661
1682
|
});
|
|
1662
|
-
CadenzaService.createMetaTask(
|
|
1683
|
+
const delegateTask = CadenzaService.createMetaTask(
|
|
1663
1684
|
`Delegate flow to ${URL}`,
|
|
1664
1685
|
(ctx2, emit) => __async(null, null, function* () {
|
|
1665
1686
|
if (ctx2.__remoteRoutineName === void 0) {
|
|
1666
1687
|
return;
|
|
1667
1688
|
}
|
|
1668
|
-
|
|
1669
|
-
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
1689
|
+
return new Promise((resolve, reject) => {
|
|
1690
|
+
console.log("Socket Delegate:", ctx2);
|
|
1691
|
+
socket.timeout(1e4).emit(
|
|
1692
|
+
"delegation",
|
|
1693
|
+
ctx2,
|
|
1694
|
+
(err, resultContext) => {
|
|
1695
|
+
if (err) {
|
|
1696
|
+
console.log("socket error:", err);
|
|
1697
|
+
resultContext = __spreadValues(__spreadValues({
|
|
1698
|
+
__error: `Timeout error: ${err}`,
|
|
1699
|
+
errored: true
|
|
1700
|
+
}, ctx2), ctx2.__metadata);
|
|
1701
|
+
emit(`meta.socket_client.delegate_failed`, resultContext);
|
|
1702
|
+
resolve(resultContext);
|
|
1703
|
+
return;
|
|
1704
|
+
}
|
|
1705
|
+
const metadata = resultContext.__metadata;
|
|
1706
|
+
delete resultContext.__metadata;
|
|
1707
|
+
emit(
|
|
1708
|
+
`meta.socket_client.delegated:${ctx2.__metadata.__deputyExecId}`,
|
|
1709
|
+
__spreadValues(__spreadValues({}, resultContext), metadata)
|
|
1710
|
+
);
|
|
1711
|
+
resolve(resultContext);
|
|
1712
|
+
}
|
|
1684
1713
|
);
|
|
1685
1714
|
});
|
|
1686
1715
|
}),
|
|
1687
1716
|
`Delegate flow to service ${serviceName} with address ${URL}`
|
|
1688
1717
|
).doOn(`meta.service_registry.selected_instance_for_socket:${fetchId}`);
|
|
1689
|
-
CadenzaService.createMetaTask(
|
|
1718
|
+
const transmitTask = CadenzaService.createMetaTask(
|
|
1690
1719
|
`Transmit signal to ${URL}`,
|
|
1691
1720
|
(ctx2, emit) => __async(null, null, function* () {
|
|
1692
|
-
var _a2;
|
|
1693
1721
|
if (ctx2.__signalName === void 0) {
|
|
1694
1722
|
return;
|
|
1695
1723
|
}
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1724
|
+
return new Promise((resolve, reject) => {
|
|
1725
|
+
var _a2;
|
|
1726
|
+
socket.timeout((_a2 = ctx2.__timeout) != null ? _a2 : 1e4).emit("signal", ctx2, (err, response) => {
|
|
1727
|
+
if (err) {
|
|
1728
|
+
console.log("socket error:", err);
|
|
1729
|
+
response = __spreadValues(__spreadValues({
|
|
1730
|
+
__error: `Timeout error: ${err}`,
|
|
1731
|
+
errored: true
|
|
1732
|
+
}, ctx2), ctx2.__metadata);
|
|
1733
|
+
emit(
|
|
1734
|
+
`meta.socket_client.signal_transmission_failed`,
|
|
1735
|
+
response
|
|
1736
|
+
);
|
|
1737
|
+
resolve(response);
|
|
1738
|
+
return;
|
|
1739
|
+
}
|
|
1740
|
+
if (ctx2.__routineExecId) {
|
|
1741
|
+
emit(
|
|
1742
|
+
`meta.socket_client.transmitted:${ctx2.__routineExecId}`,
|
|
1743
|
+
response
|
|
1744
|
+
);
|
|
1745
|
+
}
|
|
1746
|
+
resolve(response);
|
|
1747
|
+
});
|
|
1715
1748
|
});
|
|
1716
1749
|
}),
|
|
1717
1750
|
`Transmits signal to service ${serviceName} with address ${URL}`
|
|
1718
1751
|
).doOn(`meta.service_registry.selected_instance_for_socket:${fetchId}`);
|
|
1719
|
-
CadenzaService.
|
|
1752
|
+
CadenzaService.createEphemeralMetaTask(
|
|
1720
1753
|
`Shutdown SocketClient ${URL}`,
|
|
1721
|
-
() =>
|
|
1754
|
+
() => {
|
|
1755
|
+
socket == null ? void 0 : socket.close();
|
|
1756
|
+
delegateTask.destroy();
|
|
1757
|
+
transmitTask.destroy();
|
|
1758
|
+
},
|
|
1722
1759
|
"Shuts down the socket client"
|
|
1723
|
-
).doOn(
|
|
1760
|
+
).doOn(
|
|
1761
|
+
`meta.socket_shutdown_requested:${fetchId}`,
|
|
1762
|
+
`meta.socket_client.disconnected:${fetchId}`,
|
|
1763
|
+
`meta.fetch.handshake_failed:${fetchId}`
|
|
1764
|
+
).emits("meta.socket_client_shutdown_complete");
|
|
1724
1765
|
return true;
|
|
1725
1766
|
},
|
|
1726
1767
|
"Connects to a specified socket server"
|
|
@@ -3116,8 +3157,7 @@ var GraphSyncController = class _GraphSyncController {
|
|
|
3116
3157
|
}
|
|
3117
3158
|
constructor() {
|
|
3118
3159
|
var _a2;
|
|
3119
|
-
(_a2 = CadenzaService.broker.getSignalsTask) == null ? void 0 : _a2.doOn("meta.
|
|
3120
|
-
CadenzaService.registry.getAllTasks.doAfter(CadenzaService.broker.getSignalsTask);
|
|
3160
|
+
(_a2 = CadenzaService.broker.getSignalsTask) == null ? void 0 : _a2.doOn("meta.service_registry.synced_instances").then(CadenzaService.registry.getAllTasks.then(CadenzaService.registry.getAllRoutines));
|
|
3121
3161
|
CadenzaService.createMetaTask("Split routines for registration", (ctx, emit) => {
|
|
3122
3162
|
const { __routines } = ctx;
|
|
3123
3163
|
if (!__routines) return;
|
|
@@ -3261,7 +3301,7 @@ var GraphSyncController = class _GraphSyncController {
|
|
|
3261
3301
|
);
|
|
3262
3302
|
}
|
|
3263
3303
|
return true;
|
|
3264
|
-
}).doAfter(CadenzaService.registry.getAllTasks)
|
|
3304
|
+
}).doAfter(CadenzaService.registry.getAllTasks);
|
|
3265
3305
|
}
|
|
3266
3306
|
};
|
|
3267
3307
|
|