@nsshunt/stsappframework 3.3.135 → 3.3.138

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.
Files changed (41) hide show
  1. package/dist/commonTypes.js +7 -1
  2. package/dist/commonTypes.js.map +1 -1
  3. package/dist/process/processbase.js +6 -8
  4. package/dist/process/processbase.js.map +1 -1
  5. package/dist/process/serverprocessbase.js +78 -326
  6. package/dist/process/serverprocessbase.js.map +1 -1
  7. package/dist/process/servertypes/serverUtils.js +11 -0
  8. package/dist/process/servertypes/serverUtils.js.map +1 -0
  9. package/dist/process/servertypes/stsexpressserver.js +291 -0
  10. package/dist/process/servertypes/stsexpressserver.js.map +1 -0
  11. package/dist/process/servertypes/stsjsonrpcserver.js +59 -0
  12. package/dist/process/servertypes/stsjsonrpcserver.js.map +1 -0
  13. package/dist/process/servertypes/stsserverfactory.js +15 -0
  14. package/dist/process/servertypes/stsserverfactory.js.map +1 -0
  15. package/dist/process/servertypes/ststcprawserver.js +87 -0
  16. package/dist/process/servertypes/ststcprawserver.js.map +1 -0
  17. package/dist/process/workerprocessbase.js +0 -13
  18. package/dist/process/workerprocessbase.js.map +1 -1
  19. package/package.json +8 -8
  20. package/types/commonTypes.d.ts +11 -7
  21. package/types/commonTypes.d.ts.map +1 -1
  22. package/types/process/processbase.d.ts +1 -7
  23. package/types/process/processbase.d.ts.map +1 -1
  24. package/types/process/serverprocessbase.d.ts +1 -9
  25. package/types/process/serverprocessbase.d.ts.map +1 -1
  26. package/types/process/servertypes/serverUtils.d.ts +3 -0
  27. package/types/process/servertypes/serverUtils.d.ts.map +1 -0
  28. package/types/process/servertypes/stsexpressserver.d.ts +27 -0
  29. package/types/process/servertypes/stsexpressserver.d.ts.map +1 -0
  30. package/types/process/servertypes/stsjsonrpcserver.d.ts +18 -0
  31. package/types/process/servertypes/stsjsonrpcserver.d.ts.map +1 -0
  32. package/types/process/servertypes/stsserverfactory.d.ts +18 -0
  33. package/types/process/servertypes/stsserverfactory.d.ts.map +1 -0
  34. package/types/process/servertypes/ststcprawserver.d.ts +19 -0
  35. package/types/process/servertypes/ststcprawserver.d.ts.map +1 -0
  36. package/types/process/workerprocessbase.d.ts +0 -1
  37. package/types/process/workerprocessbase.d.ts.map +1 -1
  38. package/dist/stsexpressserver.js +0 -124
  39. package/dist/stsexpressserver.js.map +0 -1
  40. package/types/stsexpressserver.d.ts +0 -8
  41. package/types/stsexpressserver.d.ts.map +0 -1
@@ -0,0 +1,291 @@
1
+ /* eslint @typescript-eslint/no-explicit-any: 0, @typescript-eslint/no-unused-vars: 0 */ // --> OFF
2
+ import express from "express";
3
+ import { register, Counter, collectDefaultMetrics, AggregatorRegistry, } from "prom-client";
4
+ import cors from "cors";
5
+ import cookieParser from "cookie-parser";
6
+ import { RequestLoggerMiddleware, RequestLoggerMiddlewareEventName, } from "@nsshunt/stsinstrumentmanagerclient";
7
+ import { goptions } from "@nsshunt/stsconfig";
8
+ import { GetTLSOptions } from "./serverUtils.js";
9
+ import { createAdapter as clusterCreateAdapter } from "@socket.io/cluster-adapter";
10
+ import { createAdapter } from "@socket.io/redis-streams-adapter";
11
+ import { Redis } from "ioredis";
12
+ import { STSLoggerToken, PublishInstrumentControllerToken, } from "./../../commonTypes.js";
13
+ import { Gauge, } from "@nsshunt/stsobservability";
14
+ import { Server } from "socket.io";
15
+ import { ServerNetworkMiddleware, ServerNetworkMiddlewareEventName, } from "./../../middleware/serverNetworkMiddleware.js";
16
+ import chalk from "chalk";
17
+ import { inject, Sleep } from "@nsshunt/stsutils";
18
+ import { createServer as createServerHttps, } from "node:https";
19
+ import { createServer as createServerHttp, } from "node:http";
20
+ export class STSExpressServer {
21
+ #app;
22
+ #options;
23
+ #ERROR_THRESHOLD_TIMEOUT = 1000;
24
+ httpServer;
25
+ #io = null;
26
+ #redisClient = null;
27
+ publishInstrumentController = inject(PublishInstrumentControllerToken);
28
+ logger = inject(STSLoggerToken);
29
+ constructor(options) {
30
+ this.#options = options;
31
+ this.#SetupExpressServer();
32
+ this.#SetupServerFromExpressServer();
33
+ }
34
+ #SetupExpressServer = () => {
35
+ // Standard RequestLoggerMiddleware for all STS services
36
+ const requestLoggerMiddleware = new RequestLoggerMiddleware({
37
+ ignoresocketio: goptions.ignoresocketio,
38
+ });
39
+ const serverNetworkMiddleware = new ServerNetworkMiddleware({
40
+ name: this.#options.serviceName,
41
+ outputDebug: false,
42
+ logger: this.logger,
43
+ });
44
+ serverNetworkMiddleware.on(ServerNetworkMiddlewareEventName.UpdateInstrument_SERVER_NET_VAL, (data) => {
45
+ //this.#LogInfoMessage(chalk.magenta(`serverNetworkMiddleware: [${JSON.stringify(data)}]`));
46
+ this.publishInstrumentController.UpdateInstrument(Gauge.NETWORK_RX_GAUGE, {
47
+ Inc: data.requestBytesRead,
48
+ });
49
+ this.publishInstrumentController.UpdateInstrument(Gauge.NETWORK_TX_GAUGE, {
50
+ Inc: data.requestBytesWritten,
51
+ });
52
+ });
53
+ requestLoggerMiddleware.on(RequestLoggerMiddlewareEventName.UpdateInstrument_AR_INC, () => {
54
+ this.publishInstrumentController.UpdateInstrument(Gauge.ACTIVE_REQUEST_GAUGE, {
55
+ Inc: 1,
56
+ });
57
+ });
58
+ requestLoggerMiddleware.on(RequestLoggerMiddlewareEventName.UpdateInstrument_AR_DEC, () => {
59
+ this.publishInstrumentController.UpdateInstrument(Gauge.ACTIVE_REQUEST_GAUGE, {
60
+ Dec: 1,
61
+ });
62
+ });
63
+ requestLoggerMiddleware.on(RequestLoggerMiddlewareEventName.UpdateInstrument_DH_VAL, (timeInMs) => {
64
+ this.publishInstrumentController.UpdateInstrument(Gauge.DURATION_HISTOGRAM_GAUGE, {
65
+ val: timeInMs,
66
+ });
67
+ });
68
+ requestLoggerMiddleware.on(RequestLoggerMiddlewareEventName.UpdateInstrument_D_VAL, (reqDetails) => {
69
+ const { timeInMs } = reqDetails;
70
+ this.publishInstrumentController.UpdateInstrument(Gauge.DURATION_GAUGE, {
71
+ val: timeInMs,
72
+ });
73
+ if (timeInMs > this.#ERROR_THRESHOLD_TIMEOUT) {
74
+ const message = `STSExpressServer:RequestLoggerMiddlewareEventName.UpdateInstrument_D_VAL: Request duration larger than: [${this.#ERROR_THRESHOLD_TIMEOUT}], Duration: [${timeInMs}], Request Details: [${JSON.stringify(reqDetails)}]`;
75
+ if (this.logger) {
76
+ this.logger.error(chalk.red(message));
77
+ console.error(chalk.red(message));
78
+ }
79
+ else {
80
+ console.error(chalk.red(message));
81
+ }
82
+ }
83
+ });
84
+ requestLoggerMiddleware.on(RequestLoggerMiddlewareEventName.UpdateInstrument_RC_INC, () => {
85
+ this.publishInstrumentController.UpdateInstrument(Gauge.REQUEST_COUNT_GAUGE, {
86
+ Inc: 1,
87
+ });
88
+ });
89
+ requestLoggerMiddleware.on(RequestLoggerMiddlewareEventName.UpdateInstrument_V_INC, () => {
90
+ if (this.publishInstrumentController.InstrumentExists(Gauge.VELOCITY_GAUGE)) {
91
+ this.publishInstrumentController.UpdateInstrument(Gauge.VELOCITY_GAUGE, {
92
+ Inc: 1,
93
+ });
94
+ }
95
+ });
96
+ const app = express();
97
+ this.#app = app;
98
+ // https://stackoverflow.com/questions/19743396/cors-cannot-use-wildcard-in-access-control-allow-origin-when-credentials-flag-i
99
+ // See answer from Christoph Hansen is thread above ...
100
+ // https://expressjs.com/en/resources/middleware/cors.html
101
+ const corsConfig = {
102
+ credentials: true,
103
+ origin: true,
104
+ };
105
+ app.use(cors(corsConfig));
106
+ app.use(cookieParser());
107
+ app.use(express.urlencoded({
108
+ extended: false,
109
+ limit: goptions.maxPayloadSize,
110
+ }));
111
+ app.use(express.json({ limit: goptions.maxPayloadSize }));
112
+ // Allow the static SPA to also be servered by this app
113
+ //app.use('/static', express.static(path.join(__dirname, 'public')))
114
+ if (this.#options.expressServerRouteStaticFactory) {
115
+ this.#options.expressServerRouteStaticFactory(app);
116
+ }
117
+ app.use(requestLoggerMiddleware.Middleware.bind(requestLoggerMiddleware));
118
+ app.use(serverNetworkMiddleware.Middleware.bind(serverNetworkMiddleware));
119
+ if (this.#options.expressServerRouteFactory) {
120
+ this.#options.expressServerRouteFactory(app);
121
+ }
122
+ // Express error handling fall-back
123
+ app.use(function (err, req, res, next) {
124
+ //@@ add to errors metric here - perhaps break down by type
125
+ if (err) {
126
+ //@@this.#LogInfoMessage(err);
127
+ res.status(err.status).send(err);
128
+ }
129
+ else {
130
+ next();
131
+ }
132
+ /*
133
+ if(err.name === 'UnauthorizedError') {
134
+ res.status(401).send(err);
135
+ } else {
136
+ next();
137
+ }
138
+ */
139
+ });
140
+ };
141
+ #SetupServerFromExpressServer = () => {
142
+ if (this.#options.useTls) {
143
+ this.httpServer = createServerHttps(GetTLSOptions(this.#options.httpsServerKeyPath, this.#options.httpsServerCertificatePath), this.#app);
144
+ }
145
+ else {
146
+ this.httpServer = createServerHttp(this.#app);
147
+ }
148
+ if (this.#app && this.#options.prometheusSupport === true) {
149
+ this.#SetupPrometheusEndPoints(this.#app);
150
+ }
151
+ if (this.#options.wssServer === true) {
152
+ this.#SetupWSSServer();
153
+ }
154
+ // https://stackoverflow.com/questions/21342828/node-express-unix-domain-socket-permissions
155
+ //@@httpServer.listen('/tmp/stsrest01.sock').on('listening', () =>
156
+ //@@httpServer.listen('/var/run/sts/stsrest01.sock').on('listening', () =>
157
+ this.httpServer
158
+ .listen(this.#options.listenPort, () => {
159
+ //@@chmodSync(this.options.port, 511);
160
+ })
161
+ .on("listening", () => {
162
+ this.logger.info(`live on ${this.#options.endpoint}:${this.#options.listenPort}${this.#options.apiRoot}`);
163
+ });
164
+ };
165
+ // Setup server to Prometheus scrapes:
166
+ #SetupPrometheusEndPoints = (expressServer) => {
167
+ // AggregatorRegistry is required here in the worker as well as the master in order for prom-client to work correctly.
168
+ new AggregatorRegistry();
169
+ const prefix = "sts_";
170
+ collectDefaultMetrics({
171
+ labels: { NODE_APP_INSTANCE: process.pid },
172
+ prefix: prefix,
173
+ });
174
+ const c = new Counter({
175
+ name: "sts_test_counter",
176
+ help: "Example of a counter",
177
+ labelNames: ["code"],
178
+ });
179
+ setInterval(() => {
180
+ c.inc({ code: 200 });
181
+ }, 1000).unref();
182
+ setInterval(() => {
183
+ c.inc({ code: 400 });
184
+ c.inc({ code: "worker_" + process.pid });
185
+ }, 500).unref();
186
+ expressServer.get("/metrics", async (req, res) => {
187
+ try {
188
+ res.set("Content-Type", register.contentType);
189
+ res.end(await register.metrics());
190
+ }
191
+ catch (ex) {
192
+ res.status(500).end(ex);
193
+ }
194
+ });
195
+ expressServer.get("/metrics/counter", async (req, res) => {
196
+ try {
197
+ res.set("Content-Type", register.contentType);
198
+ res.end(await register.getSingleMetricAsString("test_counter"));
199
+ }
200
+ catch (ex) {
201
+ res.status(500).end(ex);
202
+ }
203
+ });
204
+ };
205
+ #SetupWSSServer = () => {
206
+ // socket.io
207
+ // WebSocket
208
+ const options = {
209
+ transports: ["websocket"], // or [ "websocket", "polling" ] (to use long-poolling. Note that the order matters)
210
+ // The default path is /socket.io
211
+ // This can be changed with the path option as shown below
212
+ //,path: '/zzz'
213
+ };
214
+ if (this.#options.wssCustomPath &&
215
+ this.#options.wssCustomPath.localeCompare("") !== 0) {
216
+ options.path = this.#options.wssCustomPath;
217
+ }
218
+ //this.#io = require("socket.io")(this.#httpServer, options);
219
+ this.#io = new Server(this.httpServer, options);
220
+ if (this.#options.useSocketIoRedisAdaptor) {
221
+ /*
222
+ // This uses redis client
223
+ // Below is commented out becuase the current version of the socketio streams adaptor
224
+ // uses version 4 of redis not 5 and has problems (bugged)
225
+ this.LogInfoMessage(`Using Redis for socket.io cluster management (worker)`);
226
+ if (this.options.socketIoRedisAdaptorUrl) {
227
+ this.LogInfoMessage(`Redis url: [${this.options.socketIoRedisAdaptorUrl}]`);
228
+ this.#redisClient = createClient({url: this.options.socketIoRedisAdaptorUrl});
229
+ } else {
230
+ this.LogInfoMessage(`Redis url: [localhost]`);
231
+ this.#redisClient = createClient();
232
+ }
233
+ await this.#redisClient.connect();
234
+ */
235
+ // This uses ioredis client
236
+ this.#redisClient = new Redis(this.#options.socketIoRedisAdaptorUrl);
237
+ this.#io.adapter(createAdapter(this.#redisClient));
238
+ this.logger.info(`Redis successfully connected.`);
239
+ }
240
+ else {
241
+ if (this.#options.clusterMode) {
242
+ this.#io.adapter(clusterCreateAdapter());
243
+ this.logger.info(`Using nodejs cluster mode for socket.io cluster management`);
244
+ }
245
+ else {
246
+ this.logger.info(`Not using any adaptors for socket.io cluster management.}`);
247
+ }
248
+ }
249
+ // To use a seperate socket server, the code below can be applied.
250
+ // this.#io = require("socket.io")(options);
251
+ // this.#io.adapter(createAdapter());
252
+ // this.#io.listen(3006);
253
+ this.#io.engine.on("connection_error", (err) => {
254
+ this.logger.info(err.req); // the request object
255
+ this.logger.info(err.code); // the error code, for example 1
256
+ this.logger.info(err.message); // the error message, for example "Session ID unknown"
257
+ this.logger.info(err.context); // some additional error context
258
+ });
259
+ };
260
+ #TerminateSocketIO = async () => {
261
+ if (this.#options.wssServer === true && this.#io !== null) {
262
+ const logPrefix = `ServerProcessBase:TerminateSockets():${process.pid}:`;
263
+ this.logger.info(`${logPrefix} Disconnect SocketIO Sockets (Sleeping...)`);
264
+ await Sleep(250);
265
+ this.logger.info(`${logPrefix} this.#io.of('/').adapter.close()`);
266
+ await this.#io?.of("/").adapter.close();
267
+ if (this.#redisClient) {
268
+ this.logger.info(`${logPrefix} this.#redisClient.disconnect()`);
269
+ this.#redisClient.disconnect();
270
+ this.logger.info(`${logPrefix} after this.#redisClient.disconnect() (Sleeping...)`);
271
+ await Sleep(50);
272
+ }
273
+ // boot all current connections
274
+ this.logger.info(`${logPrefix} this.#io.disconnectSockets()`);
275
+ this.#io.disconnectSockets();
276
+ // Stop any future connections, close this server (does not close the underlying http(s) server if io server via that method
277
+ this.logger.info(`${logPrefix} this.#io.close()`);
278
+ this.#io.close();
279
+ this.#io = null;
280
+ }
281
+ };
282
+ Stop = async () => {
283
+ await this.#TerminateSocketIO();
284
+ if (this.httpServer) {
285
+ const logPrefix = `STSRPCRawServer:Stop():${process.pid}:`;
286
+ this.logger.info(`${logPrefix} Closing httpServer.`);
287
+ this.httpServer.close();
288
+ }
289
+ };
290
+ }
291
+ //# sourceMappingURL=stsexpressserver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stsexpressserver.js","sourceRoot":"","sources":["../../../src/process/servertypes/stsexpressserver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ /* eslint @typescript-eslint/no-explicit-any: 0, @typescript-eslint/no-unused-vars: 0 */ // --> OFF
2
+ import { STSLoggerToken } from "./../../commonTypes.js";
3
+ import jayson from "jayson";
4
+ import { inject } from "@nsshunt/stsutils";
5
+ import { GetTLSOptions } from "./serverUtils.js";
6
+ export class STSJsonRPCServer {
7
+ options;
8
+ logger = inject(STSLoggerToken);
9
+ httpServer;
10
+ constructor(options) {
11
+ this.options = options;
12
+ this.#SetupJSONRPCServer();
13
+ }
14
+ #SetupJSONRPCServer = () => {
15
+ const jaysonServer = new jayson.server();
16
+ // Supported methods here - move somewhere else ...
17
+ jaysonServer.method("add", function (args, callback) {
18
+ callback(null, args[0] + args[1]);
19
+ });
20
+ this.httpServer = jaysonServer.tls(GetTLSOptions(this.options.httpsServerKeyPath, this.options.httpsServerCertificatePath));
21
+ this.httpServer.on("secureConnection", this.#SetupRPCServer);
22
+ this.httpServer
23
+ .listen(this.options.listenPort, this.options.coreDomain, () => {
24
+ this.logger.info("JSON RPC 2.0 Server is running on port " +
25
+ this.options.listenPort +
26
+ ".");
27
+ })
28
+ .on("listening", () => {
29
+ this.logger.info(`JSON RPC 2.0 live on ${this.options.endpoint}:${this.options.listenPort}${this.options.apiRoot}`);
30
+ });
31
+ };
32
+ #SetupRPCServer = (socket) => {
33
+ this.logger.info("CONNECTED: " +
34
+ socket.remoteAddress +
35
+ ":" +
36
+ socket.remotePort +
37
+ " " +
38
+ process.pid);
39
+ socket.on("close", (data) => {
40
+ this.logger.info("CLOSED: " +
41
+ socket.remoteAddress +
42
+ " " +
43
+ socket.remotePort +
44
+ " " +
45
+ process.pid);
46
+ });
47
+ socket.on("data", (data) => {
48
+ this.logger.info("DATA " + socket.remoteAddress + ": " + data);
49
+ });
50
+ };
51
+ Stop = async () => {
52
+ if (this.httpServer) {
53
+ const logPrefix = `STSJsonRPCServer:Stop():${process.pid}:`;
54
+ this.logger.info(`${logPrefix} Closing httpServer.`);
55
+ this.httpServer.close();
56
+ }
57
+ };
58
+ }
59
+ //# sourceMappingURL=stsjsonrpcserver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stsjsonrpcserver.js","sourceRoot":"","sources":["../../../src/process/servertypes/stsjsonrpcserver.ts"],"names":[],"mappings":"AAAA,wFAAwF,CAAC,UAAU;AACnG,OAAO,EAAE,cAAc,EAAc,MAAM,wBAAwB,CAAC;AAIpE,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAWjD,MAAM,OAAO,gBAAgB;IACR,OAAO,CAA2B;IAClC,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;IACzC,UAAU,CAAoB;IAEtC,YAAY,OAAiC;QACzC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC/B,CAAC;IAED,mBAAmB,GAAG,GAAS,EAAE;QAC7B,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACzC,mDAAmD;QACnD,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,IAAS,EAAE,QAAa;YACzD,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,GAAG,CAC9B,aAAa,CACT,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAC/B,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAC1C,CACJ,CAAC;QACD,IAAI,CAAC,UAAyB,CAAC,EAAE,CAC9B,kBAAkB,EAClB,IAAI,CAAC,eAAe,CACvB,CAAC;QACF,IAAI,CAAC,UAAU;aACV,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,EAAE;YAC3D,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,yCAAyC;gBACrC,IAAI,CAAC,OAAO,CAAC,UAAU;gBACvB,GAAG,CACV,CAAC;QACN,CAAC,CAAC;aACD,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;YAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,wBAAwB,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CACpG,CAAC;QACN,CAAC,CAAC,CAAC;IACX,CAAC,CAAC;IAEF,eAAe,GAAG,CAAC,MAAkB,EAAQ,EAAE;QAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,aAAa;YACT,MAAM,CAAC,aAAa;YACpB,GAAG;YACH,MAAM,CAAC,UAAU;YACjB,GAAG;YACH,OAAO,CAAC,GAAG,CAClB,CAAC;QAEF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAS,EAAE,EAAE;YAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,UAAU;gBACN,MAAM,CAAC,aAAa;gBACpB,GAAG;gBACH,MAAM,CAAC,UAAU;gBACjB,GAAG;gBACH,OAAO,CAAC,GAAG,CAClB,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAS,EAAE,EAAE;YAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,aAAa,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,IAAI,GAAG,KAAK,IAAmB,EAAE;QAC7B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,MAAM,SAAS,GAAG,2BAA2B,OAAO,CAAC,GAAG,GAAG,CAAC;YAC5D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,sBAAsB,CAAC,CAAC;YACrD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAC5B,CAAC;IACL,CAAC,CAAC;CACL"}
@@ -0,0 +1,15 @@
1
+ import { STSExpressServer, } from "./stsexpressserver.js";
2
+ import { STSJsonRPCServer, } from "./stsjsonrpcserver.js";
3
+ import { STSRPCRawServer } from "./ststcprawserver.js";
4
+ export const CreateSTSServer = ({ serverType, options, }) => {
5
+ switch (serverType) {
6
+ case "EXPRESS":
7
+ case "EXPRESS_TLS":
8
+ return new STSExpressServer(options);
9
+ case "TCPRAW_TLS":
10
+ return new STSRPCRawServer(options);
11
+ case "JSONRPC2_TLS":
12
+ return new STSJsonRPCServer(options);
13
+ }
14
+ };
15
+ //# sourceMappingURL=stsserverfactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stsserverfactory.js","sourceRoot":"","sources":["../../../src/process/servertypes/stsserverfactory.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,gBAAgB,GAEnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACH,gBAAgB,GAEnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAA2B,MAAM,sBAAsB,CAAC;AAuBhF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAC5B,UAAU,EACV,OAAO,GACc,EAAc,EAAE;IACrC,QAAQ,UAAU,EAAE,CAAC;QACjB,KAAK,SAAS,CAAC;QACf,KAAK,aAAa;YACd,OAAO,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAEzC,KAAK,YAAY;YACb,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC;QAExC,KAAK,cAAc;YACf,OAAO,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;AACL,CAAC,CAAC"}
@@ -0,0 +1,87 @@
1
+ /* eslint @typescript-eslint/no-explicit-any: 0, @typescript-eslint/no-unused-vars: 0 */ // --> OFF
2
+ import chalk from "chalk";
3
+ import { STSLoggerToken } from "./../../commonTypes.js";
4
+ import tls from "node:tls";
5
+ import { inject } from "@nsshunt/stsutils";
6
+ import { GetTLSOptions } from "./serverUtils.js";
7
+ export class STSRPCRawServer {
8
+ options;
9
+ logger = inject(STSLoggerToken);
10
+ httpServer;
11
+ sockets = [];
12
+ constructor(options) {
13
+ this.options = options;
14
+ this.#SetupTCPRawServer();
15
+ }
16
+ #SetupTCPRawServer = () => {
17
+ // The second parameter is the automatic listener for the secureConnection event from the tls.Server class
18
+ this.httpServer = tls.createServer(GetTLSOptions(this.options.httpsServerKeyPath, this.options.httpsServerCertificatePath), this.#SetupTLSServer);
19
+ this.httpServer
20
+ .listen(this.options.listenPort, this.options.coreDomain, () => {
21
+ this.logger.info("TCP Server is running on port " +
22
+ this.options.listenPort +
23
+ ".");
24
+ })
25
+ .on("listening", () => {
26
+ this.logger.info(`TCP live on ${this.options.endpoint}:${this.options.listenPort}${this.options.apiRoot}`);
27
+ });
28
+ };
29
+ #SetupTLSServer = async (socket) => {
30
+ // Add a 'close' event handler to this instance of socket
31
+ this.logger.info("CONNECTED: " +
32
+ socket.remoteAddress +
33
+ ":" +
34
+ socket.remotePort +
35
+ " " +
36
+ process.pid);
37
+ this.sockets.push(socket);
38
+ //const self = this;
39
+ socket.on("close", (data) => {
40
+ const index = this.sockets.findIndex(function (o) {
41
+ return (o.remoteAddress === socket.remoteAddress &&
42
+ o.remotePort === socket.remotePort);
43
+ });
44
+ if (index !== -1)
45
+ this.sockets.splice(index, 1);
46
+ this.logger.info("CLOSED: " +
47
+ socket.remoteAddress +
48
+ " " +
49
+ socket.remotePort +
50
+ " " +
51
+ process.pid);
52
+ });
53
+ socket.on("data", (data) => {
54
+ this.logger.info("DATA " +
55
+ socket.remoteAddress +
56
+ ": " +
57
+ socket.remotePort +
58
+ ": " +
59
+ data);
60
+ socket.write(socket.remoteAddress +
61
+ ":" +
62
+ socket.remotePort +
63
+ " said " +
64
+ data +
65
+ "\n");
66
+ // Write the data back to all the connected, the client will receive it as data from the server
67
+ /*
68
+ self.#sockets.forEach(function(socket, index, array) {
69
+ socket.write(socket.remoteAddress + ':' + socket.remotePort + " said " + data + '\n');
70
+ });
71
+
72
+ */
73
+ });
74
+ };
75
+ Stop = async () => {
76
+ if (this.httpServer) {
77
+ const logPrefix = `STSRPCRawServer:Stop():${process.pid}:`;
78
+ this.sockets.forEach((socket, index, array) => {
79
+ this.logger.info(chalk.yellow(`${logPrefix} TCP Socket destroy, remote address: [${socket.remoteAddress}], remote port: [${socket.remotePort}]`));
80
+ socket.destroy();
81
+ });
82
+ this.logger.info(`${logPrefix} Closing httpServer.`);
83
+ this.httpServer.close();
84
+ }
85
+ };
86
+ }
87
+ //# sourceMappingURL=ststcprawserver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ststcprawserver.js","sourceRoot":"","sources":["../../../src/process/servertypes/ststcprawserver.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  /* eslint @typescript-eslint/no-explicit-any: 0 */ // --> OFF
2
2
  import chalk from "chalk";
3
- import { Gauge } from "@nsshunt/stsobservability";
4
3
  import { IPCMessageCommand, } from "./../commonTypes.js";
5
4
  import { ServerProcessBase } from "./serverprocessbase.js";
6
5
  import { randomUUID } from "node:crypto";
@@ -23,18 +22,6 @@ export class WorkerProcessBase extends ServerProcessBase {
23
22
  ReceivedMessageFromMaster(msg) {
24
23
  // Override in subclass if required
25
24
  }
26
- CollectAdditionalTelemetry() {
27
- try {
28
- this.httpServer.getConnections((error, count) => {
29
- //@@this.instruments[Gauge.CONNECTION_COUNT_GAUGE].val = count;
30
- this.UpdateInstrument(Gauge.CONNECTION_COUNT_GAUGE, {
31
- val: count,
32
- });
33
- });
34
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
35
- }
36
- catch (error) { }
37
- }
38
25
  #SendMessageToParentProcess = (message) => {
39
26
  return new Promise((resolve, reject) => {
40
27
  if (this.#inFlightMessage[message.id]) {
@@ -1 +1 @@
1
- {"version":3,"file":"workerprocessbase.js","sourceRoot":"","sources":["../../src/process/workerprocessbase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workerprocessbase.js","sourceRoot":"","sources":["../../src/process/workerprocessbase.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nsshunt/stsappframework",
3
- "version": "3.3.135",
3
+ "version": "3.3.138",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -43,17 +43,17 @@
43
43
  "globals": "^17.12.0",
44
44
  "typescript": "^6.0.3",
45
45
  "vite": "^8.2.2",
46
- "vitest": "^4.1.11"
46
+ "vitest": "^5.0.0"
47
47
  },
48
48
  "dependencies": {
49
49
  "@grpc/grpc-js": "^1.14.4",
50
50
  "@grpc/proto-loader": "^0.8.1",
51
- "@nsshunt/stsconfig": "^1.27.74",
52
- "@nsshunt/stsdatamanagement": "^1.18.201",
53
- "@nsshunt/stsinstrumentmanagerclient": "^1.0.43",
54
- "@nsshunt/stsobservability": "^1.0.165",
55
- "@nsshunt/stssocketioutils": "^2.0.56",
56
- "@nsshunt/stsutils": "^1.19.137",
51
+ "@nsshunt/stsconfig": "^1.27.75",
52
+ "@nsshunt/stsdatamanagement": "^1.18.202",
53
+ "@nsshunt/stsinstrumentmanagerclient": "^1.0.46",
54
+ "@nsshunt/stsobservability": "^1.0.166",
55
+ "@nsshunt/stssocketioutils": "^2.0.57",
56
+ "@nsshunt/stsutils": "^1.19.139",
57
57
  "@socket.io/cluster-adapter": "^0.3.0",
58
58
  "@socket.io/redis-streams-adapter": "^0.3.1",
59
59
  "@types/on-headers": "^1.0.4",
@@ -1,5 +1,5 @@
1
1
  import express from "express";
2
- import { JSONObject, ISTSLogger, IAgentManager } from "@nsshunt/stsutils";
2
+ import { JSONObject, ISTSLogger, IAgentManager, InjectionToken } from "@nsshunt/stsutils";
3
3
  import { InstrumentBaseTelemetry, Gauge } from "@nsshunt/stsobservability";
4
4
  import { PublishInstrumentController, InstrumentDefinitions, IContextBase } from "@nsshunt/stsinstrumentmanagerclient";
5
5
  import { IDBAccessLayer } from "@nsshunt/stsdatamanagement";
@@ -91,12 +91,7 @@ export interface IMasterProcessBase extends IProcessBase {
91
91
  ProcessIPCCommand(iPCMessagePayload: IPCMessagePayload): Promise<IPCMessagePayload>;
92
92
  }
93
93
  export interface IServerProcessBase extends IProcessBase {
94
- get httpServer(): any;
95
- get io(): any;
96
- get expressServer(): STSExpressServer | null;
97
- set expressServer(server: STSExpressServer | null);
98
94
  Terminate: (clusterPerformExit: boolean, signal?: any) => Promise<void>;
99
- SetupSTSServer: () => Promise<void>;
100
95
  CollectAdditionalTelemetry(): void;
101
96
  SetupServer(): Promise<boolean>;
102
97
  SetupServerEx: () => Promise<boolean>;
@@ -117,7 +112,7 @@ export interface STSExpressServer {
117
112
  /**
118
113
  * Factory method that adds express routes to the express app object.
119
114
  */
120
- export type ExpressRouteFactory = (app: express.Express, stsApp: IProcessBase) => void;
115
+ export type ExpressRouteFactory = (app: express.Express) => void;
121
116
  export interface ProcessOptions {
122
117
  /**
123
118
  * Is this service worker the master worker (thread).
@@ -249,4 +244,13 @@ export interface ProcessOptions {
249
244
  publisherLogger: ISTSLogger;
250
245
  publishInterval: number;
251
246
  }
247
+ export interface ISTSServer {
248
+ Stop(): Promise<void>;
249
+ }
250
+ export declare const AgentManagerToken: InjectionToken<IAgentManager>;
251
+ export declare const PublishInstrumentControllerToken: InjectionToken<PublishInstrumentController | undefined>;
252
+ export declare const ProcessOptionsToken: InjectionToken<ProcessOptions>;
253
+ export declare const DBAccessLayerToken: InjectionToken<IDBAccessLayer | null>;
254
+ export declare const STSLoggerToken: InjectionToken<ISTSLogger>;
255
+ export declare const STSServerToken: InjectionToken<ISTSServer>;
252
256
  //# sourceMappingURL=commonTypes.d.ts.map