@nsshunt/stsrunnerframework 1.0.89 → 1.0.91

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.
@@ -9,7 +9,7 @@ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read fr
9
9
  var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
10
10
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
11
11
  var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
12
- var _collectorCollectorPort, _runners, _options, _workerId, _debug, _error, _processLoopExecutor, _SetMessagePort, _CreateRunnerEx2RunState, _UpdateRunnerStateById, _GetAllRunners, _CanExecuteNextIterationById, _IsCompletedById, _GetRunnerIterationById, _ResetRunnerIterationById, _IncRunnerIterationById, _GetRunnerInstanceById, _GetRunnerExecutionProfileById, _GetRunnerOptionsById, _SetRunnerOptionsById, _AddRunner, _WorkerInstance_instances, SleepImmediate_fn, _PostMessageToWorkerManagerById, _StartRunner, _StopRunnerByRunnerId, _StopAllRunners, _StopRunner, _TerminateRunner, _PauseRunner, _ResumeRunner, _ResetRunner, _ExecuteRunner, _UpdateOptions, _workersEx, _options2, _STSInstrumentController, _telemetryProcessor, _archiveList, _id, _processLoopExecutor2, _debug2, _SetRunnerIntoWorker, _ProcessTelemetry, _EmitWorkerEvent, _EmitRunnerEvent, _RunnerStateChange, _RemoveRunnerFromCollection, _CreateAsyncRunner, _PostMessageToWorkerUsingDefaultChannel, _PostMessageToWorker, _StartRunner2, _ResetRunner2, _ExecuteRunner2, _StopRunner2, _TerminateRunner2, _PauseRunner2, _ResumeRunner2, _UpdateOptionsRunner, _PauseWorker, _ResumeWorker, _StopWorker, _StartWorker, _ResetWorker, _ExecuteWorker, _UpdateOptionsWorker, _TerminateWorker, _BroadcastCommandToAllRunners, _HandleAllWorkers;
12
+ var _collectorCollectorPort, _runners, _options, _workerId, _debug, _error, _processLoopExecutor, _SetMessagePort, _CreateRunnerEx2RunState, _UpdateRunnerStateById, _GetAllRunners, _CanExecuteNextIterationById, _IsCompletedById, _GetRunnerIterationById, _ResetRunnerIterationById, _IncRunnerIterationById, _GetRunnerInstanceById, _GetRunnerExecutionProfileById, _GetRunnerOptionsById, _SetRunnerOptionsById, _AddRunner, _WorkerInstance_instances, SleepImmediate_fn, _PostMessageToWorkerManagerById, _PostRunnersToWorkerManager, _StartRunner, _StopRunnerByRunnerId, _StopAllRunners, _StopRunner, _TerminateRunner, _PauseRunner, _ResumeRunner, _ResetRunner, _ExecuteRunner, _UpdateOptions, _workersEx, _options2, _STSInstrumentController, _telemetryProcessor, _archiveList, _id, _messages, _processLoopExecutor2, _debug2, _SetRunnerIntoWorker, _ProcessTelemetry, _EmitWorkerEvent, _EmitRunnerEvent, _RunnerStateChange, _RemoveRunnerFromCollection, _CreateAsyncRunner, _PostMessageToWorkerUsingDefaultChannel, _PostMessageToWorker, _StartRunner2, _ResetRunner2, _ExecuteRunner2, _StopRunner2, _TerminateRunner2, _PauseRunner2, _ResumeRunner2, _UpdateOptionsRunner, _PauseWorker, _ResumeWorker, _StopWorker, _StartWorker, _ResetWorker, _ExecuteWorker, _UpdateOptionsWorker, _TerminateWorker, _BroadcastCommandToAllRunners, _HandleAllWorkers, _STSWorkerManager_instances, GetRunnersResponse_fn, _SyncRunnerData, _SyncWorkerDataFromPayload, _SyncWorkerDataFromWorker, _SyncWorkerDataFromWorkers, _PostMessageToWorkerGetRunners;
13
13
  import { defaultLogger, Sleep, ModelDelimeter } from "@nsshunt/stsutils";
14
14
  import { Gauge } from "@nsshunt/stsobservability";
15
15
  const URI_BASE_VUEUTILS = "/";
@@ -32,6 +32,7 @@ var eIWMessageCommands = /* @__PURE__ */ ((eIWMessageCommands2) => {
32
32
  eIWMessageCommands2["TerminateRunner"] = "__STS__TerminateRunner";
33
33
  eIWMessageCommands2["RunnerStateChange"] = "__STS__RunnerStateChange";
34
34
  eIWMessageCommands2["RemoveRunnerFromCollection"] = "__STS__RemoveRunnerFromCollection";
35
+ eIWMessageCommands2["GetRunners"] = "__STS__GetRunners";
35
36
  return eIWMessageCommands2;
36
37
  })(eIWMessageCommands || {});
37
38
  var IRunnerState = /* @__PURE__ */ ((IRunnerState2) => {
@@ -1543,7 +1544,7 @@ class WorkerInstance {
1543
1544
  const promArray = [];
1544
1545
  for (const [, runner] of Object.entries(__privateGet(this, _runners))) {
1545
1546
  if (runner.runner.state === IRunnerState.completed || runner.runner.state === IRunnerState.error || runner.runner.state === IRunnerState.stopped || runner.runner.state === IRunnerState.terminated) {
1546
- promArray.push(__privateGet(this, _PostMessageToWorkerManagerById).call(this, eIWMessageCommands.RemoveRunnerFromCollection, runner.runner.id));
1547
+ promArray.push(__privateGet(this, _PostMessageToWorkerManagerById).call(this, eIWMessageCommands.RemoveRunnerFromCollection, runner.runner.id, false));
1547
1548
  removeList.push(runner.runner.id);
1548
1549
  }
1549
1550
  }
@@ -1574,7 +1575,7 @@ class WorkerInstance {
1574
1575
  return;
1575
1576
  });
1576
1577
  __publicField(this, "PostTelemetryById", (id) => {
1577
- __privateGet(this, _PostMessageToWorkerManagerById).call(this, eIWMessageCommands.InstrumentTelemetry, id);
1578
+ __privateGet(this, _PostMessageToWorkerManagerById).call(this, eIWMessageCommands.InstrumentTelemetry, id, false);
1578
1579
  });
1579
1580
  __privateAdd(this, _SetMessagePort, (workerMessagePort) => {
1580
1581
  try {
@@ -1617,7 +1618,7 @@ class WorkerInstance {
1617
1618
  try {
1618
1619
  if (__privateGet(this, _runners)[id]) {
1619
1620
  __privateGet(this, _runners)[id].runner.state = state;
1620
- __privateGet(this, _PostMessageToWorkerManagerById).call(this, eIWMessageCommands.RunnerStateChange, id);
1621
+ __privateGet(this, _PostMessageToWorkerManagerById).call(this, eIWMessageCommands.RunnerStateChange, id, false);
1621
1622
  } else {
1622
1623
  console.warn(`#UpdateRunnerStateById(): Runner ID: [${id}] not found`);
1623
1624
  }
@@ -1764,14 +1765,14 @@ class WorkerInstance {
1764
1765
  console.error(`#AddRunner(): [${error}]`);
1765
1766
  }
1766
1767
  });
1767
- __privateAdd(this, _PostMessageToWorkerManagerById, async (command, id) => {
1768
+ __privateAdd(this, _PostMessageToWorkerManagerById, async (command, runnerId, response) => {
1768
1769
  try {
1769
1770
  if (__privateGet(this, _collectorCollectorPort)) {
1770
- if (__privateGet(this, _runners)[id]) {
1771
+ if (__privateGet(this, _runners)[runnerId]) {
1771
1772
  const message = {
1772
1773
  command,
1773
1774
  payload: {
1774
- runner: __privateGet(this, _runners)[id].runner
1775
+ runner: __privateGet(this, _runners)[runnerId].runner
1775
1776
  }
1776
1777
  };
1777
1778
  __privateGet(this, _collectorCollectorPort).postMessage(message);
@@ -1782,6 +1783,24 @@ class WorkerInstance {
1782
1783
  console.error(`#PostMessageToWorkerManagerById(): [${error}]`);
1783
1784
  }
1784
1785
  });
1786
+ __privateAdd(this, _PostRunnersToWorkerManager, async (command, messagePayload) => {
1787
+ try {
1788
+ if (__privateGet(this, _collectorCollectorPort)) {
1789
+ const message = {
1790
+ command,
1791
+ payload: {
1792
+ messageId: messagePayload.payload.messageId,
1793
+ workerId: __privateGet(this, _workerId),
1794
+ runners: Object.values(__privateGet(this, _runners)).map((runnerEx) => runnerEx.runner)
1795
+ }
1796
+ };
1797
+ __privateGet(this, _collectorCollectorPort).postMessage(message);
1798
+ await Sleep(0);
1799
+ }
1800
+ } catch (error) {
1801
+ console.error(`#PostRunnersToWorkerManager(): [${error}]`);
1802
+ }
1803
+ });
1785
1804
  __privateAdd(this, _StartRunner, async (testRunnerTelemetryPayload) => {
1786
1805
  var _a;
1787
1806
  try {
@@ -1995,6 +2014,10 @@ class WorkerInstance {
1995
2014
  __privateGet(this, _debug).call(this, `ProcessMessage::UpdateOptions`);
1996
2015
  __privateGet(this, _UpdateOptions).call(this, payloadMessage.payload);
1997
2016
  break;
2017
+ case eIWMessageCommands.GetRunners:
2018
+ __privateGet(this, _debug).call(this, `ProcessMessage::UpdateOptions`);
2019
+ __privateGet(this, _PostRunnersToWorkerManager).call(this, eIWMessageCommands.GetRunners, payloadMessage);
2020
+ break;
1998
2021
  default:
1999
2022
  __privateGet(this, _debug).call(this, `ProcessMessage::default`);
2000
2023
  __privateGet(this, _debug).call(this, `Invalid payloadMessage.command: [${payloadMessage.command}] - Ignoring`);
@@ -2042,6 +2065,7 @@ SleepImmediate_fn = function() {
2042
2065
  });
2043
2066
  };
2044
2067
  _PostMessageToWorkerManagerById = new WeakMap();
2068
+ _PostRunnersToWorkerManager = new WeakMap();
2045
2069
  _StartRunner = new WeakMap();
2046
2070
  _StopRunnerByRunnerId = new WeakMap();
2047
2071
  _StopAllRunners = new WeakMap();
@@ -2196,6 +2220,7 @@ function v4(options, buf, offset) {
2196
2220
  chalk.level = 3;
2197
2221
  class STSWorkerManager {
2198
2222
  constructor(options) {
2223
+ __privateAdd(this, _STSWorkerManager_instances);
2199
2224
  //#agentSession: string = null;
2200
2225
  __privateAdd(this, _workersEx, {});
2201
2226
  __privateAdd(this, _options2);
@@ -2203,6 +2228,7 @@ class STSWorkerManager {
2203
2228
  __privateAdd(this, _telemetryProcessor, null);
2204
2229
  __privateAdd(this, _archiveList, []);
2205
2230
  __privateAdd(this, _id);
2231
+ __privateAdd(this, _messages, {});
2206
2232
  __privateAdd(this, _processLoopExecutor2, async () => {
2207
2233
  const removeList = [];
2208
2234
  for (const [, workerEx] of Object.entries(__privateGet(this, _workersEx))) {
@@ -2251,7 +2277,8 @@ class STSWorkerManager {
2251
2277
  __privateAdd(this, _debug2, (message) => {
2252
2278
  console.log(chalk.cyan(`pid: [${process.pid}] STSWorkerManager::${message}`));
2253
2279
  });
2254
- __publicField(this, "GetWorkers", () => {
2280
+ __publicField(this, "GetWorkers", async () => {
2281
+ await __privateGet(this, _SyncWorkerDataFromWorkers).call(this);
2255
2282
  const retVal = {};
2256
2283
  for (const [, workerEx] of Object.entries(__privateGet(this, _workersEx))) {
2257
2284
  retVal[workerEx.id] = this.CreateWorkerCopy(workerEx);
@@ -2261,10 +2288,12 @@ class STSWorkerManager {
2261
2288
  __publicField(this, "GetArchiveList", () => {
2262
2289
  return __privateGet(this, _archiveList);
2263
2290
  });
2264
- __publicField(this, "GetWorker", (workerId) => {
2291
+ __publicField(this, "GetWorker", async (workerId) => {
2292
+ await __privateGet(this, _SyncWorkerDataFromWorker).call(this, __privateGet(this, _workersEx)[workerId]);
2265
2293
  return this.CreateWorkerCopy(__privateGet(this, _workersEx)[workerId]);
2266
2294
  });
2267
- __publicField(this, "GetRunner", (workerId, runnerId) => {
2295
+ __publicField(this, "GetRunner", async (workerId, runnerId) => {
2296
+ await __privateGet(this, _SyncWorkerDataFromWorker).call(this, __privateGet(this, _workersEx)[workerId]);
2268
2297
  return this.CreateRunnerCopy(__privateGet(this, _workersEx)[workerId].runnersEx[runnerId]);
2269
2298
  });
2270
2299
  __publicField(this, "AddWorker", (workerOptions, useWorkerFactory) => {
@@ -2290,7 +2319,7 @@ class STSWorkerManager {
2290
2319
  options: workerOptions,
2291
2320
  runnersEx: {},
2292
2321
  runnersEvents: {},
2293
- GetRunner: (id) => __privateGet(this, _workersEx)[workerId].GetRunner(id),
2322
+ GetRunner: (id) => __privateGet(this, _workersEx)[workerId].runnersEx[id],
2294
2323
  // Commands to execute on individual runners
2295
2324
  AddRunner: (runnerOptions) => this.AddRunnerToWorker(stsWorkerEx, runnerOptions),
2296
2325
  StartRunner: (runner) => __privateGet(this, _StartRunner2).call(this, stsWorkerEx, runner),
@@ -2405,6 +2434,10 @@ class STSWorkerManager {
2405
2434
  __privateGet(this, _debug2).call(this, `AddWorker:processMessage():eIWMessageCommands.RemoveRunnerFromCollection`);
2406
2435
  __privateGet(this, _debug2).call(this, `${JSON.stringify(publishMessagePayload2.payload)}`);
2407
2436
  __privateGet(this, _RemoveRunnerFromCollection).call(this, stsWorkerEx, publishMessagePayload2.payload);
2437
+ case eIWMessageCommands.GetRunners:
2438
+ __privateGet(this, _debug2).call(this, `AddWorker:processMessage():eIWMessageCommands.GetRunners`);
2439
+ __privateGet(this, _debug2).call(this, `${JSON.stringify(publishMessagePayload2.payload)}`);
2440
+ __privateMethod(this, _STSWorkerManager_instances, GetRunnersResponse_fn).call(this, stsWorkerEx, publishMessagePayload2.payload);
2408
2441
  break;
2409
2442
  default:
2410
2443
  __privateGet(this, _debug2).call(this, `processMessage::default`);
@@ -2445,12 +2478,7 @@ class STSWorkerManager {
2445
2478
  const { runner } = payloadContents;
2446
2479
  if (workerEx.runnersEx[runner.id]) {
2447
2480
  const runnerEx = workerEx.runnersEx[runner.id];
2448
- runnerEx.instrumentData = { ...runner.instrumentData };
2449
- if (runner.instrumentData.message) {
2450
- runnerEx.instrumentData.message = [...runner.instrumentData.message];
2451
- } else {
2452
- runnerEx.instrumentData.message = [];
2453
- }
2481
+ __privateGet(this, _SyncRunnerData).call(this, runnerEx, runner);
2454
2482
  if (runnerEx.publishInstrumentController && __privateGet(this, _telemetryProcessor)) {
2455
2483
  __privateGet(this, _telemetryProcessor).ProcessTelemetry(runnerEx.publishInstrumentController, runnerEx.instrumentData);
2456
2484
  }
@@ -2489,8 +2517,7 @@ class STSWorkerManager {
2489
2517
  eventDate: /* @__PURE__ */ new Date(),
2490
2518
  runner: { ...runner }
2491
2519
  });
2492
- runnerEx.instrumentData = { ...runner.instrumentData };
2493
- runnerEx.iteration = runner.iteration;
2520
+ __privateGet(this, _SyncRunnerData).call(this, runnerEx, runner);
2494
2521
  __privateGet(this, _debug2).call(this, `STSWorkerManager:#RunnerStateChange(): Worker: [${workerEx.id}] Runner: [${runner.id}]`);
2495
2522
  __privateGet(this, _debug2).call(this, `STSWorkerManager:#RunnerStateChange(): --> Runner iteration (payload): [${runner.iteration}]`);
2496
2523
  __privateGet(this, _debug2).call(this, `STSWorkerManager:#RunnerStateChange(): --> Runner instrumentData.requestCount (payload): [${runner.instrumentData.requestCount}]`);
@@ -2806,6 +2833,52 @@ class STSWorkerManager {
2806
2833
  __publicField(this, "UpdateAllWorkers", (options) => {
2807
2834
  return __privateGet(this, _HandleAllWorkers).call(this, "UpdateOptions", options);
2808
2835
  });
2836
+ __privateAdd(this, _SyncRunnerData, (runnerEx, runner) => {
2837
+ runnerEx.iteration = runner.iteration;
2838
+ runnerEx.state = runner.state;
2839
+ runnerEx.instrumentData = { ...runner.instrumentData };
2840
+ });
2841
+ __privateAdd(this, _SyncWorkerDataFromPayload, (payload) => {
2842
+ const runnersEx = __privateGet(this, _workersEx)[payload.workerId].runnersEx;
2843
+ payload.runners.forEach((runner) => {
2844
+ __privateGet(this, _SyncRunnerData).call(this, runnersEx[runner.id], runner);
2845
+ });
2846
+ });
2847
+ __privateAdd(this, _SyncWorkerDataFromWorker, async (workerEx) => {
2848
+ const retVal = await __privateGet(this, _PostMessageToWorkerGetRunners).call(this, workerEx, eIWMessageCommands.GetRunners);
2849
+ __privateGet(this, _SyncWorkerDataFromPayload).call(this, retVal.payload);
2850
+ return retVal;
2851
+ });
2852
+ __privateAdd(this, _SyncWorkerDataFromWorkers, async () => {
2853
+ const retVal = await Promise.all(Object.values(__privateGet(this, _workersEx)).map((workerEx) => __privateGet(this, _PostMessageToWorkerGetRunners).call(this, workerEx, eIWMessageCommands.GetRunners)));
2854
+ retVal.forEach((messagePayload) => {
2855
+ __privateGet(this, _SyncWorkerDataFromPayload).call(this, messagePayload.payload);
2856
+ });
2857
+ return retVal;
2858
+ });
2859
+ __privateAdd(this, _PostMessageToWorkerGetRunners, async (workerEx, command) => {
2860
+ return new Promise((resolve, reject) => {
2861
+ try {
2862
+ __privateGet(this, _debug2).call(this, `#PostMessageToWorker`);
2863
+ const messageId = v4();
2864
+ __privateGet(this, _messages)[messageId] = {
2865
+ timeout: setTimeout(() => {
2866
+ delete __privateGet(this, _messages)[messageId];
2867
+ reject(`message response timeout for message id: [${messageId}], command: [${command}]`);
2868
+ }, 5e3),
2869
+ resolveMessage: (payload2) => {
2870
+ resolve(payload2);
2871
+ }
2872
+ };
2873
+ const payload = {
2874
+ messageId
2875
+ };
2876
+ workerEx.messagePort.postMessage({ command, payload });
2877
+ } catch (error) {
2878
+ console.error(`#PostMessageToWorkerGetRunners(): Error: [${error}]`);
2879
+ }
2880
+ });
2881
+ });
2809
2882
  __privateSet(this, _id, v4());
2810
2883
  if (options) {
2811
2884
  __privateSet(this, _options2, options);
@@ -2869,6 +2942,7 @@ _STSInstrumentController = new WeakMap();
2869
2942
  _telemetryProcessor = new WeakMap();
2870
2943
  _archiveList = new WeakMap();
2871
2944
  _id = new WeakMap();
2945
+ _messages = new WeakMap();
2872
2946
  _processLoopExecutor2 = new WeakMap();
2873
2947
  _debug2 = new WeakMap();
2874
2948
  _SetRunnerIntoWorker = new WeakMap();
@@ -2898,6 +2972,37 @@ _UpdateOptionsWorker = new WeakMap();
2898
2972
  _TerminateWorker = new WeakMap();
2899
2973
  _BroadcastCommandToAllRunners = new WeakMap();
2900
2974
  _HandleAllWorkers = new WeakMap();
2975
+ _STSWorkerManager_instances = new WeakSet();
2976
+ //GetWorkersEx = async (messageId: string, workerEx: IWorkerEx): Promise<IWorkers> => {
2977
+ //const retVal2 = await this.#PostMessageToWorkerGetRunners(workerEx, eIWMessageCommands.GetRunners);
2978
+ //});
2979
+ //}
2980
+ GetRunnersResponse_fn = function(stsWorkerEx, payload) {
2981
+ try {
2982
+ const messageId = payload.messageId;
2983
+ if (__privateGet(this, _messages)[messageId]) {
2984
+ const messageRecord = __privateGet(this, _messages)[messageId];
2985
+ clearTimeout(messageRecord.timeout);
2986
+ const returnPayload = {
2987
+ command: eIWMessageCommands.GetRunners,
2988
+ payload: {
2989
+ messageId,
2990
+ workerId: stsWorkerEx.id,
2991
+ runners: payload.runners
2992
+ }
2993
+ };
2994
+ delete __privateGet(this, _messages)[messageId];
2995
+ messageRecord.resolveMessage(returnPayload);
2996
+ }
2997
+ } catch (error) {
2998
+ console.error(`#GetRunnersResponse(): Error: [${error}]`);
2999
+ }
3000
+ };
3001
+ _SyncRunnerData = new WeakMap();
3002
+ _SyncWorkerDataFromPayload = new WeakMap();
3003
+ _SyncWorkerDataFromWorker = new WeakMap();
3004
+ _SyncWorkerDataFromWorkers = new WeakMap();
3005
+ _PostMessageToWorkerGetRunners = new WeakMap();
2901
3006
  export {
2902
3007
  IRunnerState,
2903
3008
  IWorkerState,