@nsshunt/stsappframework 3.3.184 → 4.0.1
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/README.md +300 -319
- package/dist/commonTypes.js +1 -12
- package/dist/commonTypes.js.map +1 -1
- package/dist/exampleapp/app.js +238 -0
- package/dist/exampleapp/app.js.map +1 -0
- package/dist/index.js +11 -7
- package/dist/index.js.map +1 -1
- package/dist/logger/stsTransportLoggerSocket.js +5 -0
- package/dist/logger/stsTransportLoggerSocket.js.map +1 -1
- package/dist/{process → plugins}/clusterworkermanager.js +37 -36
- package/dist/plugins/clusterworkermanager.js.map +1 -0
- package/dist/plugins/pgpoolmanager.js +186 -0
- package/dist/plugins/pgpoolmanager.js.map +1 -0
- package/dist/{process → plugins}/servertypes/serverUtils.js.map +1 -1
- package/dist/{process → plugins}/servertypes/stsexpressserver.js +44 -19
- package/dist/plugins/servertypes/stsexpressserver.js.map +1 -0
- package/dist/{process → plugins}/servertypes/stsjsonrpcserver.js +2 -3
- package/dist/plugins/servertypes/stsjsonrpcserver.js.map +1 -0
- package/dist/{process → plugins}/servertypes/stsserverfactory.js +2 -2
- package/dist/plugins/servertypes/stsserverfactory.js.map +1 -0
- package/dist/{process → plugins}/servertypes/ststcprawserver.js +2 -2
- package/dist/plugins/servertypes/ststcprawserver.js.map +1 -0
- package/dist/plugins/stsclusterworkermanagerplugin.js +54 -0
- package/dist/plugins/stsclusterworkermanagerplugin.js.map +1 -0
- package/dist/plugins/stsconfigplugin.js +16 -0
- package/dist/plugins/stsconfigplugin.js.map +1 -0
- package/dist/plugins/stsexpresscontrollerplugin.js +47 -0
- package/dist/plugins/stsexpresscontrollerplugin.js.map +1 -0
- package/dist/plugins/stsinstrumentmanagerplugin.js +102 -0
- package/dist/plugins/stsinstrumentmanagerplugin.js.map +1 -0
- package/dist/plugins/stslatencymanager.js +122 -0
- package/dist/plugins/stslatencymanager.js.map +1 -0
- package/dist/plugins/stslatencyplugin.js +29 -0
- package/dist/plugins/stslatencyplugin.js.map +1 -0
- package/dist/plugins/stslifecycleplugin.js +48 -0
- package/dist/plugins/stslifecycleplugin.js.map +1 -0
- package/dist/plugins/stsloggerplugin.js +60 -0
- package/dist/plugins/stsloggerplugin.js.map +1 -0
- package/dist/{process/metrics.js → plugins/stsmetricsplugin.js} +33 -9
- package/dist/plugins/stsmetricsplugin.js.map +1 -0
- package/dist/plugins/stspgpoolmanagerplugin.js +67 -0
- package/dist/plugins/stspgpoolmanagerplugin.js.map +1 -0
- package/dist/plugins/stsserverplugin.js +89 -0
- package/dist/plugins/stsserverplugin.js.map +1 -0
- package/dist/route/stsrootroute.js +10 -0
- package/dist/route/stsrootroute.js.map +1 -0
- package/dist/stsapp.js +190 -0
- package/dist/stsapp.js.map +1 -0
- package/package.json +16 -23
- package/types/commonTypes.d.ts +28 -203
- package/types/commonTypes.d.ts.map +1 -1
- package/types/exampleapp/app.d.ts +2 -0
- package/types/exampleapp/app.d.ts.map +1 -0
- package/types/index.d.ts +11 -7
- package/types/index.d.ts.map +1 -1
- package/types/logger/stsTransportLoggerSocket.d.ts +1 -0
- package/types/logger/stsTransportLoggerSocket.d.ts.map +1 -1
- package/types/{process → plugins}/clusterworkermanager.d.ts +5 -1
- package/types/plugins/clusterworkermanager.d.ts.map +1 -0
- package/types/plugins/pgpoolmanager.d.ts +34 -0
- package/types/plugins/pgpoolmanager.d.ts.map +1 -0
- package/types/{process → plugins}/servertypes/serverUtils.d.ts.map +1 -1
- package/types/plugins/servertypes/stsexpressserver.d.ts +22 -0
- package/types/plugins/servertypes/stsexpressserver.d.ts.map +1 -0
- package/types/{process → plugins}/servertypes/stsjsonrpcserver.d.ts +1 -9
- package/types/plugins/servertypes/stsjsonrpcserver.d.ts.map +1 -0
- package/types/{process → plugins}/servertypes/stsserverfactory.d.ts +2 -4
- package/types/plugins/servertypes/stsserverfactory.d.ts.map +1 -0
- package/types/{process → plugins}/servertypes/ststcprawserver.d.ts +1 -9
- package/types/plugins/servertypes/ststcprawserver.d.ts.map +1 -0
- package/types/plugins/stsclusterworkermanagerplugin.d.ts +16 -0
- package/types/plugins/stsclusterworkermanagerplugin.d.ts.map +1 -0
- package/types/plugins/stsconfigplugin.d.ts +10 -0
- package/types/plugins/stsconfigplugin.d.ts.map +1 -0
- package/types/plugins/stsexpresscontrollerplugin.d.ts +25 -0
- package/types/plugins/stsexpresscontrollerplugin.d.ts.map +1 -0
- package/types/plugins/stsinstrumentmanagerplugin.d.ts +31 -0
- package/types/plugins/stsinstrumentmanagerplugin.d.ts.map +1 -0
- package/types/plugins/stslatencymanager.d.ts +24 -0
- package/types/plugins/stslatencymanager.d.ts.map +1 -0
- package/types/plugins/stslatencyplugin.d.ts +12 -0
- package/types/plugins/stslatencyplugin.d.ts.map +1 -0
- package/types/plugins/stslifecycleplugin.d.ts +25 -0
- package/types/plugins/stslifecycleplugin.d.ts.map +1 -0
- package/types/plugins/stsloggerplugin.d.ts +19 -0
- package/types/plugins/stsloggerplugin.d.ts.map +1 -0
- package/types/{process/metrics.d.ts → plugins/stsmetricsplugin.d.ts} +12 -5
- package/types/plugins/stsmetricsplugin.d.ts.map +1 -0
- package/types/plugins/stspgpoolmanagerplugin.d.ts +14 -0
- package/types/plugins/stspgpoolmanagerplugin.d.ts.map +1 -0
- package/types/plugins/stsserverplugin.d.ts +16 -0
- package/types/plugins/stsserverplugin.d.ts.map +1 -0
- package/types/route/stsrootroute.d.ts +5 -0
- package/types/route/stsrootroute.d.ts.map +1 -0
- package/types/stsapp.d.ts +16 -0
- package/types/stsapp.d.ts.map +1 -0
- package/dist/grpc/grpcServer.js +0 -415
- package/dist/grpc/grpcServer.js.map +0 -1
- package/dist/process/clusterworkermanager.js.map +0 -1
- package/dist/process/datamanager.js +0 -78
- package/dist/process/datamanager.js.map +0 -1
- package/dist/process/latencyManager.js +0 -56
- package/dist/process/latencyManager.js.map +0 -1
- package/dist/process/logManager.js +0 -36
- package/dist/process/logManager.js.map +0 -1
- package/dist/process/masterprocessbase.js +0 -154
- package/dist/process/masterprocessbase.js.map +0 -1
- package/dist/process/metrics.js.map +0 -1
- package/dist/process/processbase.js +0 -203
- package/dist/process/processbase.js.map +0 -1
- package/dist/process/prometheusmanager.js +0 -112
- package/dist/process/prometheusmanager.js.map +0 -1
- package/dist/process/serverprocessbase.js +0 -204
- package/dist/process/serverprocessbase.js.map +0 -1
- package/dist/process/servertypes/stsexpressserver.js.map +0 -1
- package/dist/process/servertypes/stsjsonrpcserver.js.map +0 -1
- package/dist/process/servertypes/stsserverfactory.js.map +0 -1
- package/dist/process/servertypes/ststcprawserver.js.map +0 -1
- package/dist/process/singleprocessbase.js +0 -48
- package/dist/process/singleprocessbase.js.map +0 -1
- package/dist/process/sysinfo.js +0 -56
- package/dist/process/sysinfo.js.map +0 -1
- package/dist/process/workerprocessbase.js +0 -35
- package/dist/process/workerprocessbase.js.map +0 -1
- package/dist/publishertransports/publishTransportUtils.js +0 -43
- package/dist/publishertransports/publishTransportUtils.js.map +0 -1
- package/dist/sysinfo/network.js +0 -31
- package/dist/sysinfo/network.js.map +0 -1
- package/dist/validation/errors.js +0 -7
- package/dist/validation/errors.js.map +0 -1
- package/types/grpc/grpcServer.d.ts +0 -31
- package/types/grpc/grpcServer.d.ts.map +0 -1
- package/types/process/clusterworkermanager.d.ts.map +0 -1
- package/types/process/datamanager.d.ts +0 -15
- package/types/process/datamanager.d.ts.map +0 -1
- package/types/process/latencyManager.d.ts +0 -10
- package/types/process/latencyManager.d.ts.map +0 -1
- package/types/process/logManager.d.ts +0 -9
- package/types/process/logManager.d.ts.map +0 -1
- package/types/process/masterprocessbase.d.ts +0 -13
- package/types/process/masterprocessbase.d.ts.map +0 -1
- package/types/process/metrics.d.ts.map +0 -1
- package/types/process/processbase.d.ts +0 -19
- package/types/process/processbase.d.ts.map +0 -1
- package/types/process/prometheusmanager.d.ts +0 -10
- package/types/process/prometheusmanager.d.ts.map +0 -1
- package/types/process/serverprocessbase.d.ts +0 -18
- package/types/process/serverprocessbase.d.ts.map +0 -1
- package/types/process/servertypes/stsexpressserver.d.ts +0 -34
- package/types/process/servertypes/stsexpressserver.d.ts.map +0 -1
- package/types/process/servertypes/stsjsonrpcserver.d.ts.map +0 -1
- package/types/process/servertypes/stsserverfactory.d.ts.map +0 -1
- package/types/process/servertypes/ststcprawserver.d.ts.map +0 -1
- package/types/process/singleprocessbase.d.ts +0 -14
- package/types/process/singleprocessbase.d.ts.map +0 -1
- package/types/process/sysinfo.d.ts +0 -8
- package/types/process/sysinfo.d.ts.map +0 -1
- package/types/process/workerprocessbase.d.ts +0 -8
- package/types/process/workerprocessbase.d.ts.map +0 -1
- package/types/publishertransports/publishTransportUtils.d.ts +0 -5
- package/types/publishertransports/publishTransportUtils.d.ts.map +0 -1
- package/types/sysinfo/network.d.ts +0 -4
- package/types/sysinfo/network.d.ts.map +0 -1
- package/types/validation/errors.d.ts +0 -7
- package/types/validation/errors.d.ts.map +0 -1
- /package/dist/{process → plugins}/servertypes/serverUtils.js +0 -0
- /package/types/{process → plugins}/servertypes/serverUtils.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stsinstrumentmanagerplugin.js","sourceRoot":"","sources":["../../src/plugins/stsinstrumentmanagerplugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/* eslint @typescript-eslint/no-explicit-any: 0, @typescript-eslint/no-unused-vars: 0 */ // --> OFF
|
|
2
|
+
import { inject } from "@nsshunt/stsutils";
|
|
3
|
+
import { createAgentManager } from "@nsshunt/stsutils";
|
|
4
|
+
import { STSConfigPluginToken } from "./stsconfigplugin.js";
|
|
5
|
+
import { STSLoggerPluginToken } from "./stsloggerplugin.js";
|
|
6
|
+
import axios from "axios";
|
|
7
|
+
import chalk from "chalk";
|
|
8
|
+
import { Gauge, } from "@nsshunt/stsobservability";
|
|
9
|
+
import http from "node:http";
|
|
10
|
+
import https from "node:https";
|
|
11
|
+
import { STSAxiosConfig } from "@nsshunt/stsutils";
|
|
12
|
+
import { STSMetricsPluginToken } from "./stsmetricsplugin.js";
|
|
13
|
+
import { STSLifeCyclePluginToken } from "./stslifecycleplugin.js";
|
|
14
|
+
export class STSLatencyManager {
|
|
15
|
+
logger = inject(STSLoggerPluginToken);
|
|
16
|
+
config = inject(STSConfigPluginToken);
|
|
17
|
+
metrics = inject(STSMetricsPluginToken);
|
|
18
|
+
lifeCycle = inject(STSLifeCyclePluginToken);
|
|
19
|
+
latency;
|
|
20
|
+
agentManager;
|
|
21
|
+
options;
|
|
22
|
+
LATENCY_CHECK_TIME = 1000;
|
|
23
|
+
constructor(latencyManagerOptions) {
|
|
24
|
+
this.options = latencyManagerOptions;
|
|
25
|
+
}
|
|
26
|
+
Start = async () => {
|
|
27
|
+
this.logger.info(`${process.pid} STSLatencyPlugin: Start() Starting ...`);
|
|
28
|
+
this.agentManager = this._CreateAgentManager();
|
|
29
|
+
this._CheckLatency();
|
|
30
|
+
this.logger.info(`${process.pid} STSLatencyPlugin: Start() Started`);
|
|
31
|
+
};
|
|
32
|
+
Stop = async () => {
|
|
33
|
+
this.logger.info(`${process.pid} STSLatencyPlugin: Stop() Stopping ...`);
|
|
34
|
+
if (this.latency) {
|
|
35
|
+
clearTimeout(this.latency);
|
|
36
|
+
this.latency = undefined;
|
|
37
|
+
}
|
|
38
|
+
if (this.agentManager) {
|
|
39
|
+
this.agentManager?.Terminate();
|
|
40
|
+
this.agentManager = undefined;
|
|
41
|
+
}
|
|
42
|
+
this.logger.info(`${process.pid} STSLatencyPlugin: Stop() Stopped`);
|
|
43
|
+
};
|
|
44
|
+
_NotRunning = () => {
|
|
45
|
+
this.logger.debug(chalk.rgb(250, 100, 200)(`STSLatencyPlugin:_CheckLatency(): app no longer running. Will no longer check latency.`));
|
|
46
|
+
};
|
|
47
|
+
_CheckLatency = async () => {
|
|
48
|
+
this.latency = setTimeout(async () => {
|
|
49
|
+
if (this.lifeCycle.running()) {
|
|
50
|
+
const start = process.hrtime();
|
|
51
|
+
await this._GetLatency();
|
|
52
|
+
if (this.lifeCycle.running()) {
|
|
53
|
+
this._LatencyRequestCompleted(start);
|
|
54
|
+
this._CheckLatency();
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
this._NotRunning();
|
|
59
|
+
}, this.LATENCY_CHECK_TIME).unref();
|
|
60
|
+
};
|
|
61
|
+
_GetLatency = async () => {
|
|
62
|
+
if (!this.agentManager) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
if (!this.options) {
|
|
66
|
+
throw new Error("STSLatencyPlugin requires options");
|
|
67
|
+
}
|
|
68
|
+
const { endpoint, port, apiRoot } = this.options;
|
|
69
|
+
let retVal = null;
|
|
70
|
+
// We use port rather than hostport becuase this test going outside the service and comes back in as a regular client
|
|
71
|
+
const url = `${endpoint}:${port}${apiRoot}/latency`;
|
|
72
|
+
try {
|
|
73
|
+
retVal = await axios(new STSAxiosConfig(url, "get")
|
|
74
|
+
.withDefaultHeaders()
|
|
75
|
+
.withAgentManager(this.agentManager).config);
|
|
76
|
+
if (retVal.status !== 200) {
|
|
77
|
+
this.logger.debug(chalk.magenta(`Error (MasterProcessBase:#GetLatency): Invalid response from server: [${retVal.status}]`));
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
return retVal.data.detail;
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
this.logger.debug(chalk.red(`Error (MasterProcessBase:#GetLatency:catch): [${error}]`));
|
|
84
|
+
this.logger.debug(chalk.red(` url: [${url}]`));
|
|
85
|
+
if (error.response && error.response.data) {
|
|
86
|
+
this.logger.debug(chalk.red(` Details: [${JSON.stringify(error.response.data)}]`));
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
_LatencyRequestCompleted = (start) => {
|
|
91
|
+
// Update request duration histo data
|
|
92
|
+
let timeInMs = 0;
|
|
93
|
+
const end = process.hrtime(start);
|
|
94
|
+
timeInMs = (end[0] * 1000000000 + end[1]) / 1000000;
|
|
95
|
+
timeInMs = parseFloat(timeInMs.toFixed(4));
|
|
96
|
+
this.metrics.UpdateInstrument(Gauge.LATENCY_HISTOGRAM_GAUGE, {
|
|
97
|
+
val: timeInMs,
|
|
98
|
+
});
|
|
99
|
+
this.metrics.UpdateInstrument(Gauge.LATENCY_GAUGE, {
|
|
100
|
+
val: timeInMs,
|
|
101
|
+
});
|
|
102
|
+
};
|
|
103
|
+
_CreateAgentManager = () => {
|
|
104
|
+
return createAgentManager({
|
|
105
|
+
agentOptions: {
|
|
106
|
+
keepAlive: false, // Use basic defaults. This agent will not use keep-alive.
|
|
107
|
+
maxFreeSockets: this.config.maxFreeSockets,
|
|
108
|
+
maxSockets: this.config.maxSockets,
|
|
109
|
+
maxTotalSockets: this.config.maxTotalSockets,
|
|
110
|
+
timeout: this.config.timeout,
|
|
111
|
+
rejectUnauthorized: this.config.isProduction, // Allows self-signed certificates if non-production
|
|
112
|
+
},
|
|
113
|
+
httpAgentFactory(options) {
|
|
114
|
+
return new http.Agent(options);
|
|
115
|
+
},
|
|
116
|
+
httpsAgentFactory(options) {
|
|
117
|
+
return new https.Agent(options);
|
|
118
|
+
},
|
|
119
|
+
});
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=stslatencymanager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stslatencymanager.js","sourceRoot":"","sources":["../../src/plugins/stslatencymanager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { inject, InjectionToken } from "@nsshunt/stsutils";
|
|
2
|
+
import { STSLoggerPluginToken } from "./stsloggerplugin.js";
|
|
3
|
+
import { STSLatencyManager, } from "./stslatencymanager.js";
|
|
4
|
+
export const STSLatencyPluginToken = new InjectionToken("__STSPlugin__Latency");
|
|
5
|
+
export class STSLatencyPlugin {
|
|
6
|
+
logger = inject(STSLoggerPluginToken);
|
|
7
|
+
latencyManager;
|
|
8
|
+
install = (injector, options) => {
|
|
9
|
+
if (!options) {
|
|
10
|
+
throw new Error("STSLatencyPlugin requires options");
|
|
11
|
+
}
|
|
12
|
+
this.latencyManager = new STSLatencyManager(options);
|
|
13
|
+
injector.register({
|
|
14
|
+
provide: STSLatencyPluginToken,
|
|
15
|
+
useValue: this.latencyManager,
|
|
16
|
+
});
|
|
17
|
+
};
|
|
18
|
+
Start = async () => {
|
|
19
|
+
this.logger.info(`${process.pid} STSLatencyPlugin: Start() Starting ...`);
|
|
20
|
+
await this.latencyManager?.Start();
|
|
21
|
+
this.logger.info(`${process.pid} STSLatencyPlugin: Start() Started`);
|
|
22
|
+
};
|
|
23
|
+
Stop = async () => {
|
|
24
|
+
this.logger.info(`${process.pid} STSLatencyPlugin: Stop() Stopping ...`);
|
|
25
|
+
await this.latencyManager?.Stop();
|
|
26
|
+
this.logger.info(`${process.pid} STSLatencyPlugin: Stop() Stopped`);
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=stslatencyplugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stslatencyplugin.js","sourceRoot":"","sources":["../../src/plugins/stslatencyplugin.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAY,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EACH,iBAAiB,GAEpB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,cAAc,CACnD,sBAAsB,CACzB,CAAC;AAEF,MAAM,OAAO,gBAAgB;IACR,MAAM,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAE/C,cAAc,CAAqB;IAE3C,OAAO,GAAG,CACN,QAAkB,EAClB,OAAkC,EAC9B,EAAE;QACN,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAErD,QAAQ,CAAC,QAAQ,CAAC;YACd,OAAO,EAAE,qBAAqB;YAC9B,QAAQ,EAAE,IAAI,CAAC,cAAc;SAChC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,KAAK,GAAG,KAAK,IAAI,EAAE;QACf,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,GAAG,OAAO,CAAC,GAAG,yCAAyC,CAC1D,CAAC;QAEF,MAAM,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,CAAC;QAEnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,oCAAoC,CAAC,CAAC;IACzE,CAAC,CAAC;IAEF,IAAI,GAAG,KAAK,IAAI,EAAE;QACd,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,GAAG,OAAO,CAAC,GAAG,wCAAwC,CACzD,CAAC;QAEF,MAAM,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC;QAElC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,mCAAmC,CAAC,CAAC;IACxE,CAAC,CAAC;CACL"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/* eslint @typescript-eslint/no-explicit-any: 0, @typescript-eslint/no-unused-vars: 0 */ // --> OFF
|
|
2
|
+
import { InjectionToken } from "@nsshunt/stsutils";
|
|
3
|
+
import { inject } from "@nsshunt/stsutils";
|
|
4
|
+
import { STSLoggerPluginToken } from "./stsloggerplugin.js";
|
|
5
|
+
export const STSLifeCyclePluginToken = new InjectionToken("__STSPlugin__LifeCycle");
|
|
6
|
+
export var ISTSLifeCycleState;
|
|
7
|
+
(function (ISTSLifeCycleState) {
|
|
8
|
+
ISTSLifeCycleState[ISTSLifeCycleState["initial"] = 0] = "initial";
|
|
9
|
+
ISTSLifeCycleState[ISTSLifeCycleState["starting"] = 1] = "starting";
|
|
10
|
+
ISTSLifeCycleState[ISTSLifeCycleState["started"] = 2] = "started";
|
|
11
|
+
ISTSLifeCycleState[ISTSLifeCycleState["stopping"] = 3] = "stopping";
|
|
12
|
+
ISTSLifeCycleState[ISTSLifeCycleState["stopped"] = 4] = "stopped";
|
|
13
|
+
})(ISTSLifeCycleState || (ISTSLifeCycleState = {}));
|
|
14
|
+
export class STSLifeCycleManager {
|
|
15
|
+
_state = ISTSLifeCycleState.initial;
|
|
16
|
+
get state() {
|
|
17
|
+
return this._state;
|
|
18
|
+
}
|
|
19
|
+
set state(state) {
|
|
20
|
+
this._state = state;
|
|
21
|
+
}
|
|
22
|
+
running = () => {
|
|
23
|
+
if (this._state === ISTSLifeCycleState.started) {
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
return false;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
// STSOptions
|
|
30
|
+
export class STSLifeCyclePlugin {
|
|
31
|
+
logger = inject(STSLoggerPluginToken);
|
|
32
|
+
lifeCycle = new STSLifeCycleManager();
|
|
33
|
+
install = (injector) => {
|
|
34
|
+
injector.register({
|
|
35
|
+
provide: STSLifeCyclePluginToken,
|
|
36
|
+
useValue: this.lifeCycle,
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
Start = async () => {
|
|
40
|
+
this.logger.info(`${process.pid} STSLifeCyclePlugin: Start() Starting ...`);
|
|
41
|
+
this.logger.info(`${process.pid} STSLifeCyclePlugin: Start() Started`);
|
|
42
|
+
};
|
|
43
|
+
Stop = async () => {
|
|
44
|
+
this.logger.info(`${process.pid} STSLifeCyclePlugin: Stop() Stopping ...`);
|
|
45
|
+
this.logger.info(`${process.pid} STSLifeCyclePlugin: Stop() Stopped`);
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=stslifecycleplugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stslifecycleplugin.js","sourceRoot":"","sources":["../../src/plugins/stslifecycleplugin.ts"],"names":[],"mappings":"AAAA,wFAAwF,CAAC,UAAU;AACnG,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAY,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,cAAc,CACrD,wBAAwB,CAC3B,CAAC;AAEF,MAAM,CAAN,IAAY,kBAMX;AAND,WAAY,kBAAkB;IAC1B,iEAAS,CAAA;IACT,mEAAU,CAAA;IACV,iEAAS,CAAA;IACT,mEAAU,CAAA;IACV,iEAAS,CAAA;AACb,CAAC,EANW,kBAAkB,KAAlB,kBAAkB,QAM7B;AAED,MAAM,OAAO,mBAAmB;IACpB,MAAM,GAAuB,kBAAkB,CAAC,OAAO,CAAC;IAEhE,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,IAAI,KAAK,CAAC,KAAyB;QAC/B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,OAAO,GAAG,GAAY,EAAE;QACpB,IAAI,IAAI,CAAC,MAAM,KAAK,kBAAkB,CAAC,OAAO,EAAE,CAAC;YAC7C,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC;CACL;AAED,aAAa;AACb,MAAM,OAAO,kBAAkB;IACV,MAAM,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACtC,SAAS,GAAwB,IAAI,mBAAmB,EAAE,CAAC;IAE5E,OAAO,GAAG,CAAC,QAAkB,EAAQ,EAAE;QACnC,QAAQ,CAAC,QAAQ,CAAC;YACd,OAAO,EAAE,uBAAuB;YAChC,QAAQ,EAAE,IAAI,CAAC,SAAS;SAC3B,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,KAAK,GAAG,KAAK,IAAI,EAAE;QACf,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,GAAG,OAAO,CAAC,GAAG,2CAA2C,CAC5D,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,sCAAsC,CAAC,CAAC;IAC3E,CAAC,CAAC;IAEF,IAAI,GAAG,KAAK,IAAI,EAAE;QACd,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,GAAG,OAAO,CAAC,GAAG,0CAA0C,CAC3D,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,qCAAqC,CAAC,CAAC;IAC1E,CAAC,CAAC;CACL"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { Sleep, InjectionToken } from "@nsshunt/stsutils";
|
|
2
|
+
import winston from "winston";
|
|
3
|
+
import { defaultLogger } from "@nsshunt/stsutils";
|
|
4
|
+
import { STSTransportLoggerSocket } from "./../logger/stsTransportLoggerSocket.js";
|
|
5
|
+
export const STSLoggerPluginToken = new InjectionToken("__STSPlugin__Logger");
|
|
6
|
+
export class STSLoggerPlugin {
|
|
7
|
+
options;
|
|
8
|
+
logger;
|
|
9
|
+
_GetLoggerRooms = (serviceInstanceId) => {
|
|
10
|
+
const room_service = `logs_${this.options.serviceName}_${this.options.serviceVersion}`;
|
|
11
|
+
const room_service_instance = `${room_service}_${serviceInstanceId}`;
|
|
12
|
+
return [room_service_instance, room_service];
|
|
13
|
+
};
|
|
14
|
+
install = (injector, options) => {
|
|
15
|
+
if (!options) {
|
|
16
|
+
throw new Error("STSLoggerPlugin requires options");
|
|
17
|
+
}
|
|
18
|
+
this.options = options;
|
|
19
|
+
this.logger = winston.createLogger({
|
|
20
|
+
level: "debug",
|
|
21
|
+
format: winston.format.combine(winston.format.colorize(), winston.format.simple()),
|
|
22
|
+
transports: [
|
|
23
|
+
new winston.transports.Console(),
|
|
24
|
+
new STSTransportLoggerSocket({
|
|
25
|
+
logger: defaultLogger,
|
|
26
|
+
rooms: this._GetLoggerRooms(this.options.serviceInstanceId),
|
|
27
|
+
}),
|
|
28
|
+
],
|
|
29
|
+
});
|
|
30
|
+
injector.register({
|
|
31
|
+
provide: STSLoggerPluginToken,
|
|
32
|
+
useValue: this.logger,
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
Start = async () => {
|
|
36
|
+
console.log(`${process.pid} STSLoggerPlugin: Start(): [${this.options.name}] Starting ...`);
|
|
37
|
+
await Sleep(1000);
|
|
38
|
+
console.log(`${process.pid} STSLoggerPlugin: Start(): [${this.options.name}] Started`);
|
|
39
|
+
};
|
|
40
|
+
Stop = async () => {
|
|
41
|
+
console.log(`${process.pid} STSLoggerPlugin: Stop(): [${this.options.name}] Stopping ...`);
|
|
42
|
+
try {
|
|
43
|
+
if (this.logger) {
|
|
44
|
+
console.log(`${process.pid} STSLoggerPlugin: Stop(): close() winston`);
|
|
45
|
+
await Sleep(500);
|
|
46
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
47
|
+
this.logger.close();
|
|
48
|
+
console.log(`${process.pid} STSLoggerPlugin: Stop(): Adding console logger for final log output`);
|
|
49
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
50
|
+
this.logger.add(new winston.transports.Console());
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
console.error(error);
|
|
55
|
+
}
|
|
56
|
+
await Sleep(100);
|
|
57
|
+
console.log(`${process.pid} STSLoggerPlugin: Stop(): [${this.options.name}] Stopped`);
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=stsloggerplugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stsloggerplugin.js","sourceRoot":"","sources":["../../src/plugins/stsloggerplugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import { InjectionToken } from "@nsshunt/stsutils";
|
|
2
2
|
import pidusage from "pidusage";
|
|
3
3
|
import { memoryUsage } from "process";
|
|
4
4
|
import cluster from "node:cluster";
|
|
@@ -6,17 +6,30 @@ import chalk from "chalk";
|
|
|
6
6
|
import { Gauge, } from "@nsshunt/stsobservability";
|
|
7
7
|
import { goptions } from "@nsshunt/stsconfig";
|
|
8
8
|
import { inject } from "@nsshunt/stsutils";
|
|
9
|
-
import {
|
|
10
|
-
|
|
9
|
+
import { STSInstrumentControllerPluginToken } from "./stsinstrumentmanagerplugin.js";
|
|
10
|
+
import { STSLoggerPluginToken } from "./stsloggerplugin.js";
|
|
11
|
+
import { STSTransportLoggerWinston } from "./../logger/stsTransportLoggerWinston.js";
|
|
12
|
+
export const STSMetricsPluginToken = new InjectionToken("__STSPlugin__Metrics");
|
|
13
|
+
export class STSMetricsPlugin {
|
|
11
14
|
systemInformationInterval = null;
|
|
12
|
-
publishInstrumentController = inject(
|
|
13
|
-
logger = inject(
|
|
14
|
-
options = inject(ProcessOptionsToken);
|
|
15
|
+
publishInstrumentController = inject(STSInstrumentControllerPluginToken);
|
|
16
|
+
logger = inject(STSLoggerPluginToken);
|
|
15
17
|
metricsProvider = [];
|
|
18
|
+
options;
|
|
16
19
|
constructor() {
|
|
17
20
|
this.metricsProvider.push(this.#CalcCPULoad);
|
|
18
21
|
this.metricsProvider.push(this.#CalcMemoryUsage);
|
|
19
22
|
}
|
|
23
|
+
install = (injector, options) => {
|
|
24
|
+
if (!options) {
|
|
25
|
+
throw new Error("STSMetricsPlugin requires options");
|
|
26
|
+
}
|
|
27
|
+
this.options = options;
|
|
28
|
+
injector.register({
|
|
29
|
+
provide: STSMetricsPluginToken,
|
|
30
|
+
useValue: this,
|
|
31
|
+
});
|
|
32
|
+
};
|
|
20
33
|
#GetFormattedLogMessage(message) {
|
|
21
34
|
let prefix = "";
|
|
22
35
|
let col = null;
|
|
@@ -35,10 +48,21 @@ export class Metrics {
|
|
|
35
48
|
#LogWarnMessage(message) {
|
|
36
49
|
this.logger?.warn(this.#GetFormattedLogMessage(message));
|
|
37
50
|
}
|
|
38
|
-
Start = () => {
|
|
51
|
+
Start = async () => {
|
|
52
|
+
try {
|
|
53
|
+
// If we have a logger, add a winston logger transport to that logger we are using from these metrics
|
|
54
|
+
if (this.logger) {
|
|
55
|
+
const transport = new STSTransportLoggerWinston(this);
|
|
56
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
57
|
+
this.logger.add(transport);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
console.error(error);
|
|
62
|
+
}
|
|
39
63
|
this.#MainLoop();
|
|
40
64
|
};
|
|
41
|
-
Stop = () => {
|
|
65
|
+
Stop = async () => {
|
|
42
66
|
if (this.systemInformationInterval) {
|
|
43
67
|
clearTimeout(this.systemInformationInterval);
|
|
44
68
|
}
|
|
@@ -97,4 +121,4 @@ export class Metrics {
|
|
|
97
121
|
});
|
|
98
122
|
};
|
|
99
123
|
}
|
|
100
|
-
//# sourceMappingURL=
|
|
124
|
+
//# sourceMappingURL=stsmetricsplugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stsmetricsplugin.js","sourceRoot":"","sources":["../../src/plugins/stsmetricsplugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/* eslint @typescript-eslint/no-explicit-any: 0, @typescript-eslint/no-unused-vars: 0 */ // --> OFF
|
|
2
|
+
import { InjectionToken } from "@nsshunt/stsutils";
|
|
3
|
+
import { inject } from "@nsshunt/stsutils";
|
|
4
|
+
import { STSLoggerPluginToken } from "./stsloggerplugin.js";
|
|
5
|
+
import { PGPoolManager, } from "./pgpoolmanager.js";
|
|
6
|
+
export const STSPGPoolManagerPluginToken = new InjectionToken("__STSPlugin__PGPoolManager");
|
|
7
|
+
export class STSPGPoolManagerPlugin {
|
|
8
|
+
logger = inject(STSLoggerPluginToken);
|
|
9
|
+
PGPoolManager;
|
|
10
|
+
install = (injector, options) => {
|
|
11
|
+
if (!options) {
|
|
12
|
+
throw new Error("STSPGPoolManagerPlugin requires options");
|
|
13
|
+
}
|
|
14
|
+
this.PGPoolManager = new PGPoolManager(options);
|
|
15
|
+
injector.register({
|
|
16
|
+
provide: STSPGPoolManagerPluginToken,
|
|
17
|
+
useValue: this.PGPoolManager,
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
async GetResourceCount(resources) {
|
|
21
|
+
try {
|
|
22
|
+
let query = "";
|
|
23
|
+
if (resources) {
|
|
24
|
+
query = `select count(*) from stsresource`;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
query = `select count(*) from stsentity e join stsresource r on e.resourceoid = r.oid`;
|
|
28
|
+
}
|
|
29
|
+
const client = await this.PGPoolManager.GetReadOnlyPoolClient();
|
|
30
|
+
try {
|
|
31
|
+
const { rows } = await client.query(query);
|
|
32
|
+
const dbResponse = rows[0];
|
|
33
|
+
return {
|
|
34
|
+
detail: parseInt(dbResponse.count), //@@ needs to be number
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
console.error(error);
|
|
39
|
+
}
|
|
40
|
+
finally {
|
|
41
|
+
client.release();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
console.error(error);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
Start = async () => {
|
|
49
|
+
this.logger.info(`${process.pid} STSPGPoolManagerPlugin: Start(): Starting ...`);
|
|
50
|
+
try {
|
|
51
|
+
this.PGPoolManager?.Start();
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
this.logger.error(`${process.pid} STSServerPlugin: Start() Error: [${error}]`);
|
|
55
|
+
}
|
|
56
|
+
const resourceCount = await this.GetResourceCount(true);
|
|
57
|
+
const entityCount = await this.GetResourceCount(false);
|
|
58
|
+
this.logger.info(`resourceCount: [${JSON.stringify(resourceCount)}] entityCount: [${JSON.stringify(entityCount)}]`);
|
|
59
|
+
this.logger.info(`${process.pid} STSPGPoolManagerPlugin: Start(): Started`);
|
|
60
|
+
};
|
|
61
|
+
Stop = async () => {
|
|
62
|
+
this.logger.info(`${process.pid} STSPGPoolManagerPlugin: Stop() Stopping ...`);
|
|
63
|
+
await this.PGPoolManager?.Stop();
|
|
64
|
+
this.logger.info(`${process.pid} STSPGPoolManagerPlugin: Stop() Stopped`);
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=stspgpoolmanagerplugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stspgpoolmanagerplugin.js","sourceRoot":"","sources":["../../src/plugins/stspgpoolmanagerplugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/* eslint @typescript-eslint/no-explicit-any: 0, @typescript-eslint/no-unused-vars: 0 */ // --> OFF
|
|
2
|
+
import { InjectionToken } from "@nsshunt/stsutils";
|
|
3
|
+
import { goptions } from "@nsshunt/stsconfig";
|
|
4
|
+
import { inject } from "@nsshunt/stsutils";
|
|
5
|
+
import { CreateSTSServer } from "./servertypes/stsserverfactory.js";
|
|
6
|
+
import { Gauge } from "@nsshunt/stsobservability";
|
|
7
|
+
import { STSMetricsPluginToken } from "./stsmetricsplugin.js";
|
|
8
|
+
import { STSLoggerPluginToken } from "./stsloggerplugin.js";
|
|
9
|
+
export const STSServerPluginToken = new InjectionToken("__STSPlugin__Server");
|
|
10
|
+
// STSOptions
|
|
11
|
+
export class STSServerPlugin {
|
|
12
|
+
metrics = inject(STSMetricsPluginToken);
|
|
13
|
+
logger = inject(STSLoggerPluginToken);
|
|
14
|
+
options;
|
|
15
|
+
#CORE_DOMAIN = "stscore.stsmda.org";
|
|
16
|
+
server;
|
|
17
|
+
install = (injector, options) => {
|
|
18
|
+
if (!options) {
|
|
19
|
+
throw new Error("STSServerPlugin requires options");
|
|
20
|
+
}
|
|
21
|
+
this.options = options;
|
|
22
|
+
this.server = this.#SetupSTSServer();
|
|
23
|
+
/*
|
|
24
|
+
//@@ Need a better way of doing this
|
|
25
|
+
const transport = new STSTransportLoggerWinston(
|
|
26
|
+
this.metrics as IMetrics
|
|
27
|
+
);
|
|
28
|
+
(this.options.logger as any).add(transport);
|
|
29
|
+
*/
|
|
30
|
+
injector.register({
|
|
31
|
+
provide: STSServerPluginToken,
|
|
32
|
+
useValue: this.server,
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
//@@ may not be working ...
|
|
36
|
+
Start = async () => {
|
|
37
|
+
this.logger.info(`${process.pid} STSServerPlugin: Start() Starting ...`);
|
|
38
|
+
try {
|
|
39
|
+
this.server
|
|
40
|
+
?.GetHttpServer()
|
|
41
|
+
?.getConnections((error, count) => {
|
|
42
|
+
this.metrics?.UpdateInstrument(Gauge.CONNECTION_COUNT_GAUGE, {
|
|
43
|
+
val: count,
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
this.logger.error(`${process.pid} STSServerPlugin: Start() Error: [${error}]`);
|
|
49
|
+
}
|
|
50
|
+
this.logger.info(`${process.pid} STSServerPlugin: Start() Started ...`);
|
|
51
|
+
};
|
|
52
|
+
Stop = async () => {
|
|
53
|
+
this.logger.info(`${process.pid} STSServerPlugin: Stop() Stopping ...`);
|
|
54
|
+
console.log(process.pid, "SERVER CLOSE START");
|
|
55
|
+
await this.server?.Stop();
|
|
56
|
+
console.log(process.pid, "SERVER CLOSE COMPLETE");
|
|
57
|
+
this.logger.info(`${process.pid} STSServerPlugin: Stop() Stopped`);
|
|
58
|
+
};
|
|
59
|
+
#SetupSTSServer = () => {
|
|
60
|
+
switch (goptions.STSServerType) {
|
|
61
|
+
case "EXPRESS":
|
|
62
|
+
this.options.useTls = false;
|
|
63
|
+
return CreateSTSServer({
|
|
64
|
+
serverType: "EXPRESS",
|
|
65
|
+
options: this.options,
|
|
66
|
+
});
|
|
67
|
+
case "EXPRESS_TLS":
|
|
68
|
+
this.options.useTls = true;
|
|
69
|
+
return CreateSTSServer({
|
|
70
|
+
serverType: "EXPRESS_TLS",
|
|
71
|
+
options: this.options,
|
|
72
|
+
});
|
|
73
|
+
case "TCPRAW_TLS":
|
|
74
|
+
return CreateSTSServer({
|
|
75
|
+
serverType: "TCPRAW_TLS",
|
|
76
|
+
options: this.options,
|
|
77
|
+
});
|
|
78
|
+
case "JSONRPC2_TLS":
|
|
79
|
+
return CreateSTSServer({
|
|
80
|
+
serverType: "JSONRPC2_TLS",
|
|
81
|
+
options: this.options,
|
|
82
|
+
});
|
|
83
|
+
case "NONE":
|
|
84
|
+
return undefined;
|
|
85
|
+
}
|
|
86
|
+
throw new Error(`SetupSTSServer(): Unknown server type: [${goptions.STSServerType}]`);
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=stsserverplugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stsserverplugin.js","sourceRoot":"","sources":["../../src/plugins/stsserverplugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { STSLatencyController } from "./../controller/stslatencycontroller.js";
|
|
2
|
+
import { Router } from "express";
|
|
3
|
+
export class STSRootRoute {
|
|
4
|
+
router = Router();
|
|
5
|
+
constructor() {
|
|
6
|
+
const latencyController = new STSLatencyController();
|
|
7
|
+
this.router.get("/", latencyController.stslatency);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=stsrootroute.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stsrootroute.js","sourceRoot":"","sources":["../../src/route/stsrootroute.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,MAAM,OAAO,YAAY;IACZ,MAAM,GAAG,MAAM,EAAE,CAAC;IAE3B;QACI,MAAM,iBAAiB,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAErD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACvD,CAAC;CACJ"}
|