@lakutata/core 1.0.28 → 1.0.32

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 (160) hide show
  1. package/README.md +4 -0
  2. package/build/Application.d.ts +4 -0
  3. package/build/Application.js +20 -7
  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/BaseObject.js +1 -1
  8. package/build/base/BaseObject.js.map +1 -1
  9. package/build/base/Container.js +16 -0
  10. package/build/base/Container.js.map +1 -1
  11. package/build/base/ValidatorClass.d.ts +1 -0
  12. package/build/base/ValidatorClass.js +70 -53
  13. package/build/base/ValidatorClass.js.map +1 -1
  14. package/build/base/abstracts/Module.js +8 -8
  15. package/build/base/abstracts/Module.js.map +1 -1
  16. package/build/base/abstracts/Workflow.js +1 -1
  17. package/build/base/abstracts/Workflow.js.map +1 -1
  18. package/build/base/process/Process.d.ts +1 -1
  19. package/build/base/process/Process.js +2 -2
  20. package/build/base/process/Process.js.map +1 -1
  21. package/build/base/process/ProcessManager.d.ts +1 -1
  22. package/build/base/process/ProcessManager.js +2 -2
  23. package/build/base/process/ProcessManager.js.map +1 -1
  24. package/build/base/thread/Thread.d.ts +1 -1
  25. package/build/base/thread/Thread.js +2 -2
  26. package/build/base/thread/Thread.js.map +1 -1
  27. package/build/base/thread/ThreadManager.d.ts +1 -1
  28. package/build/base/thread/ThreadManager.js +2 -2
  29. package/build/base/thread/ThreadManager.js.map +1 -1
  30. package/build/decorators/MethodValidation.js.map +1 -1
  31. package/build/interfaces/IApplicationConfig.d.ts +1 -0
  32. package/build/interfaces/ShellJsInterfaces.d.ts +162 -0
  33. package/build/interfaces/ShellJsInterfaces.js +3 -0
  34. package/build/interfaces/ShellJsInterfaces.js.map +1 -0
  35. package/build/lib/minified/ShellJs.d.ts +2 -0
  36. package/build/lib/minified/ShellJs.js +3699 -0
  37. package/build/lib/minified/ShellJs.js.map +1 -0
  38. package/build/lib/multipleRunner/constants/Channel.d.ts +5 -0
  39. package/build/lib/multipleRunner/constants/Channel.js +9 -0
  40. package/build/lib/multipleRunner/constants/Channel.js.map +1 -0
  41. package/build/lib/multipleRunner/constants/MetadataKey.d.ts +2 -0
  42. package/build/lib/multipleRunner/constants/MetadataKey.js +6 -0
  43. package/build/lib/multipleRunner/constants/MetadataKey.js.map +1 -0
  44. package/build/lib/multipleRunner/containers/ContainerVolume.d.ts +4 -0
  45. package/build/lib/multipleRunner/containers/ContainerVolume.js +85 -0
  46. package/build/lib/multipleRunner/containers/ContainerVolume.js.map +1 -0
  47. package/build/lib/multipleRunner/definitions/interfaces/ClassConstructor.d.ts +3 -0
  48. package/build/lib/multipleRunner/definitions/interfaces/ClassConstructor.js +3 -0
  49. package/build/lib/multipleRunner/definitions/interfaces/ClassConstructor.js.map +1 -0
  50. package/build/lib/multipleRunner/definitions/interfaces/MultipleRunnerBaseClassConstructor.d.ts +4 -0
  51. package/build/lib/multipleRunner/definitions/interfaces/MultipleRunnerBaseClassConstructor.js +3 -0
  52. package/build/lib/multipleRunner/definitions/interfaces/MultipleRunnerBaseClassConstructor.js.map +1 -0
  53. package/build/lib/multipleRunner/definitions/interfaces/ProcessClassConstructor.d.ts +7 -0
  54. package/build/lib/multipleRunner/definitions/interfaces/ProcessClassConstructor.js +3 -0
  55. package/build/lib/multipleRunner/definitions/interfaces/ProcessClassConstructor.js.map +1 -0
  56. package/build/lib/multipleRunner/definitions/interfaces/ProxyClass.d.ts +3 -0
  57. package/build/lib/multipleRunner/definitions/interfaces/ProxyClass.js +3 -0
  58. package/build/lib/multipleRunner/definitions/interfaces/ProxyClass.js.map +1 -0
  59. package/build/lib/multipleRunner/definitions/interfaces/ThreadClassConstructor.d.ts +7 -0
  60. package/build/lib/multipleRunner/definitions/interfaces/ThreadClassConstructor.js +3 -0
  61. package/build/lib/multipleRunner/definitions/interfaces/ThreadClassConstructor.js.map +1 -0
  62. package/build/lib/multipleRunner/lib/Process.d.ts +5 -0
  63. package/build/lib/multipleRunner/lib/Process.js +44 -0
  64. package/build/lib/multipleRunner/lib/Process.js.map +1 -0
  65. package/build/lib/multipleRunner/lib/Thread.d.ts +5 -0
  66. package/build/lib/multipleRunner/lib/Thread.js +52 -0
  67. package/build/lib/multipleRunner/lib/Thread.js.map +1 -0
  68. package/build/lib/multipleRunner/lib/bridges/BaseBridge.d.ts +32 -0
  69. package/build/lib/multipleRunner/lib/bridges/BaseBridge.js +104 -0
  70. package/build/lib/multipleRunner/lib/bridges/BaseBridge.js.map +1 -0
  71. package/build/lib/multipleRunner/lib/bridges/ProcessBridge.d.ts +5 -0
  72. package/build/lib/multipleRunner/lib/bridges/ProcessBridge.js +20 -0
  73. package/build/lib/multipleRunner/lib/bridges/ProcessBridge.js.map +1 -0
  74. package/build/lib/multipleRunner/lib/bridges/ThreadBridge.d.ts +5 -0
  75. package/build/lib/multipleRunner/lib/bridges/ThreadBridge.js +17 -0
  76. package/build/lib/multipleRunner/lib/bridges/ThreadBridge.js.map +1 -0
  77. package/build/lib/multipleRunner/lib/cores/GenerateExecArgv.d.ts +2 -0
  78. package/build/lib/multipleRunner/lib/cores/GenerateExecArgv.js +35 -0
  79. package/build/lib/multipleRunner/lib/cores/GenerateExecArgv.js.map +1 -0
  80. package/build/lib/multipleRunner/lib/cores/IsElectron.d.ts +1 -0
  81. package/build/lib/multipleRunner/lib/cores/IsElectron.js +9 -0
  82. package/build/lib/multipleRunner/lib/cores/IsElectron.js.map +1 -0
  83. package/build/lib/multipleRunner/lib/cores/ProcessClass.d.ts +5 -0
  84. package/build/lib/multipleRunner/lib/cores/ProcessClass.js +12 -0
  85. package/build/lib/multipleRunner/lib/cores/ProcessClass.js.map +1 -0
  86. package/build/lib/multipleRunner/lib/cores/ThreadClass.d.ts +5 -0
  87. package/build/lib/multipleRunner/lib/cores/ThreadClass.js +12 -0
  88. package/build/lib/multipleRunner/lib/cores/ThreadClass.js.map +1 -0
  89. package/build/lib/multipleRunner/lib/cores/UniParentBridgeHandler.d.ts +2 -0
  90. package/build/lib/multipleRunner/lib/cores/UniParentBridgeHandler.js +104 -0
  91. package/build/lib/multipleRunner/lib/cores/UniParentBridgeHandler.js.map +1 -0
  92. package/build/lib/multipleRunner/lib/prototypes/MultipleRunnerBaseClass.d.ts +17 -0
  93. package/build/lib/multipleRunner/lib/prototypes/MultipleRunnerBaseClass.js +53 -0
  94. package/build/lib/multipleRunner/lib/prototypes/MultipleRunnerBaseClass.js.map +1 -0
  95. package/build/plugins/Crypto.js +2 -2
  96. package/build/plugins/Crypto.js.map +1 -1
  97. package/build/plugins/Formatter.d.ts +1 -0
  98. package/build/plugins/Formatter.js +9 -6
  99. package/build/plugins/Formatter.js.map +1 -1
  100. package/build/plugins/HttpRequest.js +8 -8
  101. package/build/plugins/HttpRequest.js.map +1 -1
  102. package/build/plugins/Logger.js +15 -6
  103. package/build/plugins/Logger.js.map +1 -1
  104. package/build/plugins/MessagePack.js +2 -2
  105. package/build/plugins/MessagePack.js.map +1 -1
  106. package/build/plugins/Security.js +24 -24
  107. package/build/plugins/Security.js.map +1 -1
  108. package/build/plugins/Shell.d.ts +39 -0
  109. package/build/plugins/Shell.js +58 -0
  110. package/build/plugins/Shell.js.map +1 -0
  111. package/build/types/TPluginsConfig.d.ts +1 -0
  112. package/build/utils/Delay.js +1 -1
  113. package/build/utils/Delay.js.map +1 -1
  114. package/build/utils/Timeout.js +1 -1
  115. package/build/utils/Timeout.js.map +1 -1
  116. package/build/utils/ValidDataUrl.d.ts +1 -0
  117. package/build/utils/ValidDataUrl.js +8 -0
  118. package/build/utils/ValidDataUrl.js.map +1 -0
  119. package/package.json +6 -5
  120. package/src/Application.ts +33 -11
  121. package/src/ApplicationManagement.ts +4 -1
  122. package/src/base/Container.ts +14 -1
  123. package/src/base/ValidatorClass.ts +44 -7
  124. package/src/base/abstracts/Exception.ts +1 -1
  125. package/src/base/abstracts/Module.ts +2 -1
  126. package/src/base/process/Process.ts +1 -1
  127. package/src/base/process/ProcessManager.ts +2 -2
  128. package/src/base/thread/Thread.ts +1 -1
  129. package/src/base/thread/ThreadManager.ts +2 -2
  130. package/src/decorators/MethodValidation.ts +6 -6
  131. package/src/interfaces/IApplicationConfig.ts +1 -0
  132. package/src/interfaces/ShellJsInterfaces.ts +858 -0
  133. package/src/lib/minified/ShellJs.js +1 -0
  134. package/src/lib/multipleRunner/constants/Channel.ts +5 -0
  135. package/src/lib/multipleRunner/constants/MetadataKey.ts +2 -0
  136. package/src/lib/multipleRunner/containers/ContainerVolume.ts +83 -0
  137. package/src/lib/multipleRunner/definitions/interfaces/ClassConstructor.ts +3 -0
  138. package/src/lib/multipleRunner/definitions/interfaces/MultipleRunnerBaseClassConstructor.ts +5 -0
  139. package/src/lib/multipleRunner/definitions/interfaces/ProcessClassConstructor.ts +10 -0
  140. package/src/lib/multipleRunner/definitions/interfaces/ProxyClass.ts +3 -0
  141. package/src/lib/multipleRunner/definitions/interfaces/ThreadClassConstructor.ts +10 -0
  142. package/src/lib/multipleRunner/lib/Process.ts +44 -0
  143. package/src/lib/multipleRunner/lib/Thread.ts +52 -0
  144. package/src/lib/multipleRunner/lib/bridges/BaseBridge.ts +115 -0
  145. package/src/lib/multipleRunner/lib/bridges/ProcessBridge.ts +18 -0
  146. package/src/lib/multipleRunner/lib/bridges/ThreadBridge.ts +15 -0
  147. package/src/lib/multipleRunner/lib/cores/GenerateExecArgv.ts +28 -0
  148. package/src/lib/multipleRunner/lib/cores/IsElectron.ts +3 -0
  149. package/src/lib/multipleRunner/lib/cores/ProcessClass.ts +8 -0
  150. package/src/lib/multipleRunner/lib/cores/ThreadClass.ts +8 -0
  151. package/src/lib/multipleRunner/lib/cores/UniParentBridgeHandler.ts +97 -0
  152. package/src/lib/multipleRunner/lib/prototypes/MultipleRunnerBaseClass.ts +66 -0
  153. package/src/plugins/Crypto.ts +3 -3
  154. package/src/plugins/Formatter.ts +10 -5
  155. package/src/plugins/Logger.ts +8 -2
  156. package/src/plugins/Shell.ts +371 -0
  157. package/src/tests/Main.spec.ts +11 -6
  158. package/src/tests/threads/TestThread.ts +3 -1
  159. package/src/types/TPluginsConfig.ts +1 -1
  160. package/src/utils/ValidDataUrl.ts +8 -0
@@ -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 = (0, child_process_1.fork)(tmpProcessRuntimeContainerFilename, [
37
+ tmpBaseRuntimeContainerFilename,
38
+ require.resolve(path_1.default.resolve(__dirname, './bridges/ProcessBridge'))
39
+ ], {
40
+ execArgv: (0, GenerateExecArgv_1.GenerateExecArgv)(classPath)
41
+ });
42
+ (0, 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,IAAA,oBAAI,EAAC,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,IAAA,mCAAgB,EAAC,SAAS,CAAC;KACxC,CAAC,CAAA;IACF,IAAA,+CAAsB,EAAC,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 ((0, IsElectron_1.isElectron)()) {
20
+ return await (0, 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 = (0, 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
+ (0, 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,IAAA,uBAAU,GAAE,EAAE;QACjB,OAAO,MAAM,IAAA,iBAAO,EAAC,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,IAAA,mCAAgB,EAAC,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,IAAA,+CAAsB,EAAC,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
+ }
@@ -0,0 +1,104 @@
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.BaseBridge = void 0;
7
+ const events_1 = require("events");
8
+ const random_1 = __importDefault(require("random"));
9
+ const Channel_1 = require("../../constants/Channel");
10
+ class BaseBridge {
11
+ constructor(bridgeObject) {
12
+ this.eventEmitter = new events_1.EventEmitter();
13
+ this.bridge = bridgeObject;
14
+ this.bridge.on('message', data => {
15
+ this.eventEmitter.emit.apply(this.eventEmitter, [data.channel].concat(data.args));
16
+ });
17
+ }
18
+ off(channel) {
19
+ this.eventEmitter.removeAllListeners(channel);
20
+ return this;
21
+ }
22
+ on(channel, listener) {
23
+ this.eventEmitter.on.apply(this.eventEmitter, [channel, listener]);
24
+ return this;
25
+ }
26
+ once(channel, listener) {
27
+ this.eventEmitter.once.apply(this.eventEmitter, [channel, listener]);
28
+ return this;
29
+ }
30
+ send(channel, ...args) {
31
+ throw new Error('Method did not implemented');
32
+ }
33
+ ready(properties, propertyValues) {
34
+ this.send(Channel_1.READY, properties, propertyValues);
35
+ return this;
36
+ }
37
+ onReady(callback) {
38
+ this.once(Channel_1.READY, callback);
39
+ return this;
40
+ }
41
+ error(error) {
42
+ this.send('error', error.message);
43
+ }
44
+ setupError(error) {
45
+ this.send(Channel_1.SETUP_ERROR, error.message);
46
+ }
47
+ async invoke(method, args) {
48
+ return new Promise((resolve, reject) => {
49
+ const invokeId = `ts_${Date.now()}_rnd_${random_1.default.int(100, 999999)}`;
50
+ const responseChannelName = `__%$invoke_res_${invokeId}$%__`;
51
+ this.once(responseChannelName, (errMsg, result) => {
52
+ if (errMsg) {
53
+ reject(new Error(errMsg));
54
+ }
55
+ else {
56
+ resolve(result);
57
+ }
58
+ });
59
+ this.send(Channel_1.INVOKE, method, args, responseChannelName);
60
+ });
61
+ }
62
+ onInvoke(handler) {
63
+ this.on(Channel_1.INVOKE, (method, args, responseChannelName) => {
64
+ handler(method, args).then(result => {
65
+ this.send(responseChannelName, null, result);
66
+ }).catch(invokeError => {
67
+ this.send(responseChannelName, invokeError.message, undefined);
68
+ });
69
+ });
70
+ }
71
+ set(property, value) {
72
+ this.send(Channel_1.SET_PROPERTY, property, value);
73
+ return this;
74
+ }
75
+ onSet(handler) {
76
+ this.on(Channel_1.SET_PROPERTY, handler);
77
+ return this;
78
+ }
79
+ propertyChange(property, value) {
80
+ this.send(Channel_1.PROPERTY_CHANGE, property, value);
81
+ this.send('property-changed', property, value);
82
+ return this;
83
+ }
84
+ onPropertyChanged(handler) {
85
+ this.on(Channel_1.PROPERTY_CHANGE, handler);
86
+ return this;
87
+ }
88
+ callbackHandler(thisArg, handler) {
89
+ const callbackEvtName = `__________%$CALLBACK[${Date.now()}]$%__________`;
90
+ this.once(callbackEvtName, (...args) => {
91
+ handler.apply(thisArg, args);
92
+ });
93
+ return callbackEvtName;
94
+ }
95
+ onCallback(callbackEvtName, args) {
96
+ this.send.apply(this, [callbackEvtName].concat(args));
97
+ return this;
98
+ }
99
+ async terminate() {
100
+ throw new Error('Method did not implemented');
101
+ }
102
+ }
103
+ exports.BaseBridge = BaseBridge;
104
+ //# sourceMappingURL=BaseBridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseBridge.js","sourceRoot":"","sources":["../../../../../src/lib/multipleRunner/lib/bridges/BaseBridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { BaseBridge } from './BaseBridge';
2
+ export declare class ProcessBridge extends BaseBridge {
3
+ send(channel: string, ...args: any[]): void;
4
+ terminate(): Promise<void>;
5
+ }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProcessBridge = void 0;
4
+ const BaseBridge_1 = require("./BaseBridge");
5
+ class ProcessBridge extends BaseBridge_1.BaseBridge {
6
+ send(channel, ...args) {
7
+ this.bridge.send({
8
+ channel: channel,
9
+ args: args
10
+ });
11
+ }
12
+ async terminate() {
13
+ return new Promise(resolve => {
14
+ this.bridge.once('close', resolve);
15
+ this.bridge.kill();
16
+ });
17
+ }
18
+ }
19
+ exports.ProcessBridge = ProcessBridge;
20
+ //# sourceMappingURL=ProcessBridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProcessBridge.js","sourceRoot":"","sources":["../../../../../src/lib/multipleRunner/lib/bridges/ProcessBridge.ts"],"names":[],"mappings":";;;AAAA,6CAAuC;AAEvC,MAAa,aAAc,SAAQ,uBAAU;IAElC,IAAI,CAAC,OAAe,EAAE,GAAG,IAAW;QACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACb,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,IAAI;SACb,CAAC,CAAA;IACN,CAAC;IAEM,KAAK,CAAC,SAAS;QAClB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAClC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;QACtB,CAAC,CAAC,CAAA;IACN,CAAC;CACJ;AAfD,sCAeC"}
@@ -0,0 +1,5 @@
1
+ import { BaseBridge } from './BaseBridge';
2
+ export declare class ThreadBridge extends BaseBridge {
3
+ send(channel: string, ...args: any[]): void;
4
+ terminate(): Promise<void>;
5
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ThreadBridge = void 0;
4
+ const BaseBridge_1 = require("./BaseBridge");
5
+ class ThreadBridge extends BaseBridge_1.BaseBridge {
6
+ send(channel, ...args) {
7
+ this.bridge.postMessage({
8
+ channel: channel,
9
+ args: args
10
+ });
11
+ }
12
+ async terminate() {
13
+ await this.bridge.terminate();
14
+ }
15
+ }
16
+ exports.ThreadBridge = ThreadBridge;
17
+ //# sourceMappingURL=ThreadBridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThreadBridge.js","sourceRoot":"","sources":["../../../../../src/lib/multipleRunner/lib/bridges/ThreadBridge.ts"],"names":[],"mappings":";;;AAAA,6CAAuC;AAEvC,MAAa,YAAa,SAAQ,uBAAU;IAEjC,IAAI,CAAC,OAAe,EAAE,GAAG,IAAW;QACvC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,IAAI;SACb,CAAC,CAAA;IACN,CAAC;IAEM,KAAK,CAAC,SAAS;QAClB,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAA;IACjC,CAAC;CACJ;AAZD,oCAYC"}
@@ -0,0 +1,2 @@
1
+ import 'reflect-metadata';
2
+ export declare function GenerateExecArgv(modulePath: string): Array<string>;
@@ -0,0 +1,35 @@
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.GenerateExecArgv = void 0;
7
+ require("reflect-metadata");
8
+ const path_1 = __importDefault(require("path"));
9
+ function GenerateExecArgv(modulePath) {
10
+ const moduleExtName = path_1.default.extname(modulePath).toUpperCase();
11
+ switch (moduleExtName) {
12
+ case '.TS': {
13
+ require('ts-node');
14
+ const registerRegEx = /ts-node\/register/;
15
+ const CMs = require('module')._cache;
16
+ for (const cmPath of Object.keys(CMs)) {
17
+ if (registerRegEx.test(cmPath)) {
18
+ return [
19
+ '-r',
20
+ cmPath
21
+ ];
22
+ }
23
+ }
24
+ return [];
25
+ }
26
+ case '.JS': {
27
+ return [];
28
+ }
29
+ default: {
30
+ throw new Error('Invalid module type');
31
+ }
32
+ }
33
+ }
34
+ exports.GenerateExecArgv = GenerateExecArgv;
35
+ //# sourceMappingURL=GenerateExecArgv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GenerateExecArgv.js","sourceRoot":"","sources":["../../../../../src/lib/multipleRunner/lib/cores/GenerateExecArgv.ts"],"names":[],"mappings":";;;;;;AAAA,4BAAyB;AACzB,gDAAuB;AAEvB,SAAgB,gBAAgB,CAAC,UAAkB;IAC/C,MAAM,aAAa,GAAW,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAA;IACpE,QAAQ,aAAa,EAAE;QACnB,KAAK,KAAK,CAAC,CAAC;YACR,OAAO,CAAC,SAAS,CAAC,CAAA;YAClB,MAAM,aAAa,GAAG,mBAAmB,CAAA;YACzC,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAA;YACpC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBACnC,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;oBAC5B,OAAO;wBACH,IAAI;wBACJ,MAAM;qBACT,CAAA;iBACJ;aACJ;YACD,OAAO,EAAE,CAAA;SACZ;QACD,KAAK,KAAK,CAAC,CAAC;YACR,OAAO,EAAE,CAAA;SACZ;QACD,OAAO,CAAC,CAAC;YACL,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;SACzC;KACJ;AACL,CAAC;AAxBD,4CAwBC"}
@@ -0,0 +1 @@
1
+ export declare function isElectron(): boolean;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isElectron = void 0;
4
+ function isElectron() {
5
+ var _a;
6
+ return !!((_a = process === null || process === void 0 ? void 0 : process.versions) === null || _a === void 0 ? void 0 : _a.electron);
7
+ }
8
+ exports.isElectron = isElectron;
9
+ //# sourceMappingURL=IsElectron.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IsElectron.js","sourceRoot":"","sources":["../../../../../src/lib/multipleRunner/lib/cores/IsElectron.ts"],"names":[],"mappings":";;;AAAA,SAAgB,UAAU;;IACtB,OAAO,CAAC,CAAC,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,0CAAE,QAAQ,CAAC,CAAA;AAC1C,CAAC;AAFD,gCAEC"}
@@ -0,0 +1,5 @@
1
+ import 'reflect-metadata';
2
+ import { MultipleRunnerBaseClass } from '../prototypes/MultipleRunnerBaseClass';
3
+ export declare class ProcessClass extends MultipleRunnerBaseClass {
4
+ protected setup(): Promise<void>;
5
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProcessClass = void 0;
4
+ require("reflect-metadata");
5
+ const MultipleRunnerBaseClass_1 = require("../prototypes/MultipleRunnerBaseClass");
6
+ class ProcessClass extends MultipleRunnerBaseClass_1.MultipleRunnerBaseClass {
7
+ async setup() {
8
+ return super.setup();
9
+ }
10
+ }
11
+ exports.ProcessClass = ProcessClass;
12
+ //# sourceMappingURL=ProcessClass.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProcessClass.js","sourceRoot":"","sources":["../../../../../src/lib/multipleRunner/lib/cores/ProcessClass.ts"],"names":[],"mappings":";;;AAAA,4BAAyB;AACzB,mFAA6E;AAE7E,MAAa,YAAa,SAAQ,iDAAuB;IAC3C,KAAK,CAAC,KAAK;QACjB,OAAO,KAAK,CAAC,KAAK,EAAE,CAAA;IACxB,CAAC;CACJ;AAJD,oCAIC"}