@nsshunt/stsappframework 3.1.214 → 3.1.216
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commonTypes.js.map +1 -1
- package/dist/index.js +1 -7
- package/dist/index.js.map +1 -1
- package/dist/serverprocessbase.js +2 -2
- package/dist/serverprocessbase.js.map +1 -1
- package/dist/stscontrollerbase.js.map +1 -1
- package/dist/{server.js → stsexpressserver.js} +1 -1
- package/dist/stsexpressserver.js.map +1 -0
- package/dist/stslatencycontroller.js.map +1 -1
- package/dist/stslatencyroute.js.map +1 -1
- package/dist/stsrouterbase.js.map +1 -1
- package/dist/vitesttesting/appSingleWSS.js +2 -1
- package/dist/vitesttesting/appSingleWSS.js.map +1 -1
- package/dist/workerprocessbase.js.map +1 -1
- package/package.json +5 -6
- package/src/commonTypes.ts +2 -0
- package/src/index.ts +1 -7
- package/src/serverprocessbase.ts +1 -1
- package/src/{socketIoServerHelper.ts → socketIoServerHelper.ts_bak} +1 -2
- package/src/stscontrollerbase.ts +1 -2
- package/src/{server.ts → stsexpressserver.ts} +1 -2
- package/src/stslatencycontroller.ts +1 -2
- package/src/stslatencyroute.ts +1 -2
- package/src/stsrouterbase.ts +1 -2
- package/src/vitesttesting/appSingleWSS.ts +2 -1
- package/src/workerprocessbase.ts +1 -2
- package/types/commonTypes.d.ts +0 -15
- package/types/commonTypes.d.ts.map +1 -1
- package/types/index.d.ts +0 -7
- package/types/index.d.ts.map +1 -1
- package/types/serverprocessbase.d.ts +1 -1
- package/types/serverprocessbase.d.ts.map +1 -1
- package/types/stscontrollerbase.d.ts.map +1 -1
- package/types/{server.d.ts → stsexpressserver.d.ts} +1 -1
- package/types/stsexpressserver.d.ts.map +1 -0
- package/types/stslatencycontroller.d.ts.map +1 -1
- package/types/stslatencyroute.d.ts.map +1 -1
- package/types/stsrouterbase.d.ts.map +1 -1
- package/types/vitesttesting/appSingleWSS.d.ts.map +1 -1
- package/types/workerprocessbase.d.ts.map +1 -1
- package/dist/authDefs.js +0 -33
- package/dist/authDefs.js.map +0 -1
- package/dist/gRPC/ststest/protos/auth_sample.js +0 -3
- package/dist/gRPC/ststest/protos/auth_sample.js.map +0 -1
- package/dist/gRPC/ststest/protos/echo.js +0 -3
- package/dist/gRPC/ststest/protos/echo.js.map +0 -1
- package/dist/gRPC/ststest/protos/grpc/examples/echo/Echo.js +0 -4
- package/dist/gRPC/ststest/protos/grpc/examples/echo/Echo.js.map +0 -1
- package/dist/gRPC/ststest/protos/grpc/examples/echo/EchoRequest.js +0 -4
- package/dist/gRPC/ststest/protos/grpc/examples/echo/EchoRequest.js.map +0 -1
- package/dist/gRPC/ststest/protos/grpc/examples/echo/EchoResponse.js +0 -4
- package/dist/gRPC/ststest/protos/grpc/examples/echo/EchoResponse.js.map +0 -1
- package/dist/gRPC/ststest/protos/grpc/testing/Request.js +0 -4
- package/dist/gRPC/ststest/protos/grpc/testing/Request.js.map +0 -1
- package/dist/gRPC/ststest/protos/grpc/testing/Response.js +0 -4
- package/dist/gRPC/ststest/protos/grpc/testing/Response.js.map +0 -1
- package/dist/gRPC/ststest/protos/grpc/testing/TestService.js +0 -4
- package/dist/gRPC/ststest/protos/grpc/testing/TestService.js.map +0 -1
- package/dist/gRPC/ststest/protos/hellostreamingworld/HelloReply.js +0 -4
- package/dist/gRPC/ststest/protos/hellostreamingworld/HelloReply.js.map +0 -1
- package/dist/gRPC/ststest/protos/hellostreamingworld/HelloRequest.js +0 -4
- package/dist/gRPC/ststest/protos/hellostreamingworld/HelloRequest.js.map +0 -1
- package/dist/gRPC/ststest/protos/hellostreamingworld/MultiGreeter.js +0 -4
- package/dist/gRPC/ststest/protos/hellostreamingworld/MultiGreeter.js.map +0 -1
- package/dist/gRPC/ststest/protos/hellostreamingworld.js +0 -3
- package/dist/gRPC/ststest/protos/hellostreamingworld.js.map +0 -1
- package/dist/gRPC/ststest/protos/helloworld/Greeter.js +0 -4
- package/dist/gRPC/ststest/protos/helloworld/Greeter.js.map +0 -1
- package/dist/gRPC/ststest/protos/helloworld/HelloReply.js +0 -4
- package/dist/gRPC/ststest/protos/helloworld/HelloReply.js.map +0 -1
- package/dist/gRPC/ststest/protos/helloworld/HelloRequest.js +0 -4
- package/dist/gRPC/ststest/protos/helloworld/HelloRequest.js.map +0 -1
- package/dist/gRPC/ststest/protos/helloworld.js +0 -3
- package/dist/gRPC/ststest/protos/helloworld.js.map +0 -1
- package/dist/gRPC/ststest/protos/keyvaluestore/KeyValueStore.js +0 -4
- package/dist/gRPC/ststest/protos/keyvaluestore/KeyValueStore.js.map +0 -1
- package/dist/gRPC/ststest/protos/keyvaluestore/Request.js +0 -4
- package/dist/gRPC/ststest/protos/keyvaluestore/Request.js.map +0 -1
- package/dist/gRPC/ststest/protos/keyvaluestore/Response.js +0 -4
- package/dist/gRPC/ststest/protos/keyvaluestore/Response.js.map +0 -1
- package/dist/gRPC/ststest/protos/keyvaluestore.js +0 -3
- package/dist/gRPC/ststest/protos/keyvaluestore.js.map +0 -1
- package/dist/gRPC/ststest/protos/route_guide.js +0 -3
- package/dist/gRPC/ststest/protos/route_guide.js.map +0 -1
- package/dist/gRPC/ststest/protos/routeguide/Feature.js +0 -4
- package/dist/gRPC/ststest/protos/routeguide/Feature.js.map +0 -1
- package/dist/gRPC/ststest/protos/routeguide/Point.js +0 -4
- package/dist/gRPC/ststest/protos/routeguide/Point.js.map +0 -1
- package/dist/gRPC/ststest/protos/routeguide/Rectangle.js +0 -4
- package/dist/gRPC/ststest/protos/routeguide/Rectangle.js.map +0 -1
- package/dist/gRPC/ststest/protos/routeguide/RouteGuide.js +0 -4
- package/dist/gRPC/ststest/protos/routeguide/RouteGuide.js.map +0 -1
- package/dist/gRPC/ststest/protos/routeguide/RouteNote.js +0 -4
- package/dist/gRPC/ststest/protos/routeguide/RouteNote.js.map +0 -1
- package/dist/gRPC/ststest/protos/routeguide/RouteSummary.js +0 -4
- package/dist/gRPC/ststest/protos/routeguide/RouteSummary.js.map +0 -1
- package/dist/gRPC/ststest/src/commonTypes.js +0 -3
- package/dist/gRPC/ststest/src/commonTypes.js.map +0 -1
- package/dist/gRPC/ststest/src/greeter_client.js +0 -67
- package/dist/gRPC/ststest/src/greeter_client.js.map +0 -1
- package/dist/gRPC/ststest/src/greeter_server.js +0 -78
- package/dist/gRPC/ststest/src/greeter_server.js.map +0 -1
- package/dist/gRPC/ststest/src/route_guide_client.js +0 -258
- package/dist/gRPC/ststest/src/route_guide_client.js.map +0 -1
- package/dist/gRPC/ststest/src/route_guide_server.js +0 -237
- package/dist/gRPC/ststest/src/route_guide_server.js.map +0 -1
- package/dist/gRPC/ststest/src/route_guide_server2.js +0 -205
- package/dist/gRPC/ststest/src/route_guide_server2.js.map +0 -1
- package/dist/influxdb/influxDBManager.js +0 -304
- package/dist/influxdb/influxDBManager.js.map +0 -1
- package/dist/influxdb/influxDBManagerAgent.js +0 -14
- package/dist/influxdb/influxDBManagerAgent.js.map +0 -1
- package/dist/influxdb/influxDBManagerBase.js +0 -100
- package/dist/influxdb/influxDBManagerBase.js.map +0 -1
- package/dist/influxdb/influxDBManagerLambda.js +0 -17
- package/dist/influxdb/influxDBManagerLambda.js.map +0 -1
- package/dist/influxdb/influxDBManagerService.js +0 -14
- package/dist/influxdb/influxDBManagerService.js.map +0 -1
- package/dist/publishInstrumentsWebWorker.js +0 -159
- package/dist/publishInstrumentsWebWorker.js.map +0 -1
- package/dist/server.js.map +0 -1
- package/dist/socketIoServerHelper.js +0 -125
- package/dist/socketIoServerHelper.js.map +0 -1
- package/dist/tcpclient/app.js +0 -23
- package/dist/tcpclient/app.js.map +0 -1
- package/dist/tcpclient/app2.js +0 -57
- package/dist/tcpclient/app2.js.map +0 -1
- package/dist/tcpserver/app.js +0 -16
- package/dist/tcpserver/app.js.map +0 -1
- package/dist/tcpserver/appConfig.js +0 -83
- package/dist/tcpserver/appConfig.js.map +0 -1
- package/dist/tcpserver/appmaster.js +0 -446
- package/dist/tcpserver/appmaster.js.map +0 -1
- package/dist/testertesting/app.js +0 -284
- package/dist/testertesting/app.js.map +0 -1
- package/dist/testertesting/commonTypes.js +0 -47
- package/dist/testertesting/commonTypes.js.map +0 -1
- package/dist/testertesting/telemetryProcessor.js +0 -111
- package/dist/testertesting/telemetryProcessor.js.map +0 -1
- package/dist/testertesting/testCase01.js +0 -169
- package/dist/testertesting/testCase01.js.map +0 -1
- package/dist/testertesting/workerInstance.js +0 -263
- package/dist/testertesting/workerInstance.js.map +0 -1
- package/dist/testertesting/workerManager.js +0 -450
- package/dist/testertesting/workerManager.js.map +0 -1
- package/dist/testertesting/workerWorkerTestRunner01.js +0 -35
- package/dist/testertesting/workerWorkerTestRunner01.js.map +0 -1
- package/dist/testing/app.js +0 -18
- package/dist/testing/app.js.map +0 -1
- package/dist/testing/appConfig.js +0 -93
- package/dist/testing/appConfig.js.map +0 -1
- package/dist/testing/appTinyEmitter.js +0 -37
- package/dist/testing/appTinyEmitter.js.map +0 -1
- package/dist/testing/appWorkerWSS.js +0 -151
- package/dist/testing/appWorkerWSS.js.map +0 -1
- package/dist/testing/appredistest.js +0 -239
- package/dist/testing/appredistest.js.map +0 -1
- package/dist/testing/appsolo.js +0 -67
- package/dist/testing/appsolo.js.map +0 -1
- package/dist/testing/promiseTesting.js +0 -77
- package/dist/testing/promiseTesting.js.map +0 -1
- package/dist/testing/server.js +0 -15
- package/dist/testing/server.js.map +0 -1
- package/dist/testing/wsevents.js +0 -3
- package/dist/testing/wsevents.js.map +0 -1
- package/dist/webworkertesting/app.js +0 -44
- package/dist/webworkertesting/app.js.map +0 -1
- package/dist/webworkertesting/worker.js +0 -21
- package/dist/webworkertesting/worker.js.map +0 -1
- package/src/authDefs.ts +0 -37
- package/src/gRPC/ststest/protos/BUILD +0 -82
- package/src/gRPC/ststest/protos/README.md +0 -8
- package/src/gRPC/ststest/protos/auth_sample.proto +0 -42
- package/src/gRPC/ststest/protos/auth_sample.ts +0 -20
- package/src/gRPC/ststest/protos/echo.proto +0 -45
- package/src/gRPC/ststest/protos/echo.ts +0 -22
- package/src/gRPC/ststest/protos/grpc/examples/echo/Echo.ts +0 -55
- package/src/gRPC/ststest/protos/grpc/examples/echo/EchoRequest.ts +0 -10
- package/src/gRPC/ststest/protos/grpc/examples/echo/EchoResponse.ts +0 -10
- package/src/gRPC/ststest/protos/grpc/testing/Request.ts +0 -12
- package/src/gRPC/ststest/protos/grpc/testing/Response.ts +0 -12
- package/src/gRPC/ststest/protos/grpc/testing/TestService.ts +0 -27
- package/src/gRPC/ststest/protos/hellostreamingworld/HelloReply.ts +0 -10
- package/src/gRPC/ststest/protos/hellostreamingworld/HelloRequest.ts +0 -12
- package/src/gRPC/ststest/protos/hellostreamingworld/MultiGreeter.ts +0 -23
- package/src/gRPC/ststest/protos/hellostreamingworld.proto +0 -39
- package/src/gRPC/ststest/protos/hellostreamingworld.ts +0 -18
- package/src/gRPC/ststest/protos/helloworld/Greeter.ts +0 -35
- package/src/gRPC/ststest/protos/helloworld/HelloReply.ts +0 -10
- package/src/gRPC/ststest/protos/helloworld/HelloRequest.ts +0 -10
- package/src/gRPC/ststest/protos/helloworld.proto +0 -40
- package/src/gRPC/ststest/protos/helloworld.ts +0 -18
- package/src/gRPC/ststest/protos/keyvaluestore/KeyValueStore.ts +0 -23
- package/src/gRPC/ststest/protos/keyvaluestore/Request.ts +0 -10
- package/src/gRPC/ststest/protos/keyvaluestore/Response.ts +0 -10
- package/src/gRPC/ststest/protos/keyvaluestore.proto +0 -33
- package/src/gRPC/ststest/protos/keyvaluestore.ts +0 -18
- package/src/gRPC/ststest/protos/route_guide.proto +0 -111
- package/src/gRPC/ststest/protos/route_guide.ts +0 -21
- package/src/gRPC/ststest/protos/routeguide/Feature.ts +0 -13
- package/src/gRPC/ststest/protos/routeguide/Point.ts +0 -12
- package/src/gRPC/ststest/protos/routeguide/Rectangle.ts +0 -13
- package/src/gRPC/ststest/protos/routeguide/RouteGuide.ts +0 -58
- package/src/gRPC/ststest/protos/routeguide/RouteNote.ts +0 -13
- package/src/gRPC/ststest/protos/routeguide/RouteSummary.ts +0 -16
- package/src/gRPC/ststest/src/commonTypes.ts +0 -27
- package/src/gRPC/ststest/src/greeter_client.ts +0 -52
- package/src/gRPC/ststest/src/greeter_server.ts +0 -62
- package/src/gRPC/ststest/src/route_guide_client.ts +0 -266
- package/src/gRPC/ststest/src/route_guide_server.ts +0 -234
- package/src/gRPC/ststest/src/route_guide_server2.ts +0 -211
- package/src/influxdb/influxDBManager.ts +0 -334
- package/src/influxdb/influxDBManagerAgent.ts +0 -14
- package/src/influxdb/influxDBManagerBase.ts +0 -108
- package/src/influxdb/influxDBManagerLambda.ts +0 -17
- package/src/influxdb/influxDBManagerService.ts +0 -14
- package/src/publishInstrumentsWebWorker.ts +0 -157
- package/src/tcpclient/app.ts +0 -21
- package/src/tcpclient/app2.ts +0 -58
- package/src/tcpserver/app.ts +0 -11
- package/src/tcpserver/appConfig.ts +0 -99
- package/src/tcpserver/appmaster.ts +0 -503
- package/src/testertesting/app.ts +0 -349
- package/src/testertesting/commonTypes.ts +0 -236
- package/src/testertesting/telemetryProcessor.ts +0 -125
- package/src/testertesting/testCase01.ts +0 -207
- package/src/testertesting/workerInstance.ts +0 -297
- package/src/testertesting/workerManager.ts +0 -511
- package/src/testertesting/workerWorkerTestRunner01.ts +0 -34
- package/src/testing/app.ts +0 -14
- package/src/testing/appConfig.ts +0 -110
- package/src/testing/appTinyEmitter.ts +0 -57
- package/src/testing/appWorkerWSS.ts +0 -174
- package/src/testing/appredistest.ts +0 -304
- package/src/testing/appsolo.ts +0 -96
- package/src/testing/docker-compose.yml +0 -20
- package/src/testing/promiseTesting.ts +0 -86
- package/src/testing/server.ts +0 -17
- package/src/testing/wsevents.ts +0 -33
- package/src/webworkertesting/app.ts +0 -56
- package/src/webworkertesting/worker.ts +0 -24
- package/types/authDefs.d.ts +0 -29
- package/types/authDefs.d.ts.map +0 -1
- package/types/gRPC/ststest/protos/auth_sample.d.ts +0 -19
- package/types/gRPC/ststest/protos/auth_sample.d.ts.map +0 -1
- package/types/gRPC/ststest/protos/echo.d.ts +0 -21
- package/types/gRPC/ststest/protos/echo.d.ts.map +0 -1
- package/types/gRPC/ststest/protos/grpc/examples/echo/Echo.d.ts +0 -43
- package/types/gRPC/ststest/protos/grpc/examples/echo/Echo.d.ts.map +0 -1
- package/types/gRPC/ststest/protos/grpc/examples/echo/EchoRequest.d.ts +0 -7
- package/types/gRPC/ststest/protos/grpc/examples/echo/EchoRequest.d.ts.map +0 -1
- package/types/gRPC/ststest/protos/grpc/examples/echo/EchoResponse.d.ts +0 -7
- package/types/gRPC/ststest/protos/grpc/examples/echo/EchoResponse.d.ts.map +0 -1
- package/types/gRPC/ststest/protos/grpc/testing/Request.d.ts +0 -9
- package/types/gRPC/ststest/protos/grpc/testing/Request.d.ts.map +0 -1
- package/types/gRPC/ststest/protos/grpc/testing/Response.d.ts +0 -9
- package/types/gRPC/ststest/protos/grpc/testing/Response.d.ts.map +0 -1
- package/types/gRPC/ststest/protos/grpc/testing/TestService.d.ts +0 -21
- package/types/gRPC/ststest/protos/grpc/testing/TestService.d.ts.map +0 -1
- package/types/gRPC/ststest/protos/hellostreamingworld/HelloReply.d.ts +0 -7
- package/types/gRPC/ststest/protos/hellostreamingworld/HelloReply.d.ts.map +0 -1
- package/types/gRPC/ststest/protos/hellostreamingworld/HelloRequest.d.ts +0 -9
- package/types/gRPC/ststest/protos/hellostreamingworld/HelloRequest.d.ts.map +0 -1
- package/types/gRPC/ststest/protos/hellostreamingworld/MultiGreeter.d.ts +0 -17
- package/types/gRPC/ststest/protos/hellostreamingworld/MultiGreeter.d.ts.map +0 -1
- package/types/gRPC/ststest/protos/hellostreamingworld.d.ts +0 -17
- package/types/gRPC/ststest/protos/hellostreamingworld.d.ts.map +0 -1
- package/types/gRPC/ststest/protos/helloworld/Greeter.d.ts +0 -27
- package/types/gRPC/ststest/protos/helloworld/Greeter.d.ts.map +0 -1
- package/types/gRPC/ststest/protos/helloworld/HelloReply.d.ts +0 -7
- package/types/gRPC/ststest/protos/helloworld/HelloReply.d.ts.map +0 -1
- package/types/gRPC/ststest/protos/helloworld/HelloRequest.d.ts +0 -7
- package/types/gRPC/ststest/protos/helloworld/HelloRequest.d.ts.map +0 -1
- package/types/gRPC/ststest/protos/helloworld.d.ts +0 -17
- package/types/gRPC/ststest/protos/helloworld.d.ts.map +0 -1
- package/types/gRPC/ststest/protos/keyvaluestore/KeyValueStore.d.ts +0 -17
- package/types/gRPC/ststest/protos/keyvaluestore/KeyValueStore.d.ts.map +0 -1
- package/types/gRPC/ststest/protos/keyvaluestore/Request.d.ts +0 -7
- package/types/gRPC/ststest/protos/keyvaluestore/Request.d.ts.map +0 -1
- package/types/gRPC/ststest/protos/keyvaluestore/Response.d.ts +0 -7
- package/types/gRPC/ststest/protos/keyvaluestore/Response.d.ts.map +0 -1
- package/types/gRPC/ststest/protos/keyvaluestore.d.ts +0 -17
- package/types/gRPC/ststest/protos/keyvaluestore.d.ts.map +0 -1
- package/types/gRPC/ststest/protos/route_guide.d.ts +0 -20
- package/types/gRPC/ststest/protos/route_guide.d.ts.map +0 -1
- package/types/gRPC/ststest/protos/routeguide/Feature.d.ts +0 -10
- package/types/gRPC/ststest/protos/routeguide/Feature.d.ts.map +0 -1
- package/types/gRPC/ststest/protos/routeguide/Point.d.ts +0 -9
- package/types/gRPC/ststest/protos/routeguide/Point.d.ts.map +0 -1
- package/types/gRPC/ststest/protos/routeguide/Rectangle.d.ts +0 -10
- package/types/gRPC/ststest/protos/routeguide/Rectangle.d.ts.map +0 -1
- package/types/gRPC/ststest/protos/routeguide/RouteGuide.d.ts +0 -46
- package/types/gRPC/ststest/protos/routeguide/RouteGuide.d.ts.map +0 -1
- package/types/gRPC/ststest/protos/routeguide/RouteNote.d.ts +0 -10
- package/types/gRPC/ststest/protos/routeguide/RouteNote.d.ts.map +0 -1
- package/types/gRPC/ststest/protos/routeguide/RouteSummary.d.ts +0 -13
- package/types/gRPC/ststest/protos/routeguide/RouteSummary.d.ts.map +0 -1
- package/types/gRPC/ststest/src/commonTypes.d.ts +0 -23
- package/types/gRPC/ststest/src/commonTypes.d.ts.map +0 -1
- package/types/gRPC/ststest/src/greeter_client.d.ts +0 -3
- package/types/gRPC/ststest/src/greeter_client.d.ts.map +0 -1
- package/types/gRPC/ststest/src/greeter_server.d.ts +0 -3
- package/types/gRPC/ststest/src/greeter_server.d.ts.map +0 -1
- package/types/gRPC/ststest/src/route_guide_client.d.ts +0 -3
- package/types/gRPC/ststest/src/route_guide_client.d.ts.map +0 -1
- package/types/gRPC/ststest/src/route_guide_server.d.ts +0 -3
- package/types/gRPC/ststest/src/route_guide_server.d.ts.map +0 -1
- package/types/gRPC/ststest/src/route_guide_server2.d.ts +0 -3
- package/types/gRPC/ststest/src/route_guide_server2.d.ts.map +0 -1
- package/types/influxdb/influxDBManager.d.ts +0 -21
- package/types/influxdb/influxDBManager.d.ts.map +0 -1
- package/types/influxdb/influxDBManagerAgent.d.ts +0 -8
- package/types/influxdb/influxDBManagerAgent.d.ts.map +0 -1
- package/types/influxdb/influxDBManagerBase.d.ts +0 -14
- package/types/influxdb/influxDBManagerBase.d.ts.map +0 -1
- package/types/influxdb/influxDBManagerLambda.d.ts +0 -11
- package/types/influxdb/influxDBManagerLambda.d.ts.map +0 -1
- package/types/influxdb/influxDBManagerService.d.ts +0 -8
- package/types/influxdb/influxDBManagerService.d.ts.map +0 -1
- package/types/publishInstrumentsWebWorker.d.ts +0 -1
- package/types/publishInstrumentsWebWorker.d.ts.map +0 -1
- package/types/server.d.ts.map +0 -1
- package/types/socketIoServerHelper.d.ts +0 -20
- package/types/socketIoServerHelper.d.ts.map +0 -1
- package/types/tcpclient/app.d.ts +0 -2
- package/types/tcpclient/app.d.ts.map +0 -1
- package/types/tcpclient/app2.d.ts +0 -2
- package/types/tcpclient/app2.d.ts.map +0 -1
- package/types/tcpserver/app.d.ts +0 -2
- package/types/tcpserver/app.d.ts.map +0 -1
- package/types/tcpserver/appConfig.d.ts +0 -3
- package/types/tcpserver/appConfig.d.ts.map +0 -1
- package/types/tcpserver/appmaster.d.ts +0 -24
- package/types/tcpserver/appmaster.d.ts.map +0 -1
- package/types/testertesting/app.d.ts +0 -2
- package/types/testertesting/app.d.ts.map +0 -1
- package/types/testertesting/commonTypes.d.ts +0 -215
- package/types/testertesting/commonTypes.d.ts.map +0 -1
- package/types/testertesting/telemetryProcessor.d.ts +0 -6
- package/types/testertesting/telemetryProcessor.d.ts.map +0 -1
- package/types/testertesting/testCase01.d.ts +0 -20
- package/types/testertesting/testCase01.d.ts.map +0 -1
- package/types/testertesting/workerInstance.d.ts +0 -23
- package/types/testertesting/workerInstance.d.ts.map +0 -1
- package/types/testertesting/workerManager.d.ts +0 -16
- package/types/testertesting/workerManager.d.ts.map +0 -1
- package/types/testertesting/workerWorkerTestRunner01.d.ts +0 -7
- package/types/testertesting/workerWorkerTestRunner01.d.ts.map +0 -1
- package/types/testing/app.d.ts +0 -2
- package/types/testing/app.d.ts.map +0 -1
- package/types/testing/appConfig.d.ts +0 -3
- package/types/testing/appConfig.d.ts.map +0 -1
- package/types/testing/appTinyEmitter.d.ts +0 -2
- package/types/testing/appTinyEmitter.d.ts.map +0 -1
- package/types/testing/appWorkerWSS.d.ts +0 -26
- package/types/testing/appWorkerWSS.d.ts.map +0 -1
- package/types/testing/appredistest.d.ts +0 -4
- package/types/testing/appredistest.d.ts.map +0 -1
- package/types/testing/appsolo.d.ts +0 -3
- package/types/testing/appsolo.d.ts.map +0 -1
- package/types/testing/promiseTesting.d.ts +0 -4
- package/types/testing/promiseTesting.d.ts.map +0 -1
- package/types/testing/server.d.ts +0 -6
- package/types/testing/server.d.ts.map +0 -1
- package/types/testing/wsevents.d.ts +0 -18
- package/types/testing/wsevents.d.ts.map +0 -1
- package/types/webworkertesting/app.d.ts +0 -2
- package/types/webworkertesting/app.d.ts.map +0 -1
- package/types/webworkertesting/worker.d.ts +0 -2
- package/types/webworkertesting/worker.d.ts.map +0 -1
|
@@ -1,511 +0,0 @@
|
|
|
1
|
-
/* eslint @typescript-eslint/no-explicit-any: 0, @typescript-eslint/no-unused-vars: 0 */ // --> OFF
|
|
2
|
-
//import MyWorker from './sts-worker?worker' // https://vitejs.dev/guide/features.html#web-workers
|
|
3
|
-
import { IAsyncRunnerContext, IIWMessagePayload, IIWMessagePayloadContentBase,
|
|
4
|
-
IIWMessageCommand, eIWMessageCommands, IWorkerState, IRunnerState,
|
|
5
|
-
ISTSAgentWorkerMessagePort, IWorkerEx, IRunner, IRunnerEx,
|
|
6
|
-
ITestRunnerTelemetryPayload, IRunnerOptions, IRunnerTelemetry,
|
|
7
|
-
IWorkerManagerOptions, IWorkerFactory, IRunnerEvent,
|
|
8
|
-
IWorkerOptions
|
|
9
|
-
} from './commonTypes'
|
|
10
|
-
|
|
11
|
-
import { ModelDelimeter } from '@nsshunt/stsutils'
|
|
12
|
-
|
|
13
|
-
import { Sleep } from '@nsshunt/stsutils';
|
|
14
|
-
|
|
15
|
-
import { PublishInstrumentController } from '@nsshunt/stsobservability'
|
|
16
|
-
|
|
17
|
-
import chalk from 'chalk';
|
|
18
|
-
import { TelemetryProcessor } from './telemetryProcessor'
|
|
19
|
-
chalk.level = 3;
|
|
20
|
-
|
|
21
|
-
import isNode from 'detect-node'
|
|
22
|
-
|
|
23
|
-
export class STSWorkerManager {
|
|
24
|
-
//#agentSession: string = null;
|
|
25
|
-
#workersEx: Record<string, IWorkerEx> = { };
|
|
26
|
-
#runner = 0;
|
|
27
|
-
#workerId = 0;
|
|
28
|
-
#options: IWorkerManagerOptions;
|
|
29
|
-
#STSInstrumentController: PublishInstrumentController
|
|
30
|
-
#telemetryProcessor: TelemetryProcessor
|
|
31
|
-
|
|
32
|
-
constructor(options?: IWorkerManagerOptions) {
|
|
33
|
-
if (options) {
|
|
34
|
-
this.#options = options;
|
|
35
|
-
} else {
|
|
36
|
-
this.#options = { } as IWorkerManagerOptions;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
this.#STSInstrumentController = this.#options.publishInstrumentController;
|
|
40
|
-
this.#telemetryProcessor = new TelemetryProcessor();
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
#debug = (message: string) => {
|
|
44
|
-
console.log(chalk.cyan(`pid: [${process.pid}] STSWorkerManager::${message}`));
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
get WorkersEx(): Record<string, IWorkerEx> {
|
|
48
|
-
return this.#workersEx;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
get runnerId(): number {
|
|
52
|
-
return this.#runner;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
set runnerId(id: number) {
|
|
56
|
-
this.#runner = id;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
AddWorker = async (useWorkerFactory?: IWorkerFactory): Promise<IWorkerEx> => {
|
|
60
|
-
let workerFactory: IWorkerFactory;
|
|
61
|
-
if (useWorkerFactory) {
|
|
62
|
-
// Use the supplied workFactory
|
|
63
|
-
workerFactory = useWorkerFactory;
|
|
64
|
-
} else {
|
|
65
|
-
// Use the default workFactory
|
|
66
|
-
workerFactory = this.#options.workerFactory
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
const workerId = this.#workerId++;
|
|
70
|
-
const stsWorkerEx: IWorkerEx = {
|
|
71
|
-
id: workerId,
|
|
72
|
-
worker: workerFactory.createWorkerThreadWorker(),
|
|
73
|
-
state: IWorkerState.starting,
|
|
74
|
-
workerThreadWorkerOptions: workerFactory.workerThreadWorkerOptions,
|
|
75
|
-
runnersEx: { } as Record<string, IRunnerEx>,
|
|
76
|
-
runnersEvents: { } as Record<string, IRunnerEvent[]>,
|
|
77
|
-
|
|
78
|
-
GetRunner: (id: string): IRunnerEx | null => this.#workersEx[workerId].GetRunner(id),
|
|
79
|
-
|
|
80
|
-
// Commands to execute on individual runners
|
|
81
|
-
AddRunner: (runnerOptions: IRunnerOptions): IRunnerEx => this.AddRunnerToWorker(stsWorkerEx, runnerOptions),
|
|
82
|
-
StartRunner: (runner: IRunnerEx): Promise<boolean> => this.#StartRunner(stsWorkerEx, runner),
|
|
83
|
-
StopRunner: (runner: IRunnerEx): Promise<boolean> => this.#StopRunner(stsWorkerEx, runner),
|
|
84
|
-
PauseRunner: (runner: IRunnerEx): Promise<boolean> => this.#PauseRunner(stsWorkerEx, runner),
|
|
85
|
-
ResumeRunner: (runner: IRunnerEx): Promise<boolean> => this.#ResumeRunner(stsWorkerEx, runner),
|
|
86
|
-
TerminateRunner: (runner: IRunnerEx): Promise<boolean> => this.#TerminateRunner(stsWorkerEx, runner),
|
|
87
|
-
ResetRunner: (runner: IRunnerEx): Promise<boolean> => this.#ResetRunner(stsWorkerEx, runner),
|
|
88
|
-
ExecuteRunner: (runner: IRunnerEx): Promise<boolean> => this.#ExecuteRunner(stsWorkerEx, runner),
|
|
89
|
-
UpdateOptionsRunner: (runner: IRunnerEx, options: IRunnerOptions): Promise<boolean> => this.#UpdateOptions(stsWorkerEx, runner, options),
|
|
90
|
-
|
|
91
|
-
// Commands to execute on all runners
|
|
92
|
-
Start: async (): Promise<boolean> => this.#StartWorker(stsWorkerEx),
|
|
93
|
-
Stop: async (): Promise<boolean> => this.#StopWorker(stsWorkerEx),
|
|
94
|
-
Pause: async (): Promise<boolean> => this.#PauseWorker(stsWorkerEx),
|
|
95
|
-
Resume: async (): Promise<boolean> => this.#ResumeWorker(stsWorkerEx),
|
|
96
|
-
Terminate: async (): Promise<boolean> => this.#TerminateWorker(stsWorkerEx),
|
|
97
|
-
Reset: async (): Promise<boolean> => this.#ResetWorker(stsWorkerEx),
|
|
98
|
-
Execute: async (): Promise<boolean> => this.#ExecuteWorker(stsWorkerEx),
|
|
99
|
-
UpdateOptions: async (options: IRunnerOptions): Promise<boolean> => this.#UpdateOptionsWorker(stsWorkerEx, options)
|
|
100
|
-
}
|
|
101
|
-
this.#STSInstrumentController.LogEx(chalk.yellow(`pid: [${process.pid}] Creating new worker: [${stsWorkerEx.id}]`));
|
|
102
|
-
this.#debug(`Adding worker: [${stsWorkerEx.id}]`);
|
|
103
|
-
|
|
104
|
-
/*
|
|
105
|
-
stsWorkerEx.worker.onmessage = function(data: MessageEvent) {
|
|
106
|
-
console.log(data.data);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
stsWorkerEx.worker.onerror = function(error) {
|
|
110
|
-
console.log(error);
|
|
111
|
-
};
|
|
112
|
-
*/
|
|
113
|
-
|
|
114
|
-
const {
|
|
115
|
-
port1, // process message port
|
|
116
|
-
port2 // collector message port
|
|
117
|
-
} = new MessageChannel();
|
|
118
|
-
|
|
119
|
-
const workerPort = port1;
|
|
120
|
-
|
|
121
|
-
this.#debug(`AddWorker::workerThreadWorkerOptions: [${stsWorkerEx.workerThreadWorkerOptions.id}]`);
|
|
122
|
-
|
|
123
|
-
this.#PostMessageToWorker(stsWorkerEx, eIWMessageCommands.MessagePort, {
|
|
124
|
-
port: port2,
|
|
125
|
-
//applicationStoreState: stateCopy,
|
|
126
|
-
options: {
|
|
127
|
-
...stsWorkerEx.workerThreadWorkerOptions
|
|
128
|
-
} as IWorkerOptions
|
|
129
|
-
} as ISTSAgentWorkerMessagePort, port2);
|
|
130
|
-
|
|
131
|
-
// Process messages received back from the worker
|
|
132
|
-
//workerPort.onmessage = async (data: MessageEvent) => {
|
|
133
|
-
workerPort.on('message', (data: any) => {
|
|
134
|
-
let publishMessagePayload: IIWMessagePayload;
|
|
135
|
-
if (isNode) {
|
|
136
|
-
publishMessagePayload = data as IIWMessagePayload;
|
|
137
|
-
} else {
|
|
138
|
-
// const publishMessagePayload: IIWMessagePayload = data.data as IIWMessagePayload; browser version
|
|
139
|
-
publishMessagePayload = data.data as IIWMessagePayload; // browser version
|
|
140
|
-
}
|
|
141
|
-
switch (publishMessagePayload.command) {
|
|
142
|
-
case eIWMessageCommands.MessagePortResponse :
|
|
143
|
-
//this.#debug(`AddWorker::eIWMessageCommands.MessagePortResponse`);
|
|
144
|
-
stsWorkerEx.state = IWorkerState.started;
|
|
145
|
-
break;
|
|
146
|
-
case eIWMessageCommands.InstrumentTelemetry :
|
|
147
|
-
//this.#debug(`AddWorker::eIWMessageCommands.InstrumentTelemetry`);
|
|
148
|
-
this.#ProcessTelemetry(stsWorkerEx, publishMessagePayload.payload as ITestRunnerTelemetryPayload);
|
|
149
|
-
break;
|
|
150
|
-
case eIWMessageCommands.Completed :
|
|
151
|
-
//this.#debug(`AddWorker::eIWMessageCommands.InstrumentTelemetry`);
|
|
152
|
-
this.#ProcessCompleted(stsWorkerEx, publishMessagePayload.payload as ITestRunnerTelemetryPayload);
|
|
153
|
-
break;
|
|
154
|
-
default :
|
|
155
|
-
this.#debug(`AddWorker::default`);
|
|
156
|
-
}
|
|
157
|
-
});
|
|
158
|
-
|
|
159
|
-
this.#workersEx[stsWorkerEx.id] = stsWorkerEx;
|
|
160
|
-
|
|
161
|
-
this.#debug(`Added worker: [${stsWorkerEx.id}]`);
|
|
162
|
-
|
|
163
|
-
return stsWorkerEx;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
AddRunnerToWorker = (stsWorkerEx: IWorkerEx, runnerOptions: IRunnerOptions): IRunnerEx => {
|
|
167
|
-
const runnerEx: IRunnerEx = this.#CreateAsyncRunner(stsWorkerEx, runnerOptions);
|
|
168
|
-
stsWorkerEx.runnersEx[runnerEx.id] = runnerEx;
|
|
169
|
-
this.#SetRunnerIntoWorker(stsWorkerEx, runnerEx);
|
|
170
|
-
runnerEx.publishInstrumentController.LogEx(chalk.green(`Added runner: [${runnerEx.id}] into worker: [${stsWorkerEx.id}]`));
|
|
171
|
-
return runnerEx;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
#CreateRunnerCopy(runnerEx: IRunnerEx): IRunner {
|
|
175
|
-
return {
|
|
176
|
-
id: runnerEx.id,
|
|
177
|
-
asyncRunnerContext: { ...runnerEx.asyncRunnerContext },
|
|
178
|
-
options: { ...runnerEx.options },
|
|
179
|
-
instrumentData: { ...runnerEx.instrumentData }
|
|
180
|
-
} as IRunner
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
#SetRunnerIntoWorker = (workerEx: IWorkerEx, runnerEx: IRunnerEx): void => {
|
|
184
|
-
// Now that the worker is setup, send the options
|
|
185
|
-
//@@ wait until worker in running state
|
|
186
|
-
const payload: ITestRunnerTelemetryPayload = {
|
|
187
|
-
runner: this.#CreateRunnerCopy(runnerEx)
|
|
188
|
-
}
|
|
189
|
-
this.#PostMessageToWorker(workerEx, eIWMessageCommands.AddRunner, payload);
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
#ProcessTelemetry = (workerEx: IWorkerEx, payloadContents: ITestRunnerTelemetryPayload): void => {
|
|
193
|
-
//const store = TelemetryStore();
|
|
194
|
-
|
|
195
|
-
const { runner } = payloadContents;
|
|
196
|
-
|
|
197
|
-
if (workerEx.runnersEx[runner.id]) {
|
|
198
|
-
const runnerEx: IRunnerEx = workerEx.runnersEx[runner.id];
|
|
199
|
-
|
|
200
|
-
// Copy telemetry
|
|
201
|
-
runnerEx.instrumentData = { ...runner.instrumentData };
|
|
202
|
-
|
|
203
|
-
if (runner.instrumentData.message) {
|
|
204
|
-
runnerEx.instrumentData.message = [...runner.instrumentData.message];
|
|
205
|
-
} else {
|
|
206
|
-
runnerEx.instrumentData.message = [ ];
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
const update = this.#telemetryProcessor.ProcessTelemetry(runnerEx.publishInstrumentController, runnerEx.instrumentData);
|
|
210
|
-
|
|
211
|
-
if (update) {
|
|
212
|
-
//store.Update(workerEx, runnerEx);
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
#ProcessCompleted = (workerEx: IWorkerEx, payloadContents: ITestRunnerTelemetryPayload): void => {
|
|
218
|
-
const { runner } = payloadContents;
|
|
219
|
-
if (workerEx.runnersEvents[runner.id]) {
|
|
220
|
-
const runnersEvents: IRunnerEvent[] = workerEx.runnersEvents[runner.id];
|
|
221
|
-
runnersEvents.forEach(ev => {
|
|
222
|
-
if (ev.eventName.localeCompare('Completed') === 0) {
|
|
223
|
-
ev.cb();
|
|
224
|
-
}
|
|
225
|
-
})
|
|
226
|
-
}
|
|
227
|
-
console.log(chalk.green(`ProcessCompleted: [${JSON.stringify(runner)}]`));
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
#CreateAsyncRunner = (workerEx: IWorkerEx, runnerOptions: IRunnerOptions): IRunnerEx => {
|
|
231
|
-
//const applicationStore = ApplicationStore();
|
|
232
|
-
this.#runner++; // The runner number always increases
|
|
233
|
-
this.#STSInstrumentController.LogEx(chalk.yellow(`Creating new async runner: [${this.#runner}]`));
|
|
234
|
-
const asyncRunnerContext: IAsyncRunnerContext = {
|
|
235
|
-
nid: `\
|
|
236
|
-
${workerEx.workerThreadWorkerOptions.hostName}${ModelDelimeter.COMPONENT_SEPERATOR}${workerEx.workerThreadWorkerOptions.agentId}-${workerEx.workerThreadWorkerOptions.userAgent}\
|
|
237
|
-
${ModelDelimeter.NID_SEPERATOR}\
|
|
238
|
-
worker${workerEx.id}\
|
|
239
|
-
${ModelDelimeter.SEPERATOR}\
|
|
240
|
-
${this.#runner}`,
|
|
241
|
-
id: this.#runner.toString(),
|
|
242
|
-
hostName: (workerEx.workerThreadWorkerOptions.hostName ? workerEx.workerThreadWorkerOptions.hostName : 'host'),
|
|
243
|
-
agentName: `${workerEx.workerThreadWorkerOptions.agentId}-${workerEx.workerThreadWorkerOptions.userAgent}`,
|
|
244
|
-
threadId: `worker${workerEx.id}`,
|
|
245
|
-
asyncRunnerId: this.#runner
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
const runnerEx: IRunnerEx = {
|
|
249
|
-
id: this.#runner,
|
|
250
|
-
publishInstrumentController: this.#STSInstrumentController.AddPublishInstrumentController(asyncRunnerContext),
|
|
251
|
-
asyncRunnerContext: asyncRunnerContext,
|
|
252
|
-
options: runnerOptions,
|
|
253
|
-
instrumentData: {
|
|
254
|
-
requestCount: 0,
|
|
255
|
-
errorCount: 0,
|
|
256
|
-
retryCount: 0,
|
|
257
|
-
authenticationCount: 0,
|
|
258
|
-
authenticationErrorCount: 0,
|
|
259
|
-
authenticationRetryCount: 0,
|
|
260
|
-
velocity: 0,
|
|
261
|
-
coreCount: 0,
|
|
262
|
-
timer: 0,
|
|
263
|
-
duration: 0,
|
|
264
|
-
latency: 0,
|
|
265
|
-
activeRequestCount: 0,
|
|
266
|
-
message: [ ],
|
|
267
|
-
childCount: 0,
|
|
268
|
-
rx: 0,
|
|
269
|
-
tx: 0
|
|
270
|
-
} as IRunnerTelemetry,
|
|
271
|
-
Start: async (): Promise<boolean> => this.#StartRunner(workerEx, runnerEx),
|
|
272
|
-
Stop: async (): Promise<boolean> => this.#StopRunner(workerEx, runnerEx),
|
|
273
|
-
Pause: async (): Promise<boolean> => this.#PauseRunner(workerEx, runnerEx),
|
|
274
|
-
Resume: async (): Promise<boolean> => this.#ResumeRunner(workerEx, runnerEx),
|
|
275
|
-
Reset: async (): Promise<boolean> => this.#ResetRunner(workerEx, runnerEx),
|
|
276
|
-
Execute: async (): Promise<boolean> => this.#ExecuteRunner(workerEx, runnerEx),
|
|
277
|
-
Terminate: async (): Promise<boolean> => this.#TerminateRunner(workerEx, runnerEx),
|
|
278
|
-
UpdateOptions: async (options: IRunnerOptions): Promise<boolean> => this.#UpdateOptions(workerEx, runnerEx, options),
|
|
279
|
-
on: (eventName: string, cb: () => void): IRunnerEx => {
|
|
280
|
-
if (!workerEx.runnersEvents[runnerEx.id]) {
|
|
281
|
-
workerEx.runnersEvents[runnerEx.id] = [ ];
|
|
282
|
-
}
|
|
283
|
-
workerEx.runnersEvents[runnerEx.id].push({
|
|
284
|
-
eventName,
|
|
285
|
-
cb
|
|
286
|
-
});
|
|
287
|
-
return runnerEx;
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
return runnerEx;
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
#PostMessageToWorker = (workerEx: IWorkerEx, command: IIWMessageCommand, payload: IIWMessagePayloadContentBase | null, transferObject?: any) => {
|
|
295
|
-
if (transferObject) {
|
|
296
|
-
this.#debug(`#PostMessageToWorker with transfer object`);
|
|
297
|
-
workerEx.worker.postMessage({ command, payload }, [transferObject]);
|
|
298
|
-
this.#debug(`#PostMessageToWorker with transfer object - done...`);
|
|
299
|
-
} else {
|
|
300
|
-
this.#debug(`#PostMessageToWorker`);
|
|
301
|
-
workerEx.worker.postMessage({ command, payload });
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
#StartRunner = async (workerEx: IWorkerEx, runnerEx: IRunnerEx): Promise<boolean> => {
|
|
306
|
-
this.#PostMessageToWorker(workerEx, eIWMessageCommands.StartRunner, {
|
|
307
|
-
runner: this.#CreateRunnerCopy(runnerEx)
|
|
308
|
-
} as ITestRunnerTelemetryPayload);
|
|
309
|
-
return true;
|
|
310
|
-
}
|
|
311
|
-
|
|
312
|
-
#ResetRunner = async (workerEx: IWorkerEx, runnerEx: IRunnerEx): Promise<boolean> => {
|
|
313
|
-
this.#PostMessageToWorker(workerEx, eIWMessageCommands.ResetRunner, {
|
|
314
|
-
runner: this.#CreateRunnerCopy(runnerEx)
|
|
315
|
-
} as ITestRunnerTelemetryPayload);
|
|
316
|
-
return true;
|
|
317
|
-
}
|
|
318
|
-
|
|
319
|
-
#ExecuteRunner = async (workerEx: IWorkerEx, runnerEx: IRunnerEx): Promise<boolean> => {
|
|
320
|
-
this.#PostMessageToWorker(workerEx, eIWMessageCommands.ExecuteRunner, {
|
|
321
|
-
runner: this.#CreateRunnerCopy(runnerEx)
|
|
322
|
-
} as ITestRunnerTelemetryPayload);
|
|
323
|
-
return true;
|
|
324
|
-
}
|
|
325
|
-
|
|
326
|
-
#StopRunner = async (workerEx: IWorkerEx, runnerEx: IRunnerEx): Promise<boolean> => {
|
|
327
|
-
this.#PostMessageToWorker(workerEx, eIWMessageCommands.StopRunner, {
|
|
328
|
-
runner: this.#CreateRunnerCopy(runnerEx)
|
|
329
|
-
} as ITestRunnerTelemetryPayload);
|
|
330
|
-
return true;
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
#TerminateRunner = async (workerEx: IWorkerEx, runnerEx: IRunnerEx | null = null): Promise<boolean> => {
|
|
334
|
-
// If runnerEx not provided, Remove the first runner in the collection
|
|
335
|
-
if (runnerEx === null) {
|
|
336
|
-
const ids: string[] = Object.keys(workerEx.runnersEx);
|
|
337
|
-
if (ids.length > 0) {
|
|
338
|
-
const id = ids[0];
|
|
339
|
-
runnerEx = workerEx.runnersEx[id];
|
|
340
|
-
}
|
|
341
|
-
}
|
|
342
|
-
if (runnerEx !== null) {
|
|
343
|
-
this.#PostMessageToWorker(workerEx, eIWMessageCommands.TerminateRunner, {
|
|
344
|
-
runner: this.#CreateRunnerCopy(runnerEx)
|
|
345
|
-
} as ITestRunnerTelemetryPayload);
|
|
346
|
-
|
|
347
|
-
runnerEx.publishInstrumentController.LogEx(`Terminating runner: [${runnerEx.id}]`);
|
|
348
|
-
|
|
349
|
-
const promArray: Promise<boolean>[] = [ ];
|
|
350
|
-
|
|
351
|
-
promArray.push((async (): Promise<boolean> => {
|
|
352
|
-
await Sleep(100);
|
|
353
|
-
return runnerEx.publishInstrumentController.EndPublish() as Promise<boolean>
|
|
354
|
-
})());
|
|
355
|
-
|
|
356
|
-
//const store = TelemetryStore();
|
|
357
|
-
//store.RemoveRunner(workerEx, runnerEx);
|
|
358
|
-
|
|
359
|
-
delete workerEx.runnersEx[runnerEx.id];
|
|
360
|
-
|
|
361
|
-
const retVal = await Promise.all(promArray);
|
|
362
|
-
console.log(`Removed instrument workers: [${retVal}]`);
|
|
363
|
-
}
|
|
364
|
-
return true;
|
|
365
|
-
}
|
|
366
|
-
|
|
367
|
-
#PauseRunner = async (workerEx: IWorkerEx, runnerEx: IRunnerEx): Promise<boolean> => {
|
|
368
|
-
this.#PostMessageToWorker(workerEx, eIWMessageCommands.PauseRunner, {
|
|
369
|
-
runner: this.#CreateRunnerCopy(runnerEx)
|
|
370
|
-
} as ITestRunnerTelemetryPayload);
|
|
371
|
-
return true;
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
#ResumeRunner = async (workerEx: IWorkerEx, runnerEx: IRunnerEx): Promise<boolean> => {
|
|
375
|
-
this.#PostMessageToWorker(workerEx, eIWMessageCommands.ResumeRunner, {
|
|
376
|
-
runner: this.#CreateRunnerCopy(runnerEx)
|
|
377
|
-
} as ITestRunnerTelemetryPayload);
|
|
378
|
-
return true;
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
#WorkerCommand = async (workerEx: IWorkerEx, command: any, options?: IRunnerOptions): Promise<boolean> => {
|
|
382
|
-
try {
|
|
383
|
-
if (workerEx.state !== IWorkerState.stopped) {
|
|
384
|
-
console.log(`Stop Worker: [${workerEx.id}]`);
|
|
385
|
-
const promArray: Promise<boolean>[] = [ ];
|
|
386
|
-
|
|
387
|
-
// Terminate only those that are currently running...
|
|
388
|
-
const ids: string[] = Object.keys(workerEx.runnersEx);
|
|
389
|
-
|
|
390
|
-
ids.forEach((id) => {
|
|
391
|
-
const runnerEx: IRunnerEx = workerEx.runnersEx[id];
|
|
392
|
-
if (options) {
|
|
393
|
-
promArray.push(command(workerEx, runnerEx, options));
|
|
394
|
-
} else {
|
|
395
|
-
promArray.push(command(workerEx, runnerEx));
|
|
396
|
-
}
|
|
397
|
-
});
|
|
398
|
-
await Promise.all(promArray);
|
|
399
|
-
}
|
|
400
|
-
return true;
|
|
401
|
-
} catch (error) {
|
|
402
|
-
console.log(`Error in STSTestWorker:WorkerCommand: [${error}]`);
|
|
403
|
-
return false;
|
|
404
|
-
}
|
|
405
|
-
}
|
|
406
|
-
|
|
407
|
-
#PauseWorker = async (workerEx: IWorkerEx): Promise<boolean> => {
|
|
408
|
-
return this.#WorkerCommand(workerEx, this.#PauseRunner);
|
|
409
|
-
}
|
|
410
|
-
|
|
411
|
-
#ResumeWorker = async (workerEx: IWorkerEx): Promise<boolean> => {
|
|
412
|
-
return this.#WorkerCommand(workerEx, this.#ResumeRunner);
|
|
413
|
-
}
|
|
414
|
-
|
|
415
|
-
#StopWorker = async (workerEx: IWorkerEx): Promise<boolean> => {
|
|
416
|
-
return this.#WorkerCommand(workerEx, this.#StopRunner);
|
|
417
|
-
}
|
|
418
|
-
|
|
419
|
-
#StartWorker = async (workerEx: IWorkerEx): Promise<boolean> => {
|
|
420
|
-
return this.#WorkerCommand(workerEx, this.#StartRunner);
|
|
421
|
-
}
|
|
422
|
-
|
|
423
|
-
#ResetWorker = async (workerEx: IWorkerEx): Promise<boolean> => {
|
|
424
|
-
return this.#WorkerCommand(workerEx, this.#ResetRunner);
|
|
425
|
-
}
|
|
426
|
-
|
|
427
|
-
#ExecuteWorker = async (workerEx: IWorkerEx): Promise<boolean> => {
|
|
428
|
-
return this.#WorkerCommand(workerEx, this.#ExecuteRunner);
|
|
429
|
-
}
|
|
430
|
-
|
|
431
|
-
#UpdateOptionsWorker = async (workerEx: IWorkerEx, options: IRunnerOptions): Promise<boolean> => {
|
|
432
|
-
return this.#WorkerCommand(workerEx, this.#UpdateOptions, options);
|
|
433
|
-
}
|
|
434
|
-
|
|
435
|
-
#TerminateWorker = async (workerEx: IWorkerEx): Promise<boolean> => {
|
|
436
|
-
try {
|
|
437
|
-
if (workerEx.state !== IWorkerState.stopped) {
|
|
438
|
-
await this.#WorkerCommand(workerEx, this.#TerminateRunner);
|
|
439
|
-
|
|
440
|
-
if (workerEx.worker) {
|
|
441
|
-
//const store = TelemetryStore();
|
|
442
|
-
workerEx.worker.terminate();
|
|
443
|
-
this.#debug(`Terminated worker: [${workerEx.id}]`);
|
|
444
|
-
//store.RemoveWorker(workerEx);
|
|
445
|
-
delete this.#workersEx[workerEx.id];
|
|
446
|
-
} else {
|
|
447
|
-
// Some other runner has already removed the parent worker, do nothing
|
|
448
|
-
// console.log(`WORKER ALREADY NULL`);
|
|
449
|
-
}
|
|
450
|
-
}
|
|
451
|
-
return true;
|
|
452
|
-
} catch (error) {
|
|
453
|
-
console.log(`Error in STSTestWorker:TerminateWorker: [${error}]`);
|
|
454
|
-
return false;
|
|
455
|
-
}
|
|
456
|
-
}
|
|
457
|
-
|
|
458
|
-
#UpdateOptions = async (workerEx: IWorkerEx, runnerEx: IRunnerEx, options: IRunnerOptions): Promise<boolean> => {
|
|
459
|
-
runnerEx.options = { ...options };
|
|
460
|
-
this.#PostMessageToWorker(workerEx, eIWMessageCommands.UpdateOptions, {
|
|
461
|
-
runner: this.#CreateRunnerCopy(runnerEx)
|
|
462
|
-
} as ITestRunnerTelemetryPayload);
|
|
463
|
-
return true;
|
|
464
|
-
}
|
|
465
|
-
|
|
466
|
-
GetNextAvailableWorker = (): IWorkerEx | null => {
|
|
467
|
-
// Calculate the worker with the least runners
|
|
468
|
-
let leastRunnerWorker: IWorkerEx | null = null;
|
|
469
|
-
for (const [, stsWorker] of Object.entries(this.WorkersEx)) {
|
|
470
|
-
if (leastRunnerWorker) {
|
|
471
|
-
if (Object.keys(stsWorker.runnersEx).length < Object.keys(leastRunnerWorker.runnersEx).length) {
|
|
472
|
-
leastRunnerWorker = stsWorker;
|
|
473
|
-
}
|
|
474
|
-
} else {
|
|
475
|
-
leastRunnerWorker = stsWorker;
|
|
476
|
-
}
|
|
477
|
-
}
|
|
478
|
-
return leastRunnerWorker;
|
|
479
|
-
}
|
|
480
|
-
|
|
481
|
-
GetBusyWorker = (): IWorkerEx | null => {
|
|
482
|
-
// Calculate the worker with the least runners
|
|
483
|
-
let busyWorker: IWorkerEx | null = null;
|
|
484
|
-
for (const [, stsWorker] of Object.entries(this.WorkersEx)) {
|
|
485
|
-
if (busyWorker) {
|
|
486
|
-
if (Object.keys(stsWorker.runnersEx).length > Object.keys(busyWorker.runnersEx).length) {
|
|
487
|
-
busyWorker = stsWorker;
|
|
488
|
-
}
|
|
489
|
-
} else {
|
|
490
|
-
busyWorker = stsWorker;
|
|
491
|
-
}
|
|
492
|
-
}
|
|
493
|
-
return busyWorker;
|
|
494
|
-
}
|
|
495
|
-
|
|
496
|
-
get Options(): IWorkerManagerOptions {
|
|
497
|
-
return this.#options;
|
|
498
|
-
}
|
|
499
|
-
|
|
500
|
-
set Options(options: IWorkerManagerOptions) {
|
|
501
|
-
this.#options = options;
|
|
502
|
-
}
|
|
503
|
-
|
|
504
|
-
StopAllWorkers = async () => {
|
|
505
|
-
const promArray = [ ];
|
|
506
|
-
for (const [, stsWorker] of Object.entries(this.WorkersEx)) {
|
|
507
|
-
promArray.push(stsWorker.Stop());
|
|
508
|
-
}
|
|
509
|
-
await Promise.all(promArray);
|
|
510
|
-
}
|
|
511
|
-
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/* eslint @typescript-eslint/no-unused-vars: 0, @typescript-eslint/no-explicit-any: 0 */ // --> OFF
|
|
2
|
-
import { IRunnerInstance, ITestRunnerTelemetryPayload } from './commonTypes'
|
|
3
|
-
import { WorkerInstance } from './workerInstance'
|
|
4
|
-
import { TestCase01 } from './testCase01'
|
|
5
|
-
|
|
6
|
-
import isNode from 'detect-node'
|
|
7
|
-
|
|
8
|
-
import { parentPort } from 'worker_threads';
|
|
9
|
-
|
|
10
|
-
export class WorkerTestCases extends WorkerInstance {
|
|
11
|
-
constructor() {
|
|
12
|
-
super()
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
override CreateAsyncRunner = (testRunnerTelemetryPayload: ITestRunnerTelemetryPayload): IRunnerInstance | null => {
|
|
16
|
-
const { runner } = testRunnerTelemetryPayload;
|
|
17
|
-
switch (runner.options.testType) {
|
|
18
|
-
case 'TestCase01' :
|
|
19
|
-
return new TestCase01(this, runner)
|
|
20
|
-
}
|
|
21
|
-
return null;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
const worker = new WorkerTestCases();
|
|
26
|
-
|
|
27
|
-
parentPort?.on('message', (data: any) => {
|
|
28
|
-
if (isNode) {
|
|
29
|
-
worker.ProcessMessage(data);
|
|
30
|
-
} else {
|
|
31
|
-
// const payloadMessage: IIWMessagePayload = data.data as IIWMessagePayload; // browser version
|
|
32
|
-
worker.ProcessMessage(data.data); // browser version
|
|
33
|
-
}
|
|
34
|
-
});
|
package/src/testing/app.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/* eslint @typescript-eslint/no-explicit-any: 0, @typescript-eslint/no-unused-vars: 0 */ // --> OFF
|
|
2
|
-
import { ServiceConfigOptions } from './appConfig'
|
|
3
|
-
import { MasterProcessBase } from './..'
|
|
4
|
-
import { WorkerProcess } from './appWorkerWSS'
|
|
5
|
-
|
|
6
|
-
import cluster from 'node:cluster';
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
if (cluster.isPrimary) {
|
|
10
|
-
new MasterProcessBase(ServiceConfigOptions(true, cluster.isPrimary)).SetupServer();
|
|
11
|
-
} else {
|
|
12
|
-
const worker = new WorkerProcess(ServiceConfigOptions(true, cluster.isPrimary));
|
|
13
|
-
worker.SetupServer();
|
|
14
|
-
}
|
package/src/testing/appConfig.ts
DELETED
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import { v4 as uuidv4 } from 'uuid';
|
|
2
|
-
import express from 'express';
|
|
3
|
-
|
|
4
|
-
import { goptions } from '@nsshunt/stsconfig'
|
|
5
|
-
|
|
6
|
-
import { ProcessOptions, IProcessBase, STSServerType } from './..'
|
|
7
|
-
|
|
8
|
-
import { STSExpressRouteFactory } from './server'
|
|
9
|
-
|
|
10
|
-
import winston from 'winston'
|
|
11
|
-
|
|
12
|
-
/*
|
|
13
|
-
// nid: `${goptions.rest01servicename} @ ${goptions.rest01serviceversion} | ${this.options.globalServiceData.serviceInstanceId} @ ${os.hostname()} ^ ${process.pid} @ ${(cluster.isMaster ? process.pid : process.ppid)}`,
|
|
14
|
-
// <serviceId> <serviceInstanceId> <serviceInstanceProcessId>
|
|
15
|
-
// <serviceName> <serviceVersion> <sid> <hostName> <pid> <ppid>
|
|
16
|
-
// << ............... Static Nid ............... >> << ............... Dynamic Nid ............... >>
|
|
17
|
-
// Note: The final nid will NOT contain the NID_SEPERATOR character. This will be replaced with the SEPERATOR character.
|
|
18
|
-
const Context = (isMaster, serviceInstanceId) => {
|
|
19
|
-
return {
|
|
20
|
-
nid: `\
|
|
21
|
-
${goptions.rest01servicename}${ModelDelimeter.COMPONENT_SEPERATOR}${goptions.rest01serviceversion}\
|
|
22
|
-
${ModelDelimeter.SEPERATOR}\
|
|
23
|
-
${serviceInstanceId}${ModelDelimeter.COMPONENT_SEPERATOR}${os.hostname()}\
|
|
24
|
-
${ModelDelimeter.NID_SEPERATOR}\
|
|
25
|
-
${process.pid}${ModelDelimeter.COMPONENT_SEPERATOR}${(isMaster ? process.pid : process.ppid)}`
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
*/
|
|
29
|
-
|
|
30
|
-
export function ServiceConfigOptions(clusterMode: boolean, isMaster: boolean): ProcessOptions {
|
|
31
|
-
winston.format.combine(
|
|
32
|
-
winston.format.colorize(),
|
|
33
|
-
winston.format.simple()
|
|
34
|
-
);
|
|
35
|
-
|
|
36
|
-
const logger = winston.createLogger({
|
|
37
|
-
level: 'debug',
|
|
38
|
-
format: winston.format.combine(
|
|
39
|
-
winston.format.colorize(),
|
|
40
|
-
winston.format.simple()
|
|
41
|
-
),
|
|
42
|
-
transports: [
|
|
43
|
-
new winston.transports.Console()
|
|
44
|
-
]
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
const publisherLogger = winston.createLogger({
|
|
48
|
-
level: 'info',
|
|
49
|
-
format: winston.format.combine(
|
|
50
|
-
winston.format.colorize(),
|
|
51
|
-
winston.format.simple()
|
|
52
|
-
),
|
|
53
|
-
transports: [
|
|
54
|
-
new winston.transports.Console()
|
|
55
|
-
]
|
|
56
|
-
});
|
|
57
|
-
|
|
58
|
-
if (isMaster === true) {
|
|
59
|
-
const serviceInstanceId = uuidv4();
|
|
60
|
-
const data: ProcessOptions = {
|
|
61
|
-
serverType: STSServerType.EXPRESS_TLS,
|
|
62
|
-
clusterMode: clusterMode,
|
|
63
|
-
wssServer: true,
|
|
64
|
-
useLatency: true,
|
|
65
|
-
httpsServerKeyPath: goptions.httpsserverkeypath,
|
|
66
|
-
httpsServerCertificatePath: goptions.httpsservercertpath,
|
|
67
|
-
processExitOnTerminate: true,
|
|
68
|
-
serviceInstanceId: serviceInstanceId,
|
|
69
|
-
useDatabase: false,
|
|
70
|
-
|
|
71
|
-
isMaster: isMaster,
|
|
72
|
-
endpoint: goptions.rest01endpoint,
|
|
73
|
-
apiRoot: goptions.rest01apiroot,
|
|
74
|
-
listenPort: goptions.rest01hostport,
|
|
75
|
-
port: goptions.rest01port,
|
|
76
|
-
prometheusSupport: goptions.rest01prometheussupport,
|
|
77
|
-
prometheusClusterPort: goptions.rest01prometheusclusterport,
|
|
78
|
-
serviceName: goptions.rest01servicename,
|
|
79
|
-
serviceVersion: goptions.rest01serviceversion,
|
|
80
|
-
consoleLogging: true,
|
|
81
|
-
instrumentLogging: true,
|
|
82
|
-
|
|
83
|
-
instrumentationObservationInterval: goptions.instrumentationObservationInterval,
|
|
84
|
-
instrumentationTimeWindow: goptions.instrumentationTimeWindow,
|
|
85
|
-
|
|
86
|
-
useSocketIoRedisAdaptor: false,
|
|
87
|
-
//workerExec: './dist/testing/app.js',
|
|
88
|
-
|
|
89
|
-
logger: logger,
|
|
90
|
-
publisherLogger: publisherLogger,
|
|
91
|
-
publishInterval: goptions.publishinterval
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
if (!clusterMode) {
|
|
95
|
-
data.expressServerRouteFactory = (app: express.Express, stsApp: IProcessBase) => {
|
|
96
|
-
return new STSExpressRouteFactory(app, stsApp);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
return data;
|
|
101
|
-
} else {
|
|
102
|
-
const data: ProcessOptions = JSON.parse(process.env['STS_GSD_SII'] as string) as ProcessOptions;
|
|
103
|
-
data.expressServerRouteFactory = (app: express.Express, stsApp: IProcessBase) => {
|
|
104
|
-
return new STSExpressRouteFactory(app, stsApp);
|
|
105
|
-
}
|
|
106
|
-
data.logger = logger;
|
|
107
|
-
data.publisherLogger = publisherLogger;
|
|
108
|
-
return data;
|
|
109
|
-
}
|
|
110
|
-
}
|