@cadenza.io/service 1.21.2 → 1.21.4
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 +34 -24
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +34 -24
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1583,9 +1583,9 @@ var SocketController = class _SocketController {
|
|
|
1583
1583
|
console.log("SocketServer: Setting up", ctx);
|
|
1584
1584
|
let server;
|
|
1585
1585
|
server = new import_socket.Server(ctx.__httpsServer ?? ctx.__httpServer);
|
|
1586
|
-
console.log("SocketServer:", server);
|
|
1587
1586
|
const profile = ctx.__securityProfile ?? "medium";
|
|
1588
1587
|
server.use((socket, next) => {
|
|
1588
|
+
console.log("Middleware running for socket:", socket.id);
|
|
1589
1589
|
const origin = socket?.handshake?.headers?.origin;
|
|
1590
1590
|
const allowedOrigins = ["*"];
|
|
1591
1591
|
const networkType = ctx.__networkType ?? "internal";
|
|
@@ -1600,8 +1600,9 @@ var SocketController = class _SocketController {
|
|
|
1600
1600
|
high: { points: 1e3, duration: 60, blockDuration: 300 }
|
|
1601
1601
|
};
|
|
1602
1602
|
const limiter = new import_rate_limiter_flexible2.RateLimiterMemory(limiterOptions[profile]);
|
|
1603
|
-
socket.
|
|
1604
|
-
|
|
1603
|
+
const clientKey = socket.handshake.address || "unknown";
|
|
1604
|
+
socket.use((packet, packetNext) => {
|
|
1605
|
+
limiter.consume(clientKey).then(() => next()).catch((rej) => {
|
|
1605
1606
|
if (rej.msBeforeNext > 0) {
|
|
1606
1607
|
console.log(
|
|
1607
1608
|
"SocketServer: Rate limit exceeded",
|
|
@@ -1611,9 +1612,11 @@ var SocketController = class _SocketController {
|
|
|
1611
1612
|
message: "Rate limit exceeded",
|
|
1612
1613
|
retryAfter: rej.msBeforeNext / 1e3
|
|
1613
1614
|
});
|
|
1615
|
+
packetNext(new Error("Rate limit exceeded"));
|
|
1614
1616
|
} else {
|
|
1615
1617
|
console.log("SocketServer: Rate limit exceeded, blocked");
|
|
1616
1618
|
socket.disconnect(true);
|
|
1619
|
+
packetNext(new Error("Blocked"));
|
|
1617
1620
|
}
|
|
1618
1621
|
});
|
|
1619
1622
|
});
|
|
@@ -1625,7 +1628,7 @@ var SocketController = class _SocketController {
|
|
|
1625
1628
|
return { ...ctx, __error: "No server", errored: true };
|
|
1626
1629
|
}
|
|
1627
1630
|
server.on("connection", (ws) => {
|
|
1628
|
-
console.log("SocketServer: New connection");
|
|
1631
|
+
console.log("SocketServer: New connection", ws.name);
|
|
1629
1632
|
try {
|
|
1630
1633
|
ws.emit("handshake", {
|
|
1631
1634
|
serviceInstanceId: CadenzaService.serviceRegistry.serviceInstanceId,
|
|
@@ -1633,7 +1636,7 @@ var SocketController = class _SocketController {
|
|
|
1633
1636
|
__status: "success"
|
|
1634
1637
|
});
|
|
1635
1638
|
ws.on("handshake", (ctx2) => {
|
|
1636
|
-
console.log("Socket HANDSHAKE", ctx2
|
|
1639
|
+
console.log("Socket HANDSHAKE", ctx2);
|
|
1637
1640
|
if (ctx2.isFrontend) {
|
|
1638
1641
|
const fetchId = `browser:${ctx2.serviceInstanceId}`;
|
|
1639
1642
|
CadenzaService.createMetaTask(
|
|
@@ -1765,10 +1768,11 @@ var SocketController = class _SocketController {
|
|
|
1765
1768
|
reconnectionDelay: 1e3,
|
|
1766
1769
|
reconnectionDelayMax: 1e4,
|
|
1767
1770
|
randomizationFactor: 0.5,
|
|
1768
|
-
retries: 5
|
|
1771
|
+
retries: 5,
|
|
1772
|
+
transports: ["websocket"]
|
|
1769
1773
|
});
|
|
1770
1774
|
socket.on("connect", () => {
|
|
1771
|
-
console.log("SocketClient: CONNECTED");
|
|
1775
|
+
console.log("SocketClient: CONNECTED", socket.id, socket.io);
|
|
1772
1776
|
CadenzaService.broker.emit("meta.socket_client.connected", ctx);
|
|
1773
1777
|
});
|
|
1774
1778
|
socket.on("handshake", (ctx2) => {
|
|
@@ -1799,6 +1803,9 @@ var SocketController = class _SocketController {
|
|
|
1799
1803
|
console.error("SocketClient: connect_error", err);
|
|
1800
1804
|
CadenzaService.broker.emit("meta.socket_client.connect_error", err);
|
|
1801
1805
|
});
|
|
1806
|
+
socket.on("timeout", (event) => {
|
|
1807
|
+
console.error(event, "timed out \u2014 server didn\u2019t respond");
|
|
1808
|
+
});
|
|
1802
1809
|
socket.on("error", (err) => {
|
|
1803
1810
|
console.error("SocketClient: error", err);
|
|
1804
1811
|
CadenzaService.broker.emit("meta.socket_client.error", err);
|
|
@@ -1819,7 +1826,7 @@ var SocketController = class _SocketController {
|
|
|
1819
1826
|
}
|
|
1820
1827
|
return new Promise((resolve, reject) => {
|
|
1821
1828
|
delete ctx2.__isSubMeta;
|
|
1822
|
-
console.log("Socket Delegate:", ctx2);
|
|
1829
|
+
console.log("Socket Delegate:", socket.connected, ctx2);
|
|
1823
1830
|
socket.timeout(1e4).emit(
|
|
1824
1831
|
"delegation",
|
|
1825
1832
|
ctx2,
|
|
@@ -4031,11 +4038,22 @@ var CadenzaService = class {
|
|
|
4031
4038
|
});
|
|
4032
4039
|
import_core3.default.createEphemeralMetaTask("Set database connection", () => {
|
|
4033
4040
|
console.log("Database service created");
|
|
4034
|
-
|
|
4035
|
-
|
|
4036
|
-
|
|
4037
|
-
|
|
4038
|
-
|
|
4041
|
+
if (options.cadenzaDB?.connect) {
|
|
4042
|
+
import_core3.default.createEphemeralMetaTask(
|
|
4043
|
+
"Insert database service",
|
|
4044
|
+
(_, emit) => {
|
|
4045
|
+
emit("meta.created_database_service", {
|
|
4046
|
+
data: {
|
|
4047
|
+
service_name: name,
|
|
4048
|
+
description,
|
|
4049
|
+
schema,
|
|
4050
|
+
is_meta: options.isMeta
|
|
4051
|
+
}
|
|
4052
|
+
});
|
|
4053
|
+
}
|
|
4054
|
+
).doOn("meta.service_registry.service_inserted");
|
|
4055
|
+
} else {
|
|
4056
|
+
import_core3.default.broker.emit("meta.created_database_service", {
|
|
4039
4057
|
data: {
|
|
4040
4058
|
service_name: name,
|
|
4041
4059
|
description,
|
|
@@ -4043,17 +4061,9 @@ var CadenzaService = class {
|
|
|
4043
4061
|
is_meta: options.isMeta
|
|
4044
4062
|
}
|
|
4045
4063
|
});
|
|
4046
|
-
}
|
|
4047
|
-
|
|
4048
|
-
|
|
4049
|
-
data: {
|
|
4050
|
-
service_name: name,
|
|
4051
|
-
description,
|
|
4052
|
-
schema,
|
|
4053
|
-
is_meta: options.isMeta
|
|
4054
|
-
}
|
|
4055
|
-
});
|
|
4056
|
-
}
|
|
4064
|
+
}
|
|
4065
|
+
this.createCadenzaService(name, description, options);
|
|
4066
|
+
}).doOn("meta.database.setup_done");
|
|
4057
4067
|
}
|
|
4058
4068
|
static createMetaDatabaseService(name, schema, description = "", options = {}) {
|
|
4059
4069
|
this.bootstrap();
|