@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.
- package/dist/commonTypes.js +69 -0
- package/dist/commonTypes.js.map +1 -0
- package/dist/controller/stscontrollerbase.js +14 -0
- package/dist/controller/stscontrollerbase.js.map +1 -0
- package/dist/controller/stslatencycontroller.js +28 -0
- package/dist/controller/stslatencycontroller.js.map +1 -0
- package/dist/index.js.map +1 -0
- package/dist/logger/stsTransportLoggerWinston.js +22 -0
- package/dist/logger/stsTransportLoggerWinston.js.map +1 -0
- package/dist/logger/stsTransportWinston.js +43 -0
- package/dist/logger/stsTransportWinston.js.map +1 -0
- package/{src/middleware/serverNetworkMiddleware.ts → dist/middleware/serverNetworkMiddleware.js} +80 -124
- package/dist/middleware/serverNetworkMiddleware.js.map +1 -0
- package/dist/network.js +38 -0
- package/dist/network.js.map +1 -0
- package/dist/process/masterprocessbase.js +558 -0
- package/dist/process/masterprocessbase.js.map +1 -0
- package/{src/process/processbase.ts → dist/process/processbase.js} +150 -222
- package/dist/process/processbase.js.map +1 -0
- package/{src/process/serverprocessbase.ts → dist/process/serverprocessbase.js} +158 -212
- package/dist/process/serverprocessbase.js.map +1 -0
- package/dist/process/singleprocessbase.js +55 -0
- package/dist/process/singleprocessbase.js.map +1 -0
- package/{src/process/workerprocessbase.ts → dist/process/workerprocessbase.js} +93 -107
- package/dist/process/workerprocessbase.js.map +1 -0
- package/{src/publishertransports/publishTransportUtils.ts → dist/publishertransports/publishTransportUtils.js} +18 -24
- package/dist/publishertransports/publishTransportUtils.js.map +1 -0
- package/dist/route/stslatencyroute.js +15 -0
- package/dist/route/stslatencyroute.js.map +1 -0
- package/dist/route/stsrouterbase.js +21 -0
- package/dist/route/stsrouterbase.js.map +1 -0
- package/dist/stsexpressserver.js +115 -0
- package/dist/stsexpressserver.js.map +1 -0
- package/dist/validation/errors.js +10 -0
- package/dist/validation/errors.js.map +1 -0
- package/dist/vitesttesting/appConfig.js +93 -0
- package/dist/vitesttesting/appConfig.js.map +1 -0
- package/dist/vitesttesting/appSingleWSS.js +122 -0
- package/dist/vitesttesting/appSingleWSS.js.map +1 -0
- package/dist/vitesttesting/server.js +15 -0
- package/dist/vitesttesting/server.js.map +1 -0
- package/dist/vitesttesting/singleservertest.test.js +286 -0
- package/dist/vitesttesting/singleservertest.test.js.map +1 -0
- package/dist/vitesttesting/wsevents.js +3 -0
- package/dist/vitesttesting/wsevents.js.map +1 -0
- package/package.json +8 -3
- package/.github/dependabot.yml +0 -13
- package/.github/workflows/npm-publish.yml +0 -47
- package/.gitignore copy +0 -108
- package/build.sh +0 -37
- package/esbuild.config.js +0 -81
- package/eslint.config.mjs +0 -55
- package/jest/setEnvVars.js +0 -19
- package/keys/server.cert +0 -21
- package/keys/server.key +0 -28
- package/local-redis-stack.conf +0 -2
- package/run-grpc-client.sh +0 -2
- package/run-grpc-server.sh +0 -2
- package/run1.sh +0 -20
- package/run2.sh +0 -20
- package/run3.sh +0 -20
- package/runc1.sh +0 -19
- package/runc2.sh +0 -19
- package/runkafka.sh +0 -19
- package/runkafkaconsume01.sh +0 -21
- package/runkafkaconsume02.sh +0 -21
- package/runpromise.sh +0 -5
- package/runredis.sh +0 -5
- package/runredis1.sh +0 -4
- package/runredis2.sh +0 -24
- package/runredis3.sh +0 -4
- package/runtest1.sh +0 -19
- package/runtest2.sh +0 -19
- package/runtest_ipc_legacy.sh +0 -19
- package/runtest_ipcex.sh +0 -19
- package/runtest_redis.sh +0 -19
- package/runtest_ww.sh +0 -19
- package/src/commonTypes.ts +0 -374
- package/src/controller/stscontrollerbase.ts +0 -14
- package/src/controller/stslatencycontroller.ts +0 -26
- package/src/index.ts +0 -13
- package/src/logger/stsTransportLoggerWinston.ts +0 -24
- package/src/logger/stsTransportWinston.ts +0 -48
- package/src/network.ts +0 -36
- package/src/process/masterprocessbase.ts +0 -674
- package/src/process/singleprocessbase.ts +0 -63
- package/src/route/stslatencyroute.ts +0 -15
- package/src/route/stsrouterbase.ts +0 -21
- package/src/stsexpressserver.ts +0 -137
- package/src/validation/errors.ts +0 -6
- package/src/vitesttesting/appConfig.ts +0 -111
- package/src/vitesttesting/appSingleWSS.ts +0 -142
- package/src/vitesttesting/server.ts +0 -17
- package/src/vitesttesting/singleservertest.test.ts +0 -352
- package/src/vitesttesting/wsevents.ts +0 -44
- package/tsconfig.json +0 -42
- 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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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
|
-
|
|
22
|
-
#inFlightMessage
|
|
21
|
+
class WorkerProcessBase extends serverprocessbase_1.ServerProcessBase {
|
|
22
|
+
#inFlightMessage = {};
|
|
23
23
|
#requestResponseMessageTimeout = 5000; //@@ config
|
|
24
|
-
#pingTimeout
|
|
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
|
|
29
|
+
ReceivedMessageFromMaster(msg) {
|
|
32
30
|
// Override in subclass if required
|
|
33
31
|
}
|
|
34
|
-
|
|
35
|
-
|
|
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
|
-
}
|
|
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
|
-
}
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
49
46
|
this.#inFlightMessage[message.id] = {
|
|
50
47
|
iPCMessagePayload: { ...message },
|
|
51
48
|
cb: () => {
|
|
52
|
-
const detail
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
101
|
-
const parentResponse: JSONObject = await this.#SendMessageToParentProcess({
|
|
92
|
+
};
|
|
93
|
+
GetMasterProcessOptions = async () => {
|
|
94
|
+
const parentResponse = await this.#SendMessageToParentProcess({
|
|
102
95
|
requestResponse: true,
|
|
103
|
-
id:
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
163
|
+
const iPCMessagePayload = msg;
|
|
179
164
|
if (iPCMessagePayload.id) {
|
|
180
165
|
if (this.#inFlightMessage[iPCMessagePayload.id]) {
|
|
181
|
-
const responseMessage
|
|
182
|
-
responseMessage.iPCMessagePayload.responseDetail = { ...iPCMessagePayload.responseDetail }
|
|
166
|
+
const responseMessage = this.#inFlightMessage[iPCMessagePayload.id];
|
|
167
|
+
responseMessage.iPCMessagePayload.responseDetail = { ...iPCMessagePayload.responseDetail };
|
|
183
168
|
responseMessage.cb();
|
|
184
|
-
}
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
185
171
|
throw new Error(`Could not find Request/Response message with id: [${iPCMessagePayload.id}]`);
|
|
186
172
|
}
|
|
187
|
-
}
|
|
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
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
{
|
|
6
|
-
static GetServiceContext(nid
|
|
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
|
|
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
|
|
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"}
|