@nsshunt/stsappframework 3.2.1 → 3.2.3

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 (97) hide show
  1. package/dist/commonTypes.js +69 -0
  2. package/dist/commonTypes.js.map +1 -0
  3. package/dist/controller/stscontrollerbase.js +14 -0
  4. package/dist/controller/stscontrollerbase.js.map +1 -0
  5. package/dist/controller/stslatencycontroller.js +28 -0
  6. package/dist/controller/stslatencycontroller.js.map +1 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/logger/stsTransportLoggerWinston.js +22 -0
  9. package/dist/logger/stsTransportLoggerWinston.js.map +1 -0
  10. package/dist/logger/stsTransportWinston.js +43 -0
  11. package/dist/logger/stsTransportWinston.js.map +1 -0
  12. package/{src/middleware/serverNetworkMiddleware.ts → dist/middleware/serverNetworkMiddleware.js} +80 -124
  13. package/dist/middleware/serverNetworkMiddleware.js.map +1 -0
  14. package/dist/network.js +38 -0
  15. package/dist/network.js.map +1 -0
  16. package/dist/process/masterprocessbase.js +558 -0
  17. package/dist/process/masterprocessbase.js.map +1 -0
  18. package/{src/process/processbase.ts → dist/process/processbase.js} +150 -222
  19. package/dist/process/processbase.js.map +1 -0
  20. package/{src/process/serverprocessbase.ts → dist/process/serverprocessbase.js} +158 -212
  21. package/dist/process/serverprocessbase.js.map +1 -0
  22. package/dist/process/singleprocessbase.js +55 -0
  23. package/dist/process/singleprocessbase.js.map +1 -0
  24. package/{src/process/workerprocessbase.ts → dist/process/workerprocessbase.js} +93 -107
  25. package/dist/process/workerprocessbase.js.map +1 -0
  26. package/{src/publishertransports/publishTransportUtils.ts → dist/publishertransports/publishTransportUtils.js} +18 -24
  27. package/dist/publishertransports/publishTransportUtils.js.map +1 -0
  28. package/dist/route/stslatencyroute.js +15 -0
  29. package/dist/route/stslatencyroute.js.map +1 -0
  30. package/dist/route/stsrouterbase.js +21 -0
  31. package/dist/route/stsrouterbase.js.map +1 -0
  32. package/dist/stsexpressserver.js +115 -0
  33. package/dist/stsexpressserver.js.map +1 -0
  34. package/dist/validation/errors.js +10 -0
  35. package/dist/validation/errors.js.map +1 -0
  36. package/dist/vitesttesting/appConfig.js +93 -0
  37. package/dist/vitesttesting/appConfig.js.map +1 -0
  38. package/dist/vitesttesting/appSingleWSS.js +122 -0
  39. package/dist/vitesttesting/appSingleWSS.js.map +1 -0
  40. package/dist/vitesttesting/server.js +15 -0
  41. package/dist/vitesttesting/server.js.map +1 -0
  42. package/dist/vitesttesting/singleservertest.test.js +286 -0
  43. package/dist/vitesttesting/singleservertest.test.js.map +1 -0
  44. package/dist/vitesttesting/wsevents.js +3 -0
  45. package/dist/vitesttesting/wsevents.js.map +1 -0
  46. package/package.json +8 -3
  47. package/.github/dependabot.yml +0 -13
  48. package/.github/workflows/npm-publish.yml +0 -47
  49. package/.gitignore copy +0 -108
  50. package/build.sh +0 -37
  51. package/esbuild.config.js +0 -81
  52. package/eslint.config.mjs +0 -55
  53. package/jest/setEnvVars.js +0 -19
  54. package/keys/server.cert +0 -21
  55. package/keys/server.key +0 -28
  56. package/local-redis-stack.conf +0 -2
  57. package/run-grpc-client.sh +0 -2
  58. package/run-grpc-server.sh +0 -2
  59. package/run1.sh +0 -20
  60. package/run2.sh +0 -20
  61. package/run3.sh +0 -20
  62. package/runc1.sh +0 -19
  63. package/runc2.sh +0 -19
  64. package/runkafka.sh +0 -19
  65. package/runkafkaconsume01.sh +0 -21
  66. package/runkafkaconsume02.sh +0 -21
  67. package/runpromise.sh +0 -5
  68. package/runredis.sh +0 -5
  69. package/runredis1.sh +0 -4
  70. package/runredis2.sh +0 -24
  71. package/runredis3.sh +0 -4
  72. package/runtest1.sh +0 -19
  73. package/runtest2.sh +0 -19
  74. package/runtest_ipc_legacy.sh +0 -19
  75. package/runtest_ipcex.sh +0 -19
  76. package/runtest_redis.sh +0 -19
  77. package/runtest_ww.sh +0 -19
  78. package/src/commonTypes.ts +0 -374
  79. package/src/controller/stscontrollerbase.ts +0 -14
  80. package/src/controller/stslatencycontroller.ts +0 -26
  81. package/src/index.ts +0 -13
  82. package/src/logger/stsTransportLoggerWinston.ts +0 -24
  83. package/src/logger/stsTransportWinston.ts +0 -48
  84. package/src/network.ts +0 -36
  85. package/src/process/masterprocessbase.ts +0 -674
  86. package/src/process/singleprocessbase.ts +0 -63
  87. package/src/route/stslatencyroute.ts +0 -15
  88. package/src/route/stsrouterbase.ts +0 -21
  89. package/src/stsexpressserver.ts +0 -137
  90. package/src/validation/errors.ts +0 -6
  91. package/src/vitesttesting/appConfig.ts +0 -111
  92. package/src/vitesttesting/appSingleWSS.ts +0 -142
  93. package/src/vitesttesting/server.ts +0 -17
  94. package/src/vitesttesting/singleservertest.test.ts +0 -352
  95. package/src/vitesttesting/wsevents.ts +0 -44
  96. package/tsconfig.json +0 -42
  97. package/vite.config.ts +0 -19
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.SingleProcessBase = void 0;
7
+ /* eslint @typescript-eslint/no-explicit-any: 0 */ // --> OFF
8
+ const stsconfig_1 = require("@nsshunt/stsconfig");
9
+ const stsobservability_1 = require("@nsshunt/stsobservability");
10
+ const serverprocessbase_1 = require("./serverprocessbase");
11
+ const systeminformation_1 = __importDefault(require("systeminformation")); // https://systeminformation.io/
12
+ class SingleProcessBase extends serverprocessbase_1.ServerProcessBase {
13
+ /**
14
+ *
15
+ * @param {SingleProcessBaseOptions} options
16
+ */
17
+ constructor(options) {
18
+ super(options);
19
+ }
20
+ CollectAdditionalTelemetry() {
21
+ const siValueObject = {
22
+ currentLoad: 'currentLoad'
23
+ };
24
+ systeminformation_1.default.get(siValueObject).then(data => {
25
+ this.UpdateInstrument(stsobservability_1.Gauge.CPU_SYSTEM_LOAD_GAUGE, {
26
+ val: data.currentLoad.currentLoad
27
+ });
28
+ });
29
+ }
30
+ GetAdditionalInstruments() {
31
+ return [
32
+ [stsobservability_1.Gauge.CPU_SYSTEM_LOAD_GAUGE, stsobservability_1.GaugeTypes.INSTRUMENT_GAUGE, {
33
+ interval: stsconfig_1.goptions.instrumentationObservationInterval,
34
+ sampleSize: stsconfig_1.goptions.instrumentationTimeWindow
35
+ }]
36
+ ];
37
+ }
38
+ /**
39
+ * UIController (instance of UIController) to manage a console based user interface associated for this node application.
40
+ * @returns UIController instance to manage a console based user interface associated for this node application. Null for no capability.
41
+ */
42
+ GetUIController() {
43
+ return null;
44
+ }
45
+ SetupServerEx = async () => {
46
+ await super.SetupServerEx();
47
+ this.LogSystemTelemetry();
48
+ return true;
49
+ };
50
+ async TerminateApplication() {
51
+ await this.Terminate(false, 'SIGINT');
52
+ }
53
+ }
54
+ exports.SingleProcessBase = SingleProcessBase;
55
+ //# sourceMappingURL=singleprocessbase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"singleprocessbase.js","sourceRoot":"","sources":["../../src/process/singleprocessbase.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAkD,CAAE,UAAU;AAC9D,kDAA6C;AAE7C,gEAA+G;AAI/G,2DAAuD;AAEvD,0EAAkC,CAAC,gCAAgC;AAInE,MAAa,iBAAkB,SAAQ,qCAAiB;IAEpD;;;OAGA;IACA,YAAY,OAAuB;QAC/B,KAAK,CAAC,OAAO,CAAC,CAAA;IAClB,CAAC;IAEQ,0BAA0B;QAC/B,MAAM,aAAa,GAAG;YAClB,WAAW,EAAE,aAAa;SAC7B,CAAA;QACD,2BAAE,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC9B,IAAI,CAAC,gBAAgB,CAAC,wBAAK,CAAC,qBAAqB,EAAE;gBAC/C,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW;aACR,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACP,CAAC;IAEQ,wBAAwB;QAC7B,OAAO;YACH,CAAE,wBAAK,CAAC,qBAAqB,EAAE,6BAAU,CAAC,gBAAgB,EAAE;oBACxD,QAAQ,EAAE,oBAAQ,CAAC,kCAAkC;oBACrD,UAAU,EAAE,oBAAQ,CAAC,yBAAyB;iBACvB,CAAC;SAC/B,CAAA;IACL,CAAC;IAED;;;OAGA;IACS,eAAe;QACpB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEQ,aAAa,GAAG,KAAK,IAAsB,EAAE;QAClD,MAAM,KAAK,CAAC,aAAa,EAAE,CAAC;QAE5B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,OAAO,IAAI,CAAC;IAChB,CAAC,CAAA;IAED,KAAK,CAAC,oBAAoB;QACtB,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;CACJ;AAjDD,8CAiDC"}
@@ -1,55 +1,52 @@
1
- /* eslint @typescript-eslint/no-explicit-any: 0 */ // --> OFF
2
- import chalk from 'chalk';
3
-
4
- import { Gauge, InstrumentGaugeTelemetry } from '@nsshunt/stsobservability'
5
- import { JSONObject } from '@nsshunt/stsutils'
6
- import { IPCMessage, IPCMessages, IPCMessagePayload, IPCMessageCommand, IWorkerProcessBase, ProcessOptions } from './../commonTypes'
7
- import { ServerProcessBase } from './serverprocessbase'
8
-
9
- import { v4 as uuidv4 } from 'uuid';
10
-
11
- import { goptions } from '@nsshunt/stsconfig'
12
-
13
- import si from 'systeminformation' // https://systeminformation.io/
14
- import { GetFirstNetworkInterface } from './../network'
15
-
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.WorkerProcessBase = void 0;
7
+ /* eslint @typescript-eslint/no-explicit-any: 0 */ // --> OFF
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const stsobservability_1 = require("@nsshunt/stsobservability");
10
+ const commonTypes_1 = require("./../commonTypes");
11
+ const serverprocessbase_1 = require("./serverprocessbase");
12
+ const uuid_1 = require("uuid");
13
+ const stsconfig_1 = require("@nsshunt/stsconfig");
14
+ const systeminformation_1 = __importDefault(require("systeminformation")); // https://systeminformation.io/
15
+ const network_1 = require("./../network");
16
16
  /**
17
17
  * todo
18
18
  * @typedef {Object} options - todo
19
19
  * @property {boolean} [wssServer=false] - Create a web socket server on this worker instance
20
20
  */
21
- export class WorkerProcessBase extends ServerProcessBase implements IWorkerProcessBase {
22
- #inFlightMessage: IPCMessages = { }
21
+ class WorkerProcessBase extends serverprocessbase_1.ServerProcessBase {
22
+ #inFlightMessage = {};
23
23
  #requestResponseMessageTimeout = 5000; //@@ config
24
- #pingTimeout: NodeJS.Timeout | null = null;
25
-
26
- constructor(options: ProcessOptions) {
24
+ #pingTimeout = null;
25
+ constructor(options) {
27
26
  super(options);
28
27
  }
29
-
30
28
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
31
- ReceivedMessageFromMaster(msg: any) {
29
+ ReceivedMessageFromMaster(msg) {
32
30
  // Override in subclass if required
33
31
  }
34
-
35
- override CollectAdditionalTelemetry(): void {
36
- this.httpServer.getConnections((error: any, count: any) => {
32
+ CollectAdditionalTelemetry() {
33
+ this.httpServer.getConnections((error, count) => {
37
34
  //@@this.instruments[Gauge.CONNECTION_COUNT_GAUGE].val = count;
38
- this.UpdateInstrument(Gauge.CONNECTION_COUNT_GAUGE, {
35
+ this.UpdateInstrument(stsobservability_1.Gauge.CONNECTION_COUNT_GAUGE, {
39
36
  val: count
40
- } as InstrumentGaugeTelemetry);
37
+ });
41
38
  });
42
39
  }
43
-
44
- #SendMessageToParentProcess = (message: IPCMessagePayload): Promise<JSONObject> => {
40
+ #SendMessageToParentProcess = (message) => {
45
41
  return new Promise((resolve, reject) => {
46
42
  if (this.#inFlightMessage[message.id]) {
47
43
  reject(`Message with id: [${message.id}] already exists within the Request/Response record structure`);
48
- } else {
44
+ }
45
+ else {
49
46
  this.#inFlightMessage[message.id] = {
50
47
  iPCMessagePayload: { ...message },
51
48
  cb: () => {
52
- const detail: JSONObject = this.#inFlightMessage[message.id].iPCMessagePayload.responseDetail as JSONObject
49
+ const detail = this.#inFlightMessage[message.id].iPCMessagePayload.responseDetail;
53
50
  clearTimeout(this.#inFlightMessage[message.id].timeout);
54
51
  setTimeout(() => {
55
52
  delete this.#inFlightMessage[message.id];
@@ -66,67 +63,62 @@ export class WorkerProcessBase extends ServerProcessBase implements IWorkerProce
66
63
  }, this.#requestResponseMessageTimeout) // max message timeout allowed
67
64
  };
68
65
  //this.#LogDebugMessage(chalk.yellow(`Sending message with id: [${message.id}] to parent process via IPC. Details: [${JSON.stringify(this.#inFlightMessage[message.id].iPCMessagePayload)}]`));
69
- (process as any).send(message);
66
+ process.send(message);
70
67
  }
71
68
  });
72
- }
73
-
74
-
75
- AddWorker = async (options: any): Promise<string> => {
76
- const workerResponse: JSONObject = await this.#SendMessageToParentProcess({
69
+ };
70
+ AddWorker = async (options) => {
71
+ const workerResponse = await this.#SendMessageToParentProcess({
77
72
  requestResponse: true,
78
- id: uuidv4(),
79
- command: IPCMessageCommand.AddWorker,
73
+ id: (0, uuid_1.v4)(),
74
+ command: commonTypes_1.IPCMessageCommand.AddWorker,
80
75
  requestDetail: {
81
76
  options
82
77
  }
83
78
  });
84
79
  return workerResponse.workerId;
85
- }
86
-
87
- DeleteWorker = async (workerId: string, options: any): Promise<JSONObject> => {
88
- const workerResponse: JSONObject = await this.#SendMessageToParentProcess({
80
+ };
81
+ DeleteWorker = async (workerId, options) => {
82
+ const workerResponse = await this.#SendMessageToParentProcess({
89
83
  requestResponse: true,
90
- id: uuidv4(),
91
- command: IPCMessageCommand.DeleteWorker,
84
+ id: (0, uuid_1.v4)(),
85
+ command: commonTypes_1.IPCMessageCommand.DeleteWorker,
92
86
  requestDetail: {
93
87
  options,
94
88
  workerId
95
89
  }
96
90
  });
97
91
  return workerResponse;
98
- }
99
-
100
- GetMasterProcessOptions = async (): Promise<JSONObject> => {
101
- const parentResponse: JSONObject = await this.#SendMessageToParentProcess({
92
+ };
93
+ GetMasterProcessOptions = async () => {
94
+ const parentResponse = await this.#SendMessageToParentProcess({
102
95
  requestResponse: true,
103
- id: uuidv4(),
104
- command: IPCMessageCommand.GetConfig,
105
- requestDetail: { }
96
+ id: (0, uuid_1.v4)(),
97
+ command: commonTypes_1.IPCMessageCommand.GetConfig,
98
+ requestDetail: {}
106
99
  });
107
100
  return parentResponse;
108
- }
109
-
110
- GetNumCPUs = async (): Promise<number> => {
101
+ };
102
+ GetNumCPUs = async () => {
111
103
  // https://systeminformation.io/
112
104
  const valueObject = {
113
105
  cpu: '*'
114
- }
115
-
116
- const sysinfo = await si.get(valueObject);
106
+ };
107
+ const sysinfo = await systeminformation_1.default.get(valueObject);
117
108
  let numCPUs = 2;
118
- if (goptions.useCPUs > 0) {
119
- if (goptions.useCPUs >= 1) {
120
- numCPUs = goptions.useCPUs;
121
- } else {
122
- numCPUs = Math.round(sysinfo.cpu.cores * goptions.useCPUs);
109
+ if (stsconfig_1.goptions.useCPUs > 0) {
110
+ if (stsconfig_1.goptions.useCPUs >= 1) {
111
+ numCPUs = stsconfig_1.goptions.useCPUs;
123
112
  }
124
- } else {
113
+ else {
114
+ numCPUs = Math.round(sysinfo.cpu.cores * stsconfig_1.goptions.useCPUs);
115
+ }
116
+ }
117
+ else {
125
118
  numCPUs = sysinfo.cpu.physicalCores;
126
119
  }
127
120
  return numCPUs;
128
- }
129
-
121
+ };
130
122
  GetSystemTelemetry = async () => {
131
123
  // https://systeminformation.io/
132
124
  const valueObject = {
@@ -137,21 +129,17 @@ export class WorkerProcessBase extends ServerProcessBase implements IWorkerProce
137
129
  dockerInfo: '*',
138
130
  //dockerImages: '*',
139
131
  dockerContainers: '*',
140
- }
141
-
142
- const sysinfo = await si.get(valueObject);
132
+ };
133
+ const sysinfo = await systeminformation_1.default.get(valueObject);
143
134
  const numCPUs = await this.GetNumCPUs();
144
135
  const hostname = sysinfo.osInfo.hostname;
145
- const hostaddr = GetFirstNetworkInterface();
146
-
147
- const promArray: Promise<any>[] = [ ];
148
-
149
- sysinfo.dockerContainers.forEach((dc: { id: string; }) => {
150
- const dcs = promArray.push(si.dockerContainerStats(dc.id));
136
+ const hostaddr = (0, network_1.GetFirstNetworkInterface)();
137
+ const promArray = [];
138
+ sysinfo.dockerContainers.forEach((dc) => {
139
+ const dcs = promArray.push(systeminformation_1.default.dockerContainerStats(dc.id));
151
140
  console.log(dcs);
152
141
  });
153
142
  const dockerContainerStats = await Promise.all(promArray);
154
-
155
143
  const sysInfo = {
156
144
  serviceInstanceId: this.options.serviceInstanceId,
157
145
  serviceProcessContext: this.options.serviceProcessContext,
@@ -165,56 +153,52 @@ export class WorkerProcessBase extends ServerProcessBase implements IWorkerProce
165
153
  dockerInfo: sysinfo.dockerInfo,
166
154
  dockerContainers: sysinfo.dockerContainers,
167
155
  dockerContainerStats
168
- }
169
-
156
+ };
170
157
  return sysInfo;
171
- }
172
-
173
- override SetupServerEx = async (): Promise<boolean> => {
158
+ };
159
+ SetupServerEx = async () => {
174
160
  await super.SetupServerEx();
175
-
176
- process.on('message', async (msg: any) => {
161
+ process.on('message', async (msg) => {
177
162
  if (msg.requestResponse) {
178
- const iPCMessagePayload: IPCMessagePayload = msg as IPCMessagePayload;
163
+ const iPCMessagePayload = msg;
179
164
  if (iPCMessagePayload.id) {
180
165
  if (this.#inFlightMessage[iPCMessagePayload.id]) {
181
- const responseMessage: IPCMessage = this.#inFlightMessage[iPCMessagePayload.id];
182
- responseMessage.iPCMessagePayload.responseDetail = { ...iPCMessagePayload.responseDetail }
166
+ const responseMessage = this.#inFlightMessage[iPCMessagePayload.id];
167
+ responseMessage.iPCMessagePayload.responseDetail = { ...iPCMessagePayload.responseDetail };
183
168
  responseMessage.cb();
184
- } else {
169
+ }
170
+ else {
185
171
  throw new Error(`Could not find Request/Response message with id: [${iPCMessagePayload.id}]`);
186
172
  }
187
- } else {
173
+ }
174
+ else {
188
175
  throw new Error(`Message does not have id attribute. [${JSON.stringify(iPCMessagePayload)}]`);
189
176
  }
190
177
  return;
191
178
  }
192
179
  if (msg.command) //@@ constants
193
- {
194
- switch (msg.command)
195
- {
196
- case 'Terminate' :
197
- this.LogInfoMessage(chalk.grey(`Received ` + chalk.bold.italic(`Terminate`) + ` message from master thread`));
198
- await this.Terminate(true, false); // Don't kill the child process here, the master will take care of that ...
199
- break;
200
- case 'TerminateAndKill' :
201
- this.LogInfoMessage(chalk.grey(`Received ` + chalk.bold.italic(`Terminate`) + ` message from master thread`));
202
- await this.Terminate(true, true);
203
- break;
204
- case 'Message' :
205
- //this.LogInfoMessage(chalk.grey(`Received ` + chalk.bold.italic(`Message`) + ` message from master thread`));
206
- this.ReceivedMessageFromMaster(msg.data);
207
- break;
208
- case 'Response' : // General response to a req/response interaction
180
+ {
181
+ switch (msg.command) {
182
+ case 'Terminate':
183
+ this.LogInfoMessage(chalk_1.default.grey(`Received ` + chalk_1.default.bold.italic(`Terminate`) + ` message from master thread`));
184
+ await this.Terminate(true, false); // Don't kill the child process here, the master will take care of that ...
185
+ break;
186
+ case 'TerminateAndKill':
187
+ this.LogInfoMessage(chalk_1.default.grey(`Received ` + chalk_1.default.bold.italic(`Terminate`) + ` message from master thread`));
188
+ await this.Terminate(true, true);
189
+ break;
190
+ case 'Message':
191
+ //this.LogInfoMessage(chalk.grey(`Received ` + chalk.bold.italic(`Message`) + ` message from master thread`));
192
+ this.ReceivedMessageFromMaster(msg.data);
193
+ break;
194
+ case 'Response': // General response to a req/response interaction
209
195
  //msg.details
210
196
  }
211
197
  }
212
198
  });
213
-
214
199
  return true;
215
200
  };
216
-
217
- override ProcessTerminate(): Promise<void> {
201
+ ProcessTerminate() {
218
202
  //this.#redisMessageHandler?.off()
219
203
  if (this.#pingTimeout) {
220
204
  clearTimeout(this.#pingTimeout);
@@ -222,3 +206,5 @@ export class WorkerProcessBase extends ServerProcessBase implements IWorkerProce
222
206
  return super.ProcessTerminate();
223
207
  }
224
208
  }
209
+ exports.WorkerProcessBase = WorkerProcessBase;
210
+ //# sourceMappingURL=workerprocessbase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workerprocessbase.js","sourceRoot":"","sources":["../../src/process/workerprocessbase.ts"],"names":[],"mappings":"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"}
@@ -1,42 +1,35 @@
1
- import { ModelDelimeter } from '@nsshunt/stsutils'
2
- import { IServiceProcessContext } from './../commonTypes'
3
-
4
- export class PublishTransportUtils
5
- {
6
- static GetServiceContext(nid: string): IServiceProcessContext {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PublishTransportUtils = void 0;
4
+ const stsutils_1 = require("@nsshunt/stsutils");
5
+ class PublishTransportUtils {
6
+ static GetServiceContext(nid) {
7
7
  // Return null if no context is required
8
8
  //return null;
9
- if (nid === ModelDelimeter.ROOT) {
10
- return { root: ModelDelimeter.ROOT };
9
+ if (nid === stsutils_1.ModelDelimeter.ROOT) {
10
+ return { root: stsutils_1.ModelDelimeter.ROOT };
11
11
  }
12
- const context: IServiceProcessContext = { nid };
13
- const idsplit = nid.split(ModelDelimeter.SEPERATOR);
14
-
12
+ const context = { nid };
13
+ const idsplit = nid.split(stsutils_1.ModelDelimeter.SEPERATOR);
15
14
  const serviceId = idsplit[0];
16
- const serviceInstanceId = idsplit[1].split(ModelDelimeter.NID_SEPERATOR)[0];
17
- const serviceInstanceProcessId = idsplit[1].split(ModelDelimeter.NID_SEPERATOR)[1];
18
-
19
- const serviceIdSplit = serviceId.split(ModelDelimeter.COMPONENT_SEPERATOR);
20
- const serviceName =serviceIdSplit[0]; // Defined in .env or environment variable
15
+ const serviceInstanceId = idsplit[1].split(stsutils_1.ModelDelimeter.NID_SEPERATOR)[0];
16
+ const serviceInstanceProcessId = idsplit[1].split(stsutils_1.ModelDelimeter.NID_SEPERATOR)[1];
17
+ const serviceIdSplit = serviceId.split(stsutils_1.ModelDelimeter.COMPONENT_SEPERATOR);
18
+ const serviceName = serviceIdSplit[0]; // Defined in .env or environment variable
21
19
  const serviceVersion = serviceIdSplit[1]; // Defined in .env or environment variable
22
-
23
20
  context.serviceId = serviceId; // Service name and the service version
24
-
25
21
  if (typeof serviceInstanceId != 'undefined') {
26
- const serviceInstanceIdSplit = serviceInstanceId.split(ModelDelimeter.COMPONENT_SEPERATOR);
22
+ const serviceInstanceIdSplit = serviceInstanceId.split(stsutils_1.ModelDelimeter.COMPONENT_SEPERATOR);
27
23
  const sid = serviceInstanceIdSplit[0];
28
24
  const hostName = serviceInstanceIdSplit[1];
29
-
30
25
  context.serviceInstanceId = serviceInstanceId; // Service unique id and the host name
31
26
  context.sid = sid; // Service unique id only, does not include host
32
27
  context.hostName = hostName; // Service Instance Host Name
33
-
34
28
  if (typeof serviceInstanceProcessId != 'undefined') {
35
- const serviceInstanceProcessIdSplit = serviceInstanceProcessId.split(ModelDelimeter.COMPONENT_SEPERATOR);
29
+ const serviceInstanceProcessIdSplit = serviceInstanceProcessId.split(stsutils_1.ModelDelimeter.COMPONENT_SEPERATOR);
36
30
  const pid = parseInt(serviceInstanceProcessIdSplit[0]);
37
31
  const ppid = parseInt(serviceInstanceProcessIdSplit[1]);
38
32
  const isMaster = (pid === ppid ? true : false);
39
-
40
33
  context.serviceInstanceProcessId = serviceInstanceProcessId; // Service Instance OS Process ID (parent process id)
41
34
  context.pid = pid; // Service Instance OS Process ID (parent process id)
42
35
  context.ppid = ppid; // Service Instance OS Parent Process ID if worker. Will be pid if parent process.
@@ -47,7 +40,8 @@ export class PublishTransportUtils
47
40
  context.serviceInstanceId = serviceInstanceId; // unique service id with host
48
41
  }
49
42
  }
50
-
51
43
  return context;
52
44
  }
53
45
  }
46
+ exports.PublishTransportUtils = PublishTransportUtils;
47
+ //# sourceMappingURL=publishTransportUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publishTransportUtils.js","sourceRoot":"","sources":["../../src/publishertransports/publishTransportUtils.ts"],"names":[],"mappings":";;;AAAA,gDAAkD;AAGlD,MAAa,qBAAqB;IAE9B,MAAM,CAAC,iBAAiB,CAAC,GAAW;QAChC,wCAAwC;QACxC,cAAc;QACd,IAAI,GAAG,KAAK,yBAAc,CAAC,IAAI,EAAE,CAAC;YAC9B,OAAO,EAAE,IAAI,EAAE,yBAAc,CAAC,IAAI,EAAE,CAAC;QACzC,CAAC;QACD,MAAM,OAAO,GAA2B,EAAE,GAAG,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,yBAAc,CAAC,SAAS,CAAC,CAAC;QAEpD,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,iBAAiB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,yBAAc,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,MAAM,wBAAwB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,yBAAc,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnF,MAAM,cAAc,GAAG,SAAS,CAAC,KAAK,CAAC,yBAAc,CAAC,mBAAmB,CAAC,CAAC;QAC3E,MAAM,WAAW,GAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,0CAA0C;QAChF,MAAM,cAAc,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,0CAA0C;QAEpF,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,uCAAuC;QAEtE,IAAI,OAAO,iBAAiB,IAAI,WAAW,EAAE,CAAC;YAC1C,MAAM,sBAAsB,GAAG,iBAAiB,CAAC,KAAK,CAAC,yBAAc,CAAC,mBAAmB,CAAC,CAAC;YAC3F,MAAM,GAAG,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,QAAQ,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC;YAE3C,OAAO,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,CAAC,sCAAsC;YACrF,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,gDAAgD;YACnE,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,6BAA6B;YAE1D,IAAI,OAAO,wBAAwB,IAAI,WAAW,EAAE,CAAC;gBACjD,MAAM,6BAA6B,GAAG,wBAAwB,CAAC,KAAK,CAAC,yBAAc,CAAC,mBAAmB,CAAC,CAAC;gBACzG,MAAM,GAAG,GAAG,QAAQ,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvD,MAAM,IAAI,GAAG,QAAQ,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxD,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAE/C,OAAO,CAAC,wBAAwB,GAAG,wBAAwB,CAAC,CAAC,qDAAqD;gBAClH,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,qDAAqD;gBACxE,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,kFAAkF;gBACvG,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,4BAA4B;gBACzD,OAAO,CAAC,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC,4BAA4B;gBAC1D,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC,0CAA0C;gBAC7E,OAAO,CAAC,cAAc,GAAG,cAAc,CAAC,CAAC,0CAA0C;gBACnF,OAAO,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,CAAC,8BAA8B;YACjF,CAAC;QACL,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ;AAjDD,sDAiDC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.STSLatencyRoute = void 0;
4
+ const stsrouterbase_1 = require("./stsrouterbase");
5
+ const stslatencycontroller_1 = require("./../controller/stslatencycontroller");
6
+ class STSLatencyRoute extends stsrouterbase_1.STSRouterBase {
7
+ constructor(stsApp) {
8
+ super(stsApp);
9
+ const latencyController = new stslatencycontroller_1.STSLatencyController(stsApp);
10
+ const { stslatency } = latencyController;
11
+ this.router.get('/latency', stslatency.bind(latencyController)); // Create new test
12
+ }
13
+ }
14
+ exports.STSLatencyRoute = STSLatencyRoute;
15
+ //# sourceMappingURL=stslatencyroute.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stslatencyroute.js","sourceRoot":"","sources":["../../src/route/stslatencyroute.ts"],"names":[],"mappings":";;;AAAA,mDAA+C;AAC/C,+EAA2E;AAG3E,MAAa,eAAgB,SAAQ,6BAAa;IAC9C,YAAY,MAAoB;QAE5B,KAAK,CAAC,MAAM,CAAC,CAAC;QAEd,MAAM,iBAAiB,GAAG,IAAI,2CAAoB,CAAC,MAAM,CAAC,CAAC;QAC3D,MAAM,EAAE,UAAU,EAAE,GAAG,iBAAiB,CAAC;QAEzC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,kBAAkB;IACvF,CAAC;CACJ;AAVD,0CAUC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.STSRouterBase = void 0;
4
+ /* eslint @typescript-eslint/no-explicit-any: 0 */ // --> OFF
5
+ const express_1 = require("express");
6
+ class STSRouterBase {
7
+ #router;
8
+ #stsApp;
9
+ constructor(stsApp) {
10
+ this.#stsApp = stsApp;
11
+ this.#router = (0, express_1.Router)();
12
+ }
13
+ get router() {
14
+ return this.#router;
15
+ }
16
+ get stsApp() {
17
+ return this.#stsApp;
18
+ }
19
+ }
20
+ exports.STSRouterBase = STSRouterBase;
21
+ //# sourceMappingURL=stsrouterbase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stsrouterbase.js","sourceRoot":"","sources":["../../src/route/stsrouterbase.ts"],"names":[],"mappings":";;;AAAA,kDAAkD,CAAE,UAAU;AAC9D,qCAAiC;AAGjC,MAAsB,aAAa;IAC/B,OAAO,CAAS;IAChB,OAAO,CAAM;IAEb,YAAY,MAAoB;QAC5B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,IAAA,gBAAM,GAAE,CAAC;IAC5B,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,OAAO,CAAA;IACvB,CAAC;CACJ;AAhBD,sCAgBC"}
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.STSExpressServer = void 0;
7
+ /* eslint @typescript-eslint/no-explicit-any: 0, @typescript-eslint/no-unused-vars: 0 */ // --> OFF
8
+ const express_1 = __importDefault(require("express"));
9
+ const cors_1 = __importDefault(require("cors"));
10
+ const cookie_parser_1 = __importDefault(require("cookie-parser"));
11
+ const stsobservability_1 = require("@nsshunt/stsobservability");
12
+ const stsconfig_1 = require("@nsshunt/stsconfig");
13
+ const stsobservability_2 = require("@nsshunt/stsobservability");
14
+ const serverNetworkMiddleware_1 = require("./middleware/serverNetworkMiddleware");
15
+ class STSExpressServer {
16
+ #app;
17
+ constructor(options, stsApp) {
18
+ // Standard RequestLoggerMiddleware for all STS services
19
+ const requestLoggerMiddleware = new stsobservability_1.RequestLoggerMiddleware({
20
+ ignoresocketio: stsconfig_1.goptions.ignoresocketio
21
+ });
22
+ const serverNetworkMiddleware = new serverNetworkMiddleware_1.ServerNetworkMiddleware({
23
+ name: stsApp.options.serviceName,
24
+ outputDebug: false,
25
+ logger: stsApp.options?.logger
26
+ });
27
+ serverNetworkMiddleware.on(serverNetworkMiddleware_1.ServerNetworkMiddlewareEventName.UpdateInstrument_SERVER_NET_VAL, (data) => {
28
+ //this.#LogInfoMessage(chalk.magenta(`serverNetworkMiddleware: [${JSON.stringify(data)}]`));
29
+ stsApp.UpdateInstrument(stsobservability_2.Gauge.NETWORK_RX_GAUGE, {
30
+ Inc: data.requestBytesRead
31
+ });
32
+ stsApp.UpdateInstrument(stsobservability_2.Gauge.NETWORK_TX_GAUGE, {
33
+ Inc: data.requestBytesWritten
34
+ });
35
+ });
36
+ requestLoggerMiddleware.on(stsobservability_1.RequestLoggerMiddlewareEventName.UpdateInstrument_AR_INC, () => {
37
+ stsApp.UpdateInstrument(stsobservability_2.Gauge.ACTIVE_REQUEST_GAUGE, {
38
+ Inc: 1
39
+ });
40
+ });
41
+ requestLoggerMiddleware.on(stsobservability_1.RequestLoggerMiddlewareEventName.UpdateInstrument_AR_DEC, () => {
42
+ stsApp.UpdateInstrument(stsobservability_2.Gauge.ACTIVE_REQUEST_GAUGE, {
43
+ Dec: 1
44
+ });
45
+ });
46
+ requestLoggerMiddleware.on(stsobservability_1.RequestLoggerMiddlewareEventName.UpdateInstrument_DH_VAL, (timeInMs) => {
47
+ stsApp.UpdateInstrument(stsobservability_2.Gauge.DURATION_HISTOGRAM_GAUGE, {
48
+ val: timeInMs
49
+ });
50
+ });
51
+ requestLoggerMiddleware.on(stsobservability_1.RequestLoggerMiddlewareEventName.UpdateInstrument_D_VAL, (timeInMs) => {
52
+ stsApp.UpdateInstrument(stsobservability_2.Gauge.DURATION_GAUGE, {
53
+ val: timeInMs
54
+ });
55
+ });
56
+ requestLoggerMiddleware.on(stsobservability_1.RequestLoggerMiddlewareEventName.UpdateInstrument_RC_INC, () => {
57
+ stsApp.UpdateInstrument(stsobservability_2.Gauge.REQUEST_COUNT_GAUGE, {
58
+ Inc: 1
59
+ });
60
+ });
61
+ requestLoggerMiddleware.on(stsobservability_1.RequestLoggerMiddlewareEventName.UpdateInstrument_V_INC, () => {
62
+ if (stsApp.InstrumentExists(stsobservability_2.Gauge.VELOCITY_GAUGE)) {
63
+ stsApp.UpdateInstrument(stsobservability_2.Gauge.VELOCITY_GAUGE, {
64
+ Inc: 1
65
+ });
66
+ }
67
+ });
68
+ const app = (0, express_1.default)();
69
+ this.#app = app;
70
+ // https://stackoverflow.com/questions/19743396/cors-cannot-use-wildcard-in-access-control-allow-origin-when-credentials-flag-i
71
+ // See answer from Christoph Hansen is thread above ...
72
+ // https://expressjs.com/en/resources/middleware/cors.html
73
+ const corsConfig = {
74
+ credentials: true,
75
+ origin: true,
76
+ };
77
+ app.use((0, cors_1.default)(corsConfig));
78
+ app.use((0, cookie_parser_1.default)());
79
+ app.use(express_1.default.urlencoded({ extended: false, limit: stsconfig_1.goptions.maxPayloadSize }));
80
+ app.use(express_1.default.json({ limit: stsconfig_1.goptions.maxPayloadSize }));
81
+ // Allow the static SPA to also be servered by this app
82
+ //app.use('/static', express.static(path.join(__dirname, 'public')))
83
+ if (options.expressServerRouteStaticFactory) {
84
+ options.expressServerRouteStaticFactory(app, stsApp);
85
+ }
86
+ app.use(requestLoggerMiddleware.Middleware.bind(requestLoggerMiddleware));
87
+ app.use(serverNetworkMiddleware.Middleware.bind(serverNetworkMiddleware));
88
+ if (options.expressServerRouteFactory) {
89
+ options.expressServerRouteFactory(app, stsApp);
90
+ }
91
+ // Express error handling fall-back
92
+ app.use(function (err, req, res, next) {
93
+ //@@ add to errors metric here - perhaps break down by type
94
+ if (err) {
95
+ //@@this.#LogInfoMessage(err);
96
+ res.status(err.status).send(err);
97
+ }
98
+ else {
99
+ next();
100
+ }
101
+ /*
102
+ if(err.name === 'UnauthorizedError') {
103
+ res.status(401).send(err);
104
+ } else {
105
+ next();
106
+ }
107
+ */
108
+ });
109
+ }
110
+ get App() {
111
+ return this.#app;
112
+ }
113
+ }
114
+ exports.STSExpressServer = STSExpressServer;
115
+ //# sourceMappingURL=stsexpressserver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stsexpressserver.js","sourceRoot":"","sources":["../src/stsexpressserver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AppFrameworkErrorCode = void 0;
4
+ exports.AppFrameworkErrorCode = Object.freeze({
5
+ APPFRAMEWORK_MISSING_PERMISSION: {
6
+ code: 'STS_AF_0001',
7
+ description: 'STS_AF_0001: Missing Permission(s).'
8
+ },
9
+ });
10
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/validation/errors.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC/C,+BAA+B,EAAE;QAC7B,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,qCAAqC;KACrD;CACJ,CAAC,CAAC"}