@lakutata/core 1.0.26 → 1.0.30

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 (120) 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/Container.js +16 -0
  8. package/build/base/Container.js.map +1 -1
  9. package/build/base/abstracts/Module.js.map +1 -1
  10. package/build/base/process/Process.d.ts +1 -1
  11. package/build/base/process/Process.js +2 -2
  12. package/build/base/process/Process.js.map +1 -1
  13. package/build/base/process/ProcessManager.d.ts +1 -1
  14. package/build/base/process/ProcessManager.js +2 -2
  15. package/build/base/process/ProcessManager.js.map +1 -1
  16. package/build/base/thread/Thread.d.ts +1 -1
  17. package/build/base/thread/Thread.js +2 -2
  18. package/build/base/thread/Thread.js.map +1 -1
  19. package/build/base/thread/ThreadManager.d.ts +1 -1
  20. package/build/base/thread/ThreadManager.js +2 -2
  21. package/build/base/thread/ThreadManager.js.map +1 -1
  22. package/build/interfaces/IApplicationConfig.d.ts +1 -0
  23. package/build/lib/multipleRunner/constants/Channel.d.ts +5 -0
  24. package/build/lib/multipleRunner/constants/Channel.js +9 -0
  25. package/build/lib/multipleRunner/constants/Channel.js.map +1 -0
  26. package/build/lib/multipleRunner/constants/MetadataKey.d.ts +2 -0
  27. package/build/lib/multipleRunner/constants/MetadataKey.js +6 -0
  28. package/build/lib/multipleRunner/constants/MetadataKey.js.map +1 -0
  29. package/build/lib/multipleRunner/containers/ContainerVolume.d.ts +4 -0
  30. package/build/lib/multipleRunner/containers/ContainerVolume.js +85 -0
  31. package/build/lib/multipleRunner/containers/ContainerVolume.js.map +1 -0
  32. package/build/lib/multipleRunner/definitions/interfaces/ClassConstructor.d.ts +3 -0
  33. package/build/lib/multipleRunner/definitions/interfaces/ClassConstructor.js +3 -0
  34. package/build/lib/multipleRunner/definitions/interfaces/ClassConstructor.js.map +1 -0
  35. package/build/lib/multipleRunner/definitions/interfaces/MultipleRunnerBaseClassConstructor.d.ts +4 -0
  36. package/build/lib/multipleRunner/definitions/interfaces/MultipleRunnerBaseClassConstructor.js +3 -0
  37. package/build/lib/multipleRunner/definitions/interfaces/MultipleRunnerBaseClassConstructor.js.map +1 -0
  38. package/build/lib/multipleRunner/definitions/interfaces/ProcessClassConstructor.d.ts +7 -0
  39. package/build/lib/multipleRunner/definitions/interfaces/ProcessClassConstructor.js +3 -0
  40. package/build/lib/multipleRunner/definitions/interfaces/ProcessClassConstructor.js.map +1 -0
  41. package/build/lib/multipleRunner/definitions/interfaces/ProxyClass.d.ts +3 -0
  42. package/build/lib/multipleRunner/definitions/interfaces/ProxyClass.js +3 -0
  43. package/build/lib/multipleRunner/definitions/interfaces/ProxyClass.js.map +1 -0
  44. package/build/lib/multipleRunner/definitions/interfaces/ThreadClassConstructor.d.ts +7 -0
  45. package/build/lib/multipleRunner/definitions/interfaces/ThreadClassConstructor.js +3 -0
  46. package/build/lib/multipleRunner/definitions/interfaces/ThreadClassConstructor.js.map +1 -0
  47. package/build/lib/multipleRunner/lib/Process.d.ts +5 -0
  48. package/build/lib/multipleRunner/lib/Process.js +44 -0
  49. package/build/lib/multipleRunner/lib/Process.js.map +1 -0
  50. package/build/lib/multipleRunner/lib/Thread.d.ts +5 -0
  51. package/build/lib/multipleRunner/lib/Thread.js +52 -0
  52. package/build/lib/multipleRunner/lib/Thread.js.map +1 -0
  53. package/build/lib/multipleRunner/lib/bridges/BaseBridge.d.ts +32 -0
  54. package/build/lib/multipleRunner/lib/bridges/BaseBridge.js +104 -0
  55. package/build/lib/multipleRunner/lib/bridges/BaseBridge.js.map +1 -0
  56. package/build/lib/multipleRunner/lib/bridges/ProcessBridge.d.ts +5 -0
  57. package/build/lib/multipleRunner/lib/bridges/ProcessBridge.js +20 -0
  58. package/build/lib/multipleRunner/lib/bridges/ProcessBridge.js.map +1 -0
  59. package/build/lib/multipleRunner/lib/bridges/ThreadBridge.d.ts +5 -0
  60. package/build/lib/multipleRunner/lib/bridges/ThreadBridge.js +17 -0
  61. package/build/lib/multipleRunner/lib/bridges/ThreadBridge.js.map +1 -0
  62. package/build/lib/multipleRunner/lib/cores/GenerateExecArgv.d.ts +2 -0
  63. package/build/lib/multipleRunner/lib/cores/GenerateExecArgv.js +35 -0
  64. package/build/lib/multipleRunner/lib/cores/GenerateExecArgv.js.map +1 -0
  65. package/build/lib/multipleRunner/lib/cores/IsElectron.d.ts +1 -0
  66. package/build/lib/multipleRunner/lib/cores/IsElectron.js +9 -0
  67. package/build/lib/multipleRunner/lib/cores/IsElectron.js.map +1 -0
  68. package/build/lib/multipleRunner/lib/cores/ProcessClass.d.ts +5 -0
  69. package/build/lib/multipleRunner/lib/cores/ProcessClass.js +12 -0
  70. package/build/lib/multipleRunner/lib/cores/ProcessClass.js.map +1 -0
  71. package/build/lib/multipleRunner/lib/cores/ThreadClass.d.ts +5 -0
  72. package/build/lib/multipleRunner/lib/cores/ThreadClass.js +12 -0
  73. package/build/lib/multipleRunner/lib/cores/ThreadClass.js.map +1 -0
  74. package/build/lib/multipleRunner/lib/cores/UniParentBridgeHandler.d.ts +2 -0
  75. package/build/lib/multipleRunner/lib/cores/UniParentBridgeHandler.js +104 -0
  76. package/build/lib/multipleRunner/lib/cores/UniParentBridgeHandler.js.map +1 -0
  77. package/build/lib/multipleRunner/lib/prototypes/MultipleRunnerBaseClass.d.ts +17 -0
  78. package/build/lib/multipleRunner/lib/prototypes/MultipleRunnerBaseClass.js +53 -0
  79. package/build/lib/multipleRunner/lib/prototypes/MultipleRunnerBaseClass.js.map +1 -0
  80. package/build/plugins/Formatter.d.ts +1 -0
  81. package/build/plugins/Formatter.js +8 -5
  82. package/build/plugins/Formatter.js.map +1 -1
  83. package/build/plugins/Logger.js +6 -2
  84. package/build/plugins/Logger.js.map +1 -1
  85. package/build/types/TPluginsConfig.d.ts +1 -0
  86. package/package.json +11 -11
  87. package/src/Application.ts +29 -0
  88. package/src/ApplicationManagement.ts +3 -0
  89. package/src/base/Container.ts +14 -1
  90. package/src/base/abstracts/Module.ts +2 -1
  91. package/src/base/process/Process.ts +1 -1
  92. package/src/base/process/ProcessManager.ts +2 -2
  93. package/src/base/thread/Thread.ts +1 -1
  94. package/src/base/thread/ThreadManager.ts +2 -2
  95. package/src/interfaces/IApplicationConfig.ts +1 -0
  96. package/src/lib/multipleRunner/constants/Channel.ts +5 -0
  97. package/src/lib/multipleRunner/constants/MetadataKey.ts +2 -0
  98. package/src/lib/multipleRunner/containers/ContainerVolume.ts +83 -0
  99. package/src/lib/multipleRunner/definitions/interfaces/ClassConstructor.ts +3 -0
  100. package/src/lib/multipleRunner/definitions/interfaces/MultipleRunnerBaseClassConstructor.ts +5 -0
  101. package/src/lib/multipleRunner/definitions/interfaces/ProcessClassConstructor.ts +10 -0
  102. package/src/lib/multipleRunner/definitions/interfaces/ProxyClass.ts +3 -0
  103. package/src/lib/multipleRunner/definitions/interfaces/ThreadClassConstructor.ts +10 -0
  104. package/src/lib/multipleRunner/lib/Process.ts +44 -0
  105. package/src/lib/multipleRunner/lib/Thread.ts +52 -0
  106. package/src/lib/multipleRunner/lib/bridges/BaseBridge.ts +115 -0
  107. package/src/lib/multipleRunner/lib/bridges/ProcessBridge.ts +18 -0
  108. package/src/lib/multipleRunner/lib/bridges/ThreadBridge.ts +15 -0
  109. package/src/lib/multipleRunner/lib/cores/GenerateExecArgv.ts +28 -0
  110. package/src/lib/multipleRunner/lib/cores/IsElectron.ts +3 -0
  111. package/src/lib/multipleRunner/lib/cores/ProcessClass.ts +8 -0
  112. package/src/lib/multipleRunner/lib/cores/ThreadClass.ts +8 -0
  113. package/src/lib/multipleRunner/lib/cores/UniParentBridgeHandler.ts +97 -0
  114. package/src/lib/multipleRunner/lib/prototypes/MultipleRunnerBaseClass.ts +66 -0
  115. package/src/plugins/Formatter.ts +10 -5
  116. package/src/plugins/Logger.ts +3 -2
  117. package/src/tests/Main.spec.ts +10 -6
  118. package/src/tests/threads/TestThread.ts +3 -1
  119. package/src/types/TPluginsConfig.ts +1 -1
  120. package/.idea/dbnavigator.xml +0 -558
@@ -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
+ }
@@ -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"}
@@ -0,0 +1,5 @@
1
+ import 'reflect-metadata';
2
+ import { MultipleRunnerBaseClass } from '../prototypes/MultipleRunnerBaseClass';
3
+ export declare class ThreadClass extends MultipleRunnerBaseClass {
4
+ protected setup(): Promise<void>;
5
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ThreadClass = void 0;
4
+ require("reflect-metadata");
5
+ const MultipleRunnerBaseClass_1 = require("../prototypes/MultipleRunnerBaseClass");
6
+ class ThreadClass extends MultipleRunnerBaseClass_1.MultipleRunnerBaseClass {
7
+ async setup() {
8
+ return super.setup();
9
+ }
10
+ }
11
+ exports.ThreadClass = ThreadClass;
12
+ //# sourceMappingURL=ThreadClass.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThreadClass.js","sourceRoot":"","sources":["../../../../../src/lib/multipleRunner/lib/cores/ThreadClass.ts"],"names":[],"mappings":";;;AAAA,4BAAyB;AACzB,mFAA6E;AAE7E,MAAa,WAAY,SAAQ,iDAAuB;IAC1C,KAAK,CAAC,KAAK;QACjB,OAAO,KAAK,CAAC,KAAK,EAAE,CAAA;IACxB,CAAC;CACJ;AAJD,kCAIC"}
@@ -0,0 +1,2 @@
1
+ import { BaseBridge } from '../bridges/BaseBridge';
2
+ export declare function UniParentBridgeHandler<T>(bridge: BaseBridge, className: string, classPath: string, classConstructor: any, callback: (setupError: Error, proxyInstance: T) => void): void;
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UniParentBridgeHandler = void 0;
4
+ const Channel_1 = require("../../constants/Channel");
5
+ function UniParentBridgeHandler(bridge, className, classPath, classConstructor, callback) {
6
+ const reservedMethodNames = ['off', 'on', 'once', 'emit', 'terminate'];
7
+ bridge.on(Channel_1.SETUP_ERROR, (setupErrorMsg => {
8
+ callback(new Error(setupErrorMsg), null);
9
+ })).onReady((properties, propertyValues) => {
10
+ bridge.onPropertyChanged((property, value) => {
11
+ propertyValues[property] = value;
12
+ });
13
+ const proxyHandler = new Proxy({}, {
14
+ get(target, p) {
15
+ if (reservedMethodNames.indexOf(p.toString()) > -1) {
16
+ switch (p.toString()) {
17
+ case 'off': {
18
+ return new Proxy((...args) => {
19
+ }, {
20
+ apply(applyTarget, thisArg, argArray) {
21
+ bridge.off.apply(bridge, argArray);
22
+ }
23
+ });
24
+ }
25
+ case 'on': {
26
+ return new Proxy((...args) => {
27
+ }, {
28
+ apply(applyTarget, thisArg, argArray) {
29
+ bridge.on.apply(bridge, argArray);
30
+ }
31
+ });
32
+ }
33
+ case 'once': {
34
+ return new Proxy((...args) => {
35
+ }, {
36
+ apply(applyTarget, thisArg, argArray) {
37
+ bridge.once.apply(bridge, argArray);
38
+ }
39
+ });
40
+ }
41
+ case 'emit': {
42
+ return new Proxy((...args) => {
43
+ }, {
44
+ apply(applyTarget, thisArg, argArray) {
45
+ bridge.send.apply(bridge, argArray);
46
+ }
47
+ });
48
+ }
49
+ case 'terminate': {
50
+ return new Proxy((...args) => {
51
+ }, {
52
+ apply(applyTarget, thisArg, argArray) {
53
+ return new Promise((resolve, reject) => {
54
+ bridge.terminate().then(resolve).catch(reject);
55
+ });
56
+ }
57
+ });
58
+ }
59
+ default:
60
+ return undefined;
61
+ }
62
+ }
63
+ else {
64
+ const method = classConstructor.prototype[p];
65
+ const isPropertyMethod = properties[p.toString()] === 'function';
66
+ if (method || isPropertyMethod) {
67
+ return new Proxy(isPropertyMethod ? (...args) => {
68
+ } : method, {
69
+ apply(target, thisArg, argArray) {
70
+ const _argArray = [];
71
+ for (const _arg of argArray) {
72
+ if (typeof _arg !== 'function') {
73
+ _argArray.push(_arg);
74
+ }
75
+ else {
76
+ _argArray.push(bridge.callbackHandler(thisArg, _arg));
77
+ }
78
+ }
79
+ return new Promise((resolve, reject) => {
80
+ bridge.invoke(p.toString(), _argArray).then(resolve).catch(reject);
81
+ });
82
+ }
83
+ });
84
+ }
85
+ else if (properties[p.toString()]) {
86
+ return propertyValues[p.toString()];
87
+ }
88
+ else {
89
+ return undefined;
90
+ }
91
+ }
92
+ },
93
+ set(target, p, value, receiver) {
94
+ bridge.set(p.toString(), value);
95
+ return true;
96
+ }
97
+ });
98
+ bridge.off(Channel_1.SETUP_ERROR);
99
+ callback(null, proxyHandler);
100
+ });
101
+ bridge.send('create', className, classPath);
102
+ }
103
+ exports.UniParentBridgeHandler = UniParentBridgeHandler;
104
+ //# sourceMappingURL=UniParentBridgeHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UniParentBridgeHandler.js","sourceRoot":"","sources":["../../../../../src/lib/multipleRunner/lib/cores/UniParentBridgeHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import 'reflect-metadata';
2
+ import { BaseBridge } from '../bridges/BaseBridge';
3
+ export declare class MultipleRunnerBaseClass {
4
+ private readonly __bridge__;
5
+ static get CLASS_PATH(): string;
6
+ static get CLASS_NAME(): string;
7
+ constructor(bridge: BaseBridge);
8
+ protected setup(): Promise<void>;
9
+ off(event: string): void;
10
+ on(event: 'property-changed', handler: (property: string, value: any) => void): void;
11
+ on(event: 'error', handler: (error: Error) => void): void;
12
+ on(event: string, handler: (...args: any[]) => void): void;
13
+ once(event: 'property-changed', handler: (property: string, value: any) => void): void;
14
+ once(event: 'error', handler: (error: Error) => void): void;
15
+ once(event: string, handler: (...args: any[]) => void): void;
16
+ emit(event: string, ...args: any[]): void;
17
+ }
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MultipleRunnerBaseClass = void 0;
4
+ require("reflect-metadata");
5
+ const MetadataKey_1 = require("../../constants/MetadataKey");
6
+ class MultipleRunnerBaseClass {
7
+ constructor(bridge) {
8
+ this.__bridge__ = bridge;
9
+ }
10
+ static get CLASS_PATH() {
11
+ if (!Reflect.getMetadata(MetadataKey_1.MULTIPLE_RUNNER__CLASS_PATH, this)) {
12
+ const cachedModules = require('module')._cache;
13
+ for (const modulePath of Object.keys(cachedModules)) {
14
+ const cachedModule = cachedModules[modulePath];
15
+ if (typeof cachedModule === 'object') {
16
+ const exports = cachedModule.exports;
17
+ if (exports && typeof exports === 'object') {
18
+ for (const exportName of Object.keys(exports)) {
19
+ if (typeof exports[exportName] === 'function') {
20
+ if (exports[exportName] === this) {
21
+ Reflect.defineMetadata(MetadataKey_1.MULTIPLE_RUNNER__CLASS_PATH, modulePath, this);
22
+ }
23
+ }
24
+ }
25
+ }
26
+ }
27
+ }
28
+ }
29
+ return Reflect.getMetadata(MetadataKey_1.MULTIPLE_RUNNER__CLASS_PATH, this);
30
+ }
31
+ static get CLASS_NAME() {
32
+ if (!Reflect.getMetadata(MetadataKey_1.MULTIPLE_RUNNER_CLASS_NAME, this)) {
33
+ Reflect.defineMetadata(MetadataKey_1.MULTIPLE_RUNNER_CLASS_NAME, this.name, this);
34
+ }
35
+ return Reflect.getMetadata(MetadataKey_1.MULTIPLE_RUNNER_CLASS_NAME, this);
36
+ }
37
+ async setup() {
38
+ }
39
+ off(event) {
40
+ this.__bridge__.off(event);
41
+ }
42
+ on(event, handler) {
43
+ this.__bridge__.on(event, handler);
44
+ }
45
+ once(event, handler) {
46
+ this.__bridge__.once(event, handler);
47
+ }
48
+ emit(event, ...args) {
49
+ this.__bridge__.send.apply(this.__bridge__, [event].concat(args));
50
+ }
51
+ }
52
+ exports.MultipleRunnerBaseClass = MultipleRunnerBaseClass;
53
+ //# sourceMappingURL=MultipleRunnerBaseClass.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultipleRunnerBaseClass.js","sourceRoot":"","sources":["../../../../../src/lib/multipleRunner/lib/prototypes/MultipleRunnerBaseClass.ts"],"names":[],"mappings":";;;AAAA,4BAAyB;AAEzB,6DAAmG;AAEnG,MAAa,uBAAuB;IAgCnC,YAAY,MAAkB;QAC7B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAA;IACzB,CAAC;IA/BM,MAAM,KAAK,UAAU;QAC3B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,yCAA2B,EAAE,IAAI,CAAC,EAAE;YAC5D,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAA;YAC9C,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;gBACpD,MAAM,YAAY,GAAG,aAAa,CAAC,UAAU,CAAC,CAAA;gBAC9C,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;oBACrC,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAA;oBACpC,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;wBAC3C,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;4BAC9C,IAAI,OAAO,OAAO,CAAC,UAAU,CAAC,KAAK,UAAU,EAAE;gCAC9C,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE;oCACjC,OAAO,CAAC,cAAc,CAAC,yCAA2B,EAAE,UAAU,EAAE,IAAI,CAAC,CAAA;iCACrE;6BACD;yBACD;qBACD;iBACD;aACD;SACD;QACD,OAAO,OAAO,CAAC,WAAW,CAAC,yCAA2B,EAAE,IAAI,CAAC,CAAA;IAC9D,CAAC;IAEM,MAAM,KAAK,UAAU;QAC3B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,wCAA0B,EAAE,IAAI,CAAC,EAAE;YAC3D,OAAO,CAAC,cAAc,CAAC,wCAA0B,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;SACnE;QACD,OAAO,OAAO,CAAC,WAAW,CAAC,wCAA0B,EAAE,IAAI,CAAC,CAAA;IAC7D,CAAC;IAMS,KAAK,CAAC,KAAK;IAErB,CAAC;IAEM,GAAG,CAAC,KAAa;QACvB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAC3B,CAAC;IAKM,EAAE,CAAC,KAAa,EAAE,OAAiC;QACzD,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACnC,CAAC;IAKM,IAAI,CAAC,KAAa,EAAE,OAAiC;QAC3D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACrC,CAAC;IAEM,IAAI,CAAC,KAAa,EAAE,GAAG,IAAW;QACxC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAQ,CAAC,CAAA;IACzE,CAAC;CACD;AA7DD,0DA6DC"}
@@ -5,6 +5,7 @@ declare module '../Core' {
5
5
  }
6
6
  }
7
7
  export declare class Formatter extends Plugin {
8
+ protected get timezone(): string;
8
9
  protected readonly dateFormat: string;
9
10
  asTimestamp(inp?: string | number | Date): number;
10
11
  asMillisecondTimestamp(inp?: string | number | Date): number;