@lakutata/core 1.0.28 → 1.0.29

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 (112) hide show
  1. package/README.md +4 -0
  2. package/build/Application.d.ts +3 -0
  3. package/build/Application.js +16 -0
  4. package/build/Application.js.map +1 -1
  5. package/build/ApplicationManagement.js +5 -0
  6. package/build/ApplicationManagement.js.map +1 -1
  7. package/build/base/process/Process.d.ts +1 -1
  8. package/build/base/process/Process.js +2 -2
  9. package/build/base/process/Process.js.map +1 -1
  10. package/build/base/process/ProcessManager.d.ts +1 -1
  11. package/build/base/process/ProcessManager.js +2 -2
  12. package/build/base/process/ProcessManager.js.map +1 -1
  13. package/build/base/thread/Thread.d.ts +1 -1
  14. package/build/base/thread/Thread.js +2 -2
  15. package/build/base/thread/Thread.js.map +1 -1
  16. package/build/base/thread/ThreadManager.d.ts +1 -1
  17. package/build/base/thread/ThreadManager.js +2 -2
  18. package/build/base/thread/ThreadManager.js.map +1 -1
  19. package/build/interfaces/IApplicationConfig.d.ts +1 -0
  20. package/build/lib/multipleRunner/constants/Channel.d.ts +5 -0
  21. package/build/lib/multipleRunner/constants/Channel.js +9 -0
  22. package/build/lib/multipleRunner/constants/Channel.js.map +1 -0
  23. package/build/lib/multipleRunner/constants/MetadataKey.d.ts +2 -0
  24. package/build/lib/multipleRunner/constants/MetadataKey.js +6 -0
  25. package/build/lib/multipleRunner/constants/MetadataKey.js.map +1 -0
  26. package/build/lib/multipleRunner/containers/ContainerVolume.d.ts +4 -0
  27. package/build/lib/multipleRunner/containers/ContainerVolume.js +85 -0
  28. package/build/lib/multipleRunner/containers/ContainerVolume.js.map +1 -0
  29. package/build/lib/multipleRunner/definitions/interfaces/ClassConstructor.d.ts +3 -0
  30. package/build/lib/multipleRunner/definitions/interfaces/ClassConstructor.js +3 -0
  31. package/build/lib/multipleRunner/definitions/interfaces/ClassConstructor.js.map +1 -0
  32. package/build/lib/multipleRunner/definitions/interfaces/MultipleRunnerBaseClassConstructor.d.ts +4 -0
  33. package/build/lib/multipleRunner/definitions/interfaces/MultipleRunnerBaseClassConstructor.js +3 -0
  34. package/build/lib/multipleRunner/definitions/interfaces/MultipleRunnerBaseClassConstructor.js.map +1 -0
  35. package/build/lib/multipleRunner/definitions/interfaces/ProcessClassConstructor.d.ts +7 -0
  36. package/build/lib/multipleRunner/definitions/interfaces/ProcessClassConstructor.js +3 -0
  37. package/build/lib/multipleRunner/definitions/interfaces/ProcessClassConstructor.js.map +1 -0
  38. package/build/lib/multipleRunner/definitions/interfaces/ProxyClass.d.ts +3 -0
  39. package/build/lib/multipleRunner/definitions/interfaces/ProxyClass.js +3 -0
  40. package/build/lib/multipleRunner/definitions/interfaces/ProxyClass.js.map +1 -0
  41. package/build/lib/multipleRunner/definitions/interfaces/ThreadClassConstructor.d.ts +7 -0
  42. package/build/lib/multipleRunner/definitions/interfaces/ThreadClassConstructor.js +3 -0
  43. package/build/lib/multipleRunner/definitions/interfaces/ThreadClassConstructor.js.map +1 -0
  44. package/build/lib/multipleRunner/lib/Process.d.ts +5 -0
  45. package/build/lib/multipleRunner/lib/Process.js +44 -0
  46. package/build/lib/multipleRunner/lib/Process.js.map +1 -0
  47. package/build/lib/multipleRunner/lib/Thread.d.ts +5 -0
  48. package/build/lib/multipleRunner/lib/Thread.js +52 -0
  49. package/build/lib/multipleRunner/lib/Thread.js.map +1 -0
  50. package/build/lib/multipleRunner/lib/bridges/BaseBridge.d.ts +32 -0
  51. package/build/lib/multipleRunner/lib/bridges/BaseBridge.js +104 -0
  52. package/build/lib/multipleRunner/lib/bridges/BaseBridge.js.map +1 -0
  53. package/build/lib/multipleRunner/lib/bridges/ProcessBridge.d.ts +5 -0
  54. package/build/lib/multipleRunner/lib/bridges/ProcessBridge.js +20 -0
  55. package/build/lib/multipleRunner/lib/bridges/ProcessBridge.js.map +1 -0
  56. package/build/lib/multipleRunner/lib/bridges/ThreadBridge.d.ts +5 -0
  57. package/build/lib/multipleRunner/lib/bridges/ThreadBridge.js +17 -0
  58. package/build/lib/multipleRunner/lib/bridges/ThreadBridge.js.map +1 -0
  59. package/build/lib/multipleRunner/lib/cores/GenerateExecArgv.d.ts +2 -0
  60. package/build/lib/multipleRunner/lib/cores/GenerateExecArgv.js +35 -0
  61. package/build/lib/multipleRunner/lib/cores/GenerateExecArgv.js.map +1 -0
  62. package/build/lib/multipleRunner/lib/cores/IsElectron.d.ts +1 -0
  63. package/build/lib/multipleRunner/lib/cores/IsElectron.js +9 -0
  64. package/build/lib/multipleRunner/lib/cores/IsElectron.js.map +1 -0
  65. package/build/lib/multipleRunner/lib/cores/ProcessClass.d.ts +5 -0
  66. package/build/lib/multipleRunner/lib/cores/ProcessClass.js +12 -0
  67. package/build/lib/multipleRunner/lib/cores/ProcessClass.js.map +1 -0
  68. package/build/lib/multipleRunner/lib/cores/ThreadClass.d.ts +5 -0
  69. package/build/lib/multipleRunner/lib/cores/ThreadClass.js +12 -0
  70. package/build/lib/multipleRunner/lib/cores/ThreadClass.js.map +1 -0
  71. package/build/lib/multipleRunner/lib/cores/UniParentBridgeHandler.d.ts +2 -0
  72. package/build/lib/multipleRunner/lib/cores/UniParentBridgeHandler.js +104 -0
  73. package/build/lib/multipleRunner/lib/cores/UniParentBridgeHandler.js.map +1 -0
  74. package/build/lib/multipleRunner/lib/prototypes/MultipleRunnerBaseClass.d.ts +17 -0
  75. package/build/lib/multipleRunner/lib/prototypes/MultipleRunnerBaseClass.js +53 -0
  76. package/build/lib/multipleRunner/lib/prototypes/MultipleRunnerBaseClass.js.map +1 -0
  77. package/build/plugins/Formatter.d.ts +1 -0
  78. package/build/plugins/Formatter.js +8 -5
  79. package/build/plugins/Formatter.js.map +1 -1
  80. package/build/plugins/Logger.js +1 -1
  81. package/build/plugins/Logger.js.map +1 -1
  82. package/package.json +4 -3
  83. package/src/Application.ts +29 -0
  84. package/src/ApplicationManagement.ts +3 -0
  85. package/src/base/process/Process.ts +1 -1
  86. package/src/base/process/ProcessManager.ts +2 -2
  87. package/src/base/thread/Thread.ts +1 -1
  88. package/src/base/thread/ThreadManager.ts +2 -2
  89. package/src/interfaces/IApplicationConfig.ts +1 -0
  90. package/src/lib/multipleRunner/constants/Channel.ts +5 -0
  91. package/src/lib/multipleRunner/constants/MetadataKey.ts +2 -0
  92. package/src/lib/multipleRunner/containers/ContainerVolume.ts +83 -0
  93. package/src/lib/multipleRunner/definitions/interfaces/ClassConstructor.ts +3 -0
  94. package/src/lib/multipleRunner/definitions/interfaces/MultipleRunnerBaseClassConstructor.ts +5 -0
  95. package/src/lib/multipleRunner/definitions/interfaces/ProcessClassConstructor.ts +10 -0
  96. package/src/lib/multipleRunner/definitions/interfaces/ProxyClass.ts +3 -0
  97. package/src/lib/multipleRunner/definitions/interfaces/ThreadClassConstructor.ts +10 -0
  98. package/src/lib/multipleRunner/lib/Process.ts +44 -0
  99. package/src/lib/multipleRunner/lib/Thread.ts +52 -0
  100. package/src/lib/multipleRunner/lib/bridges/BaseBridge.ts +115 -0
  101. package/src/lib/multipleRunner/lib/bridges/ProcessBridge.ts +18 -0
  102. package/src/lib/multipleRunner/lib/bridges/ThreadBridge.ts +15 -0
  103. package/src/lib/multipleRunner/lib/cores/GenerateExecArgv.ts +28 -0
  104. package/src/lib/multipleRunner/lib/cores/IsElectron.ts +3 -0
  105. package/src/lib/multipleRunner/lib/cores/ProcessClass.ts +8 -0
  106. package/src/lib/multipleRunner/lib/cores/ThreadClass.ts +8 -0
  107. package/src/lib/multipleRunner/lib/cores/UniParentBridgeHandler.ts +97 -0
  108. package/src/lib/multipleRunner/lib/prototypes/MultipleRunnerBaseClass.ts +66 -0
  109. package/src/plugins/Formatter.ts +10 -5
  110. package/src/plugins/Logger.ts +1 -1
  111. package/src/tests/Main.spec.ts +6 -2
  112. package/src/tests/threads/TestThread.ts +3 -1
package/README.md CHANGED
@@ -7,6 +7,10 @@
7
7
  [![Known Vulnerabilities](https://snyk.io/test/npm/@lakutata/core/badge.svg?style=flat-square)](https://snyk.io/test/npm/@lakutata/core)
8
8
  [![NPM Download](https://img.shields.io/npm/dm/@lakutata/core?style=flat-square)](https://npmjs.org/package/@lakutata/core)
9
9
 
10
+ ## TODO
11
+
12
+ - Write document for Lakutata
13
+
10
14
  ## Features
11
15
 
12
16
  - TODO
@@ -23,7 +23,10 @@ export declare class Application extends Module {
23
23
  protected readonly processes: TProcessesConfig;
24
24
  protected readonly threads: TThreadsConfig;
25
25
  protected readonly workflows: TWorkflowsConfig;
26
+ protected tz: string;
26
27
  protected initialize(): Promise<void>;
28
+ getTimezone(): string;
29
+ setTimezone(tz: string): void;
27
30
  getID(): string;
28
31
  getName(): string;
29
32
  }
@@ -1,4 +1,7 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.Application = void 0;
4
7
  const Module_1 = require("./base/abstracts/Module");
@@ -10,6 +13,7 @@ const MessagePack_1 = require("./plugins/MessagePack");
10
13
  const JSON_1 = require("./plugins/JSON");
11
14
  const Logger_1 = require("./plugins/Logger");
12
15
  const winston_1 = require("winston");
16
+ const moment_timezone_1 = __importDefault(require("moment-timezone"));
13
17
  class Application extends Module_1.Module {
14
18
  constructor() {
15
19
  super(...arguments);
@@ -57,6 +61,12 @@ class Application extends Module_1.Module {
57
61
  this.processes = [];
58
62
  this.threads = [];
59
63
  this.workflows = [];
64
+ this.tz = (() => {
65
+ if (!process.env.TZ) {
66
+ process.env.TZ = moment_timezone_1.default.tz.guess();
67
+ }
68
+ return process.env.TZ;
69
+ })();
60
70
  }
61
71
  async initialize() {
62
72
  this.setProperty('id', process.env.appId);
@@ -64,6 +74,12 @@ class Application extends Module_1.Module {
64
74
  await this.container.initialize();
65
75
  });
66
76
  }
77
+ getTimezone() {
78
+ return this.tz;
79
+ }
80
+ setTimezone(tz) {
81
+ this.tz = tz;
82
+ }
67
83
  getID() {
68
84
  return process.env.appId;
69
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Application.js","sourceRoot":"","sources":["../src/Application.ts"],"names":[],"mappings":";;;AAAA,oDAA8C;AAI9C,iDAA2C;AAC3C,6CAAuC;AACvC,uDAAiD;AACjD,mDAA6C;AAC7C,uDAAiD;AACjD,yCAAmC;AAEnC,6CAAuC;AACvC,qCAA8B;AAI9B,MAAa,WAAY,SAAQ,eAAM;IAAvC;;QAgCoB,YAAO,GAAmB;YAC5C;gBACC,KAAK,EAAE,mBAAQ;gBACf,SAAS,EAAE,CAAC;aACZ;YACD;gBACC,KAAK,EAAE,eAAM;gBACb,IAAI,EAAE,GAAG;aACT;YACD;gBACC,KAAK,EAAE,yBAAW;aAClB;YACD;gBACC,KAAK,EAAE,yBAAW;aAClB;YACD;gBACC,KAAK,EAAE,WAAI;aACX;YACD;gBACC,KAAK,EAAE,qBAAS;gBAChB,UAAU,EAAE,qBAAqB;aACjC;YACD;gBACC,KAAK,EAAE,eAAM;gBACb,KAAK,EAAE,WAAW;gBAClB,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE;oBACL,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK;oBACxB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO;iBAC5B;gBACD,OAAO,EAAE;oBACR,MAAM,EAAE,KAAK;oBACb,MAAM,EAAE,gBAAM,CAAC,OAAO,CACrB,gBAAM,CAAC,SAAS,CAAC,EAAC,MAAM,EAAE,qBAAqB,EAAC,CAAC,EACjD,gBAAM,CAAC,QAAQ,EAAE,EACjB,gBAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;wBACtB,OAAO,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,OAAO,EAAE,CAAA;oBAChE,CAAC,CAAC,CACF;iBACD;gBACD,UAAU,EAAE,EAAE;aACd;SACD,CAAA;QAOkB,eAAU,GAAsB,EAAE,CAAA;QAOlC,YAAO,GAAmB,EAAE,CAAA;QAO5B,cAAS,GAAqB,EAAE,CAAA;QAOhC,YAAO,GAAmB,EAAE,CAAA;QAO5B,cAAS,GAAqB,EAAE,CAAA;IA6BpD,CAAC;IAtBU,KAAK,CAAC,UAAU;QACzB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACzC,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC3B,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAA;QAClC,CAAC,CAAC,CAAA;IACH,CAAC;IAMM,KAAK;QACX,OAAO,OAAO,CAAC,GAAG,CAAC,KAAe,CAAA;IACnC,CAAC;IAMM,OAAO;QACb,OAAO,OAAO,CAAC,GAAG,CAAC,OAAiB,CAAA;IACrC,CAAC;CACD;AA1ID,kCA0IC"}
1
+ {"version":3,"file":"Application.js","sourceRoot":"","sources":["../src/Application.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA8C;AAI9C,iDAA2C;AAC3C,6CAAuC;AACvC,uDAAiD;AACjD,mDAA6C;AAC7C,uDAAiD;AACjD,yCAAmC;AAEnC,6CAAuC;AACvC,qCAA8B;AAG9B,sEAA4C;AAE5C,MAAa,WAAY,SAAQ,eAAM;IAAvC;;QAgCoB,YAAO,GAAmB;YAC5C;gBACC,KAAK,EAAE,mBAAQ;gBACf,SAAS,EAAE,CAAC;aACZ;YACD;gBACC,KAAK,EAAE,eAAM;gBACb,IAAI,EAAE,GAAG;aACT;YACD;gBACC,KAAK,EAAE,yBAAW;aAClB;YACD;gBACC,KAAK,EAAE,yBAAW;aAClB;YACD;gBACC,KAAK,EAAE,WAAI;aACX;YACD;gBACC,KAAK,EAAE,qBAAS;gBAChB,UAAU,EAAE,qBAAqB;aACjC;YACD;gBACC,KAAK,EAAE,eAAM;gBACb,KAAK,EAAE,WAAW;gBAClB,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE;oBACL,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK;oBACxB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO;iBAC5B;gBACD,OAAO,EAAE;oBACR,MAAM,EAAE,KAAK;oBACb,MAAM,EAAE,gBAAM,CAAC,OAAO,CACrB,gBAAM,CAAC,SAAS,CAAC,EAAC,MAAM,EAAE,qBAAqB,EAAC,CAAC,EACjD,gBAAM,CAAC,QAAQ,EAAE,EACjB,gBAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;wBACtB,OAAO,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,OAAO,EAAE,CAAA;oBAChE,CAAC,CAAC,CACF;iBACD;gBACD,UAAU,EAAE,EAAE;aACd;SACD,CAAA;QAOkB,eAAU,GAAsB,EAAE,CAAA;QAOlC,YAAO,GAAmB,EAAE,CAAA;QAO5B,cAAS,GAAqB,EAAE,CAAA;QAOhC,YAAO,GAAmB,EAAE,CAAA;QAO5B,cAAS,GAAqB,EAAE,CAAA;QAOzC,OAAE,GAAW,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE;gBACpB,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,yBAAc,CAAC,EAAE,CAAC,KAAK,EAAE,CAAA;aAC1C;YACD,OAAO,OAAO,CAAC,GAAG,CAAC,EAAE,CAAA;QACtB,CAAC,CAAC,EAAE,CAAA;IA6CL,CAAC;IAtCU,KAAK,CAAC,UAAU;QACzB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACzC,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC3B,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAA;QAClC,CAAC,CAAC,CAAA;IACH,CAAC;IAMM,WAAW;QACjB,OAAO,IAAI,CAAC,EAAE,CAAA;IACf,CAAC;IAMM,WAAW,CAAC,EAAU;QAC5B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACb,CAAC;IAMM,KAAK;QACX,OAAO,OAAO,CAAC,GAAG,CAAC,KAAe,CAAA;IACnC,CAAC;IAMM,OAAO;QACb,OAAO,OAAO,CAAC,GAAG,CAAC,OAAiB,CAAA;IACrC,CAAC;CACD;AAtKD,kCAsKC"}
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.getApp = exports.createApp = void 0;
7
+ const moment_timezone_1 = __importDefault(require("moment-timezone"));
4
8
  require('events').captureRejections = true;
5
9
  const Application_1 = require("./Application");
6
10
  const FatalException_1 = require("./exceptions/FatalException");
@@ -15,6 +19,7 @@ async function createApp(config) {
15
19
  process.title = config.id;
16
20
  process.env.appId = config.id;
17
21
  process.env.appName = config.name;
22
+ process.env.TZ = config.timezone ? config.timezone : moment_timezone_1.default.tz.guess();
18
23
  await coreContainer.initialize();
19
24
  return coreContainer.getModule(Application_1.Application);
20
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ApplicationManagement.js","sourceRoot":"","sources":["../src/ApplicationManagement.ts"],"names":[],"mappings":";;;AAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,iBAAiB,GAAG,IAAI,CAAA;AAE1C,+CAAyC;AACzC,gEAA0D;AAC1D,gDAA0C;AAC1C,2DAA0D;AAE1D,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,gCAAiB,EAAE,OAAO,CAAC;IAAE,OAAO,CAAC,cAAc,CAAC,gCAAiB,EAAE,IAAI,qBAAS,EAAE,EAAE,OAAO,CAAC,CAAA;AAOlH,KAAK,UAAU,SAAS,CAAC,MAA0B;IACzD,IAAI;QACH,MAAM,aAAa,GAAc,OAAO,CAAC,WAAW,CAAC,gCAAiB,EAAE,OAAO,CAAC,CAAA;QAChF,aAAa,CAAC,UAAU,CAAC,yBAAW,EAAE,MAAM,CAAC,CAAA;QAC7C,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,EAAE,CAAA;QACzB,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,EAAE,CAAA;QAC7B,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAA;QACjC,MAAM,aAAa,CAAC,UAAU,EAAE,CAAA;QAChC,OAAO,aAAa,CAAC,SAAS,CAAC,yBAAW,CAAC,CAAA;KAC3C;IAAC,OAAO,CAAC,EAAE;QACX,MAAO,IAAI,+BAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;KACpC;AACF,CAAC;AAZD,8BAYC;AAMD,SAAgB,MAAM;IACrB,IAAI;QACH,MAAM,aAAa,GAAc,OAAO,CAAC,WAAW,CAAC,gCAAiB,EAAE,OAAO,CAAC,CAAA;QAChF,OAAO,aAAa,CAAC,SAAS,CAAC,yBAAW,CAAC,CAAA;KAC3C;IAAC,OAAO,CAAC,EAAE;QACX,MAAM,IAAI,+BAAc,CAAC,6BAA6B,CAAC,CAAA;KACvD;AACF,CAAC;AAPD,wBAOC"}
1
+ {"version":3,"file":"ApplicationManagement.js","sourceRoot":"","sources":["../src/ApplicationManagement.ts"],"names":[],"mappings":";;;;;;AAAA,sEAA4C;AAE5C,OAAO,CAAC,QAAQ,CAAC,CAAC,iBAAiB,GAAG,IAAI,CAAA;AAE1C,+CAAyC;AACzC,gEAA0D;AAC1D,gDAA0C;AAC1C,2DAA0D;AAE1D,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,gCAAiB,EAAE,OAAO,CAAC;IAAE,OAAO,CAAC,cAAc,CAAC,gCAAiB,EAAE,IAAI,qBAAS,EAAE,EAAE,OAAO,CAAC,CAAA;AAOlH,KAAK,UAAU,SAAS,CAAC,MAA0B;IACzD,IAAI;QACH,MAAM,aAAa,GAAc,OAAO,CAAC,WAAW,CAAC,gCAAiB,EAAE,OAAO,CAAC,CAAA;QAChF,aAAa,CAAC,UAAU,CAAC,yBAAW,EAAE,MAAM,CAAC,CAAA;QAC7C,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,EAAE,CAAA;QACzB,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,EAAE,CAAA;QAC7B,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAA;QACjC,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,yBAAc,CAAC,EAAE,CAAC,KAAK,EAAE,CAAA;QAC9E,MAAM,aAAa,CAAC,UAAU,EAAE,CAAA;QAChC,OAAO,aAAa,CAAC,SAAS,CAAC,yBAAW,CAAC,CAAA;KAC3C;IAAC,OAAO,CAAC,EAAE;QACX,MAAO,IAAI,+BAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;KACpC;AACF,CAAC;AAbD,8BAaC;AAMD,SAAgB,MAAM;IACrB,IAAI;QACH,MAAM,aAAa,GAAc,OAAO,CAAC,WAAW,CAAC,gCAAiB,EAAE,OAAO,CAAC,CAAA;QAChF,OAAO,aAAa,CAAC,SAAS,CAAC,yBAAW,CAAC,CAAA;KAC3C;IAAC,OAAO,CAAC,EAAE;QACX,MAAM,IAAI,+BAAc,CAAC,6BAA6B,CAAC,CAAA;KACvD;AACF,CAAC;AAPD,wBAOC"}
@@ -1,5 +1,5 @@
1
1
  import 'reflect-metadata';
2
- import { ProcessClass } from 'ergate';
2
+ import { ProcessClass } from '../../lib/multipleRunner/lib/cores/ProcessClass';
3
3
  export declare class Process extends ProcessClass {
4
4
  protected initialize(): Promise<void> | void;
5
5
  protected setup(): Promise<void>;
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Process = void 0;
4
4
  require("reflect-metadata");
5
- const ergate_1 = require("ergate");
6
- class Process extends ergate_1.ProcessClass {
5
+ const ProcessClass_1 = require("../../lib/multipleRunner/lib/cores/ProcessClass");
6
+ class Process extends ProcessClass_1.ProcessClass {
7
7
  initialize() {
8
8
  }
9
9
  async setup() {
@@ -1 +1 @@
1
- {"version":3,"file":"Process.js","sourceRoot":"","sources":["../../../src/base/process/Process.ts"],"names":[],"mappings":";;;AAAA,4BAAyB;AACzB,mCAAmC;AAEnC,MAAa,OAAQ,SAAQ,qBAAY;IAM9B,UAAU;IAEpB,CAAC;IAOS,KAAK,CAAC,KAAK;QACpB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;QACrC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;IACxB,CAAC;CACD;AAnBD,0BAmBC"}
1
+ {"version":3,"file":"Process.js","sourceRoot":"","sources":["../../../src/base/process/Process.ts"],"names":[],"mappings":";;;AAAA,4BAAyB;AACzB,kFAA4E;AAE5E,MAAa,OAAQ,SAAQ,2BAAY;IAM9B,UAAU;IAEpB,CAAC;IAOS,KAAK,CAAC,KAAK;QACpB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;QACrC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;IACxB,CAAC;CACD;AAnBD,0BAmBC"}
@@ -1,6 +1,6 @@
1
1
  import { Process } from './Process';
2
- import { ProxyClass } from 'ergate';
3
2
  import { IProcessConstructor } from '../../interfaces/IProcessConstructor';
3
+ import { ProxyClass } from '../../lib/multipleRunner/definitions/interfaces/ProxyClass';
4
4
  export declare class ProcessManager<TProcess extends Process = Process> {
5
5
  protected readonly processMap: Map<IProcessConstructor<TProcess>, TProcess & ProxyClass>;
6
6
  createProcess(processConstructor: IProcessConstructor<TProcess>): Promise<boolean>;
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ProcessManager = void 0;
4
- const ergate_1 = require("ergate");
5
4
  const ProcessException_1 = require("../../exceptions/ProcessException");
5
+ const Process_1 = require("../../lib/multipleRunner/lib/Process");
6
6
  class ProcessManager {
7
7
  constructor() {
8
8
  this.processMap = new Map();
@@ -10,7 +10,7 @@ class ProcessManager {
10
10
  async createProcess(processConstructor) {
11
11
  if (this.processMap.has(processConstructor))
12
12
  return false;
13
- const processProxy = await ergate_1.Process(processConstructor);
13
+ const processProxy = await Process_1.Process(processConstructor);
14
14
  this.processMap.set(processConstructor, processProxy);
15
15
  return true;
16
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ProcessManager.js","sourceRoot":"","sources":["../../../src/base/process/ProcessManager.ts"],"names":[],"mappings":";;;AAGA,mCAA+C;AAC/C,wEAAkE;AAElE,MAAa,cAAc;IAA3B;QACoB,eAAU,GAA8D,IAAI,GAAG,EAAE,CAAA;IA8CrG,CAAC;IAvCO,KAAK,CAAC,aAAa,CAAC,kBAAiD;QAC3E,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,kBAAkB,CAAC;YAAE,OAAO,KAAK,CAAA;QACzD,MAAM,YAAY,GAAG,MAAM,gBAAa,CAAC,kBAAkB,CAAC,CAAA;QAC5D,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAA;QACrD,OAAO,IAAI,CAAA;IACZ,CAAC;IAOM,GAAG,CAAC,kBAAiD;QAC3D,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;IAC/C,CAAC;IAOM,GAAG,CAAC,kBAAiD;QAC3D,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE;YAC5C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,kBAAkB,CAAa,CAAA;SAC1D;QACD,MAAM,IAAI,mCAAgB,CAAC,YAAY,kBAAkB,CAAC,IAAI,gBAAgB,CAAC,CAAA;IAChF,CAAC;IAOM,KAAK,CAAC,OAAO,CAAC,kBAAiD;;QACrE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE;YAC5C,MAAM,CAAA,MAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,kBAAkB,CAAC,0CAAE,SAAS,EAAE,CAAA,CAAA;YAC1D,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;SAC1C;IACF,CAAC;CACD;AA/CD,wCA+CC"}
1
+ {"version":3,"file":"ProcessManager.js","sourceRoot":"","sources":["../../../src/base/process/ProcessManager.ts"],"names":[],"mappings":";;;AAEA,wEAAkE;AAElE,kEAA6E;AAE7E,MAAa,cAAc;IAA3B;QACoB,eAAU,GAA8D,IAAI,GAAG,EAAE,CAAA;IA8CrG,CAAC;IAvCO,KAAK,CAAC,aAAa,CAAC,kBAAiD;QAC3E,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,kBAAkB,CAAC;YAAE,OAAO,KAAK,CAAA;QACzD,MAAM,YAAY,GAAG,MAAM,iBAAa,CAAC,kBAAkB,CAAC,CAAA;QAC5D,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAA;QACrD,OAAO,IAAI,CAAA;IACZ,CAAC;IAOM,GAAG,CAAC,kBAAiD;QAC3D,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;IAC/C,CAAC;IAOM,GAAG,CAAC,kBAAiD;QAC3D,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE;YAC5C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,kBAAkB,CAAa,CAAA;SAC1D;QACD,MAAM,IAAI,mCAAgB,CAAC,YAAY,kBAAkB,CAAC,IAAI,gBAAgB,CAAC,CAAA;IAChF,CAAC;IAOM,KAAK,CAAC,OAAO,CAAC,kBAAiD;;QACrE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE;YAC5C,MAAM,CAAA,MAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,kBAAkB,CAAC,0CAAE,SAAS,EAAE,CAAA,CAAA;YAC1D,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;SAC1C;IACF,CAAC;CACD;AA/CD,wCA+CC"}
@@ -1,5 +1,5 @@
1
1
  import 'reflect-metadata';
2
- import { ThreadClass } from 'ergate';
2
+ import { ThreadClass } from '../../lib/multipleRunner/lib/cores/ThreadClass';
3
3
  export declare class Thread extends ThreadClass {
4
4
  protected initialize(): Promise<void> | void;
5
5
  protected setup(): Promise<void>;
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Thread = void 0;
4
4
  require("reflect-metadata");
5
- const ergate_1 = require("ergate");
6
- class Thread extends ergate_1.ThreadClass {
5
+ const ThreadClass_1 = require("../../lib/multipleRunner/lib/cores/ThreadClass");
6
+ class Thread extends ThreadClass_1.ThreadClass {
7
7
  initialize() {
8
8
  }
9
9
  async setup() {
@@ -1 +1 @@
1
- {"version":3,"file":"Thread.js","sourceRoot":"","sources":["../../../src/base/thread/Thread.ts"],"names":[],"mappings":";;;AAAA,4BAAyB;AACzB,mCAAkC;AAElC,MAAa,MAAO,SAAQ,oBAAW;IAO5B,UAAU;IAEpB,CAAC;IAOS,KAAK,CAAC,KAAK;QACpB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;IACxB,CAAC;CACD;AAnBD,wBAmBC"}
1
+ {"version":3,"file":"Thread.js","sourceRoot":"","sources":["../../../src/base/thread/Thread.ts"],"names":[],"mappings":";;;AAAA,4BAAyB;AACzB,gFAA0E;AAE1E,MAAa,MAAO,SAAQ,yBAAW;IAO5B,UAAU;IAEpB,CAAC;IAOS,KAAK,CAAC,KAAK;QACpB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;IACxB,CAAC;CACD;AAnBD,wBAmBC"}
@@ -1,6 +1,6 @@
1
1
  import { Thread } from './Thread';
2
2
  import { IThreadConstructor } from '../../interfaces/IThreadConstructor';
3
- import { ProxyClass } from 'ergate';
3
+ import { ProxyClass } from '../../lib/multipleRunner/definitions/interfaces/ProxyClass';
4
4
  export declare class ThreadManager<TThread extends Thread = Thread> {
5
5
  protected readonly threadMap: Map<IThreadConstructor<TThread>, TThread & ProxyClass>;
6
6
  createThread(threadConstructor: IThreadConstructor<TThread>): Promise<boolean>;
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ThreadManager = void 0;
4
- const ergate_1 = require("ergate");
5
4
  const ThreadException_1 = require("../../exceptions/ThreadException");
5
+ const Thread_1 = require("../../lib/multipleRunner/lib/Thread");
6
6
  class ThreadManager {
7
7
  constructor() {
8
8
  this.threadMap = new Map();
@@ -10,7 +10,7 @@ class ThreadManager {
10
10
  async createThread(threadConstructor) {
11
11
  if (this.threadMap.has(threadConstructor))
12
12
  return false;
13
- const threadProxy = await ergate_1.Thread(threadConstructor);
13
+ const threadProxy = await Thread_1.Thread(threadConstructor);
14
14
  this.threadMap.set(threadConstructor, threadProxy);
15
15
  return true;
16
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadManager.js","sourceRoot":"","sources":["../../../src/base/thread/ThreadManager.ts"],"names":[],"mappings":";;;AAEA,mCAA6C;AAC7C,sEAAgE;AAGhE,MAAa,aAAa;IAA1B;QACoB,cAAS,GAA2D,IAAI,GAAG,EAAE,CAAA;IA8CjG,CAAC;IAvCO,KAAK,CAAC,YAAY,CAAC,iBAA8C;QACvE,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC;YAAE,OAAO,KAAK,CAAA;QACvD,MAAM,WAAW,GAAG,MAAM,eAAY,CAAC,iBAAiB,CAAC,CAAA;QACzD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAA;QAClD,OAAO,IAAI,CAAA;IACZ,CAAC;IAOM,GAAG,CAAC,iBAA8C;QACxD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;IAC7C,CAAC;IAOM,GAAG,CAAC,iBAA8C;QACxD,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YAC1C,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAY,CAAA;SACvD;QACD,MAAM,IAAI,iCAAe,CAAC,WAAW,iBAAiB,CAAC,IAAI,gBAAgB,CAAC,CAAA;IAC7E,CAAC;IAOM,KAAK,CAAC,OAAO,CAAC,iBAA8C;;QAClE,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YAC1C,MAAM,CAAA,MAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,0CAAE,SAAS,EAAE,CAAA,CAAA;YACxD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAA;SACxC;IACF,CAAC;CACD;AA/CD,sCA+CC"}
1
+ {"version":3,"file":"ThreadManager.js","sourceRoot":"","sources":["../../../src/base/thread/ThreadManager.ts"],"names":[],"mappings":";;;AAEA,sEAAgE;AAEhE,gEAA0E;AAE1E,MAAa,aAAa;IAA1B;QACoB,cAAS,GAA2D,IAAI,GAAG,EAAE,CAAA;IA8CjG,CAAC;IAvCO,KAAK,CAAC,YAAY,CAAC,iBAA8C;QACvE,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC;YAAE,OAAO,KAAK,CAAA;QACvD,MAAM,WAAW,GAAG,MAAM,eAAY,CAAC,iBAAiB,CAAC,CAAA;QACzD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAA;QAClD,OAAO,IAAI,CAAA;IACZ,CAAC;IAOM,GAAG,CAAC,iBAA8C;QACxD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;IAC7C,CAAC;IAOM,GAAG,CAAC,iBAA8C;QACxD,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YAC1C,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAY,CAAA;SACvD;QACD,MAAM,IAAI,iCAAe,CAAC,WAAW,iBAAiB,CAAC,IAAI,gBAAgB,CAAC,CAAA;IAC7E,CAAC;IAOM,KAAK,CAAC,OAAO,CAAC,iBAA8C;;QAClE,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;YAC1C,MAAM,CAAA,MAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,0CAAE,SAAS,EAAE,CAAA,CAAA;YACxD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAA;SACxC;IACF,CAAC;CACD;AA/CD,sCA+CC"}
@@ -8,6 +8,7 @@ import { TProcessesConfig } from '../types/TProcessesConfig';
8
8
  export interface IApplicationConfig {
9
9
  id: string;
10
10
  name: string;
11
+ timezone?: string;
11
12
  plugins?: TPluginsConfig;
12
13
  components?: IComponentsConfig;
13
14
  modules?: IModulesConfig;
@@ -0,0 +1,5 @@
1
+ export declare const READY: string;
2
+ export declare const SETUP_ERROR: string;
3
+ export declare const INVOKE: string;
4
+ export declare const SET_PROPERTY: string;
5
+ export declare const PROPERTY_CHANGE: string;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PROPERTY_CHANGE = exports.SET_PROPERTY = exports.INVOKE = exports.SETUP_ERROR = exports.READY = void 0;
4
+ exports.READY = '_____%$ready$%_____';
5
+ exports.SETUP_ERROR = '_____%$setup_error$%_____';
6
+ exports.INVOKE = '__%$invoke$%__';
7
+ exports.SET_PROPERTY = '_____%$set_property$%_____';
8
+ exports.PROPERTY_CHANGE = '_____%$property_change$%_____';
9
+ //# sourceMappingURL=Channel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Channel.js","sourceRoot":"","sources":["../../../../src/lib/multipleRunner/constants/Channel.ts"],"names":[],"mappings":";;;AAAa,QAAA,KAAK,GAAW,qBAAqB,CAAA;AACrC,QAAA,WAAW,GAAW,2BAA2B,CAAA;AACjD,QAAA,MAAM,GAAW,gBAAgB,CAAA;AACjC,QAAA,YAAY,GAAW,4BAA4B,CAAA;AACnD,QAAA,eAAe,GAAW,+BAA+B,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const MULTIPLE_RUNNER_CLASS_NAME: string;
2
+ export declare const MULTIPLE_RUNNER__CLASS_PATH: string;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MULTIPLE_RUNNER__CLASS_PATH = exports.MULTIPLE_RUNNER_CLASS_NAME = void 0;
4
+ exports.MULTIPLE_RUNNER_CLASS_NAME = 'multipleRunner::class_name';
5
+ exports.MULTIPLE_RUNNER__CLASS_PATH = 'multipleRunner::class_path';
6
+ //# sourceMappingURL=MetadataKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MetadataKey.js","sourceRoot":"","sources":["../../../../src/lib/multipleRunner/constants/MetadataKey.ts"],"names":[],"mappings":";;;AAAa,QAAA,0BAA0B,GAAW,4BAA4B,CAAA;AACjE,QAAA,2BAA2B,GAAW,4BAA4B,CAAA"}
@@ -0,0 +1,4 @@
1
+ export declare const BASE_RUNTIME_CONTAINER_FILE: string;
2
+ export declare const PROCESS_RUNTIME_CONTAINER_FILE: string;
3
+ export declare const THREAD_RUNTIME_CONTAINER_FILE: string;
4
+ export declare const ContainerVolume: import("memfs/lib/volume").Volume;
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ContainerVolume = exports.THREAD_RUNTIME_CONTAINER_FILE = exports.PROCESS_RUNTIME_CONTAINER_FILE = exports.BASE_RUNTIME_CONTAINER_FILE = void 0;
4
+ const memfs_1 = require("memfs");
5
+ exports.BASE_RUNTIME_CONTAINER_FILE = '/multipleRunner/container/base/BaseRuntimeContainer.js';
6
+ exports.PROCESS_RUNTIME_CONTAINER_FILE = '/multipleRunner/container/ProcessRuntimeContainer.js';
7
+ exports.THREAD_RUNTIME_CONTAINER_FILE = '/multipleRunner/container/ThreadRuntimeContainer.js';
8
+ exports.ContainerVolume = memfs_1.Volume.fromJSON({
9
+ [exports.BASE_RUNTIME_CONTAINER_FILE]: `
10
+ module.exports.BaseRuntimeContainer = function (bridge) {
11
+ bridge.on('create', (name, path) => {
12
+ const module = require(path)[name]
13
+ const moduleInstance = new module(bridge)
14
+ moduleInstance.setup().then(() => {
15
+ const properties = {}
16
+ const moduleInstancePropertiesObject = {}
17
+ for (const propertyName of Object.keys(moduleInstance)) {
18
+ properties[propertyName] = typeof moduleInstance[propertyName]
19
+ if (propertyName !== '__bridge__')
20
+ moduleInstancePropertiesObject[propertyName] = moduleInstance[propertyName]
21
+ }
22
+ const moduleInstanceProxy = new Proxy(moduleInstance, {
23
+ set(target, p, value) {
24
+ moduleInstance[p] = value
25
+ bridge.propertyChange(p.toString(), value)
26
+ return true
27
+ }
28
+ })
29
+ bridge.onSet((property, value) => {
30
+ moduleInstanceProxy[property] = value
31
+ })
32
+ bridge.ready(properties, JSON.parse(JSON.stringify(moduleInstancePropertiesObject)))
33
+ bridge.onInvoke(async (method, args) => {
34
+ const _args = []
35
+ const callbackSignature = /^__________%\\$CALLBACK\\[\\d+]\\$%__________$/
36
+ for (const arg of args) {
37
+ if (typeof arg === 'string' && callbackSignature.test(arg)) {
38
+ _args.push((...args) => {
39
+ bridge.onCallback(arg, args)
40
+ })
41
+ } else {
42
+ _args.push(arg)
43
+ }
44
+ }
45
+ return await moduleInstanceProxy[method].apply(moduleInstanceProxy, _args)
46
+ })
47
+ }).catch(setupError => {
48
+ bridge.setupError(setupError)
49
+ process.exit(1)
50
+ })
51
+ })
52
+ }
53
+ `,
54
+ [exports.PROCESS_RUNTIME_CONTAINER_FILE]: `
55
+ const reversedArgvs = process.argv.reverse()
56
+ require(reversedArgvs[0])
57
+ const {ProcessBridge} = require(reversedArgvs[0])
58
+ const {BaseRuntimeContainer} = require(reversedArgvs[1])
59
+ BaseRuntimeContainer(new ProcessBridge(process))
60
+ `,
61
+ [exports.THREAD_RUNTIME_CONTAINER_FILE]: `
62
+ const reversedArgvs = process.argv.reverse()
63
+ if(reversedArgvs[3]!=='undefined'){
64
+ try{require(reversedArgvs[3])}catch(e){}
65
+ }
66
+ const {parentPort} = require('worker_threads')
67
+ let _ThreadBridge
68
+ try{
69
+ const {ThreadBridge} = require(reversedArgvs[0])
70
+ _ThreadBridge = ThreadBridge
71
+ }catch(e){
72
+ const tsNodeRegExp=new RegExp("ts-node")
73
+ for(const reversedArgv of reversedArgvs){
74
+ if(tsNodeRegExp.test(reversedArgv)){
75
+ require(reversedArgv)
76
+ }
77
+ }
78
+ const {ThreadBridge} = require(reversedArgvs[0])
79
+ _ThreadBridge = ThreadBridge
80
+ }
81
+ const {BaseRuntimeContainer} = require(reversedArgvs[1])
82
+ BaseRuntimeContainer(new _ThreadBridge(parentPort))
83
+ `
84
+ });
85
+ //# sourceMappingURL=ContainerVolume.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContainerVolume.js","sourceRoot":"","sources":["../../../../src/lib/multipleRunner/containers/ContainerVolume.ts"],"names":[],"mappings":";;;AAAA,iCAA4B;AAEf,QAAA,2BAA2B,GAAW,wDAAwD,CAAA;AAC9F,QAAA,8BAA8B,GAAW,sDAAsD,CAAA;AAC/F,QAAA,6BAA6B,GAAW,qDAAqD,CAAA;AAE7F,QAAA,eAAe,GAAG,cAAM,CAAC,QAAQ,CAAC;IAC9C,CAAC,mCAA2B,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA4C3B;IACJ,CAAC,sCAA8B,CAAC,EAAE;;;;;;KAM9B;IACJ,CAAC,qCAA6B,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;KAsB7B;CACJ,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ export interface ClassConstructor<T> {
2
+ new (...args: any[]): T;
3
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ClassConstructor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClassConstructor.js","sourceRoot":"","sources":["../../../../../src/lib/multipleRunner/definitions/interfaces/ClassConstructor.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { MultipleRunnerBaseClass } from '../../lib/prototypes/MultipleRunnerBaseClass';
2
+ export interface MultipleRunnerBaseClassConstructor {
3
+ new (...args: any[]): MultipleRunnerBaseClass;
4
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=MultipleRunnerBaseClassConstructor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultipleRunnerBaseClassConstructor.js","sourceRoot":"","sources":["../../../../../src/lib/multipleRunner/definitions/interfaces/MultipleRunnerBaseClassConstructor.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { ProcessClass } from '../../lib/cores/ProcessClass';
2
+ import { ClassConstructor } from './ClassConstructor';
3
+ export interface ProcessClassConstructor<T extends ProcessClass> extends ClassConstructor<T> {
4
+ new (...args: any[]): T;
5
+ CLASS_PATH: string;
6
+ CLASS_NAME: string;
7
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ProcessClassConstructor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProcessClassConstructor.js","sourceRoot":"","sources":["../../../../../src/lib/multipleRunner/definitions/interfaces/ProcessClassConstructor.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export interface ProxyClass {
2
+ terminate(): Promise<void>;
3
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ProxyClass.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProxyClass.js","sourceRoot":"","sources":["../../../../../src/lib/multipleRunner/definitions/interfaces/ProxyClass.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { ThreadClass } from '../../lib/cores/ThreadClass';
2
+ import { ClassConstructor } from './ClassConstructor';
3
+ export interface ThreadClassConstructor<T extends ThreadClass> extends ClassConstructor<T> {
4
+ new (...args: any[]): T;
5
+ CLASS_PATH: string;
6
+ CLASS_NAME: string;
7
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ThreadClassConstructor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThreadClassConstructor.js","sourceRoot":"","sources":["../../../../../src/lib/multipleRunner/definitions/interfaces/ThreadClassConstructor.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import 'reflect-metadata';
2
+ import { ProcessClassConstructor } from '../definitions/interfaces/ProcessClassConstructor';
3
+ import { ProcessClass } from './cores/ProcessClass';
4
+ import { ProxyClass } from '../definitions/interfaces/ProxyClass';
5
+ export declare function Process<T extends ProcessClass>(processClassConstructor: ProcessClassConstructor<T>): Promise<T & ProxyClass>;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Process = void 0;
7
+ require("reflect-metadata");
8
+ const child_process_1 = require("child_process");
9
+ const path_1 = __importDefault(require("path"));
10
+ const GenerateExecArgv_1 = require("./cores/GenerateExecArgv");
11
+ const ProcessBridge_1 = require("./bridges/ProcessBridge");
12
+ const UniParentBridgeHandler_1 = require("./cores/UniParentBridgeHandler");
13
+ const ContainerVolume_1 = require("../containers/ContainerVolume");
14
+ const fs_1 = __importDefault(require("fs"));
15
+ const os_1 = __importDefault(require("os"));
16
+ async function Process(processClassConstructor) {
17
+ return new Promise((resolve, reject) => {
18
+ ProcessProxy(processClassConstructor, (setupError, instance) => {
19
+ if (setupError) {
20
+ reject(setupError);
21
+ }
22
+ else {
23
+ resolve(instance);
24
+ }
25
+ });
26
+ });
27
+ }
28
+ exports.Process = Process;
29
+ function ProcessProxy(processClassConstructor, callback) {
30
+ const className = processClassConstructor.CLASS_NAME;
31
+ const classPath = processClassConstructor.CLASS_PATH;
32
+ const tmpProcessRuntimeContainerFilename = path_1.default.resolve(os_1.default.tmpdir(), `./PRC_TMP_${Date.now()}.tmp`);
33
+ const tmpBaseRuntimeContainerFilename = path_1.default.resolve(os_1.default.tmpdir(), `./PBRC_TMP_${Date.now()}.tmp`);
34
+ fs_1.default.writeFileSync(tmpBaseRuntimeContainerFilename, ContainerVolume_1.ContainerVolume.readFileSync(ContainerVolume_1.BASE_RUNTIME_CONTAINER_FILE).toString());
35
+ fs_1.default.writeFileSync(tmpProcessRuntimeContainerFilename, ContainerVolume_1.ContainerVolume.readFileSync(ContainerVolume_1.PROCESS_RUNTIME_CONTAINER_FILE).toString());
36
+ const childProcess = child_process_1.fork(tmpProcessRuntimeContainerFilename, [
37
+ tmpBaseRuntimeContainerFilename,
38
+ require.resolve(path_1.default.resolve(__dirname, './bridges/ProcessBridge'))
39
+ ], {
40
+ execArgv: GenerateExecArgv_1.GenerateExecArgv(classPath)
41
+ });
42
+ UniParentBridgeHandler_1.UniParentBridgeHandler(new ProcessBridge_1.ProcessBridge(childProcess), className, classPath, processClassConstructor, callback);
43
+ }
44
+ //# sourceMappingURL=Process.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Process.js","sourceRoot":"","sources":["../../../../src/lib/multipleRunner/lib/Process.ts"],"names":[],"mappings":";;;;;;AAAA,4BAAyB;AAEzB,iDAAgD;AAChD,gDAAuB;AACvB,+DAAyD;AACzD,2DAAqD;AAErD,2EAAqE;AAErE,mEAIsC;AACtC,4CAAmB;AACnB,4CAAmB;AAEZ,KAAK,UAAU,OAAO,CAAyB,uBAAmD;IACrG,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,YAAY,CAAC,uBAAuB,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE;YAC3D,IAAI,UAAU,EAAE;gBACZ,MAAM,CAAC,UAAU,CAAC,CAAA;aACrB;iBAAM;gBACH,OAAO,CAAiB,QAAQ,CAAC,CAAA;aACpC;QACL,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACN,CAAC;AAVD,0BAUC;AAED,SAAS,YAAY,CAAyB,uBAAmD,EAAE,QAAkD;IACjJ,MAAM,SAAS,GAAW,uBAAuB,CAAC,UAAU,CAAA;IAC5D,MAAM,SAAS,GAAW,uBAAuB,CAAC,UAAU,CAAA;IAC5D,MAAM,kCAAkC,GAAW,cAAI,CAAC,OAAO,CAAC,YAAE,CAAC,MAAM,EAAE,EAAE,aAAa,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IAC3G,MAAM,+BAA+B,GAAW,cAAI,CAAC,OAAO,CAAC,YAAE,CAAC,MAAM,EAAE,EAAE,cAAc,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IACzG,YAAE,CAAC,aAAa,CAAC,+BAA+B,EAAE,iCAAe,CAAC,YAAY,CAAC,6CAA2B,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;IACvH,YAAE,CAAC,aAAa,CAAC,kCAAkC,EAAE,iCAAe,CAAC,YAAY,CAAC,gDAA8B,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC7H,MAAM,YAAY,GAAiB,oBAAI,CAAC,kCAAkC,EAAE;QACxE,+BAA+B;QAC/B,OAAO,CAAC,OAAO,CAAC,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC;KACtE,EAAE;QACC,QAAQ,EAAE,mCAAgB,CAAC,SAAS,CAAC;KACxC,CAAC,CAAA;IACF,+CAAsB,CAAC,IAAI,6BAAa,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,uBAAuB,EAAE,QAAQ,CAAC,CAAA;AACpH,CAAC"}
@@ -0,0 +1,5 @@
1
+ import 'reflect-metadata';
2
+ import { ThreadClassConstructor } from '../definitions/interfaces/ThreadClassConstructor';
3
+ import { ThreadClass } from './cores/ThreadClass';
4
+ import { ProxyClass } from '../definitions/interfaces/ProxyClass';
5
+ export declare function Thread<T extends ThreadClass>(threadClassConstructor: ThreadClassConstructor<T>): Promise<T & ProxyClass>;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Thread = void 0;
7
+ require("reflect-metadata");
8
+ const worker_threads_1 = require("worker_threads");
9
+ const path_1 = __importDefault(require("path"));
10
+ const ThreadBridge_1 = require("./bridges/ThreadBridge");
11
+ const GenerateExecArgv_1 = require("./cores/GenerateExecArgv");
12
+ const UniParentBridgeHandler_1 = require("./cores/UniParentBridgeHandler");
13
+ const os_1 = __importDefault(require("os"));
14
+ const fs_1 = __importDefault(require("fs"));
15
+ const ContainerVolume_1 = require("../containers/ContainerVolume");
16
+ const Process_1 = require("./Process");
17
+ const IsElectron_1 = require("./cores/IsElectron");
18
+ async function Thread(threadClassConstructor) {
19
+ if (IsElectron_1.isElectron()) {
20
+ return await Process_1.Process(threadClassConstructor);
21
+ }
22
+ else {
23
+ return new Promise((resolve, reject) => {
24
+ ThreadProxy(threadClassConstructor, (setupError, instance) => {
25
+ if (setupError) {
26
+ reject(setupError);
27
+ }
28
+ else {
29
+ resolve(instance);
30
+ }
31
+ });
32
+ });
33
+ }
34
+ }
35
+ exports.Thread = Thread;
36
+ function ThreadProxy(threadClassConstructor, callback) {
37
+ const className = threadClassConstructor.CLASS_NAME;
38
+ const classPath = threadClassConstructor.CLASS_PATH;
39
+ const tmpBaseRuntimeContainerFilename = path_1.default.resolve(os_1.default.tmpdir(), `./TBRC_TMP_${Date.now()}.tmp`);
40
+ fs_1.default.writeFileSync(tmpBaseRuntimeContainerFilename, ContainerVolume_1.ContainerVolume.readFileSync(ContainerVolume_1.BASE_RUNTIME_CONTAINER_FILE).toString());
41
+ const exeArgv = GenerateExecArgv_1.GenerateExecArgv(classPath).reverse();
42
+ const worker = new worker_threads_1.Worker(ContainerVolume_1.ContainerVolume.readFileSync(ContainerVolume_1.THREAD_RUNTIME_CONTAINER_FILE).toString(), {
43
+ eval: true,
44
+ argv: [
45
+ exeArgv.length > 0 ? exeArgv[0] : 'undefined',
46
+ tmpBaseRuntimeContainerFilename,
47
+ require.resolve(path_1.default.resolve(__dirname, './bridges/ThreadBridge'))
48
+ ]
49
+ });
50
+ UniParentBridgeHandler_1.UniParentBridgeHandler(new ThreadBridge_1.ThreadBridge(worker), className, classPath, threadClassConstructor, callback);
51
+ }
52
+ //# sourceMappingURL=Thread.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Thread.js","sourceRoot":"","sources":["../../../../src/lib/multipleRunner/lib/Thread.ts"],"names":[],"mappings":";;;;;;AAAA,4BAAyB;AAGzB,mDAAqC;AACrC,gDAAuB;AACvB,yDAAmD;AACnD,+DAAyD;AACzD,2EAAqE;AAErE,4CAAmB;AACnB,4CAAmB;AACnB,mEAIsC;AACtC,uCAAiC;AACjC,mDAA6C;AAEtC,KAAK,UAAU,MAAM,CAAwB,sBAAiD;IACpG,IAAI,uBAAU,EAAE,EAAE;QACjB,OAAO,MAAM,iBAAO,CAAC,sBAA6B,CAAQ,CAAA;KAC1D;SAAM;QACN,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtC,WAAW,CAAC,sBAAsB,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE;gBAC5D,IAAI,UAAU,EAAE;oBACf,MAAM,CAAC,UAAU,CAAC,CAAA;iBAClB;qBAAM;oBACN,OAAO,CAAiB,QAAQ,CAAC,CAAA;iBACjC;YACF,CAAC,CAAC,CAAA;QACH,CAAC,CAAC,CAAA;KACF;AACF,CAAC;AAdD,wBAcC;AAED,SAAS,WAAW,CAAwB,sBAAiD,EAAE,QAAkD;IAChJ,MAAM,SAAS,GAAW,sBAAsB,CAAC,UAAU,CAAA;IAC3D,MAAM,SAAS,GAAW,sBAAsB,CAAC,UAAU,CAAA;IAC3D,MAAM,+BAA+B,GAAW,cAAI,CAAC,OAAO,CAAC,YAAE,CAAC,MAAM,EAAE,EAAE,cAAc,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IACzG,YAAE,CAAC,aAAa,CAAC,+BAA+B,EAAE,iCAAe,CAAC,YAAY,CAAC,6CAA2B,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;IACvH,MAAM,OAAO,GAAG,mCAAgB,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAA;IACrD,MAAM,MAAM,GAAW,IAAI,uBAAM,CAAC,iCAAe,CAAC,YAAY,CAAC,+CAA6B,CAAC,CAAC,QAAQ,EAAE,EAAE;QACzG,IAAI,EAAE,IAAI;QACV,IAAI,EAAE;YACL,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW;YAC7C,+BAA+B;YAC/B,OAAO,CAAC,OAAO,CAAC,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,wBAAwB,CAAC,CAAC;SAClE;KACD,CAAC,CAAA;IAEF,+CAAsB,CAAC,IAAI,2BAAY,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,sBAAsB,EAAE,QAAQ,CAAC,CAAA;AACzG,CAAC"}
@@ -0,0 +1,32 @@
1
+ /// <reference types="node" />
2
+ import { EventEmitter } from 'events';
3
+ export declare class BaseBridge {
4
+ protected readonly eventEmitter: EventEmitter;
5
+ protected readonly bridge: any;
6
+ constructor(bridgeObject: any);
7
+ off(channel: string): this;
8
+ on(channel: string, listener: (...args: any[]) => void): this;
9
+ once(channel: string, listener: (...args: any[]) => void): this;
10
+ send(channel: string, ...args: any[]): void;
11
+ ready(properties: {
12
+ [key: string]: any;
13
+ }, propertyValues: {
14
+ [key: string]: any;
15
+ }): this;
16
+ onReady(callback: (properties: {
17
+ [key: string]: any;
18
+ }, propertyValues: {
19
+ [key: string]: any;
20
+ }) => void): this;
21
+ error(error: Error): void;
22
+ setupError(error: Error): void;
23
+ invoke(method: string, args: Array<any>): Promise<unknown>;
24
+ onInvoke(handler: (method: string, args: Array<any>) => Promise<any>): void;
25
+ set(property: string, value: any): this;
26
+ onSet(handler: (property: string, value: any) => void): this;
27
+ propertyChange(property: string, value: any): this;
28
+ onPropertyChanged(handler: (property: string, value: any) => void): this;
29
+ callbackHandler(thisArg: any, handler: (...args: any[]) => any): string;
30
+ onCallback(callbackEvtName: string, args: any[]): this;
31
+ terminate(): Promise<void>;
32
+ }