@nsshunt/stsappframework 3.3.186 → 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.
Files changed (189) hide show
  1. package/dist/commonTypes.js +1 -12
  2. package/dist/commonTypes.js.map +1 -1
  3. package/dist/exampleapp/app.js +238 -0
  4. package/dist/exampleapp/app.js.map +1 -0
  5. package/dist/index.js +11 -7
  6. package/dist/index.js.map +1 -1
  7. package/dist/logger/stsTransportLoggerSocket.js +0 -1
  8. package/dist/logger/stsTransportLoggerSocket.js.map +1 -1
  9. package/dist/{process → plugins}/clusterworkermanager.js +37 -36
  10. package/dist/plugins/clusterworkermanager.js.map +1 -0
  11. package/dist/plugins/pgpoolmanager.js +186 -0
  12. package/dist/plugins/pgpoolmanager.js.map +1 -0
  13. package/dist/{process → plugins}/servertypes/serverUtils.js.map +1 -1
  14. package/dist/{process → plugins}/servertypes/stsexpressserver.js +44 -19
  15. package/dist/plugins/servertypes/stsexpressserver.js.map +1 -0
  16. package/dist/{process → plugins}/servertypes/stsjsonrpcserver.js +2 -3
  17. package/dist/plugins/servertypes/stsjsonrpcserver.js.map +1 -0
  18. package/dist/{process → plugins}/servertypes/stsserverfactory.js +2 -2
  19. package/dist/plugins/servertypes/stsserverfactory.js.map +1 -0
  20. package/dist/{process → plugins}/servertypes/ststcprawserver.js +2 -2
  21. package/dist/plugins/servertypes/ststcprawserver.js.map +1 -0
  22. package/dist/plugins/stsclusterworkermanagerplugin.js +54 -0
  23. package/dist/plugins/stsclusterworkermanagerplugin.js.map +1 -0
  24. package/dist/{process/plugins → plugins}/stsconfigplugin.js +2 -2
  25. package/dist/plugins/stsconfigplugin.js.map +1 -0
  26. package/dist/plugins/stsexpresscontrollerplugin.js +47 -0
  27. package/dist/plugins/stsexpresscontrollerplugin.js.map +1 -0
  28. package/dist/{process/plugins/stsmetricsplugin.js → plugins/stsinstrumentmanagerplugin.js} +36 -23
  29. package/dist/plugins/stsinstrumentmanagerplugin.js.map +1 -0
  30. package/dist/plugins/stslatencymanager.js +122 -0
  31. package/dist/plugins/stslatencymanager.js.map +1 -0
  32. package/dist/plugins/stslatencyplugin.js +29 -0
  33. package/dist/plugins/stslatencyplugin.js.map +1 -0
  34. package/dist/plugins/stslifecycleplugin.js +48 -0
  35. package/dist/plugins/stslifecycleplugin.js.map +1 -0
  36. package/dist/plugins/stsloggerplugin.js +60 -0
  37. package/dist/plugins/stsloggerplugin.js.map +1 -0
  38. package/dist/{process/metrics.js → plugins/stsmetricsplugin.js} +33 -9
  39. package/dist/plugins/stsmetricsplugin.js.map +1 -0
  40. package/dist/plugins/stspgpoolmanagerplugin.js +67 -0
  41. package/dist/plugins/stspgpoolmanagerplugin.js.map +1 -0
  42. package/dist/plugins/stsserverplugin.js +89 -0
  43. package/dist/plugins/stsserverplugin.js.map +1 -0
  44. package/dist/route/stsrootroute.js +10 -0
  45. package/dist/route/stsrootroute.js.map +1 -0
  46. package/dist/stsapp.js +190 -0
  47. package/dist/stsapp.js.map +1 -0
  48. package/package.json +15 -22
  49. package/types/commonTypes.d.ts +28 -203
  50. package/types/commonTypes.d.ts.map +1 -1
  51. package/types/exampleapp/app.d.ts +2 -0
  52. package/types/exampleapp/app.d.ts.map +1 -0
  53. package/types/index.d.ts +11 -7
  54. package/types/index.d.ts.map +1 -1
  55. package/types/logger/stsTransportLoggerSocket.d.ts.map +1 -1
  56. package/types/{process → plugins}/clusterworkermanager.d.ts +5 -1
  57. package/types/plugins/clusterworkermanager.d.ts.map +1 -0
  58. package/types/plugins/pgpoolmanager.d.ts +34 -0
  59. package/types/plugins/pgpoolmanager.d.ts.map +1 -0
  60. package/types/{process → plugins}/servertypes/serverUtils.d.ts.map +1 -1
  61. package/types/plugins/servertypes/stsexpressserver.d.ts +22 -0
  62. package/types/plugins/servertypes/stsexpressserver.d.ts.map +1 -0
  63. package/types/{process → plugins}/servertypes/stsjsonrpcserver.d.ts +1 -9
  64. package/types/plugins/servertypes/stsjsonrpcserver.d.ts.map +1 -0
  65. package/types/{process → plugins}/servertypes/stsserverfactory.d.ts +2 -4
  66. package/types/plugins/servertypes/stsserverfactory.d.ts.map +1 -0
  67. package/types/{process → plugins}/servertypes/ststcprawserver.d.ts +1 -9
  68. package/types/plugins/servertypes/ststcprawserver.d.ts.map +1 -0
  69. package/types/plugins/stsclusterworkermanagerplugin.d.ts +16 -0
  70. package/types/plugins/stsclusterworkermanagerplugin.d.ts.map +1 -0
  71. package/types/{process/plugins → plugins}/stsconfigplugin.d.ts +1 -1
  72. package/types/plugins/stsconfigplugin.d.ts.map +1 -0
  73. package/types/plugins/stsexpresscontrollerplugin.d.ts +25 -0
  74. package/types/plugins/stsexpresscontrollerplugin.d.ts.map +1 -0
  75. package/types/plugins/stsinstrumentmanagerplugin.d.ts +31 -0
  76. package/types/plugins/stsinstrumentmanagerplugin.d.ts.map +1 -0
  77. package/types/plugins/stslatencymanager.d.ts +24 -0
  78. package/types/plugins/stslatencymanager.d.ts.map +1 -0
  79. package/types/plugins/stslatencyplugin.d.ts +12 -0
  80. package/types/plugins/stslatencyplugin.d.ts.map +1 -0
  81. package/types/plugins/stslifecycleplugin.d.ts +25 -0
  82. package/types/plugins/stslifecycleplugin.d.ts.map +1 -0
  83. package/types/plugins/stsloggerplugin.d.ts +19 -0
  84. package/types/plugins/stsloggerplugin.d.ts.map +1 -0
  85. package/types/{process/metrics.d.ts → plugins/stsmetricsplugin.d.ts} +12 -5
  86. package/types/plugins/stsmetricsplugin.d.ts.map +1 -0
  87. package/types/plugins/stspgpoolmanagerplugin.d.ts +14 -0
  88. package/types/plugins/stspgpoolmanagerplugin.d.ts.map +1 -0
  89. package/types/plugins/stsserverplugin.d.ts +16 -0
  90. package/types/plugins/stsserverplugin.d.ts.map +1 -0
  91. package/types/route/stsrootroute.d.ts +5 -0
  92. package/types/route/stsrootroute.d.ts.map +1 -0
  93. package/types/{process/stsapp.d.ts → stsapp.d.ts} +6 -2
  94. package/types/stsapp.d.ts.map +1 -0
  95. package/dist/grpc/grpcServer.js +0 -415
  96. package/dist/grpc/grpcServer.js.map +0 -1
  97. package/dist/process/appConfig.js +0 -103
  98. package/dist/process/appConfig.js.map +0 -1
  99. package/dist/process/clusterworkermanager.js.map +0 -1
  100. package/dist/process/datamanager.js +0 -78
  101. package/dist/process/datamanager.js.map +0 -1
  102. package/dist/process/latencyManager.js +0 -56
  103. package/dist/process/latencyManager.js.map +0 -1
  104. package/dist/process/logManager.js +0 -36
  105. package/dist/process/logManager.js.map +0 -1
  106. package/dist/process/masterprocessbase.js +0 -154
  107. package/dist/process/masterprocessbase.js.map +0 -1
  108. package/dist/process/metrics.js.map +0 -1
  109. package/dist/process/plugins/plugintypes.js +0 -2
  110. package/dist/process/plugins/plugintypes.js.map +0 -1
  111. package/dist/process/plugins/stsconfigplugin.js.map +0 -1
  112. package/dist/process/plugins/stsloggerplugin.js +0 -26
  113. package/dist/process/plugins/stsloggerplugin.js.map +0 -1
  114. package/dist/process/plugins/stsmetricsplugin.js.map +0 -1
  115. package/dist/process/plugins/ststestplugin.js +0 -26
  116. package/dist/process/plugins/ststestplugin.js.map +0 -1
  117. package/dist/process/processbase.js +0 -203
  118. package/dist/process/processbase.js.map +0 -1
  119. package/dist/process/prometheusmanager.js +0 -112
  120. package/dist/process/prometheusmanager.js.map +0 -1
  121. package/dist/process/server.js +0 -4
  122. package/dist/process/server.js.map +0 -1
  123. package/dist/process/serverprocessbase.js +0 -204
  124. package/dist/process/serverprocessbase.js.map +0 -1
  125. package/dist/process/servertypes/stsexpressserver.js.map +0 -1
  126. package/dist/process/servertypes/stsjsonrpcserver.js.map +0 -1
  127. package/dist/process/servertypes/stsserverfactory.js.map +0 -1
  128. package/dist/process/servertypes/ststcprawserver.js.map +0 -1
  129. package/dist/process/singleprocessbase.js +0 -48
  130. package/dist/process/singleprocessbase.js.map +0 -1
  131. package/dist/process/stsapp.js +0 -48
  132. package/dist/process/stsapp.js.map +0 -1
  133. package/dist/process/sysinfo.js +0 -56
  134. package/dist/process/sysinfo.js.map +0 -1
  135. package/dist/process/workerprocessbase.js +0 -35
  136. package/dist/process/workerprocessbase.js.map +0 -1
  137. package/dist/publishertransports/publishTransportUtils.js +0 -43
  138. package/dist/publishertransports/publishTransportUtils.js.map +0 -1
  139. package/dist/sysinfo/network.js +0 -31
  140. package/dist/sysinfo/network.js.map +0 -1
  141. package/types/grpc/grpcServer.d.ts +0 -31
  142. package/types/grpc/grpcServer.d.ts.map +0 -1
  143. package/types/process/appConfig.d.ts +0 -3
  144. package/types/process/appConfig.d.ts.map +0 -1
  145. package/types/process/clusterworkermanager.d.ts.map +0 -1
  146. package/types/process/datamanager.d.ts +0 -15
  147. package/types/process/datamanager.d.ts.map +0 -1
  148. package/types/process/latencyManager.d.ts +0 -10
  149. package/types/process/latencyManager.d.ts.map +0 -1
  150. package/types/process/logManager.d.ts +0 -9
  151. package/types/process/logManager.d.ts.map +0 -1
  152. package/types/process/masterprocessbase.d.ts +0 -13
  153. package/types/process/masterprocessbase.d.ts.map +0 -1
  154. package/types/process/metrics.d.ts.map +0 -1
  155. package/types/process/plugins/plugintypes.d.ts +0 -7
  156. package/types/process/plugins/plugintypes.d.ts.map +0 -1
  157. package/types/process/plugins/stsconfigplugin.d.ts.map +0 -1
  158. package/types/process/plugins/stsloggerplugin.d.ts +0 -14
  159. package/types/process/plugins/stsloggerplugin.d.ts.map +0 -1
  160. package/types/process/plugins/stsmetricsplugin.d.ts +0 -19
  161. package/types/process/plugins/stsmetricsplugin.d.ts.map +0 -1
  162. package/types/process/plugins/ststestplugin.d.ts +0 -10
  163. package/types/process/plugins/ststestplugin.d.ts.map +0 -1
  164. package/types/process/processbase.d.ts +0 -19
  165. package/types/process/processbase.d.ts.map +0 -1
  166. package/types/process/prometheusmanager.d.ts +0 -10
  167. package/types/process/prometheusmanager.d.ts.map +0 -1
  168. package/types/process/server.d.ts +0 -5
  169. package/types/process/server.d.ts.map +0 -1
  170. package/types/process/serverprocessbase.d.ts +0 -18
  171. package/types/process/serverprocessbase.d.ts.map +0 -1
  172. package/types/process/servertypes/stsexpressserver.d.ts +0 -34
  173. package/types/process/servertypes/stsexpressserver.d.ts.map +0 -1
  174. package/types/process/servertypes/stsjsonrpcserver.d.ts.map +0 -1
  175. package/types/process/servertypes/stsserverfactory.d.ts.map +0 -1
  176. package/types/process/servertypes/ststcprawserver.d.ts.map +0 -1
  177. package/types/process/singleprocessbase.d.ts +0 -14
  178. package/types/process/singleprocessbase.d.ts.map +0 -1
  179. package/types/process/stsapp.d.ts.map +0 -1
  180. package/types/process/sysinfo.d.ts +0 -8
  181. package/types/process/sysinfo.d.ts.map +0 -1
  182. package/types/process/workerprocessbase.d.ts +0 -8
  183. package/types/process/workerprocessbase.d.ts.map +0 -1
  184. package/types/publishertransports/publishTransportUtils.d.ts +0 -5
  185. package/types/publishertransports/publishTransportUtils.d.ts.map +0 -1
  186. package/types/sysinfo/network.d.ts +0 -4
  187. package/types/sysinfo/network.d.ts.map +0 -1
  188. /package/dist/{process → plugins}/servertypes/serverUtils.js +0 -0
  189. /package/types/{process → plugins}/servertypes/serverUtils.d.ts +0 -0
@@ -0,0 +1,186 @@
1
+ /* eslint @typescript-eslint/no-explicit-any: 0 */ // --> OFF
2
+ import chalk from "chalk";
3
+ import cluster from "cluster";
4
+ //const pg = require('pg');
5
+ //pg.types.setTypeParser(20, BigInt); // Type Id 20 = BIGINT | BIGSERIAL
6
+ // https://stackoverflow.com/questions/39168501/pg-promise-returns-integers-as-strings
7
+ import { Pool } from "pg";
8
+ import { TinyEmitter } from "tiny-emitter";
9
+ import { Gauge } from "@nsshunt/stsobservability";
10
+ import { STSMetricsPluginToken } from "./stsmetricsplugin.js";
11
+ import { STSLoggerPluginToken } from "./stsloggerplugin.js";
12
+ import { inject } from "@nsshunt/stsutils";
13
+ export var IDBAccessLayerEvents;
14
+ (function (IDBAccessLayerEvents) {
15
+ IDBAccessLayerEvents["UpdateInstruments"] = "UpdateInstruments";
16
+ })(IDBAccessLayerEvents || (IDBAccessLayerEvents = {}));
17
+ export class PGPoolManager extends TinyEmitter {
18
+ #options;
19
+ #observer = null;
20
+ #pools = {};
21
+ #keyPrefix = "__STS__";
22
+ currentReadOnlyPoolIndex = 0;
23
+ logger = inject(STSLoggerPluginToken);
24
+ metrics = inject(STSMetricsPluginToken);
25
+ constructor(options) {
26
+ super();
27
+ this.#options = options;
28
+ }
29
+ #LogDebugMessage(message) {
30
+ this.logger.debug(message);
31
+ }
32
+ #LogErrorMessage(message) {
33
+ this.logger.error(message);
34
+ }
35
+ Start = async () => {
36
+ const poolConnectionStrings = this.#options.poolConnectionString.split(",");
37
+ for (let i = 0; i < poolConnectionStrings.length; i++) {
38
+ this.#CreatePool(i, poolConnectionStrings[i]);
39
+ }
40
+ this.#AttachInstruments();
41
+ };
42
+ #CreatePool = (poolIndex, poolConnectionString) => {
43
+ // https://mylifedigital.co.uk/securing-node-postgres-with-ssl/
44
+ const pool = new Pool({
45
+ connectionString: poolConnectionString,
46
+ ssl: this.#options.ssl,
47
+ max: this.#options.poolSize, // Default is 10 - This will be the number in a pool per thread (worker)
48
+ // Consideration needs to be given for the max number of connections at the database.
49
+ // Max connections calculation = max pool size * max workers (threads) per instance/node * max instances in a cluster (k3s, k8s, swarm mode etc.)
50
+ /*
51
+ ssl: {
52
+ // rejectUnauthorized: true, // Make this true for PROD
53
+ rejectUnauthorized: false,
54
+ //ca: fs.readFileSync('/path/to/server-certificates/root.crt').toString(),
55
+ //key: fs.readFileSync('/path/to/client-key/postgresql.key').toString(),
56
+ //cert: fs.readFileSync('/path/to/client-certificates/postgresql.crt').toString(),
57
+ }
58
+ */
59
+ });
60
+ const re = new RegExp("//(.*)@").exec(poolConnectionString);
61
+ let usernamepassword = "";
62
+ if (re) {
63
+ usernamepassword = re[1];
64
+ }
65
+ const sep = usernamepassword.split(":");
66
+ const usernamepasswordReplacement = usernamepassword.replace(sep[1], "*****************************");
67
+ const safeConnectionString = poolConnectionString.replace(usernamepassword, usernamepasswordReplacement);
68
+ this.#pools[this.#GetPoolKey(poolIndex)] = {
69
+ connectionString: poolConnectionString,
70
+ safeConnectionString,
71
+ pool,
72
+ };
73
+ if (cluster.isPrimary) {
74
+ this.#LogDebugMessage(chalk.yellow(`Created Database Pool with Master Thread, PID: [${process.pid}]`));
75
+ }
76
+ else {
77
+ this.#LogDebugMessage(chalk.yellow(`Created Database Pool with Worker Thread, PID: [${process.pid}]`));
78
+ }
79
+ this.#LogDebugMessage(chalk.yellow(`Created Database Pool: Master Thread`));
80
+ this.#LogDebugMessage(chalk.yellow(` Connection URI: [${safeConnectionString}]`));
81
+ this.#LogDebugMessage(chalk.yellow(` Maximum Pool Size: [${this.#options.poolSize}]`));
82
+ this.#LogDebugMessage(chalk.yellow(` SSL Connection: [${this.#options.ssl}]`));
83
+ // the pool will emit an error on behalf of any idle clients
84
+ // it contains if a backend error or network partition happens
85
+ pool.on("error", (error) => {
86
+ this.#LogDebugMessage(chalk.red(`[${safeConnectionString}]: pool error`));
87
+ this.#LogErrorMessage(chalk.red(`Unexpected error on idle client: [${error}], connection: [${safeConnectionString}]`));
88
+ });
89
+ pool.on("connect", () => {
90
+ //this.#LogDebugMessage(chalk.green(`[${safeConnectionString}]: pool connect`));
91
+ this.#UpdateInstruments();
92
+ });
93
+ pool.on("acquire", () => {
94
+ //this.#LogDebugMessage(chalk.green(`[${safeConnectionString}]: pool acquire`));
95
+ this.#UpdateInstruments();
96
+ });
97
+ pool.on("release", (error) => {
98
+ if (error) {
99
+ this.#LogDebugMessage(chalk.red(`[${safeConnectionString}]: pool release`));
100
+ this.#LogErrorMessage(chalk.red(`Unexpected error on client release from pool: [${error}], connection: [${safeConnectionString}]`));
101
+ }
102
+ //this.#LogDebugMessage(chalk.green(`[${safeConnectionString}]: pool release`));
103
+ this.#UpdateInstruments();
104
+ });
105
+ pool.on("remove", () => {
106
+ //this.#LogDebugMessage(chalk.green(`[${safeConnectionString}]: pool remove`));
107
+ this.#UpdateInstruments();
108
+ });
109
+ };
110
+ EndPool = async (poolItem) => {
111
+ this.#LogDebugMessage(chalk.cyan(`Ending database for process PID: ${process.pid}`));
112
+ if (poolItem) {
113
+ this.#LogDebugMessage(chalk.cyan(`ending pool with connection string: [${poolItem.safeConnectionString}]`));
114
+ this.#LogDebugMessage(chalk.cyan(`pool details (before end), Total: [${poolItem.pool.totalCount}], Idle: [${poolItem.pool.idleCount}], Waiting: [${poolItem.pool.waitingCount}]`));
115
+ await poolItem.pool.end();
116
+ this.#LogDebugMessage(chalk.cyan(`pool details (after end), Total: [${poolItem.pool.totalCount}], Idle: [${poolItem.pool.idleCount}], Waiting: [${poolItem.pool.waitingCount}]`));
117
+ this.#LogDebugMessage(chalk.green(`Database pool ended for PID: ${process.pid}`));
118
+ poolItem.pool.removeAllListeners();
119
+ this.#LogDebugMessage(chalk.green(`Removed all listeners: ${process.pid}`));
120
+ }
121
+ else {
122
+ this.#LogDebugMessage(chalk.yellow(`Database pool was not defined - not ended for PID: ${process.pid}`));
123
+ }
124
+ };
125
+ Stop = async () => {
126
+ this.#LogDebugMessage(chalk.cyan(`Ending database for process PID: ${process.pid}`));
127
+ for (const [, pool] of Object.entries(this.#pools)) {
128
+ await this.EndPool(pool);
129
+ }
130
+ this.#DetachInstruments();
131
+ };
132
+ #GetPoolKey(index) {
133
+ return `${this.#keyPrefix}${index}`;
134
+ }
135
+ async GetReadWritePoolClient() {
136
+ return this.#pools[this.#GetPoolKey(0)].pool.connect();
137
+ }
138
+ async GetReadOnlyPoolClient() {
139
+ const poolLength = Object.keys(this.#pools).length;
140
+ if (poolLength > 1) {
141
+ this.currentReadOnlyPoolIndex++;
142
+ if (this.currentReadOnlyPoolIndex >= poolLength) {
143
+ this.currentReadOnlyPoolIndex = 1;
144
+ }
145
+ return this.#pools[this.#GetPoolKey(this.currentReadOnlyPoolIndex)].pool.connect();
146
+ }
147
+ else {
148
+ return this.GetReadWritePoolClient();
149
+ }
150
+ }
151
+ #UpdateInstruments = () => {
152
+ const data = {
153
+ totalCount: 0,
154
+ idleCount: 0,
155
+ waitingCount: 0,
156
+ };
157
+ for (const [, poolItem] of Object.entries(this.#pools)) {
158
+ data.totalCount += poolItem.pool.totalCount;
159
+ data.idleCount += poolItem.pool.idleCount;
160
+ data.waitingCount += poolItem.pool.waitingCount;
161
+ }
162
+ this.emit(IDBAccessLayerEvents.UpdateInstruments, data);
163
+ this.#UpdatePGPoolManagerInstrument(data);
164
+ };
165
+ #UpdatePGPoolManagerInstrument = (data) => {
166
+ this.metrics.UpdateInstrument(Gauge.CONNECTION_POOL_TOTAL_GAUGE, {
167
+ val: data.totalCount,
168
+ });
169
+ this.metrics.UpdateInstrument(Gauge.CONNECTION_POOL_IDLE_GAUGE, {
170
+ val: data.idleCount,
171
+ });
172
+ this.metrics.UpdateInstrument(Gauge.CONNECTION_POOL_WAITING_GAUGE, {
173
+ val: data.waitingCount,
174
+ });
175
+ };
176
+ #AttachInstruments = (interval = 1000) => {
177
+ this.#observer = setInterval(() => {
178
+ this.#UpdateInstruments();
179
+ }, interval).unref();
180
+ };
181
+ #DetachInstruments = () => {
182
+ clearInterval(this.#observer);
183
+ this.#observer = null;
184
+ };
185
+ }
186
+ //# sourceMappingURL=pgpoolmanager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pgpoolmanager.js","sourceRoot":"","sources":["../../src/plugins/pgpoolmanager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"serverUtils.js","sourceRoot":"","sources":["../../../src/process/servertypes/serverUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AAIzB,MAAM,CAAC,MAAM,aAAa,GAAG,CACzB,kBAA2B,EAC3B,0BAAmC,EACzB,EAAE;IACZ,IAAI,kBAAkB,IAAI,0BAA0B,EAAE,CAAC;QACnD,OAAO;YACH,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,kBAAkB,CAAC;YACxC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,0BAA0B,CAAC;SACpD,CAAC;IACN,CAAC;IACD,MAAM,IAAI,KAAK,CACX,gGAAgG,CACnG,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"serverUtils.js","sourceRoot":"","sources":["../../../src/plugins/servertypes/serverUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AAIzB,MAAM,CAAC,MAAM,aAAa,GAAG,CACzB,kBAA2B,EAC3B,0BAAmC,EACzB,EAAE;IACZ,IAAI,kBAAkB,IAAI,0BAA0B,EAAE,CAAC;QACnD,OAAO;YACH,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,kBAAkB,CAAC;YACxC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,0BAA0B,CAAC;SACpD,CAAC;IACN,CAAC;IACD,MAAM,IAAI,KAAK,CACX,gGAAgG,CACnG,CAAC;AACN,CAAC,CAAC"}
@@ -5,25 +5,30 @@ import cookieParser from "cookie-parser";
5
5
  import { RequestLoggerMiddleware, RequestLoggerMiddlewareEventName, } from "@nsshunt/stsinstrumentmanagerclient";
6
6
  import { goptions } from "@nsshunt/stsconfig";
7
7
  import { GetTLSOptions } from "./serverUtils.js";
8
- import { PrometheusManager } from "./../prometheusmanager.js";
9
- import { STSLoggerToken, PublishInstrumentControllerToken, } from "./../../commonTypes.js";
10
8
  import { Gauge, } from "@nsshunt/stsobservability";
11
9
  import { ServerNetworkMiddleware, ServerNetworkMiddlewareEventName, } from "./../../middleware/serverNetworkMiddleware.js";
12
10
  import chalk from "chalk";
13
11
  import { inject } from "@nsshunt/stsutils";
14
12
  import { createServer as createServerHttps, } from "node:https";
15
13
  import { createServer as createServerHttp, } from "node:http";
14
+ import { STSLoggerPluginToken } from "./../stsloggerplugin.js";
15
+ import { STSInstrumentControllerPluginToken } from "./../stsinstrumentmanagerplugin.js";
16
16
  export class STSExpressServer {
17
17
  #options;
18
18
  #ERROR_THRESHOLD_TIMEOUT = 1000;
19
19
  httpServer;
20
20
  #attributes = {};
21
- publishInstrumentController = inject(PublishInstrumentControllerToken);
22
- logger = inject(STSLoggerToken);
21
+ #routes = express.Router();
22
+ draining = false;
23
+ publishInstrumentController = inject(STSInstrumentControllerPluginToken);
24
+ logger = inject(STSLoggerPluginToken);
23
25
  constructor(options) {
24
26
  this.#options = options;
25
27
  this.#SetupHTTPServerFromExpressServer(this.#SetupExpressServer());
26
28
  }
29
+ IsDraining = () => {
30
+ return this.draining;
31
+ };
27
32
  #SetupRequestLoggerMiddleware = () => {
28
33
  // Standard RequestLoggerMiddleware for all STS services
29
34
  const requestLoggerMiddleware = new RequestLoggerMiddleware({
@@ -106,17 +111,11 @@ export class STSExpressServer {
106
111
  }))
107
112
  .use(express.json({ limit: goptions.maxPayloadSize }))
108
113
  .use(this.#SetupRequestLoggerMiddleware().Middleware)
109
- .use(this.#SetupNetworkMiddleware().Middleware);
110
- // Allow the static SPA to also be servered by this app
111
- //app.use('/static', express.static(path.join(__dirname, 'public')))
112
- if (this.#options.expressServerRouteStaticFactory) {
113
- this.#options.expressServerRouteStaticFactory(app);
114
- }
115
- if (this.#options.expressServerRouteFactory) {
116
- this.#options.expressServerRouteFactory(app);
117
- }
118
- // Express error handling fall-back
119
- app.use(function (err, req, res, next) {
114
+ .use(this.#SetupNetworkMiddleware().Middleware)
115
+ // Everything dynamically registered goes here
116
+ .use(this.#routes)
117
+ // Express error handling fall-back
118
+ .use(function (err, _req, res, next) {
120
119
  if (err) {
121
120
  res.status(err.status).send(err);
122
121
  }
@@ -126,6 +125,9 @@ export class STSExpressServer {
126
125
  });
127
126
  return app;
128
127
  };
128
+ Use(router) {
129
+ this.#routes.use(router);
130
+ }
129
131
  #SetupHTTPServerFromExpressServer = (app) => {
130
132
  if (this.#options.useTls) {
131
133
  this.httpServer = createServerHttps(GetTLSOptions(this.#options.httpsServerKeyPath, this.#options.httpsServerCertificatePath), app);
@@ -133,9 +135,11 @@ export class STSExpressServer {
133
135
  else {
134
136
  this.httpServer = createServerHttp(app);
135
137
  }
138
+ /*
136
139
  if (this.#options.prometheusSupport === true) {
137
140
  new PrometheusManager().SetupPrometheusForMaster();
138
141
  }
142
+ */
139
143
  // https://stackoverflow.com/questions/21342828/node-express-unix-domain-socket-permissions
140
144
  //@@httpServer.listen('/tmp/stsrest01.sock').on('listening', () =>
141
145
  //@@httpServer.listen('/var/run/sts/stsrest01.sock').on('listening', () =>
@@ -145,11 +149,32 @@ export class STSExpressServer {
145
149
  });
146
150
  };
147
151
  Stop = async () => {
148
- if (this.httpServer) {
149
- const logPrefix = `STSExpressServer:Stop():${process.pid}:`;
150
- this.logger.info(`${logPrefix} Closing httpServer.`);
151
- this.httpServer.close();
152
+ if (!this.httpServer) {
153
+ return;
152
154
  }
155
+ this.draining = true;
156
+ const closePromise = new Promise((resolve) => {
157
+ if (this.httpServer) {
158
+ this.httpServer.close(() => {
159
+ resolve();
160
+ });
161
+ }
162
+ else {
163
+ resolve();
164
+ }
165
+ });
166
+ const timeoutPromise = new Promise((resolve) => {
167
+ setTimeout(() => {
168
+ if (this.httpServer) {
169
+ this.httpServer.closeAllConnections();
170
+ resolve();
171
+ }
172
+ else {
173
+ resolve();
174
+ }
175
+ }, 5000).unref();
176
+ });
177
+ await Promise.race([closePromise, timeoutPromise]);
153
178
  };
154
179
  GetAttributes() {
155
180
  return this.#attributes;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stsexpressserver.js","sourceRoot":"","sources":["../../../src/plugins/servertypes/stsexpressserver.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,10 @@
1
- /* eslint @typescript-eslint/no-explicit-any: 0, @typescript-eslint/no-unused-vars: 0 */ // --> OFF
2
- import { STSLoggerToken, } from "./../../commonTypes.js";
3
1
  import jayson from "jayson";
4
2
  import { inject } from "@nsshunt/stsutils";
5
3
  import { GetTLSOptions } from "./serverUtils.js";
4
+ import { STSLoggerPluginToken } from "./../stsloggerplugin.js";
6
5
  export class STSJsonRPCServer {
7
6
  options;
8
- logger = inject(STSLoggerToken);
7
+ logger = inject(STSLoggerPluginToken);
9
8
  httpServer;
10
9
  #attributes = {};
11
10
  constructor(options) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stsjsonrpcserver.js","sourceRoot":"","sources":["../../../src/plugins/servertypes/stsjsonrpcserver.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { STSExpressServer, } from "./stsexpressserver.js";
2
- import { STSJsonRPCServer, } from "./stsjsonrpcserver.js";
1
+ import { STSExpressServer } from "./stsexpressserver.js";
2
+ import { STSJsonRPCServer } from "./stsjsonrpcserver.js";
3
3
  import { STSRPCRawServer } from "./ststcprawserver.js";
4
4
  export const CreateSTSServer = ({ serverType, options, }) => {
5
5
  switch (serverType) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stsserverfactory.js","sourceRoot":"","sources":["../../../src/plugins/servertypes/stsserverfactory.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAkBvD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAC5B,UAAU,EACV,OAAO,GACc,EAAc,EAAE;IACrC,QAAQ,UAAU,EAAE,CAAC;QACjB,KAAK,SAAS,CAAC;QACf,KAAK,aAAa;YACd,OAAO,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAEzC,KAAK,YAAY;YACb,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC;QAExC,KAAK,cAAc;YACf,OAAO,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;AACL,CAAC,CAAC"}
@@ -1,12 +1,12 @@
1
1
  /* eslint @typescript-eslint/no-explicit-any: 0, @typescript-eslint/no-unused-vars: 0 */ // --> OFF
2
2
  import chalk from "chalk";
3
- import { STSLoggerToken, } from "./../../commonTypes.js";
4
3
  import tls from "node:tls";
5
4
  import { inject } from "@nsshunt/stsutils";
6
5
  import { GetTLSOptions } from "./serverUtils.js";
6
+ import { STSLoggerPluginToken } from "./../stsloggerplugin.js";
7
7
  export class STSRPCRawServer {
8
8
  options;
9
- logger = inject(STSLoggerToken);
9
+ logger = inject(STSLoggerPluginToken);
10
10
  httpServer;
11
11
  sockets = [];
12
12
  #attributes = {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ststcprawserver.js","sourceRoot":"","sources":["../../../src/plugins/servertypes/ststcprawserver.ts"],"names":[],"mappings":"AAAA,wFAAwF,CAAC,UAAU;AACnG,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,OAAO,GAAG,MAAM,UAAU,CAAC;AAG3B,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D,MAAM,OAAO,eAAe;IACP,OAAO,CAA0B;IACjC,MAAM,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAC/C,UAAU,CAAc;IACxB,OAAO,GAAiB,EAAE,CAAC;IACnC,WAAW,GAAwB,EAAE,CAAC;IAEtC,YAAY,OAAgC;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IAED,kBAAkB,GAAG,GAAS,EAAE;QAC5B,0GAA0G;QAC1G,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,YAAY,CAC9B,aAAa,CACT,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAC/B,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAC1C,EACD,IAAI,CAAC,eAAe,CACvB,CAAC;QACF,IAAI,CAAC,UAAU;aACV,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,EAAE;YAC3D,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,gCAAgC;gBAC5B,IAAI,CAAC,OAAO,CAAC,UAAU;gBACvB,GAAG,CACV,CAAC;QACN,CAAC,CAAC;aACD,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;YAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,eAAe,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAC3F,CAAC;QACN,CAAC,CAAC,CAAC;IACX,CAAC,CAAC;IAEF,eAAe,GAAG,KAAK,EAAE,MAAkB,EAAiB,EAAE;QAC1D,yDAAyD;QACzD,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,aAAa;YACT,MAAM,CAAC,aAAa;YACpB,GAAG;YACH,MAAM,CAAC,UAAU;YACjB,GAAG;YACH,OAAO,CAAC,GAAG,CAClB,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE1B,oBAAoB;QACpB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAS,EAAE,EAAE;YAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC;gBAC5C,OAAO,CACH,CAAC,CAAC,aAAa,KAAK,MAAM,CAAC,aAAa;oBACxC,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU,CACrC,CAAC;YACN,CAAC,CAAC,CAAC;YACH,IAAI,KAAK,KAAK,CAAC,CAAC;gBAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAChD,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,UAAU;gBACN,MAAM,CAAC,aAAa;gBACpB,GAAG;gBACH,MAAM,CAAC,UAAU;gBACjB,GAAG;gBACH,OAAO,CAAC,GAAG,CAClB,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAS,EAAE,EAAE;YAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,OAAO;gBACH,MAAM,CAAC,aAAa;gBACpB,IAAI;gBACJ,MAAM,CAAC,UAAU;gBACjB,IAAI;gBACJ,IAAI,CACX,CAAC;YACF,MAAM,CAAC,KAAK,CACR,MAAM,CAAC,aAAa;gBAChB,GAAG;gBACH,MAAM,CAAC,UAAU;gBACjB,QAAQ;gBACR,IAAI;gBACJ,IAAI,CACX,CAAC;YAEF,+FAA+F;YAC/F;;;;;cAKE;QACN,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,IAAI,GAAG,KAAK,IAAmB,EAAE;QAC7B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,MAAM,SAAS,GAAG,0BAA0B,OAAO,CAAC,GAAG,GAAG,CAAC;YAC3D,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAkB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBACtD,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,KAAK,CAAC,MAAM,CACR,GAAG,SAAS,yCAAyC,MAAM,CAAC,aAAa,oBAAoB,MAAM,CAAC,UAAU,GAAG,CACpH,CACJ,CAAC;gBACF,MAAM,CAAC,OAAO,EAAE,CAAC;YACrB,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,sBAAsB,CAAC,CAAC;YACrD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAC5B,CAAC;IACL,CAAC,CAAC;IAEF,aAAa;QACT,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED,aAAa;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,aAAa;QACT,OAAO,YAAY,CAAC;IACxB,CAAC;CACJ"}
@@ -0,0 +1,54 @@
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 { ClusterWorkerManager, } from "./clusterworkermanager.js";
6
+ import { STSConfigPluginToken } from "./stsconfigplugin.js";
7
+ import os from "node:os";
8
+ export const STSClusterWorkerManagerPluginToken = new InjectionToken("__STSPlugin__ClusterWorkerManager");
9
+ // STSOptions
10
+ export class STSClusterWorkerManagerPlugin {
11
+ logger = inject(STSLoggerPluginToken);
12
+ config = inject(STSConfigPluginToken);
13
+ clusterWorkerManager;
14
+ install = (injector, options) => {
15
+ if (!options) {
16
+ throw new Error("STSClusterWorkerManagerPlugin requires options");
17
+ }
18
+ this.clusterWorkerManager = new ClusterWorkerManager(options);
19
+ injector.register({
20
+ provide: STSClusterWorkerManagerPluginToken,
21
+ useValue: this.clusterWorkerManager,
22
+ });
23
+ };
24
+ _GetNumCPUs = async () => {
25
+ const numOSCpus = os.availableParallelism();
26
+ let numCPUs = 2;
27
+ if (this.config.useCPUs > 0) {
28
+ if (this.config.useCPUs >= 1) {
29
+ numCPUs = this.config.useCPUs;
30
+ }
31
+ else {
32
+ numCPUs = Math.round(numOSCpus * this.config.useCPUs);
33
+ }
34
+ }
35
+ else {
36
+ numCPUs = numOSCpus;
37
+ }
38
+ return numCPUs;
39
+ };
40
+ Start = async () => {
41
+ this.logger.info(`${process.pid} STSClusterWorkerManagerPlugin: Start() Starting ...`);
42
+ const numCPUs = await this._GetNumCPUs();
43
+ for (let i = 0; i < numCPUs; i++) {
44
+ this.clusterWorkerManager?.SpawnWorker();
45
+ }
46
+ this.logger.info(`${process.pid} STSClusterWorkerManagerPlugin: Start() Started`);
47
+ };
48
+ Stop = async () => {
49
+ this.logger.info(`${process.pid} STSClusterWorkerManagerPlugin: Stop() Stopping ...`);
50
+ this.clusterWorkerManager?.KillWorkers("SIGTERM", false);
51
+ this.logger.info(`${process.pid} STSClusterWorkerManagerPlugin: Stop() Stopped`);
52
+ };
53
+ }
54
+ //# sourceMappingURL=stsclusterworkermanagerplugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stsclusterworkermanagerplugin.js","sourceRoot":"","sources":["../../src/plugins/stsclusterworkermanagerplugin.ts"],"names":[],"mappings":"AAAA,wFAAwF,CAAC,UAAU;AACnG,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAY,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAIrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EACH,oBAAoB,GAEvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG5D,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,MAAM,CAAC,MAAM,kCAAkC,GAC3C,IAAI,cAAc,CACd,mCAAmC,CACtC,CAAC;AAEN,aAAa;AACb,MAAM,OAAO,6BAA6B;IACrB,MAAM,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACtC,MAAM,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAE/C,oBAAoB,CAAwB;IAEpD,OAAO,GAAG,CACN,QAAkB,EAClB,OAAsC,EAClC,EAAE;QACN,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,CAAC,oBAAoB,GAAG,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAE9D,QAAQ,CAAC,QAAQ,CAAC;YACd,OAAO,EAAE,kCAAkC;YAC3C,QAAQ,EAAE,IAAI,CAAC,oBAAoB;SACtC,CAAC,CAAC;IACP,CAAC,CAAC;IAEM,WAAW,GAAG,KAAK,IAAqB,EAAE;QAC9C,MAAM,SAAS,GAAG,EAAE,CAAC,oBAAoB,EAAE,CAAC;QAE5C,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;gBAC3B,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACJ,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC1D,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,OAAO,GAAG,SAAS,CAAC;QACxB,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC,CAAC;IAEF,KAAK,GAAG,KAAK,IAAI,EAAE;QACf,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,GAAG,OAAO,CAAC,GAAG,sDAAsD,CACvE,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,IAAI,CAAC,oBAAoB,EAAE,WAAW,EAAE,CAAC;QAC7C,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,GAAG,OAAO,CAAC,GAAG,iDAAiD,CAClE,CAAC;IACN,CAAC,CAAC;IAEF,IAAI,GAAG,KAAK,IAAI,EAAE;QACd,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,GAAG,OAAO,CAAC,GAAG,qDAAqD,CACtE,CAAC;QAEF,IAAI,CAAC,oBAAoB,EAAE,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAEzD,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,GAAG,OAAO,CAAC,GAAG,gDAAgD,CACjE,CAAC;IACN,CAAC,CAAC;CACL"}
@@ -1,12 +1,12 @@
1
1
  /* eslint @typescript-eslint/no-explicit-any: 0, @typescript-eslint/no-unused-vars: 0 */ // --> OFF
2
2
  import { InjectionToken } from "@nsshunt/stsutils";
3
3
  import { goptions } from "@nsshunt/stsconfig";
4
- export const STSConfigToken = new InjectionToken("__STS__Config");
4
+ export const STSConfigPluginToken = new InjectionToken("__STSPlugin__Config");
5
5
  // STSOptions
6
6
  export class STSConfigPlugin {
7
7
  install = (injector, options) => {
8
8
  injector.register({
9
- provide: STSConfigToken,
9
+ provide: STSConfigPluginToken,
10
10
  useValue: goptions,
11
11
  });
12
12
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stsconfigplugin.js","sourceRoot":"","sources":["../../src/plugins/stsconfigplugin.ts"],"names":[],"mappings":"AAAA,wFAAwF,CAAC,UAAU;AACnG,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAInD,OAAO,EAAc,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE1D,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,cAAc,CAClD,qBAAqB,CACxB,CAAC;AAEF,aAAa;AACb,MAAM,OAAO,eAAe;IACxB,OAAO,GAAG,CAAC,QAAkB,EAAE,OAA6B,EAAQ,EAAE;QAClE,QAAQ,CAAC,QAAQ,CAAC;YACd,OAAO,EAAE,oBAAoB;YAC7B,QAAQ,EAAE,QAAQ;SACrB,CAAC,CAAC;IACP,CAAC,CAAC;IACF,KAAK,GAAG,KAAK,IAAI,EAAE,GAAE,CAAC,CAAC;IACvB,IAAI,GAAG,KAAK,IAAI,EAAE,GAAE,CAAC,CAAC;CACzB"}
@@ -0,0 +1,47 @@
1
+ /* eslint @typescript-eslint/no-explicit-any: 0, @typescript-eslint/no-unused-vars: 0 */ // --> OFF
2
+ /* eslint @typescript-eslint/no-empty-object-type: 0 */
3
+ import { InjectionToken } from "@nsshunt/stsutils";
4
+ import { inject } from "@nsshunt/stsutils";
5
+ import { STSLoggerPluginToken } from "./stsloggerplugin.js";
6
+ import { STSServerPluginToken } from "./stsserverplugin.js";
7
+ import express from "express";
8
+ export const STSExpressControllerPluginToken = new InjectionToken("__STSPlugin__ExpressController");
9
+ // STSOptions
10
+ export class STSExpressControllerPlugin {
11
+ logger = inject(STSLoggerPluginToken);
12
+ server = inject(STSServerPluginToken);
13
+ expressController = {};
14
+ #RunInInjectionContext = (injector, handler) => {
15
+ return (req, res, next) => {
16
+ return injector.runInContext(() => handler(req, res, next));
17
+ };
18
+ };
19
+ install = (injector, options) => {
20
+ if (!options) {
21
+ throw new Error("STSExpressControllerPlugin requires options");
22
+ }
23
+ if (!(this.server.GetServerType() === "EXPRESS" ||
24
+ this.server.GetServerType() === "EXPRESS_TLS")) {
25
+ throw new Error(`STSExpressControllerPlugin: Server type: [${this.server.GetServerType()}] must be an express server`);
26
+ }
27
+ const router = express.Router();
28
+ for (const route of options.routes) {
29
+ const handlers = route.handlers.map((handler) => this.#RunInInjectionContext(injector, handler));
30
+ router[route.method](route.mountPath, ...handlers);
31
+ }
32
+ this.server.Use(router);
33
+ injector.register({
34
+ provide: STSExpressControllerPluginToken,
35
+ useValue: this.expressController,
36
+ });
37
+ };
38
+ Start = async () => {
39
+ this.logger.info(`${process.pid} STSExpressControllerPlugin: Start() Starting ...`);
40
+ this.logger.info(`${process.pid} STSExpressControllerPlugin: Start() Started`);
41
+ };
42
+ Stop = async () => {
43
+ this.logger.info(`${process.pid} STSServerPlugin: Stop() Stopping ...`);
44
+ this.logger.info(`${process.pid} STSServerPlugin: Stop() Stopped`);
45
+ };
46
+ }
47
+ //# sourceMappingURL=stsexpresscontrollerplugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stsexpresscontrollerplugin.js","sourceRoot":"","sources":["../../src/plugins/stsexpresscontrollerplugin.ts"],"names":[],"mappings":"AAAA,wFAAwF,CAAC,UAAU;AACnG,uDAAuD;AAEvD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGnD,OAAO,EAAY,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG5D,OAAO,OAA2B,MAAM,SAAS,CAAC;AAElD,MAAM,CAAC,MAAM,+BAA+B,GACxC,IAAI,cAAc,CAAwB,gCAAgC,CAAC,CAAC;AAYhF,aAAa;AACb,MAAM,OAAO,0BAA0B;IAClB,MAAM,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACtC,MAAM,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAEtC,iBAAiB,GAA0B,EAAE,CAAC;IAE/D,sBAAsB,GAAG,CACrB,QAAkB,EAClB,OAAuB,EACT,EAAE;QAChB,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YACtB,OAAO,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;QAChE,CAAC,CAAC;IACN,CAAC,CAAC;IAEF,OAAO,GAAG,CACN,QAAkB,EAClB,OAA4C,EACxC,EAAE;QACN,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACnE,CAAC;QAED,IACI,CAAC,CACG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,SAAS;YACzC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,aAAa,CAChD,EACH,CAAC;YACC,MAAM,IAAI,KAAK,CACX,6CAA6C,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,6BAA6B,CACxG,CAAC;QACN,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAEhC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAC5C,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,OAAO,CAAC,CACjD,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,QAAQ,CAAC,CAAC;QACvD,CAAC;QACA,IAAI,CAAC,MAA2B,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAE9C,QAAQ,CAAC,QAAQ,CAAC;YACd,OAAO,EAAE,+BAA+B;YACxC,QAAQ,EAAE,IAAI,CAAC,iBAAiB;SACnC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,KAAK,GAAG,KAAK,IAAI,EAAE;QACf,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,GAAG,OAAO,CAAC,GAAG,mDAAmD,CACpE,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,GAAG,OAAO,CAAC,GAAG,8CAA8C,CAC/D,CAAC;IACN,CAAC,CAAC;IAEF,IAAI,GAAG,KAAK,IAAI,EAAE;QACd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,uCAAuC,CAAC,CAAC;QACxE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,kCAAkC,CAAC,CAAC;IACvE,CAAC,CAAC;CACL"}
@@ -1,35 +1,48 @@
1
+ import { InjectionToken } from "@nsshunt/stsutils";
1
2
  import { createAgentManager, inject } from "@nsshunt/stsutils";
2
- import { STSLoggerToken } from "./../../commonTypes.js";
3
3
  import http from "node:http";
4
4
  import https from "node:https";
5
- import { STSConfigToken } from "./stsconfigplugin.js";
6
- import { PublishInstrumentController, TransportType, GetInstruments, } from "@nsshunt/stsinstrumentmanagerclient";
7
- export class STSMetricsPlugin {
8
- config = inject(STSConfigToken);
5
+ import { STSConfigPluginToken } from "./stsconfigplugin.js";
6
+ import { PublishInstrumentController, TransportType, } from "@nsshunt/stsinstrumentmanagerclient";
7
+ import { STSLoggerPluginToken } from "./stsloggerplugin.js";
8
+ export const STSInstrumentControllerPluginToken = new InjectionToken("__STSPlugin__InstrumentController");
9
+ export class STSInstrumentControllerPlugin {
10
+ config = inject(STSConfigPluginToken);
11
+ logger = inject(STSLoggerPluginToken);
9
12
  options;
10
13
  publishInstrumentController;
11
14
  agentManager;
15
+ // defaults
16
+ _INSTRUMENTATION_OBSERVATION_INTERVAL = 1000;
17
+ _INSTRUMENTATION_TIME_WINDOW = 600;
18
+ _PUBLISH_POST_FAIL_INTERVAL = 5000;
19
+ _PUBLISH_INTERVAL = 1000;
20
+ _AUTO_START = true;
12
21
  install = (injector, options) => {
13
22
  if (!options) {
14
23
  throw new Error("STSLoggerPlugin requires options");
15
24
  }
16
- injector.register({
17
- provide: STSLoggerToken,
18
- useValue: options.logger,
19
- });
20
25
  this.options = options;
21
- };
22
- Start = async () => {
23
- console.log(`STSMetricsPlugin: Start()`);
24
26
  this.agentManager = this.#CreateAgentManager();
25
27
  this.publishInstrumentController =
26
28
  this.#CreatePublishInstrumentController();
29
+ injector.register({
30
+ provide: STSInstrumentControllerPluginToken,
31
+ useValue: this.publishInstrumentController,
32
+ });
33
+ };
34
+ Start = async () => {
35
+ console.log(`${process.pid} STSMetricsPlugin: Start()`);
27
36
  };
28
37
  Stop = async () => {
29
- console.log(`STSMetricsPlugin: Stop()`);
38
+ this.logger.info(`${process.pid} STSMetricsPlugin: Stop() Stopping ...`);
39
+ //@@ may not be required
40
+ this.publishInstrumentController?.StopInstruments();
30
41
  await this.publishInstrumentController?.EndPublish();
31
- this.options.logger.close();
42
+ //@@ this close() should NOT be here - needs to handle better ...
43
+ //@@(this.options!.logger as winston.Logger).close();
32
44
  this.agentManager.Terminate();
45
+ this.logger.info(`${process.pid} STSMetricsPlugin: Stop() Stopped`);
33
46
  };
34
47
  #CreateAgentManager = () => {
35
48
  return createAgentManager({
@@ -60,7 +73,7 @@ export class STSMetricsPlugin {
60
73
  url: `${this.config.imendpoint}:${this.config.import}${this.config.imapiroot}/publishmessage`,
61
74
  agentManager: this.agentManager,
62
75
  // Use this for sockets: socketPath: '/var/run/sts/stsrest01.sock'
63
- logger: this.options.publisherLogger,
76
+ logger: this.options.logger, // logger, // publisherLogger,
64
77
  };
65
78
  }
66
79
  else {
@@ -74,16 +87,16 @@ export class STSMetricsPlugin {
74
87
  consoleLogging: this.options.consoleLogging,
75
88
  instrumentLogging: this.options.instrumentLogging,
76
89
  httpServer,
77
- instrumentationObservationInterval: this.options.instrumentationObservationInterval,
78
- instrumentationTimeWindow: this.options.instrumentationTimeWindow,
79
- logger: this.options.publisherLogger,
80
- publishInterval: this.options.publishInterval,
81
- publishPostFailInterval: 5000, //@@
82
- instrumentDefinitions: GetInstruments("service"),
90
+ instrumentationObservationInterval: this._INSTRUMENTATION_OBSERVATION_INTERVAL,
91
+ instrumentationTimeWindow: this._INSTRUMENTATION_TIME_WINDOW,
92
+ logger: this.options.logger, // logger, //publisherLogger,
93
+ publishInterval: this._PUBLISH_INTERVAL,
94
+ publishPostFailInterval: this._PUBLISH_POST_FAIL_INTERVAL,
95
+ instrumentDefinitions: this.options.instrumentDefinitions, // GetInstruments("service"),
83
96
  publishTransportBaseOptions: publishTransportOptions,
84
- autoStart: true,
97
+ autoStart: this._AUTO_START,
85
98
  };
86
99
  return new PublishInstrumentController(instrumentControllerOptions);
87
100
  };
88
101
  }
89
- //# sourceMappingURL=stsmetricsplugin.js.map
102
+ //# sourceMappingURL=stsinstrumentmanagerplugin.js.map