@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 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
- __remoteSignals: remoteSignals
423
+ remoteSignals
422
424
  }, ctx);
423
425
  },
424
426
  "Gets remote signals"
425
- ).doOn("meta.fetch.handshake_complete");
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 { serviceInstance, data, __useSocket, __retryCount } = ctx;
753
- this.serviceInstanceId = (_a2 = data == null ? void 0 : data.uuid) != null ? _a2 : serviceInstance == null ? void 0 : serviceInstance.uuid;
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 : serviceInstance == null ? void 0 : serviceInstance.service_name,
756
- [__spreadValues({}, data != null ? data : serviceInstance)]
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("meta.rest.delegation_requested");
917
- CadenzaService.registry.getRoutineByName.doOn("meta.rest.delegation_requested");
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:${ctx2.__routineExecId}`).emits(
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:${ctx2.__routineExecId}`,
1420
- `meta.node.graph_completed:${ctx2.__routineExecId}`
1432
+ `meta.node.routine_execution_progress:${deputyExecId}`,
1433
+ `meta.node.graph_completed:${deputyExecId}`
1421
1434
  ).emitsOnFail(
1422
- `meta.socket.progress_failed:${ctx2.__routineExecId}`
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
- __serviceName,
1492
- __serviceInstanceId,
1493
- __serviceAddress,
1494
- __servicePort,
1495
- __protocol
1504
+ serviceName,
1505
+ serviceInstanceId,
1506
+ serviceAddress,
1507
+ servicePort,
1508
+ protocol
1496
1509
  } = ctx;
1497
- const socketProtocol = __protocol === "https" ? "wss" : "ws";
1498
- const port = __protocol === "https" ? 443 : __servicePort;
1499
- const socket = (0, import_socket2.io)(`${socketProtocol}://${__serviceAddress}:${port}`, {
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
- __serviceInstanceId: ctx.__serviceInstanceId
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({ __serviceInstanceId }, ctx2)
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
- __serviceInstanceId
1541
+ serviceInstanceId
1525
1542
  });
1526
1543
  });
1527
1544
  CadenzaService.createMetaTask(
1528
- `Delegate flow to ${__serviceInstanceId}`,
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 ${__serviceInstanceId} of service ${__serviceName} with address ${__serviceAddress}:${__servicePort}`
1570
+ `Delegate flow to instance ${serviceInstanceId} of service ${serviceName} with address ${serviceAddress}:${servicePort}`
1552
1571
  ).doOn(
1553
- `meta.service_registry.selected_instance_for_socket:${__serviceInstanceId}`
1572
+ `meta.service_registry.selected_instance_for_socket:${serviceInstanceId}`
1554
1573
  ).emitsOnFail(
1555
- `meta.socket_client.delegate_failed:${__serviceInstanceId}`
1574
+ `meta.socket_client.delegate_failed:${serviceInstanceId}`
1556
1575
  );
1557
1576
  CadenzaService.createMetaTask(
1558
- `Transmit signal to ${__serviceInstanceId}`,
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 ${__serviceInstanceId} of service ${__serviceName} with address ${__serviceAddress}:${__servicePort}`
1600
+ `Transmits signal to instance ${serviceInstanceId} of service ${serviceName} with address ${serviceAddress}:${servicePort}`
1582
1601
  ).doOn(
1583
- `meta.service_registry.selected_instance_for_socket:${__serviceInstanceId}`
1602
+ `meta.service_registry.selected_instance_for_socket:${serviceInstanceId}`
1584
1603
  ).emitsOnFail(
1585
- `meta.socket_client.signal_transmission_failed:${__serviceInstanceId}`
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 { __remoteSignals } = ctx;
1654
- for (const remoteSignal of __remoteSignals) {
1655
- if (remoteSignal.__remoteServiceName === "*") {
1656
- emit(
1657
- "meta.signal_controller.wildcard_signal_registered",
1658
- remoteSignal
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", {});