@nsshunt/stsappframework 2.19.234 → 2.19.238

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 (49) hide show
  1. package/dist/processbase.js +9 -53
  2. package/dist/processbase.js.map +1 -1
  3. package/dist/serverprocessbase.js +7 -7
  4. package/dist/serverprocessbase.js.map +1 -1
  5. package/dist/singleprocessbase.js +3 -3
  6. package/dist/singleprocessbase.js.map +1 -1
  7. package/dist/stslatencycontroller.js +5 -1
  8. package/dist/stslatencycontroller.js.map +1 -1
  9. package/dist/tcpserver/app.js +3 -2
  10. package/dist/tcpserver/app.js.map +1 -1
  11. package/dist/tcpserver/appConfig.js +2 -1
  12. package/dist/tcpserver/appConfig.js.map +1 -1
  13. package/dist/testing/app.js +4 -3
  14. package/dist/testing/app.js.map +1 -1
  15. package/dist/testing/appConfig.js +7 -4
  16. package/dist/testing/appConfig.js.map +1 -1
  17. package/dist/testing/appWorkerWSS.js +137 -0
  18. package/dist/testing/appWorkerWSS.js.map +1 -0
  19. package/dist/testing/singleservertest.test.js +121 -3
  20. package/dist/testing/singleservertest.test.js.map +1 -1
  21. package/dist/workerprocessbase.js.map +1 -1
  22. package/package.json +2 -1
  23. package/src/kafkatesting/produce.js +0 -1
  24. package/src/processbase.ts +10 -62
  25. package/src/processoptions.ts +5 -0
  26. package/src/serverprocessbase.ts +7 -7
  27. package/src/singleprocessbase.ts +3 -3
  28. package/src/stslatencycontroller.ts +5 -1
  29. package/src/tcpserver/app.ts +2 -2
  30. package/src/tcpserver/appConfig.ts +2 -1
  31. package/src/testing/app.ts +4 -3
  32. package/src/testing/appConfig.ts +9 -5
  33. package/src/testing/appWorkerWSS.ts +153 -0
  34. package/src/testing/docker-compose.yml +20 -0
  35. package/src/testing/singleservertest.test.ts +145 -4
  36. package/src/workerprocessbase.ts +0 -1
  37. package/types/processbase.d.ts.map +1 -1
  38. package/types/processoptions.d.ts +4 -0
  39. package/types/processoptions.d.ts.map +1 -1
  40. package/types/serverprocessbase.d.ts +1 -1
  41. package/types/serverprocessbase.d.ts.map +1 -1
  42. package/types/stslatencycontroller.d.ts.map +1 -1
  43. package/types/tcpserver/appConfig.d.ts +1 -1
  44. package/types/tcpserver/appConfig.d.ts.map +1 -1
  45. package/types/testing/appConfig.d.ts +1 -1
  46. package/types/testing/appConfig.d.ts.map +1 -1
  47. package/types/testing/appWorkerWSS.d.ts +26 -0
  48. package/types/testing/appWorkerWSS.d.ts.map +1 -0
  49. package/types/workerprocessbase.d.ts.map +1 -1
@@ -0,0 +1,153 @@
1
+ import debugModule from 'debug'
2
+ const debug = debugModule(`proc:${process.pid}`);
3
+
4
+ import { Socket } from 'socket.io'
5
+ import cluster from 'node:cluster';
6
+
7
+ import { WorkerProcessBase, STSNamespace, STSRoom, SocketIoServerHelper, ServerSocketEvent,
8
+ STSEvent, IProcessBase, STSSocketIONamespace } from './../index'
9
+
10
+ import { Sleep } from '@nsshunt/stsutils';
11
+
12
+ export enum InstrumentManagerEventName {
13
+ CONNECT = 'connect', //@@ should come from socketiohelper
14
+
15
+ SUBSCRIBE = 'stsInstrumentManager-Subscribe',
16
+ UNSUBSCRIBE = 'stsInstrumentManager-Unsubscribe',
17
+ SUBSCRIBE_KEEP_ALIVE = 'stsInstrumentManager-Subscribe-KeepAlive'
18
+ }
19
+
20
+ export interface IIPCSocketMessage {
21
+ socketId: string
22
+ workerId: number
23
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
24
+ data: any
25
+ }
26
+
27
+ export enum InstrumentManagerSubCommand {
28
+ OUTPUT_SUBSCRIPTION = 'stsInstrumentManager-OutputSubscriptions'
29
+ }
30
+
31
+ export enum IPCCommands {
32
+ PUBLISH_INSTRUMENT_DATA = 'PUBLISH_INSTRUMENT_DATA'
33
+ }
34
+
35
+ export class WorkerProcess extends WorkerProcessBase
36
+ {
37
+ #terminate = false;
38
+
39
+ constructor(options: any)
40
+ {
41
+ super(options);
42
+
43
+ //this.socketIoHelper = new SocketIoHelper(this as IProcessBase);
44
+ this.socketIoServerHelper = new SocketIoServerHelper({
45
+ logger: this.LogEx
46
+ });
47
+ }
48
+
49
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
50
+ ReceivedMessageFromMaster = async (messageData: any) => {
51
+ // Only response to these message types (note should be part of generic pub/sub pattern in framework)
52
+ if (messageData.subCommand) {
53
+ if (messageData.subCommand.localeCompare(InstrumentManagerSubCommand.OUTPUT_SUBSCRIPTION) === 0) {
54
+ //console.log(`WorkerProcess.ReceivedMessageFromMaster: messageData: [${JSON.stringify(messageData)}]`.grey);
55
+ console.log(`WorkerProcess.ReceivedMessageFromMaster`.grey);
56
+ const { socketId, workerId, model } = messageData; //@@ type
57
+
58
+ if (cluster.worker && cluster.worker.id !== workerId) {
59
+ // Invalid data - this workerId must match
60
+ console.log(`WorkerProcess.ReceivedMessageFromMaster: Invalid workerId: [${workerId}]. Should have been: [${cluster.worker.id}].`.red);
61
+ } else {
62
+ const workerProcess: WorkerProcess = this as WorkerProcess;
63
+ if (workerProcess.stsMonitorNamespace !== null) {
64
+ const stsMonitorNamespace = workerProcess.stsMonitorNamespace.socketionamespace;
65
+ const sockets = await stsMonitorNamespace.fetchSockets();
66
+ for (const socket of sockets) {
67
+ if (socket.id.localeCompare(socketId) === 0) {
68
+ console.log(`WorkerProcess.ReceivedMessageFromMaster: Sending payload to subscribed client.`.green);
69
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
70
+ socket.emit(STSEvent.STSSubInstrumentData as any, model);
71
+ return;
72
+ }
73
+ }
74
+ console.log(`WorkerProcess.ReceivedMessageFromMaster: Invalid socketId. Expecting socket to existing in socket namespace collection.`.red);
75
+ // Invalid - could not find matching socketid to send to
76
+ } else {
77
+ console.log(`WorkerProcess.ReceivedMessageFromMaster: Invalid workerProcess.stsMonitorNamespace is null. Expecting non-null value.`.red);
78
+ }
79
+ }
80
+ }
81
+ }
82
+ }
83
+
84
+ #SendIPCMessageToMaster(socket: Socket, eventName: any, data: any): void {
85
+ try {
86
+ if (cluster.worker) {
87
+ console.log(`WorkerProcess.#SendIPCMessageToMaster: eventName: [${eventName}]`.grey);
88
+ const payload: IIPCSocketMessage = {
89
+ socketId: socket.id,
90
+ workerId: cluster.worker.id,
91
+ data: data
92
+ }
93
+ //console.log(`WorkerProcess.#SendIPCMessageToMaster: payload: [${JSON.stringify(payload)}]`.grey);
94
+ console.log(`WorkerProcess.#SendIPCMessageToMaster`.grey);
95
+ (process as any).send( { command: eventName, payload }, null, { swallowErrors: true }, (error: any) => {
96
+ if (error) {
97
+ console.error(`Error with WorkerProcess:SendIPCMessageToMaster(1): [${error}]`.red);
98
+ }
99
+ });
100
+ }
101
+ } catch (error) {
102
+ console.error(`Error with WorkerProcess:SendIPCMessageToMaster(2): [${error}]`.red);
103
+ }
104
+ }
105
+
106
+ #GetServerSocketEvent(eventName: any): ServerSocketEvent {
107
+ return {
108
+ serverEventName: eventName,
109
+ serverEventCb: (socket, data): void => this.#SendIPCMessageToMaster(socket, eventName, data)
110
+ }
111
+ }
112
+
113
+ WorkerStarted(): any
114
+ {
115
+ let socketIoNamespace: STSSocketIONamespace | null = null;
116
+ if (this.socketIoServerHelper) {
117
+ socketIoNamespace = this.socketIoServerHelper.SetupNamespace(this.io as any, STSNamespace.STSMonitor, [
118
+ STSRoom.STSInstrumentDataRoom,
119
+ STSRoom.STSRunnerRoom
120
+ ],
121
+ false,
122
+ [
123
+ this.#GetServerSocketEvent(InstrumentManagerEventName.SUBSCRIBE),
124
+ this.#GetServerSocketEvent(InstrumentManagerEventName.UNSUBSCRIBE),
125
+ this.#GetServerSocketEvent(InstrumentManagerEventName.SUBSCRIBE_KEEP_ALIVE),
126
+ {
127
+ serverEventName: InstrumentManagerEventName.CONNECT,
128
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
129
+ serverEventCb: (socket, data): void => {
130
+ console.log(`WorkerProcess.#SendIPCMessageToMaster: eventName: [${ InstrumentManagerEventName.CONNECT}]`.grey);
131
+ }
132
+ },
133
+ {
134
+ serverEventName: 'sts_connect',
135
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
136
+ serverEventCb: (socket, data): void => {
137
+ console.log(`WorkerProcess.#SendIPCMessageToMaster: eventName: [${ InstrumentManagerEventName.CONNECT}]`.grey);
138
+ socket.emit('sts_connect_reply', { someData: 'hello world'});
139
+ }
140
+ }
141
+ ]);
142
+ } else {
143
+ throw new Error('WorkerProcess:WorkerStarted(): this.socketIoHelper is null')
144
+ }
145
+ }
146
+
147
+ get stsMonitorNamespace(): STSSocketIONamespace | null {
148
+ if (this.socketIoServerHelper !== null) {
149
+ return this.socketIoServerHelper.GetNamespace(STSNamespace.STSMonitor);
150
+ }
151
+ return null;
152
+ }
153
+ }
@@ -0,0 +1,20 @@
1
+ version: '2'
2
+ services:
3
+ zookeeper:
4
+ image: wurstmeister/zookeeper
5
+ ports:
6
+ - "2181:2181"
7
+ restart: unless-stopped
8
+
9
+ kafka:
10
+ image: wurstmeister/kafka
11
+ ports:
12
+ - "9092:9092"
13
+ environment:
14
+ DOCKER_API_VERSION: 1.22
15
+ KAFKA_ADVERTISED_HOST_NAME: 192.168.14.92
16
+ KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
17
+ KAFKA_CREATE_TOPICS: "topic-name2:3:1"
18
+ volumes:
19
+ - /var/run/docker.sock:/var/run/docker.sock
20
+ restart: unless-stopped
@@ -15,13 +15,48 @@ import * as https from 'node:https'
15
15
 
16
16
  import { it, beforeAll, afterAll, test, describe, expect } from 'vitest';
17
17
 
18
+ import { ISocketDetail, SocketIoClientHelper, ISocketIoClientHelperOptions } from '@nsshunt/stssocketio-client'
19
+
20
+ import { WorkerProcessBase, STSNamespace, STSRoom, SocketIoServerHelper, ServerSocketEvent,
21
+ STSEvent, IProcessBase, STSSocketIONamespace, STSClientSocket } from './../index'
22
+
23
+ //const { Kafka } = require('kafkajs')
24
+
25
+ import { DockerComposeEnvironment, Wait, AlwaysPullPolicy } from 'testcontainers'
26
+
18
27
  describe("Single Server Test", () =>
19
28
  {
29
+ /*
30
+ const kafka = new Kafka({
31
+ clientId: 'my-app',
32
+ brokers: ['192.168.14.92:9092']
33
+ //brokers: ['localhost:9092', 'kafka2:9092'],
34
+ })
35
+ let producer: any;
36
+ let environment: any;
37
+ */
38
+
20
39
  let app: SingleProcessBase | MasterProcessBase | null = null;
21
40
  let httpsAgent: https.Agent | null = null;
22
41
 
23
42
  const endpoint = 'https://localhost'
24
43
 
44
+ const socketUtilsoptions: ISocketIoClientHelperOptions = {
45
+ agentOptions: {
46
+ keepAlive: goptions.keepAlive,
47
+ maxSockets: goptions.maxSockets,
48
+ maxTotalSockets: goptions.maxTotalSockets,
49
+ maxFreeSockets: goptions.maxFreeSockets,
50
+ timeout: 30000, //@@ config
51
+ rejectUnauthorized: goptions.isProduction // Allows self signed certs in non production mode(s)
52
+ }
53
+ }
54
+
55
+ const socketUtils = new SocketIoClientHelper(socketUtilsoptions);
56
+
57
+ const instrumentManagerAddress =
58
+ `${endpoint}:${goptions.rest01port}/${STSNamespace.STSMonitor}/`;
59
+
25
60
  const HandleError = (error: any) => {
26
61
  debug(`Error: [${error}]`.red)
27
62
  if (axios.isAxiosError(error)) {
@@ -69,8 +104,6 @@ describe("Single Server Test", () =>
69
104
  ,httpsAgent: httpsAgent
70
105
  });
71
106
 
72
- //debug(retVal.data);
73
-
74
107
  return retVal;
75
108
  } catch (error: any) {
76
109
  HandleError(error);
@@ -78,10 +111,77 @@ describe("Single Server Test", () =>
78
111
  }
79
112
  }
80
113
 
114
+ /* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unused-vars */
115
+ /*
116
+ const socketDetail: ISocketDetail = socketUtils.SetupClientSideSocket('STSUITerm', instrumentManagerAddress, [
117
+ {
118
+ eventName: 'hello',
119
+ eventCb: (socket: any, data: any): void => {
120
+ debug(`Received: [hello:${data}]`);
121
+ }
122
+ },
123
+ {
124
+ eventName: 'goodbye',
125
+ eventCb: (socket: any, data: any) => {
126
+ debug(`Received: [goodbye:${data}]`);
127
+ }
128
+ },
129
+ {
130
+ eventName: 'registerEcho',
131
+ eventCb: (socket: any, data: any) => {
132
+ debug(`Received: [registerEcho:${JSON.stringify(data)}]`);
133
+ }
134
+ },
135
+ {
136
+ eventName: STSEvent.connect,
137
+ eventCb: (socket: STSClientSocket, data: any) => {
138
+ socket.emit('joinRoom', STSRoom.STSInstrumentDataRoom);
139
+ }
140
+ },
141
+ {
142
+ eventName: 'sts_connect_reply',
143
+ eventCb: (socket: STSClientSocket, data: any) => {
144
+ debug(`Received: [sts_connect_reply:${JSON.stringify(data)}]`);
145
+ }
146
+ }
147
+ ]);
148
+ */
81
149
 
82
150
  beforeAll(async () =>
83
151
  {
84
- debugModule.enable('proc*');
152
+ /*
153
+ const composeFilePath = "/home/marcusbettens/projects/stsappframework/src/testing";
154
+ const composeFile = "docker-compose.yml";
155
+ try {
156
+ environment = await new DockerComposeEnvironment(composeFilePath, composeFile)
157
+ .withWaitStrategy("kafka", Wait.forLogMessage("[KafkaServer id=1001] started (kafka.server.KafkaServer)"))
158
+ .withPullPolicy(new AlwaysPullPolicy())
159
+ .up()
160
+ } catch (error) {
161
+ console.error(error)
162
+ throw error;
163
+ }
164
+
165
+ console.log('done'.green)
166
+ console.log('done'.green)
167
+ console.log('done'.green)
168
+ console.log('done'.green)
169
+ console.log('done'.green)
170
+ console.log('done'.green)
171
+ console.log('done'.green)
172
+ console.log('done'.green)
173
+ console.log('done'.green)
174
+ console.log('done'.green)
175
+ console.log('done'.green)
176
+ console.log('done'.green)
177
+ console.log('done'.green)
178
+ console.log('done'.green)
179
+ */
180
+
181
+ /*
182
+ producer = kafka.producer()
183
+ await producer.connect()
184
+ */
85
185
 
86
186
  /*
87
187
  process.env.AS_ENDPOINT = testHelper.authHost;
@@ -95,7 +195,7 @@ describe("Single Server Test", () =>
95
195
  //goptions.asport = testHelper.authPort;
96
196
  */
97
197
 
98
- const appOptions = ServiceConfigOptions(true);
198
+ const appOptions = ServiceConfigOptions(true, true);
99
199
  appOptions.processExitOnTerminate = false;
100
200
  //app = new SingleProcessBase(appOptions)
101
201
  app = new MasterProcessBase(appOptions)
@@ -107,6 +207,11 @@ describe("Single Server Test", () =>
107
207
  {
108
208
  await Sleep(500);
109
209
 
210
+ // Kafka disconnect
211
+ //await producer.disconnect()
212
+
213
+ //@@await environment.down();
214
+
110
215
  //await (app as SingleProcessBase).TerminateApplication();
111
216
  await Sleep(1000);
112
217
  app = null;
@@ -131,11 +236,47 @@ describe("Single Server Test", () =>
131
236
  const num = 50;
132
237
  expect.assertions(num * 2);
133
238
  for (let i=0; i < num; i++) {
239
+
240
+ /*
241
+ const retValKafka = await producer.send({
242
+ topic: 'topic-name2',
243
+ messages: [
244
+ { key: 'key1', value: `hello world - ${i}` },
245
+ ],
246
+ })
247
+ */
248
+
134
249
  const retVal = await getLatency();
135
250
  const retValObj = retVal?.data.data;
136
251
  expect(retValObj).toMatch('Ping Completed At:');
137
252
  expect(retVal && retVal.status).toEqual(200);
138
253
  }
139
254
  }, 10000);
255
+
256
+ test('client socket testing', async () =>
257
+ {
258
+ expect.assertions(1);
259
+
260
+ let complete = false;
261
+
262
+ const socketDetail: ISocketDetail = socketUtils.SetupClientSideSocket('STSUITerm', instrumentManagerAddress, [
263
+ {
264
+ eventName: 'sts_connect_reply',
265
+ eventCb: (socket: STSClientSocket, data: any) => {
266
+ debug(`Received: [sts_connect_reply:${JSON.stringify(data)}]`);
267
+ expect(1).toEqual(1);
268
+ complete = true;
269
+ }
270
+ }
271
+ ]);
272
+
273
+ socketDetail.socket?.emit('sts_connect')
274
+
275
+ while (!complete) {
276
+ await Sleep(100);
277
+ }
278
+
279
+ //expect(1).toEqual(1);
280
+ }, 3000);
140
281
  });
141
282
 
@@ -1,7 +1,6 @@
1
1
  import debugModule from 'debug'
2
2
  const debug = debugModule(`proc:${process.pid}`);
3
3
 
4
-
5
4
  import { Gauge, InstrumentGaugeTelemetry } from '@nsshunt/stsinstrumentation'
6
5
  import { JSONObject } from '@nsshunt/stsutils'
7
6
  import { ProcessOptions } from './processoptions'
@@ -1 +1 @@
1
- {"version":3,"file":"processbase.d.ts","sourceRoot":"","sources":["../src/processbase.ts"],"names":[],"mappings":"AAIA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAO3B,OAAO,EAAE,KAAK,EAAE,uBAAuB,EAA+E,MAAM,6BAA6B,CAAA;AAEzJ,OAAO,EAAE,aAAa,EAAyC,MAAM,4BAA4B,CAAA;AAKjG,OAAO,EAAE,cAAc,EAAiB,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAE,cAAc,EAAc,MAAM,mBAAmB,CAAA;AAG9D,OAAO,EAAE,2BAA2B,EAAuC,qBAAqB,EAEvC,MAAM,6BAA6B,CAAA;AAQ5F,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAOnE,8BAAsB,WAAY,SAAQ,cAAe,YAAW,YAAY;;gBAShE,OAAO,EAAE,cAAc;IAUnC,IAAa,OAAO,IAAI,cAAc,CAErC;IAsJD,oBAAoB;IAuBpB,wBAAwB,IAAI,qBAAqB;IAIjD,0BAA0B,IAAI,IAAI;IAIlC,cAAc,aAuCb;IAED,gBAAgB,mBAAoB,KAAK,aAAa,uBAAuB,UAI5E;IAED,IAAI,oBAAoB,IAAI,2BAA2B,GAAG,IAAI,CAE7D;IAED,KAAK,YAAa,GAAG,UASpB;IAED,gBAAgB,CAAC,cAAc,EAAE,KAAK,GAAG,OAAO;IAQhD,gBAAgB,sBAMf;IAED;;;OAGA;IACA,eAAe,IAAI,GAAG;IAItB,IAAI,oBAAoB,IAAI,qBAAqB,GAAG,IAAI,CAGvD;IAED,IAAI,oBAAoB,CAAC,KAAK,EAAE,qBAAqB,GAAG,IAAI,EAG3D;IAgBK,iBAAiB;IAOvB,IAAI,WAAW,IAAI,aAAa,GAAG,IAAI,CAyBtC;IAED,UAAU,QAAa,QAAQ,MAAM,CAAC,CAkBrC;IAED,kBAAkB,sBA0BjB;IAED,eAAe,WAAY,GAAG,kBAQ5B;CACL"}
1
+ {"version":3,"file":"processbase.d.ts","sourceRoot":"","sources":["../src/processbase.ts"],"names":[],"mappings":"AAIA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAO3B,OAAO,EAAE,KAAK,EAAE,uBAAuB,EAA+E,MAAM,6BAA6B,CAAA;AAEzJ,OAAO,EAAE,aAAa,EAAyC,MAAM,4BAA4B,CAAA;AAKjG,OAAO,EAAE,cAAc,EAAiB,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAE,cAAc,EAAc,MAAM,mBAAmB,CAAA;AAG9D,OAAO,EAAE,2BAA2B,EAAuC,qBAAqB,EAEvC,MAAM,6BAA6B,CAAA;AAQ5F,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAOnE,8BAAsB,WAAY,SAAQ,cAAe,YAAW,YAAY;;gBAShE,OAAO,EAAE,cAAc;IAUnC,IAAa,OAAO,IAAI,cAAc,CAErC;IAkGD,oBAAoB;IAuBpB,wBAAwB,IAAI,qBAAqB;IAIjD,0BAA0B,IAAI,IAAI;IAIlC,cAAc,aAuCb;IAED,gBAAgB,mBAAoB,KAAK,aAAa,uBAAuB,UAI5E;IAED,IAAI,oBAAoB,IAAI,2BAA2B,GAAG,IAAI,CAE7D;IAED,KAAK,YAAa,GAAG,UASpB;IAED,gBAAgB,CAAC,cAAc,EAAE,KAAK,GAAG,OAAO;IAQhD,gBAAgB,sBAMf;IAED;;;OAGA;IACA,eAAe,IAAI,GAAG;IAItB,IAAI,oBAAoB,IAAI,qBAAqB,GAAG,IAAI,CAGvD;IAED,IAAI,oBAAoB,CAAC,KAAK,EAAE,qBAAqB,GAAG,IAAI,EAG3D;IAgBK,iBAAiB;IAOvB,IAAI,WAAW,IAAI,aAAa,GAAG,IAAI,CAyBtC;IAED,UAAU,QAAa,QAAQ,MAAM,CAAC,CAkBrC;IAED,kBAAkB,sBA0BjB;IAED,eAAe,WAAY,GAAG,kBAQ5B;CACL"}
@@ -121,5 +121,9 @@ export interface ProcessOptions {
121
121
  useRedisInstrumentationTransport?: boolean;
122
122
  redisInstrumentationTransportUrl?: string;
123
123
  workerExec?: string;
124
+ /**
125
+ * Is this application using nodejs cluster mode?
126
+ */
127
+ clusterMode: boolean;
124
128
  }
125
129
  //# sourceMappingURL=processoptions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"processoptions.d.ts","sourceRoot":"","sources":["../src/processoptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAEpE,OAAO,OAAO,MAAM,SAAS,CAAA;AAE7B,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAE5C,MAAM,WAAW,gBAAgB;IAChC,IAAI,GAAG,IAAI,OAAO,CAAC,OAAO,CAAA;CAC1B;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,KAAK,IAAI,CAAA;AAEtF,oBAAY,aAAa;IACrB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,WAAW,gBAAgB;IAC9B,UAAU,eAAe;IACtB,YAAY,gBAAgB;CAC/B;AAGD,MAAM,WAAW,cAAc;IACvB;;GAED;IACH,QAAQ,EAAE,OAAO,CAAA;IAEjB;;OAEG;IACN,iBAAiB,EAAE,MAAM,CAAA;IAItB,UAAU,EAAE,aAAa,CAAA;IAE5B;;OAEG;IACA,kBAAkB,EAAE,MAAM,CAAA;IAE7B;;OAEG;IACA,0BAA0B,EAAE,MAAM,CAAA;IAElC;;OAEG;IACH,sBAAsB,EAAE,OAAO,CAAA;IAE/B;;OAEG;IACH,SAAS,EAAE,OAAO,CAAA;IAErB;;OAEG;IACA,iBAAiB,EAAE,OAAO,CAAA;IAE7B;;OAEG;IACA,QAAQ,EAAE,MAAM,CAAA;IAEnB;;OAEG;IACA,OAAO,EAAE,MAAM,CAAA;IAEf;;;;;;;;;;;OAWG;IACH,UAAU,EAAE,MAAM,CAAA;IAElB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IAEf;;OAEG;IACA,qBAAqB,EAAE,MAAM,CAAA;IAEhC;;OAEG;IACA,WAAW,EAAE,MAAM,CAAA;IAEnB;;OAEA;IACA,cAAc,EAAE,MAAM,CAAA;IAEtB;;OAEG;IACH,cAAc,EAAE,OAAO,CAAA;IAEvB;;OAEG;IACH,iBAAiB,EAAE,OAAO,CAAA;IAI1B,qBAAqB,CAAC,EAAE,sBAAsB,CAAA;IAE9C;;;OAGG;IACH,yBAAyB,CAAC,EAAE,mBAAmB,CAAA;IAE/C;;;OAGG;IACH,+BAA+B,CAAC,EAAE,mBAAmB,CAAA;IAErD;;;OAGG;IACH,UAAU,EAAE,OAAO,CAAA;IAEnB;;OAEG;IACH,WAAW,EAAE,OAAO,CAAA;IAEpB;;OAEG;IACH,yBAAyB,EAAE,OAAO,CAAA;IAElC,kCAAkC,EAAE,MAAM,CAAA;IAE1C,yBAAyB,EAAE,MAAM,CAAA;IAEjC,eAAe,EAAE,OAAO,CAAA;IAExB,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB,gCAAgC,CAAC,EAAE,OAAO,CAAA;IAE1C,gCAAgC,CAAC,EAAE,MAAM,CAAA;IAEzC,UAAU,CAAC,EAAE,MAAM,CAAA;CACtB"}
1
+ {"version":3,"file":"processoptions.d.ts","sourceRoot":"","sources":["../src/processoptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAEpE,OAAO,OAAO,MAAM,SAAS,CAAA;AAE7B,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAE5C,MAAM,WAAW,gBAAgB;IAChC,IAAI,GAAG,IAAI,OAAO,CAAC,OAAO,CAAA;CAC1B;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,KAAK,IAAI,CAAA;AAEtF,oBAAY,aAAa;IACrB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,WAAW,gBAAgB;IAC9B,UAAU,eAAe;IACtB,YAAY,gBAAgB;CAC/B;AAGD,MAAM,WAAW,cAAc;IACvB;;GAED;IACH,QAAQ,EAAE,OAAO,CAAA;IAEjB;;OAEG;IACN,iBAAiB,EAAE,MAAM,CAAA;IAItB,UAAU,EAAE,aAAa,CAAA;IAE5B;;OAEG;IACA,kBAAkB,EAAE,MAAM,CAAA;IAE7B;;OAEG;IACA,0BAA0B,EAAE,MAAM,CAAA;IAElC;;OAEG;IACH,sBAAsB,EAAE,OAAO,CAAA;IAE/B;;OAEG;IACH,SAAS,EAAE,OAAO,CAAA;IAErB;;OAEG;IACA,iBAAiB,EAAE,OAAO,CAAA;IAE7B;;OAEG;IACA,QAAQ,EAAE,MAAM,CAAA;IAEnB;;OAEG;IACA,OAAO,EAAE,MAAM,CAAA;IAEf;;;;;;;;;;;OAWG;IACH,UAAU,EAAE,MAAM,CAAA;IAElB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IAEf;;OAEG;IACA,qBAAqB,EAAE,MAAM,CAAA;IAEhC;;OAEG;IACA,WAAW,EAAE,MAAM,CAAA;IAEnB;;OAEA;IACA,cAAc,EAAE,MAAM,CAAA;IAEtB;;OAEG;IACH,cAAc,EAAE,OAAO,CAAA;IAEvB;;OAEG;IACH,iBAAiB,EAAE,OAAO,CAAA;IAI1B,qBAAqB,CAAC,EAAE,sBAAsB,CAAA;IAE9C;;;OAGG;IACH,yBAAyB,CAAC,EAAE,mBAAmB,CAAA;IAE/C;;;OAGG;IACH,+BAA+B,CAAC,EAAE,mBAAmB,CAAA;IAErD;;;OAGG;IACH,UAAU,EAAE,OAAO,CAAA;IAEnB;;OAEG;IACH,WAAW,EAAE,OAAO,CAAA;IAEpB;;OAEG;IACH,yBAAyB,EAAE,OAAO,CAAA;IAElC,kCAAkC,EAAE,MAAM,CAAA;IAE1C,yBAAyB,EAAE,MAAM,CAAA;IAEjC,eAAe,EAAE,OAAO,CAAA;IAExB,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB,gCAAgC,CAAC,EAAE,OAAO,CAAA;IAE1C,gCAAgC,CAAC,EAAE,MAAM,CAAA;IAEzC,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB;;OAEG;IACH,WAAW,EAAE,OAAO,CAAA;CACvB"}
@@ -15,7 +15,7 @@ export declare class ServerProcessBase extends ProcessBase {
15
15
  get expressServer(): STSExpressServer | null;
16
16
  set expressServer(val: STSExpressServer | null);
17
17
  ProcessTerminating: () => Promise<void>;
18
- Terminate: (clusterMode: boolean, clusterPerformExit: boolean, signal?: any) => Promise<void>;
18
+ Terminate: (clusterPerformExit: boolean, signal?: any) => Promise<void>;
19
19
  SetupSTSServer: () => Promise<void>;
20
20
  }
21
21
  //# sourceMappingURL=serverprocessbase.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"serverprocessbase.d.ts","sourceRoot":"","sources":["../src/serverprocessbase.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,cAAc,EAAiB,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAS5C,OAAO,EAAE,MAAM,EAAiB,MAAM,WAAW,CAAC;AAKlD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAO5C;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,WAAW;;gBAUlC,OAAO,EAAE,cAAc;IAInC,IAAI,UAAU,QAEb;IAED,IAAI,EAAE,+LAEL;IAED,IAAI,aAAa,IAAI,gBAAgB,GAAG,IAAI,CAE3C;IACD,IAAI,aAAa,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI,EAE7C;IAiMD,kBAAkB,QAAa,QAAQ,IAAI,CAAC,CAE3C;IASD,SAAS,gBAAuB,OAAO,sBAAsB,OAAO,WAAW,GAAG,KAAG,QAAQ,IAAI,CAAC,CAkGjG;IAED,cAAc,QAAY,QAAQ,IAAI,CAAC,CAetC;CACJ"}
1
+ {"version":3,"file":"serverprocessbase.d.ts","sourceRoot":"","sources":["../src/serverprocessbase.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,cAAc,EAAiB,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAS5C,OAAO,EAAE,MAAM,EAAiB,MAAM,WAAW,CAAC;AAKlD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAO5C;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,WAAW;;gBAUlC,OAAO,EAAE,cAAc;IAInC,IAAI,UAAU,QAEb;IAED,IAAI,EAAE,+LAEL;IAED,IAAI,aAAa,IAAI,gBAAgB,GAAG,IAAI,CAE3C;IACD,IAAI,aAAa,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI,EAE7C;IAiMD,kBAAkB,QAAa,QAAQ,IAAI,CAAC,CAE3C;IASD,SAAS,uBAA8B,OAAO,WAAW,GAAG,KAAG,QAAQ,IAAI,CAAC,CAkG3E;IAED,cAAc,QAAY,QAAQ,IAAI,CAAC,CAetC;CACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"stslatencycontroller.d.ts","sourceRoot":"","sources":["../src/stslatencycontroller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAE5C,qBAAa,oBAAqB,SAAQ,iBAAiB;gBAE3C,MAAM,EAAE,YAAY;IAK1B,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;CAUtC"}
1
+ {"version":3,"file":"stslatencycontroller.d.ts","sourceRoot":"","sources":["../src/stslatencycontroller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAE5C,qBAAa,oBAAqB,SAAQ,iBAAiB;gBAE3C,MAAM,EAAE,YAAY;IAK1B,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;CActC"}
@@ -1,3 +1,3 @@
1
1
  import { ProcessOptions } from '../index';
2
- export declare function ServiceConfigOptions(isMaster: boolean): ProcessOptions;
2
+ export declare function ServiceConfigOptions(clusterMode: boolean, isMaster: boolean): ProcessOptions;
3
3
  //# sourceMappingURL=appConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"appConfig.d.ts","sourceRoot":"","sources":["../../src/tcpserver/appConfig.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAA+B,MAAM,UAAU,CAAA;AAoBtE,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,OAAO,GAAG,cAAc,CAuCtE"}
1
+ {"version":3,"file":"appConfig.d.ts","sourceRoot":"","sources":["../../src/tcpserver/appConfig.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAA+B,MAAM,UAAU,CAAA;AAoBtE,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,cAAc,CAwC5F"}
@@ -1,3 +1,3 @@
1
1
  import { ProcessOptions } from './..';
2
- export declare function ServiceConfigOptions(isMaster: boolean): ProcessOptions;
2
+ export declare function ServiceConfigOptions(clusterMode: boolean, isMaster: boolean): ProcessOptions;
3
3
  //# sourceMappingURL=appConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"appConfig.d.ts","sourceRoot":"","sources":["../../src/testing/appConfig.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAA+B,MAAM,MAAM,CAAA;AAsBlE,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,OAAO,GAAG,cAAc,CA4CtE"}
1
+ {"version":3,"file":"appConfig.d.ts","sourceRoot":"","sources":["../../src/testing/appConfig.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAA+B,MAAM,MAAM,CAAA;AAsBlE,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,cAAc,CAgD5F"}
@@ -0,0 +1,26 @@
1
+ import { WorkerProcessBase, STSSocketIONamespace } from './../index';
2
+ export declare enum InstrumentManagerEventName {
3
+ CONNECT = "connect",
4
+ SUBSCRIBE = "stsInstrumentManager-Subscribe",
5
+ UNSUBSCRIBE = "stsInstrumentManager-Unsubscribe",
6
+ SUBSCRIBE_KEEP_ALIVE = "stsInstrumentManager-Subscribe-KeepAlive"
7
+ }
8
+ export interface IIPCSocketMessage {
9
+ socketId: string;
10
+ workerId: number;
11
+ data: any;
12
+ }
13
+ export declare enum InstrumentManagerSubCommand {
14
+ OUTPUT_SUBSCRIPTION = "stsInstrumentManager-OutputSubscriptions"
15
+ }
16
+ export declare enum IPCCommands {
17
+ PUBLISH_INSTRUMENT_DATA = "PUBLISH_INSTRUMENT_DATA"
18
+ }
19
+ export declare class WorkerProcess extends WorkerProcessBase {
20
+ #private;
21
+ constructor(options: any);
22
+ ReceivedMessageFromMaster: (messageData: any) => Promise<void>;
23
+ WorkerStarted(): any;
24
+ get stsMonitorNamespace(): STSSocketIONamespace | null;
25
+ }
26
+ //# sourceMappingURL=appWorkerWSS.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appWorkerWSS.d.ts","sourceRoot":"","sources":["../../src/testing/appWorkerWSS.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EACE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAIpE,oBAAY,0BAA0B;IACrC,OAAO,YAAY;IAEnB,SAAS,mCAAmC;IAC5C,WAAW,qCAAqC;IAChD,oBAAoB,6CAA6C;CACjE;AAED,MAAM,WAAW,iBAAiB;IACjC,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAEhB,IAAI,EAAE,GAAG,CAAA;CACT;AAED,oBAAY,2BAA2B;IACtC,mBAAmB,6CAA6C;CAChE;AAED,oBAAY,WAAW;IACtB,uBAAuB,4BAA4B;CACnD;AAED,qBAAa,aAAc,SAAQ,iBAAiB;;gBAIpC,OAAO,EAAE,GAAG;IAWxB,yBAAyB,gBAAuB,GAAG,mBAgClD;IA+BD,aAAa,IAAI,GAAG;IAkCpB,IAAI,mBAAmB,IAAI,oBAAoB,GAAG,IAAI,CAKrD;CACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"workerprocessbase.d.ts","sourceRoot":"","sources":["../src/workerprocessbase.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAiE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAEjH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAMvD;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,iBAAkB,YAAW,kBAAkB;;gBAKtE,OAAO,EAAE,cAAc;IAInC,aAAa;IAKb,yBAAyB,CAAC,GAAG,EAAE,GAAG;IAIzB,0BAA0B,IAAI,IAAI;IAwC3C,SAAS,YAAmB,GAAG,KAAG,QAAQ,MAAM,CAAC,CAUhD;IAGD,YAAY,aAAoB,MAAM,WAAW,GAAG,KAAG,QAAQ,UAAU,CAAC,CAWzE;IAED,kBAAkB,QAAa,QAAQ,IAAI,CAAC,CAE3C;IAED,WAAW,sBAMV;IAED,aAAa,sBAmEX;CACL"}
1
+ {"version":3,"file":"workerprocessbase.d.ts","sourceRoot":"","sources":["../src/workerprocessbase.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAiE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAEjH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAMvD;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,iBAAkB,YAAW,kBAAkB;;gBAKtE,OAAO,EAAE,cAAc;IAInC,aAAa;IAKb,yBAAyB,CAAC,GAAG,EAAE,GAAG;IAIzB,0BAA0B,IAAI,IAAI;IAwC3C,SAAS,YAAmB,GAAG,KAAG,QAAQ,MAAM,CAAC,CAUhD;IAGD,YAAY,aAAoB,MAAM,WAAW,GAAG,KAAG,QAAQ,UAAU,CAAC,CAWzE;IAED,kBAAkB,QAAa,QAAQ,IAAI,CAAC,CAE3C;IAED,WAAW,sBAMV;IAED,aAAa,sBAmEX;CACL"}