tnp-helpers 18.0.21 → 18.0.23

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 (248) hide show
  1. package/assets/shared/shared_folder_info.txt +1 -1
  2. package/browser/README.md +24 -24
  3. package/browser/esm2022/lib/base/classes/base-npm-helpers.mjs +21 -1
  4. package/browser/esm2022/lib/helpers/helpers.mjs +1 -11
  5. package/browser/fesm2022/tnp-helpers.mjs +20 -12
  6. package/browser/fesm2022/tnp-helpers.mjs.map +1 -1
  7. package/browser/lib/base/classes/base-npm-helpers.d.ts +3 -0
  8. package/browser/lib/helpers/helpers.d.ts +0 -4
  9. package/client/README.md +24 -24
  10. package/client/esm2022/lib/base/classes/base-npm-helpers.mjs +21 -1
  11. package/client/esm2022/lib/helpers/helpers.mjs +1 -11
  12. package/client/fesm2022/tnp-helpers.mjs +20 -12
  13. package/client/fesm2022/tnp-helpers.mjs.map +1 -1
  14. package/client/lib/base/classes/base-npm-helpers.d.ts +3 -0
  15. package/client/lib/helpers/helpers.d.ts +0 -4
  16. package/index.js.map +1 -1
  17. package/lib/base/classes/base-bower-json.js.map +1 -1
  18. package/lib/base/classes/base-cli-worker-config.js.map +1 -1
  19. package/lib/base/classes/base-cli-worker-controller.js.map +1 -1
  20. package/lib/base/classes/base-cli-worker.js.map +1 -1
  21. package/lib/base/classes/base-command-line-feature.backend.js.map +1 -1
  22. package/lib/base/classes/base-compiler-for-project.js.map +1 -1
  23. package/lib/base/classes/base-db.js.map +1 -1
  24. package/lib/base/classes/base-debounce-compiler-for-project.js.map +1 -1
  25. package/lib/base/classes/base-detached-service.d.ts +1 -2
  26. package/lib/base/classes/base-detached-service.js +6 -10
  27. package/lib/base/classes/base-detached-service.js.map +1 -1
  28. package/lib/base/classes/base-feature-for-project.js.map +1 -1
  29. package/lib/base/classes/base-git.js.map +1 -1
  30. package/lib/base/classes/base-global-command-line.backend.d.ts +2 -0
  31. package/lib/base/classes/base-global-command-line.backend.js +12 -0
  32. package/lib/base/classes/base-global-command-line.backend.js.map +1 -1
  33. package/lib/base/classes/base-ignore-hide.js.map +1 -1
  34. package/lib/base/classes/base-json-file-reader.js.map +1 -1
  35. package/lib/base/classes/base-library-build.js.map +1 -1
  36. package/lib/base/classes/base-linked-projects.js.map +1 -1
  37. package/lib/base/classes/base-node-modules.js.map +1 -1
  38. package/lib/base/classes/base-npm-helpers.d.ts +3 -0
  39. package/lib/base/classes/base-npm-helpers.js +18 -0
  40. package/lib/base/classes/base-npm-helpers.js.map +1 -1
  41. package/lib/base/classes/base-package-json.js.map +1 -1
  42. package/lib/base/classes/base-process-manager.js.map +1 -1
  43. package/lib/base/classes/base-project-resolver.js.map +1 -1
  44. package/lib/base/classes/base-project.js.map +1 -1
  45. package/lib/base/classes/base-quick-fixes.js.map +1 -1
  46. package/lib/base/classes/base-release-process.js.map +1 -1
  47. package/lib/base/classes/base-start-config.backend.js +0 -7
  48. package/lib/base/classes/base-start-config.backend.js.map +1 -1
  49. package/lib/base/classes/base-static-pages.js.map +1 -1
  50. package/lib/base/classes/base-vscode.js.map +1 -1
  51. package/lib/base/classes/index.js.map +1 -1
  52. package/lib/base/commit-data.js.map +1 -1
  53. package/lib/base/config-database.js.map +1 -1
  54. package/lib/base/core-project.js.map +1 -1
  55. package/lib/base/gh-temp-code.js.map +1 -1
  56. package/lib/base/index-rebuilder.backend.d.ts +0 -1
  57. package/lib/base/index-rebuilder.backend.js.map +1 -1
  58. package/lib/base/index.js.map +1 -1
  59. package/lib/base/linked-project.js.map +1 -1
  60. package/lib/base/project-database.js.map +1 -1
  61. package/lib/base/tcp-udp-ports/index.js.map +1 -1
  62. package/lib/base/tcp-udp-ports/not-assignable-port.entity.d.ts +0 -1
  63. package/lib/base/tcp-udp-ports/not-assignable-port.entity.js +2 -2
  64. package/lib/base/tcp-udp-ports/not-assignable-port.entity.js.map +1 -1
  65. package/lib/base/tcp-udp-ports/ports.controller.js.map +1 -1
  66. package/lib/base/tcp-udp-ports/ports.entity.js.map +1 -1
  67. package/lib/base/tcp-udp-ports/tcp-udp-ports.context.js.map +1 -1
  68. package/lib/base/tcp-udp-ports/tcp-upd-ports.worker.js.map +1 -1
  69. package/lib/base/translate.js.map +1 -1
  70. package/lib/build-info._auto-generated_.js.map +1 -1
  71. package/lib/helpers/for-backend/helpers-cli-tool.backend.js.map +1 -1
  72. package/lib/helpers/for-backend/helpers-console-gui.js.map +1 -1
  73. package/lib/helpers/for-backend/helpers-dependencies.backend.js.map +1 -1
  74. package/lib/helpers/for-backend/helpers-file-folders.backend.js.map +1 -1
  75. package/lib/helpers/for-backend/helpers-git.backend.js +12 -8
  76. package/lib/helpers/for-backend/helpers-git.backend.js.map +1 -1
  77. package/lib/helpers/for-backend/helpers-network.backend.js.map +1 -1
  78. package/lib/helpers/for-backend/helpers-npm.backend.js.map +1 -1
  79. package/lib/helpers/for-backend/helpers-path.backend.js.map +1 -1
  80. package/lib/helpers/for-backend/helpers-process.backend.js.map +1 -1
  81. package/lib/helpers/for-backend/helpers-system-terminal.backend.js.map +1 -1
  82. package/lib/helpers/for-backend/helpers-vscode.backend.js.map +1 -1
  83. package/lib/helpers/for-browser/angular.helper.js +2 -2
  84. package/lib/helpers/for-browser/angular.helper.js.map +1 -1
  85. package/lib/helpers/for-browser/helpers-browser.js.map +1 -1
  86. package/lib/helpers/helpers-array-obj.js.map +1 -1
  87. package/lib/helpers/helpers-json5.backend.js.map +1 -1
  88. package/lib/helpers/helpers-numbers.js.map +1 -1
  89. package/lib/helpers/helpers-strings-regexes.js.map +1 -1
  90. package/lib/helpers/helpers-strings.js.map +1 -1
  91. package/lib/helpers/helpers.d.ts +0 -4
  92. package/lib/helpers/helpers.js +0 -15
  93. package/lib/helpers/helpers.js.map +1 -1
  94. package/lib/index._auto-generated_.d.ts +0 -1
  95. package/lib/index._auto-generated_.js.map +1 -1
  96. package/lib/index.js.map +1 -1
  97. package/lib/lowdb/adapters/Memory.js.map +1 -1
  98. package/lib/lowdb/adapters/browser/LocalStorage.js.map +1 -1
  99. package/lib/lowdb/adapters/browser/SessionStorage.js.map +1 -1
  100. package/lib/lowdb/adapters/browser/WebStorage.js.map +1 -1
  101. package/lib/lowdb/adapters/node/DataFile.js.map +1 -1
  102. package/lib/lowdb/adapters/node/JSONFile.js.map +1 -1
  103. package/lib/lowdb/adapters/node/TextFile.js.map +1 -1
  104. package/lib/lowdb/adapters/node/steno.js.map +1 -1
  105. package/lib/lowdb/browser.js.map +1 -1
  106. package/lib/lowdb/core/Low.js.map +1 -1
  107. package/lib/lowdb/examples/browser.js.map +1 -1
  108. package/lib/lowdb/examples/cli.d.ts +0 -1
  109. package/lib/lowdb/examples/cli.js.map +1 -1
  110. package/lib/lowdb/examples/in-memory.d.ts +0 -1
  111. package/lib/lowdb/examples/in-memory.js.map +1 -1
  112. package/lib/lowdb/examples/server.d.ts +0 -1
  113. package/lib/lowdb/examples/server.js.map +1 -1
  114. package/lib/lowdb/index.js.map +1 -1
  115. package/lib/lowdb/node.js.map +1 -1
  116. package/lib/lowdb/presets/browser.js.map +1 -1
  117. package/lib/lowdb/presets/node.js.map +1 -1
  118. package/lib/models.js.map +1 -1
  119. package/lib/old/base-component.d.ts +0 -1
  120. package/lib/old/base-component.js +2 -2
  121. package/lib/old/base-component.js.map +1 -1
  122. package/lib/old/base-formly-component.d.ts +0 -1
  123. package/lib/old/base-formly-component.js +2 -2
  124. package/lib/old/base-formly-component.js.map +1 -1
  125. package/lib/old/condition-wait.d.ts +0 -1
  126. package/lib/old/condition-wait.js.map +1 -1
  127. package/lib/old/dual-component-ctrl.d.ts +0 -1
  128. package/lib/old/dual-component-ctrl.js +2 -2
  129. package/lib/old/dual-component-ctrl.js.map +1 -1
  130. package/lib/old/execute-command.js.map +1 -1
  131. package/lib/old/helpers.js.map +1 -1
  132. package/lib/old/models.js.map +1 -1
  133. package/lib/utils.js.map +1 -1
  134. package/lib/validators/validators-firedev.js.map +1 -1
  135. package/lib/validators/validators-git.js.map +1 -1
  136. package/lib/validators/validators-network.js.map +1 -1
  137. package/lib/validators/validators.js.map +1 -1
  138. package/migrations/1736198527297_init.js.map +1 -1
  139. package/migrations/1736199486472_addingNotAssignablePorts.js.map +1 -1
  140. package/migrations/1736454437350_addFreePorts.js.map +1 -1
  141. package/migrations/index.js.map +1 -1
  142. package/migrations/migrations_index._auto-generated_.js.map +1 -1
  143. package/package.json +4 -4
  144. package/taon.jsonc +33 -33
  145. package/tmp-environment.json +3 -3
  146. package/websql/README.md +24 -24
  147. package/websql/esm2022/lib/base/classes/base-npm-helpers.mjs +21 -1
  148. package/websql/esm2022/lib/helpers/helpers.mjs +1 -11
  149. package/websql/fesm2022/tnp-helpers.mjs +20 -12
  150. package/websql/fesm2022/tnp-helpers.mjs.map +1 -1
  151. package/websql/lib/base/classes/base-npm-helpers.d.ts +3 -0
  152. package/websql/lib/helpers/helpers.d.ts +0 -4
  153. package/lib/base/base-cli-worker-config.d.ts +0 -27
  154. package/lib/base/base-cli-worker-config.js +0 -53
  155. package/lib/base/base-cli-worker-config.js.map +0 -1
  156. package/lib/base/base-cli-worker-controller.d.ts +0 -15
  157. package/lib/base/base-cli-worker-controller.js +0 -154
  158. package/lib/base/base-cli-worker-controller.js.map +0 -1
  159. package/lib/base/base-cli-worker.d.ts +0 -82
  160. package/lib/base/base-cli-worker.js +0 -654
  161. package/lib/base/base-cli-worker.js.map +0 -1
  162. package/lib/base/base-command-line.backend.d.ts +0 -174
  163. package/lib/base/base-command-line.backend.js +0 -2221
  164. package/lib/base/base-command-line.backend.js.map +0 -1
  165. package/lib/base/base-compiler-for-project.d.ts +0 -7
  166. package/lib/base/base-compiler-for-project.js +0 -62
  167. package/lib/base/base-compiler-for-project.js.map +0 -1
  168. package/lib/base/base-db.d.ts +0 -12
  169. package/lib/base/base-db.js +0 -74
  170. package/lib/base/base-db.js.map +0 -1
  171. package/lib/base/base-debounce-compiler-for-project.d.ts +0 -28
  172. package/lib/base/base-debounce-compiler-for-project.js +0 -82
  173. package/lib/base/base-debounce-compiler-for-project.js.map +0 -1
  174. package/lib/base/base-detached-service.d.ts +0 -6
  175. package/lib/base/base-detached-service.js +0 -16
  176. package/lib/base/base-detached-service.js.map +0 -1
  177. package/lib/base/base-feature-for-project.d.ts +0 -5
  178. package/lib/base/base-feature-for-project.js +0 -11
  179. package/lib/base/base-feature-for-project.js.map +0 -1
  180. package/lib/base/base-git.d.ts +0 -148
  181. package/lib/base/base-git.js +0 -1202
  182. package/lib/base/base-git.js.map +0 -1
  183. package/lib/base/base-github-pages.d.ts +0 -14
  184. package/lib/base/base-github-pages.js +0 -173
  185. package/lib/base/base-github-pages.js.map +0 -1
  186. package/lib/base/base-ignore-hide.d.ts +0 -14
  187. package/lib/base/base-ignore-hide.js +0 -55
  188. package/lib/base/base-ignore-hide.js.map +0 -1
  189. package/lib/base/base-library-build.d.ts +0 -65
  190. package/lib/base/base-library-build.js +0 -717
  191. package/lib/base/base-library-build.js.map +0 -1
  192. package/lib/base/base-linked-projects.d.ts +0 -24
  193. package/lib/base/base-linked-projects.js +0 -408
  194. package/lib/base/base-linked-projects.js.map +0 -1
  195. package/lib/base/base-npm-helpers.d.ts +0 -128
  196. package/lib/base/base-npm-helpers.js +0 -774
  197. package/lib/base/base-npm-helpers.js.map +0 -1
  198. package/lib/base/base-project-resolver.d.ts +0 -41
  199. package/lib/base/base-project-resolver.js +0 -308
  200. package/lib/base/base-project-resolver.js.map +0 -1
  201. package/lib/base/base-project.d.ts +0 -244
  202. package/lib/base/base-project.js +0 -1223
  203. package/lib/base/base-project.js.map +0 -1
  204. package/lib/base/base-quick-fixes.d.ts +0 -6
  205. package/lib/base/base-quick-fixes.js +0 -31
  206. package/lib/base/base-quick-fixes.js.map +0 -1
  207. package/lib/base/base-release-process.d.ts +0 -69
  208. package/lib/base/base-release-process.js +0 -913
  209. package/lib/base/base-release-process.js.map +0 -1
  210. package/lib/base/base-start-config.backend.d.ts +0 -36
  211. package/lib/base/base-start-config.backend.js +0 -167
  212. package/lib/base/base-start-config.backend.js.map +0 -1
  213. package/lib/base/base-vscode.d.ts +0 -12
  214. package/lib/base/base-vscode.js +0 -139
  215. package/lib/base/base-vscode.js.map +0 -1
  216. package/lib/base/classes/base-command-line.backend.d.ts +0 -175
  217. package/lib/base/classes/base-command-line.backend.js +0 -2235
  218. package/lib/base/classes/base-command-line.backend.js.map +0 -1
  219. package/lib/base/classes/base-github-pages.d.ts +0 -14
  220. package/lib/base/classes/base-github-pages.js +0 -173
  221. package/lib/base/classes/base-github-pages.js.map +0 -1
  222. package/lib/base/classes/index copy.d.ts +0 -22
  223. package/lib/base/classes/index copy.js +0 -28
  224. package/lib/base/classes/index copy.js.map +0 -1
  225. package/lib/base/command-line-feature.backend.d.ts +0 -51
  226. package/lib/base/command-line-feature.backend.js +0 -206
  227. package/lib/base/command-line-feature.backend.js.map +0 -1
  228. package/lib/base/ports-worker.d.ts +0 -32
  229. package/lib/base/ports-worker.js +0 -244
  230. package/lib/base/ports-worker.js.map +0 -1
  231. package/lib/base/tcp-udp-ports/port.entity.d.ts +0 -0
  232. package/lib/base/tcp-udp-ports/port.entity.js +0 -5
  233. package/lib/base/tcp-udp-ports/port.entity.js.map +0 -1
  234. package/lib/base/tcp-upd-ports.worker.d.ts +0 -13
  235. package/lib/base/tcp-upd-ports.worker.js +0 -99
  236. package/lib/base/tcp-upd-ports.worker.js.map +0 -1
  237. package/lib/helpers/for-backend/ts-code/index.d.ts +0 -1
  238. package/lib/helpers/for-backend/ts-code/index.js +0 -5
  239. package/lib/helpers/for-backend/ts-code/index.js.map +0 -1
  240. package/lib/helpers/for-backend/ts-code/ts-code-extractor.d.ts +0 -26
  241. package/lib/helpers/for-backend/ts-code/ts-code-extractor.js +0 -62
  242. package/lib/helpers/for-backend/ts-code/ts-code-extractor.js.map +0 -1
  243. package/lib/helpers/for-backend/ts-code/ts-code-modifier.backend.d.ts +0 -19
  244. package/lib/helpers/for-backend/ts-code/ts-code-modifier.backend.js +0 -81
  245. package/lib/helpers/for-backend/ts-code/ts-code-modifier.backend.js.map +0 -1
  246. package/lib/helpers/for-backend/ts-code/ts-import-export-extractor.d.ts +0 -29
  247. package/lib/helpers/for-backend/ts-code/ts-import-export-extractor.js +0 -81
  248. package/lib/helpers/for-backend/ts-code/ts-import-export-extractor.js.map +0 -1
@@ -1,654 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BaseCliWorker = void 0;
4
- var tslib_1 = require("tslib");
5
- //#region imports
6
- var tnp_core_1 = require("tnp-core");
7
- var index_1 = require("../index");
8
- var base_cli_worker_config_1 = require("./base-cli-worker-config");
9
- //#endregion
10
- //#region constants
11
- var WORKER_INIT_START_TIME_LIMIT = 25; // 15 seconds max to start worker
12
- var START_PORT_FOR_SERVICES = 3600;
13
- //#endregion
14
- var BaseCliWorker = /** @class */ (function () {
15
- //#region constructor
16
- function BaseCliWorker(
17
- /**
18
- * unique id for service
19
- */
20
- serviceID,
21
- /**
22
- * external command that will start service
23
- */
24
- startCommand,
25
- /**
26
- * unique id for service
27
- */
28
- serviceVersion) {
29
- this.serviceID = serviceID;
30
- this.startCommand = startCommand;
31
- this.serviceVersion = serviceVersion;
32
- }
33
- Object.defineProperty(BaseCliWorker.prototype, "pathToProcessLocalInfoJson", {
34
- //#endregion
35
- //#region fields & getters
36
- //#region fields & getters / path to process local info
37
- get: function () {
38
- //#region @backendFunc
39
- // console.log('os.userInfo()', os.userInfo());
40
- return (0, tnp_core_1.crossPlatformPath)([
41
- tnp_core_1.os.userInfo().homedir,
42
- ".taon",
43
- '__workers-service-process-info__',
44
- "".concat(this.serviceID, ".json"),
45
- ]);
46
- //#endregion
47
- },
48
- enumerable: false,
49
- configurable: true
50
- });
51
- Object.defineProperty(BaseCliWorker.prototype, "processLocalInfoObj", {
52
- //#endregion
53
- //#region fields & getters / process local info json object
54
- get: function () {
55
- //#region @backendFunc
56
- var configJson = index_1.Helpers.readJson5(this.pathToProcessLocalInfoJson) || {};
57
- if (tnp_core_1._.isObject(configJson)) {
58
- return tnp_core_1._.merge(new base_cli_worker_config_1.BaseCliWorkerConfig(), configJson);
59
- }
60
- return new base_cli_worker_config_1.BaseCliWorkerConfig();
61
- //#endregion
62
- },
63
- enumerable: false,
64
- configurable: true
65
- });
66
- //#endregion
67
- //#endregion
68
- //#region public methods
69
- //#region public methods / start if needs to be started
70
- BaseCliWorker.prototype.startDetachedIfNeedsToBeStarted = function () {
71
- return tslib_1.__awaiter(this, void 0, void 0, function () {
72
- var serviceIsHealthy;
73
- return tslib_1.__generator(this, function (_a) {
74
- switch (_a.label) {
75
- case 0:
76
- if (!this.processLocalInfoObj.isEmpty) return [3 /*break*/, 2];
77
- // not started ever yet
78
- return [4 /*yield*/, this.startDetached()];
79
- case 1:
80
- // not started ever yet
81
- _a.sent();
82
- return [2 /*return*/];
83
- case 2: return [4 /*yield*/, this.isServiceHealthy({
84
- healthCheckRequestTrys: 1, // just quick check
85
- })];
86
- case 3:
87
- serviceIsHealthy = _a.sent();
88
- if (!!serviceIsHealthy) return [3 /*break*/, 5];
89
- return [4 /*yield*/, this.startDetached()];
90
- case 4:
91
- _a.sent();
92
- return [2 /*return*/];
93
- case 5:
94
- index_1.Helpers.log("Service \"".concat(this.serviceID, "\" is already started/healthy..."));
95
- return [2 /*return*/];
96
- }
97
- });
98
- });
99
- };
100
- //#endregion
101
- //#region public methods / kill
102
- /**
103
- * stop if started
104
- */
105
- BaseCliWorker.prototype.kill = function (options) {
106
- return tslib_1.__awaiter(this, void 0, void 0, function () {
107
- var ctrl, error_1;
108
- return tslib_1.__generator(this, function (_a) {
109
- switch (_a.label) {
110
- case 0:
111
- //#region @backendFunc
112
- options = options || {};
113
- index_1.Helpers.log("Killing service \"".concat(this.serviceID, "\"..."));
114
- if (this.processLocalInfoObj.isEmpty) {
115
- index_1.Helpers.log("Service \"".concat(this.serviceID, "\" not started - nothing to kill..."));
116
- return [2 /*return*/];
117
- }
118
- return [4 /*yield*/, this.getControllerForRemoteConnection()];
119
- case 1:
120
- ctrl = _a.sent();
121
- _a.label = 2;
122
- case 2:
123
- _a.trys.push([2, 4, , 5]);
124
- if (!options.dontRemoveConfigFile) {
125
- index_1.Helpers.removeFileIfExists(this.pathToProcessLocalInfoJson);
126
- }
127
- return [4 /*yield*/, ctrl.baseCLiWorkerCommand_kill().received];
128
- case 3:
129
- _a.sent();
130
- index_1.Helpers.log("Service \"".concat(this.serviceID, "\" killed..."));
131
- return [3 /*break*/, 5];
132
- case 4:
133
- error_1 = _a.sent();
134
- index_1.Helpers.log(error_1);
135
- index_1.Helpers.log("Service \"".concat(this.serviceID, "\" not killed... "));
136
- return [3 /*break*/, 5];
137
- case 5: return [2 /*return*/];
138
- }
139
- });
140
- });
141
- };
142
- //#endregion
143
- //#region public methods / restart
144
- /**
145
- * kill detached process and start again
146
- * @param options.detached - default true
147
- */
148
- BaseCliWorker.prototype.restart = function (options) {
149
- return tslib_1.__awaiter(this, void 0, void 0, function () {
150
- return tslib_1.__generator(this, function (_a) {
151
- switch (_a.label) {
152
- case 0:
153
- options = options || {};
154
- options.detached = tnp_core_1._.isUndefined(options.detached) ? true : false;
155
- return [4 /*yield*/, this.kill()];
156
- case 1:
157
- _a.sent();
158
- if (!options.detached) return [3 /*break*/, 3];
159
- index_1.Helpers.info("Restarting service \"".concat(this.serviceID, "\" in detached mode..."));
160
- return [4 /*yield*/, this.startDetached()];
161
- case 2:
162
- _a.sent();
163
- return [3 /*break*/, 5];
164
- case 3:
165
- index_1.Helpers.info("Restarting service \"".concat(this.serviceID, "\" in current process..."));
166
- return [4 /*yield*/, this.startNormallyInCurrentProcess()];
167
- case 4:
168
- _a.sent();
169
- _a.label = 5;
170
- case 5: return [2 /*return*/];
171
- }
172
- });
173
- });
174
- };
175
- //#endregion
176
- //#region public methods / cli start
177
- /**
178
- * only for cli start
179
- * @param cliParams on from cli
180
- */
181
- BaseCliWorker.prototype.cliStartProcedure = function (cliParams) {
182
- return tslib_1.__awaiter(this, void 0, void 0, function () {
183
- var instance, detached;
184
- return tslib_1.__generator(this, function (_a) {
185
- switch (_a.label) {
186
- case 0:
187
- instance = this;
188
- detached = !!cliParams['detached'] || !!cliParams['detach'];
189
- if (!cliParams['restart']) return [3 /*break*/, 2];
190
- return [4 /*yield*/, instance.restart({
191
- detached: detached,
192
- })];
193
- case 1:
194
- _a.sent();
195
- process.exit(0);
196
- _a.label = 2;
197
- case 2:
198
- if (!cliParams['kill']) return [3 /*break*/, 4];
199
- return [4 /*yield*/, instance.kill()];
200
- case 3:
201
- _a.sent();
202
- process.exit(0);
203
- _a.label = 4;
204
- case 4:
205
- if (!detached) return [3 /*break*/, 6];
206
- return [4 /*yield*/, instance.startDetachedIfNeedsToBeStarted()];
207
- case 5:
208
- _a.sent();
209
- process.exit(0);
210
- return [3 /*break*/, 8];
211
- case 6: return [4 /*yield*/, instance.startNormallyInCurrentProcess()];
212
- case 7:
213
- _a.sent();
214
- _a.label = 8;
215
- case 8: return [2 /*return*/];
216
- }
217
- });
218
- });
219
- };
220
- //#endregion
221
- //#endregion
222
- //#region protected methods
223
- //#region protected methods / prevent external config change
224
- BaseCliWorker.prototype.preventExternalConfigChange = function () {
225
- var _this = this;
226
- //#region @backendFunc
227
- index_1.Helpers.info("watching: ".concat(this.pathToProcessLocalInfoJson));
228
- var currentConfig = this.processLocalInfoObj;
229
- tnp_core_1.chokidar.watch(this.pathToProcessLocalInfoJson).on('change', function () {
230
- index_1.Helpers.log("Service data changed...");
231
- if (!_this.processLocalInfoObj.isEquals(currentConfig)) {
232
- index_1.Helpers.error("Service config data externally changed... killing service", false, true);
233
- }
234
- });
235
- //#endregion
236
- };
237
- //#endregion
238
- //#region protected methods / prevent start if already started
239
- BaseCliWorker.prototype.preventStartIfAlreadyStarted = function () {
240
- return tslib_1.__awaiter(this, void 0, void 0, function () {
241
- var isHealthy, error_2;
242
- return tslib_1.__generator(this, function (_a) {
243
- switch (_a.label) {
244
- case 0:
245
- _a.trys.push([0, 2, , 3]);
246
- return [4 /*yield*/, this.isServiceHealthy({
247
- healthCheckRequestTrys: 2, // check only twice
248
- })];
249
- case 1:
250
- isHealthy = _a.sent();
251
- if (isHealthy) {
252
- index_1.Helpers.error("Service already started on port ".concat(this.processLocalInfoObj.port, " !"), false, true);
253
- }
254
- return [3 /*break*/, 3];
255
- case 2:
256
- error_2 = _a.sent();
257
- return [3 /*break*/, 3];
258
- case 3: return [2 /*return*/];
259
- }
260
- });
261
- });
262
- };
263
- //#endregion
264
- //#region protected methods / prevent start if already started
265
- BaseCliWorker.prototype.killWorkerWithLowerVersion = function () {
266
- return tslib_1.__awaiter(this, void 0, void 0, function () {
267
- var ctrl, req, isUpToDate, error_3;
268
- return tslib_1.__generator(this, function (_a) {
269
- switch (_a.label) {
270
- case 0:
271
- _a.trys.push([0, 6, , 7]);
272
- return [4 /*yield*/, this.getControllerForRemoteConnection()];
273
- case 1:
274
- ctrl = _a.sent();
275
- index_1.Helpers.log("Checking if current working version is up to date...");
276
- return [4 /*yield*/, ctrl.baseCLiWorkerCommand_hasUpToDateVersion(tnp_core_1._.merge(this.processLocalInfoObj, {
277
- version: this.serviceVersion,
278
- })).received];
279
- case 2:
280
- req = _a.sent();
281
- isUpToDate = req.body.booleanValue;
282
- if (!!isUpToDate) return [3 /*break*/, 5];
283
- index_1.Helpers.info("Killing service with lower version...");
284
- return [4 /*yield*/, this.kill({
285
- dontRemoveConfigFile: true,
286
- })];
287
- case 3:
288
- _a.sent();
289
- return [4 /*yield*/, index_1.Helpers.wait(1)];
290
- case 4:
291
- _a.sent();
292
- _a.label = 5;
293
- case 5: return [3 /*break*/, 7];
294
- case 6:
295
- error_3 = _a.sent();
296
- return [3 /*break*/, 7];
297
- case 7: return [2 /*return*/];
298
- }
299
- });
300
- });
301
- };
302
- //#endregion
303
- //#region protected methods / is service healthy
304
- /**
305
- * This has 2 purposes:
306
- * - infinite check when when detached process finished starting
307
- * - quick check if service is healthy / already started
308
- */
309
- BaseCliWorker.prototype.isServiceHealthy = function (options) {
310
- return tslib_1.__awaiter(this, void 0, void 0, function () {
311
- var healthCheckRequestTrys, i, workerIsStarting, isWaitingNotCheckingWhen, ctrl, req, isHealthy, error_4;
312
- return tslib_1.__generator(this, function (_a) {
313
- switch (_a.label) {
314
- case 0:
315
- //#region @backendFunc
316
- options = options || {};
317
- healthCheckRequestTrys = options.healthCheckRequestTrys || 1;
318
- i = 0;
319
- _a.label = 1;
320
- case 1:
321
- if (!true) return [3 /*break*/, 3];
322
- i++;
323
- index_1.Helpers.log("Checking if service \"".concat(this.serviceID, "\" is starting..."));
324
- workerIsStarting = !!this.processLocalInfoObj.startTimestamp;
325
- if (!workerIsStarting) {
326
- // initialized worker does not have startTimestamp
327
- return [3 /*break*/, 3];
328
- }
329
- if (i > WORKER_INIT_START_TIME_LIMIT) {
330
- return [2 /*return*/, false];
331
- }
332
- return [4 /*yield*/, index_1.Helpers.wait(1)];
333
- case 2:
334
- _a.sent();
335
- return [3 /*break*/, 1];
336
- case 3:
337
- i = 0;
338
- isWaitingNotCheckingWhen = 10;
339
- _a.label = 4;
340
- case 4:
341
- if (!true) return [3 /*break*/, 16];
342
- i++;
343
- _a.label = 5;
344
- case 5:
345
- _a.trys.push([5, 11, , 15]);
346
- if (isWaitingNotCheckingWhen === i) {
347
- index_1.Helpers.info("Waiting for service \"".concat(this.serviceID, "\" to start..."));
348
- }
349
- else {
350
- index_1.Helpers.log("Checking if service \"".concat(this.serviceID, "\" is healthy..."));
351
- }
352
- return [4 /*yield*/, this.getControllerForRemoteConnection()];
353
- case 6:
354
- ctrl = _a.sent();
355
- index_1.Helpers.log("Sending is healthy request...");
356
- return [4 /*yield*/, ctrl.baseCLiWorkerCommand_isHealthy(this.processLocalInfoObj).received];
357
- case 7:
358
- req = _a.sent();
359
- isHealthy = req.body.booleanValue;
360
- // console.log('isHealthy', { isHealthy });
361
- if (isHealthy) {
362
- index_1.Helpers.log("Service \"".concat(this.serviceID, "\" is healthy (response is true)..."));
363
- }
364
- else {
365
- index_1.Helpers.log("Service \"".concat(this.serviceID, "\" is not healthy (response is false)..."));
366
- }
367
- if (!(isHealthy || i === healthCheckRequestTrys)) return [3 /*break*/, 8];
368
- return [2 /*return*/, isHealthy];
369
- case 8:
370
- index_1.Helpers.log('Trying again...');
371
- return [4 /*yield*/, index_1.Helpers.wait(1)];
372
- case 9:
373
- _a.sent();
374
- return [3 /*break*/, 4];
375
- case 10: return [3 /*break*/, 15];
376
- case 11:
377
- error_4 = _a.sent();
378
- // Helpers.tryCatchError(error);
379
- index_1.Helpers.log("Service \"".concat(this.serviceID, "\" is not healthy (can't check health)..."));
380
- if (!(i === healthCheckRequestTrys)) return [3 /*break*/, 12];
381
- return [2 /*return*/, false];
382
- case 12:
383
- index_1.Helpers.log('Trying again...');
384
- return [4 /*yield*/, index_1.Helpers.wait(1)];
385
- case 13:
386
- _a.sent();
387
- return [3 /*break*/, 4];
388
- case 14: return [3 /*break*/, 15];
389
- case 15: return [3 /*break*/, 4];
390
- case 16: return [2 /*return*/];
391
- }
392
- });
393
- });
394
- };
395
- //#endregion
396
- //#region protected methods / start detached
397
- /**
398
- * start if not started detached process
399
- */
400
- BaseCliWorker.prototype.startDetached = function () {
401
- return tslib_1.__awaiter(this, void 0, void 0, function () {
402
- var isServiceHealthy;
403
- return tslib_1.__generator(this, function (_a) {
404
- switch (_a.label) {
405
- case 0:
406
- //#region @backendFunc
407
- index_1.Helpers.log("Starting detached command in new terminal \"".concat(tnp_core_1.chalk.bold(this.startCommand), "\"..."));
408
- return [4 /*yield*/, tnp_core_1.UtilsProcess.startInNewTerminalWindow(this.startCommand)];
409
- case 1:
410
- _a.sent();
411
- index_1.Helpers.log("Starting detached service \"".concat(tnp_core_1.chalk.bold(this.serviceID), "\" - waiting until healthy..."));
412
- return [4 /*yield*/, this.isServiceHealthy({
413
- healthCheckRequestTrys: Infinity, // wait infinity until started
414
- })];
415
- case 2:
416
- isServiceHealthy = _a.sent();
417
- if (!isServiceHealthy) {
418
- index_1.Helpers.throw("Not able to start service \"".concat(this.serviceID, "\"..."));
419
- return [2 /*return*/];
420
- }
421
- index_1.Helpers.log("Healthy detached service \"".concat(tnp_core_1.chalk.bold(this.serviceID), "\" started."));
422
- return [2 /*return*/];
423
- }
424
- });
425
- });
426
- };
427
- //#endregion
428
- //#region protected methods / text for header
429
- BaseCliWorker.prototype.headerText = function () {
430
- return tslib_1.__awaiter(this, void 0, void 0, function () {
431
- return tslib_1.__generator(this, function (_a) {
432
- return [2 /*return*/, tnp_core_1._.startCase(this.serviceID)];
433
- });
434
- });
435
- };
436
- //#endregion
437
- //#region protected methods / text header style
438
- BaseCliWorker.prototype.textHeaderStyle = function () {
439
- return 'block';
440
- };
441
- //#endregion
442
- //#region protected methods / header text align
443
- BaseCliWorker.prototype.headerTextAlign = function () {
444
- return 'left';
445
- };
446
- //#endregion
447
- //#region protected methods / header
448
- /**
449
- * override whole terminal header
450
- */
451
- BaseCliWorker.prototype.header = function () {
452
- return tslib_1.__awaiter(this, void 0, void 0, function () {
453
- var cfonts, output, _a, _b;
454
- return tslib_1.__generator(this, function (_c) {
455
- switch (_c.label) {
456
- case 0:
457
- cfonts = require('cfonts');
458
- _b = (_a = cfonts).render;
459
- return [4 /*yield*/, this.headerText()];
460
- case 1:
461
- output = _b.apply(_a, [_c.sent(), {
462
- font: this.textHeaderStyle(),
463
- align: this.headerTextAlign(),
464
- colors: ['system'],
465
- background: 'transparent',
466
- letterSpacing: 1,
467
- lineHeight: 1,
468
- space: true,
469
- maxLength: '0',
470
- gradient: false,
471
- independentGradient: false,
472
- transitionGradient: false,
473
- env: 'node',
474
- }]);
475
- console.log(output.string);
476
- return [2 /*return*/];
477
- }
478
- });
479
- });
480
- };
481
- //#endregion
482
- //#region protected methods / info message below header
483
- BaseCliWorker.prototype.infoMessageBelowHeader = function () {
484
- return tslib_1.__awaiter(this, void 0, void 0, function () {
485
- var _a, _b;
486
- return tslib_1.__generator(this, function (_c) {
487
- //#region @backendFunc
488
- index_1.Helpers.info("\n\n Service ".concat(tnp_core_1.chalk.bold.red(this.serviceID)) +
489
- " (version: ".concat(this.serviceVersion, ") started..\n Check info here http://localhost:").concat(tnp_core_1.chalk.bold((_b = (_a = this.processLocalInfoObj) === null || _a === void 0 ? void 0 : _a.port) === null || _b === void 0 ? void 0 : _b.toString()), "/").concat('info', "\n\n "));
490
- return [2 /*return*/];
491
- });
492
- });
493
- };
494
- //#endregion
495
- //#region protected methods / info screen
496
- BaseCliWorker.prototype._infoScreen = function () {
497
- return tslib_1.__awaiter(this, void 0, void 0, function () {
498
- var choices, choice, openInBrowser;
499
- return tslib_1.__generator(this, function (_a) {
500
- switch (_a.label) {
501
- case 0:
502
- if (!true) return [3 /*break*/, 4];
503
- index_1.Helpers.clearConsole();
504
- return [4 /*yield*/, this.header()];
505
- case 1:
506
- _a.sent();
507
- return [4 /*yield*/, this.infoMessageBelowHeader()];
508
- case 2:
509
- _a.sent();
510
- choices = {
511
- openBrowser: {
512
- name: 'Open browser with service info',
513
- },
514
- // showAllProcesses: {
515
- // name: 'Show all processes',
516
- // },
517
- // showLogo: {
518
- // name: 'Show logo',
519
- // },
520
- exit: {
521
- name: "Shut down service",
522
- },
523
- };
524
- return [4 /*yield*/, index_1.UtilsTerminal.select({
525
- choices: choices,
526
- question: 'Choose action',
527
- })];
528
- case 3:
529
- choice = _a.sent();
530
- if (choice === 'openBrowser') {
531
- openInBrowser = require('open');
532
- openInBrowser("http://localhost:".concat(this.processLocalInfoObj.port, "/info"));
533
- }
534
- if (choice === 'exit') {
535
- process.exit(0);
536
- }
537
- switch (choice) {
538
- }
539
- return [3 /*break*/, 0];
540
- case 4: return [2 /*return*/];
541
- }
542
- });
543
- });
544
- };
545
- //#endregion
546
- //#region protected methods / save process info
547
- BaseCliWorker.prototype.saveProcessInfo = function (processConfig) {
548
- //#region @backendFunc
549
- processConfig = processConfig || {};
550
- if (index_1.Helpers.exists(this.pathToProcessLocalInfoJson)) {
551
- var jsonConfig = index_1.Helpers.readJson(this.pathToProcessLocalInfoJson);
552
- if (tnp_core_1._.isObject(jsonConfig) && Object.keys(jsonConfig).length > 0) {
553
- processConfig = tnp_core_1._.merge(jsonConfig, processConfig);
554
- }
555
- }
556
- index_1.Helpers.log("Saving process info to \"".concat(this.pathToProcessLocalInfoJson, "\"..."));
557
- index_1.Helpers.log(processConfig);
558
- index_1.Helpers.writeJson(this.pathToProcessLocalInfoJson, processConfig);
559
- //#endregion
560
- };
561
- //#endregion
562
- //#region protected methods / initialize worker
563
- BaseCliWorker.prototype.initializeWorkerMetadata = function () {
564
- return tslib_1.__awaiter(this, void 0, void 0, function () {
565
- var portControllerInstance, error_5;
566
- return tslib_1.__generator(this, function (_a) {
567
- switch (_a.label) {
568
- case 0:
569
- _a.trys.push([0, 3, , 4]);
570
- return [4 /*yield*/, this.getControllerForRemoteConnection()];
571
- case 1:
572
- portControllerInstance = _a.sent();
573
- return [4 /*yield*/, portControllerInstance.baseCLiWorkerCommand_initializeMetadata(this.serviceID, this.serviceVersion).received];
574
- case 2:
575
- _a.sent();
576
- this.saveProcessInfo({
577
- startTimestamp: null,
578
- });
579
- return [3 /*break*/, 4];
580
- case 3:
581
- error_5 = _a.sent();
582
- this.saveProcessInfo({
583
- startTimestamp: null,
584
- });
585
- index_1.Helpers.throw(error_5);
586
- return [3 /*break*/, 4];
587
- case 4: return [2 /*return*/];
588
- }
589
- });
590
- });
591
- };
592
- //#endregion
593
- //#region protected methods / wait for process port saved to disk
594
- BaseCliWorker.prototype.waitForProcessPortSavedToDisk = function () {
595
- return tslib_1.__awaiter(this, void 0, void 0, function () {
596
- var portForRemote, MAX_TRYS, i;
597
- return tslib_1.__generator(this, function (_a) {
598
- switch (_a.label) {
599
- case 0:
600
- portForRemote = this.processLocalInfoObj.port;
601
- MAX_TRYS = 10;
602
- i = 0;
603
- if (!!portForRemote) return [3 /*break*/, 5];
604
- _a.label = 1;
605
- case 1:
606
- if (!!portForRemote) return [3 /*break*/, 5];
607
- i++;
608
- portForRemote = this.processLocalInfoObj.port;
609
- if (!portForRemote) return [3 /*break*/, 2];
610
- return [3 /*break*/, 5];
611
- case 2:
612
- index_1.Helpers.log("Waiting for port to be available...");
613
- if (i > MAX_TRYS) {
614
- index_1.Helpers.throw("Can't get port for remote connection.." +
615
- " worker process did not start correctly");
616
- }
617
- return [4 /*yield*/, index_1.Helpers.wait(1)];
618
- case 3:
619
- _a.sent();
620
- _a.label = 4;
621
- case 4: return [3 /*break*/, 1];
622
- case 5: return [2 /*return*/];
623
- }
624
- });
625
- });
626
- };
627
- //#endregion
628
- //#region protected methods / get free port
629
- BaseCliWorker.prototype.getServicePort = function () {
630
- return tslib_1.__awaiter(this, void 0, void 0, function () {
631
- var port;
632
- return tslib_1.__generator(this, function (_a) {
633
- switch (_a.label) {
634
- case 0: return [4 /*yield*/, tnp_core_1.Utils.getFreePort({
635
- startFrom: START_PORT_FOR_SERVICES,
636
- })];
637
- case 1:
638
- port = _a.sent();
639
- this.saveProcessInfo({
640
- port: port,
641
- serviceID: this.serviceID,
642
- pid: process.pid,
643
- startTimestamp: Date.now(),
644
- version: this.serviceVersion,
645
- });
646
- return [2 /*return*/, port];
647
- }
648
- });
649
- });
650
- };
651
- return BaseCliWorker;
652
- }());
653
- exports.BaseCliWorker = BaseCliWorker;
654
- //# sourceMappingURL=base-cli-worker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base-cli-worker.js","sourceRoot":"","sources":["/Users/dfilipiak/projects/npm/taon-dev/tnp-helpers/src/lib/base/base-cli-worker.ts"],"names":[],"mappings":";;;;AAAA,iBAAiB;AACjB,qCAUkB;AAElB,kCAAkD;AAElD,mEAA+D;AAC/D,YAAY;AAEZ,mBAAmB;AACnB,IAAM,4BAA4B,GAAG,EAAE,CAAC,CAAC,iCAAiC;AAC1E,IAAM,uBAAuB,GAAG,IAAI,CAAC;AAmBrC,YAAY;AAEZ;IAIE,qBAAqB;IACrB;IACE;;OAEG;IACgB,SAAiB;IACpC;;OAEG;IACgB,YAAoB;IACvC;;OAEG;IACgB,cAAsB;QARtB,cAAS,GAAT,SAAS,CAAQ;QAIjB,iBAAY,GAAZ,YAAY,CAAQ;QAIpB,mBAAc,GAAd,cAAc,CAAQ;IACxC,CAAC;IAYJ,sBAAc,qDAA0B;QALxC,YAAY;QAEZ,0BAA0B;QAE1B,uDAAuD;aACvD;YACE,sBAAsB;YACtB,+CAA+C;YAC/C,OAAO,IAAA,4BAAiB,EAAC;gBACvB,aAAE,CAAC,QAAQ,EAAE,CAAC,OAAO;gBACrB,OAAO;gBACP,kCAAkC;gBAClC,UAAG,IAAI,CAAC,SAAS,UAAO;aACzB,CAAC,CAAC;YACH,YAAY;QACd,CAAC;;;OAAA;IAID,sBAAc,8CAAmB;QAHjC,YAAY;QAEZ,2DAA2D;aAC3D;YACE,sBAAsB;YACtB,IAAM,UAAU,GAAG,eAAO,CAAC,SAAS,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,CAAC;YAC5E,IAAI,YAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC3B,OAAO,YAAC,CAAC,KAAK,CAAC,IAAI,4CAAmB,EAAE,EAAE,UAAU,CAAC,CAAC;YACxD,CAAC;YACD,OAAO,IAAI,4CAAmB,EAAE,CAAC;YACjC,YAAY;QACd,CAAC;;;OAAA;IACD,YAAY;IAEZ,YAAY;IAEZ,wBAAwB;IAExB,uDAAuD;IAC1C,uDAA+B,GAA5C;;;;;;6BAGM,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAhC,wBAAgC;wBAClC,uBAAuB;wBACvB,qBAAM,IAAI,CAAC,aAAa,EAAE,EAAA;;wBAD1B,uBAAuB;wBACvB,SAA0B,CAAC;wBAC3B,sBAAO;4BAGgB,qBAAM,IAAI,CAAC,gBAAgB,CAAC;4BACnD,sBAAsB,EAAE,CAAC,EAAE,mBAAmB;yBAC/C,CAAC,EAAA;;wBAFI,gBAAgB,GAAG,SAEvB;6BACE,CAAC,gBAAgB,EAAjB,wBAAiB;wBACnB,qBAAM,IAAI,CAAC,aAAa,EAAE,EAAA;;wBAA1B,SAA0B,CAAC;wBAC3B,sBAAO;;wBAET,eAAO,CAAC,GAAG,CAAC,oBAAY,IAAI,CAAC,SAAS,qCAAiC,CAAC,CAAC;;;;;KAE1E;IACD,YAAY;IAEZ,+BAA+B;IAC/B;;OAEG;IACG,4BAAI,GAAV,UAAW,OAA4C;;;;;;wBACrD,sBAAsB;wBACtB,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;wBACxB,eAAO,CAAC,GAAG,CAAC,4BAAoB,IAAI,CAAC,SAAS,UAAM,CAAC,CAAC;wBACtD,IAAI,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC;4BACrC,eAAO,CAAC,GAAG,CACT,oBAAY,IAAI,CAAC,SAAS,wCAAoC,CAC/D,CAAC;4BACF,sBAAO;wBACT,CAAC;wBACY,qBAAM,IAAI,CAAC,gCAAgC,EAAE,EAAA;;wBAApD,IAAI,GAAG,SAA6C;;;;wBAExD,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;4BAClC,eAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;wBAC9D,CAAC;wBACD,qBAAM,IAAI,CAAC,yBAAyB,EAAE,CAAC,QAAQ,EAAA;;wBAA/C,SAA+C,CAAC;wBAChD,eAAO,CAAC,GAAG,CAAC,oBAAY,IAAI,CAAC,SAAS,iBAAa,CAAC,CAAC;;;;wBAErD,eAAO,CAAC,GAAG,CAAC,OAAK,CAAC,CAAC;wBACnB,eAAO,CAAC,GAAG,CAAC,oBAAY,IAAI,CAAC,SAAS,wBAAoB,CAAC,CAAC;;;;;;KAG/D;IACD,YAAY;IAEZ,kCAAkC;IAClC;;;OAGG;IACG,+BAAO,GAAb,UAAc,OAAgC;;;;;wBAC5C,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;wBACxB,OAAO,CAAC,QAAQ,GAAG,YAAC,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;wBAClE,qBAAM,IAAI,CAAC,IAAI,EAAE,EAAA;;wBAAjB,SAAiB,CAAC;6BAGd,OAAO,CAAC,QAAQ,EAAhB,wBAAgB;wBAClB,eAAO,CAAC,IAAI,CACV,+BAAuB,IAAI,CAAC,SAAS,2BAAuB,CAC7D,CAAC;wBACF,qBAAM,IAAI,CAAC,aAAa,EAAE,EAAA;;wBAA1B,SAA0B,CAAC;;;wBAE3B,eAAO,CAAC,IAAI,CACV,+BAAuB,IAAI,CAAC,SAAS,6BAAyB,CAC/D,CAAC;wBACF,qBAAM,IAAI,CAAC,6BAA6B,EAAE,EAAA;;wBAA1C,SAA0C,CAAC;;;;;;KAE9C;IACD,YAAY;IAEZ,oCAAoC;IACpC;;;OAGG;IACG,yCAAiB,GAAvB,UAAwB,SAAc;;;;;;wBAC9B,QAAQ,GAAkB,IAAI,CAAC;wBAC/B,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;6BAE9D,SAAS,CAAC,SAAS,CAAC,EAApB,wBAAoB;wBACtB,qBAAM,QAAQ,CAAC,OAAO,CAAC;gCACrB,QAAQ,UAAA;6BACT,CAAC,EAAA;;wBAFF,SAEE,CAAC;wBACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;;6BAGd,SAAS,CAAC,MAAM,CAAC,EAAjB,wBAAiB;wBACnB,qBAAM,QAAQ,CAAC,IAAI,EAAE,EAAA;;wBAArB,SAAqB,CAAC;wBACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;;6BAGd,QAAQ,EAAR,wBAAQ;wBACV,qBAAM,QAAQ,CAAC,+BAA+B,EAAE,EAAA;;wBAAhD,SAAgD,CAAC;wBACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;4BAEhB,qBAAM,QAAQ,CAAC,6BAA6B,EAAE,EAAA;;wBAA9C,SAA8C,CAAC;;;;;;KAGlD;IACD,YAAY;IAEZ,YAAY;IAEZ,2BAA2B;IAE3B,4DAA4D;IAClD,mDAA2B,GAArC;QAAA,iBAeC;QAdC,sBAAsB;QACtB,eAAO,CAAC,IAAI,CAAC,oBAAa,IAAI,CAAC,0BAA0B,CAAE,CAAC,CAAC;QAC7D,IAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAC/C,mBAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE;YAC3D,eAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;YACvC,IAAI,CAAC,KAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;gBACtD,eAAO,CAAC,KAAK,CACX,2DAA2D,EAC3D,KAAK,EACL,IAAI,CACL,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QACH,YAAY;IACd,CAAC;IACD,YAAY;IAEZ,8DAA8D;IAC9C,oDAA4B,GAA5C;;;;;;;wBAGsB,qBAAM,IAAI,CAAC,gBAAgB,CAAC;gCAC5C,sBAAsB,EAAE,CAAC,EAAE,mBAAmB;6BAC/C,CAAC,EAAA;;wBAFI,SAAS,GAAG,SAEhB;wBACF,IAAI,SAAS,EAAE,CAAC;4BACd,eAAO,CAAC,KAAK,CACX,0CAAmC,IAAI,CAAC,mBAAmB,CAAC,IAAI,OAAI,EACpE,KAAK,EACL,IAAI,CACL,CAAC;wBACJ,CAAC;;;;;;;;;KAGJ;IACD,YAAY;IAEZ,8DAA8D;IAC9C,kDAA0B,GAA1C;;;;;;;wBAGiB,qBAAM,IAAI,CAAC,gCAAgC,EAAE,EAAA;;wBAApD,IAAI,GAAG,SAA6C;wBAC1D,eAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;wBAExD,qBAAM,IAAI,CAAC,uCAAuC,CAC5D,YAAC,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE;gCAChC,OAAO,EAAE,IAAI,CAAC,cAAc;6BAC7B,CAAC,CACH,CAAC,QAAQ,EAAA;;wBAJJ,GAAG,GAAG,SAIF;wBACJ,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;6BACrC,CAAC,UAAU,EAAX,wBAAW;wBACb,eAAO,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;wBACtD,qBAAM,IAAI,CAAC,IAAI,CAAC;gCACd,oBAAoB,EAAE,IAAI;6BAC3B,CAAC,EAAA;;wBAFF,SAEE,CAAC;wBACH,qBAAM,eAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAA;;wBAArB,SAAqB,CAAC;;;;;;;;;;KAI3B;IACD,YAAY;IAEZ,gDAAgD;IAChD;;;;OAIG;IACa,wCAAgB,GAAhC,UAAiC,OAEhC;;;;;;wBACC,sBAAsB;wBACtB,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;wBAClB,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,IAAI,CAAC,CAAC;wBAC/D,CAAC,GAAG,CAAC,CAAC;;;6BACH,IAAI;wBACT,CAAC,EAAE,CAAC;wBACJ,eAAO,CAAC,GAAG,CAAC,gCAAwB,IAAI,CAAC,SAAS,sBAAkB,CAAC,CAAC;wBAChE,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC;wBAEnE,IAAI,CAAC,gBAAgB,EAAE,CAAC;4BACtB,kDAAkD;4BAClD,wBAAM;wBACR,CAAC;wBACD,IAAI,CAAC,GAAG,4BAA4B,EAAE,CAAC;4BACrC,sBAAO,KAAK,EAAC;wBACf,CAAC;wBACD,qBAAM,eAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAA;;wBAArB,SAAqB,CAAC;;;wBAGxB,CAAC,GAAG,CAAC,CAAC;wBAEA,wBAAwB,GAAG,EAAE,CAAC;;;6BAE7B,IAAI;wBACT,CAAC,EAAE,CAAC;;;;wBAEF,IAAI,wBAAwB,KAAK,CAAC,EAAE,CAAC;4BACnC,eAAO,CAAC,IAAI,CAAC,gCAAwB,IAAI,CAAC,SAAS,mBAAe,CAAC,CAAC;wBACtE,CAAC;6BAAM,CAAC;4BACN,eAAO,CAAC,GAAG,CAAC,gCAAwB,IAAI,CAAC,SAAS,qBAAiB,CAAC,CAAC;wBACvE,CAAC;wBACY,qBAAM,IAAI,CAAC,gCAAgC,EAAE,EAAA;;wBAApD,IAAI,GAAG,SAA6C;wBAC1D,eAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;wBAEjC,qBAAM,IAAI,CAAC,8BAA8B,CACnD,IAAI,CAAC,mBAAmB,CACzB,CAAC,QAAQ,EAAA;;wBAFJ,GAAG,GAAG,SAEF;wBACJ,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;wBACxC,2CAA2C;wBAC3C,IAAI,SAAS,EAAE,CAAC;4BACd,eAAO,CAAC,GAAG,CACT,oBAAY,IAAI,CAAC,SAAS,wCAAoC,CAC/D,CAAC;wBACJ,CAAC;6BAAM,CAAC;4BACN,eAAO,CAAC,GAAG,CACT,oBAAY,IAAI,CAAC,SAAS,6CAAyC,CACpE,CAAC;wBACJ,CAAC;6BACG,CAAA,SAAS,IAAI,CAAC,KAAK,sBAAsB,CAAA,EAAzC,wBAAyC;wBAC3C,sBAAO,SAAS,EAAC;;wBAEjB,eAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;wBAC/B,qBAAM,eAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAA;;wBAArB,SAAqB,CAAC;wBACtB,wBAAS;;;;wBAGX,gCAAgC;wBAChC,eAAO,CAAC,GAAG,CACT,oBAAY,IAAI,CAAC,SAAS,8CAA0C,CACrE,CAAC;6BACE,CAAA,CAAC,KAAK,sBAAsB,CAAA,EAA5B,yBAA4B;wBAC9B,sBAAO,KAAK,EAAC;;wBAEb,eAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;wBAC/B,qBAAM,eAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAA;;wBAArB,SAAqB,CAAC;wBACtB,wBAAS;;;;;;;KAKhB;IACD,YAAY;IAEZ,4CAA4C;IAC5C;;OAEG;IACa,qCAAa,GAA7B;;;;;;wBACE,sBAAsB;wBAEtB,eAAO,CAAC,GAAG,CACT,sDAA8C,gBAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,UAAM,CAClF,CAAC;wBACF,qBAAM,uBAAY,CAAC,wBAAwB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAA;;wBAA9D,SAA8D,CAAC;wBAC/D,eAAO,CAAC,GAAG,CACT,sCAA8B,gBAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,kCAA8B,CACvF,CAAC;wBACuB,qBAAM,IAAI,CAAC,gBAAgB,CAAC;gCACnD,sBAAsB,EAAE,QAAQ,EAAE,8BAA8B;6BACjE,CAAC,EAAA;;wBAFI,gBAAgB,GAAG,SAEvB;wBACF,IAAI,CAAC,gBAAgB,EAAE,CAAC;4BACtB,eAAO,CAAC,KAAK,CAAC,sCAA8B,IAAI,CAAC,SAAS,UAAM,CAAC,CAAC;4BAClE,sBAAO;wBACT,CAAC;wBACD,eAAO,CAAC,GAAG,CACT,qCAA6B,gBAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAY,CACpE,CAAC;;;;;KAEH;IACD,YAAY;IAEZ,6CAA6C;IAC7B,kCAAU,GAA1B;;;gBACE,sBAAO,YAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAC;;;KACpC;IACD,YAAY;IAEZ,+CAA+C;IACrC,uCAAe,GAAzB;QACE,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,YAAY;IAEZ,+CAA+C;IACrC,uCAAe,GAAzB;QACE,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,YAAY;IAEZ,oCAAoC;IACpC;;OAEG;IACa,8BAAM,GAAtB;;;;;;wBAEQ,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;wBAClB,KAAA,CAAA,KAAA,MAAM,CAAA,CAAC,MAAM,CAAA;wBAAC,qBAAM,IAAI,CAAC,UAAU,EAAE,EAAA;;wBAA9C,MAAM,GAAG,cAAc,SAAuB,EAAE;gCACpD,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE;gCAC5B,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE;gCAC7B,MAAM,EAAE,CAAC,QAAQ,CAAC;gCAClB,UAAU,EAAE,aAAa;gCACzB,aAAa,EAAE,CAAC;gCAChB,UAAU,EAAE,CAAC;gCACb,KAAK,EAAE,IAAI;gCACX,SAAS,EAAE,GAAG;gCACd,QAAQ,EAAE,KAAK;gCACf,mBAAmB,EAAE,KAAK;gCAC1B,kBAAkB,EAAE,KAAK;gCACzB,GAAG,EAAE,MAAM;6BACZ,EAAC;wBACF,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;;;;;KAE5B;IACD,YAAY;IAEZ,uDAAuD;IACjD,8CAAsB,GAA5B;;;;gBACE,sBAAsB;gBACtB,eAAO,CAAC,IAAI,CACV,4BAEU,gBAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAE;oBACxC,qBAAc,IAAI,CAAC,cAAc,iEACA,gBAAK,CAAC,IAAI,CAC3C,MAAA,MAAA,IAAI,CAAC,mBAAmB,0CAAE,IAAI,0CAAE,QAAQ,EAAE,CAC3C,cAAI,MAA4C,iBAE9C,CACJ,CAAC;;;;KAEH;IACD,YAAY;IAEZ,yCAAyC;IACzB,mCAAW,GAA3B;;;;;;6BACS,IAAI;wBACT,eAAO,CAAC,YAAY,EAAE,CAAC;wBAEvB,qBAAM,IAAI,CAAC,MAAM,EAAE,EAAA;;wBAAnB,SAAmB,CAAC;wBAEpB,qBAAM,IAAI,CAAC,sBAAsB,EAAE,EAAA;;wBAAnC,SAAmC,CAAC;wBAC9B,OAAO,GAAG;4BACd,WAAW,EAAE;gCACX,IAAI,EAAE,gCAAgC;6BACvC;4BACD,sBAAsB;4BACtB,gCAAgC;4BAChC,KAAK;4BACL,cAAc;4BACd,uBAAuB;4BACvB,KAAK;4BACL,IAAI,EAAE;gCACJ,IAAI,EAAE,mBAAmB;6BAC1B;yBACF,CAAC;wBACa,qBAAM,qBAAa,CAAC,MAAM,CAAuB;gCAC9D,OAAO,SAAA;gCACP,QAAQ,EAAE,eAAe;6BAC1B,CAAC,EAAA;;wBAHI,MAAM,GAAG,SAGb;wBACF,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;4BACvB,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;4BACtC,aAAa,CAAC,2BAAoB,IAAI,CAAC,mBAAmB,CAAC,IAAI,UAAO,CAAC,CAAC;wBAC1E,CAAC;wBACD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;4BACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBAClB,CAAC;wBACD,QAAQ,MAAM,EAAE,CAAC;wBACjB,CAAC;;;;;;KAEJ;IACD,YAAY;IAEZ,+CAA+C;IACvC,uCAAe,GAAvB,UAAwB,aAA2C;QACjE,sBAAsB;QACtB,aAAa,GAAG,aAAa,IAAK,EAAU,CAAC;QAC7C,IAAI,eAAO,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,EAAE,CAAC;YACpD,IAAM,UAAU,GAAG,eAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACrE,IAAI,YAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjE,aAAa,GAAG,YAAC,CAAC,KAAK,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAED,eAAO,CAAC,GAAG,CACT,mCAA2B,IAAI,CAAC,0BAA0B,UAAM,CACjE,CAAC;QACF,eAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAE3B,eAAO,CAAC,SAAS,CAAC,IAAI,CAAC,0BAA0B,EAAE,aAAa,CAAC,CAAC;QAClE,YAAY;IACd,CAAC;IACD,YAAY;IAEZ,+CAA+C;IAC/B,gDAAwB,GAAxC;;;;;;;wBAIM,qBAAM,IAAI,CAAC,gCAAgC,EAAE,EAAA;;wBADzC,sBAAsB,GAC1B,SAA6C;wBAE/C,qBAAM,sBAAsB,CAAC,uCAAuC,CAClE,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,cAAc,CACpB,CAAC,QAAQ,EAAA;;wBAHV,SAGU,CAAC;wBACX,IAAI,CAAC,eAAe,CAAC;4BACnB,cAAc,EAAE,IAAI;yBACrB,CAAC,CAAC;;;;wBAEH,IAAI,CAAC,eAAe,CAAC;4BACnB,cAAc,EAAE,IAAI;yBACrB,CAAC,CAAC;wBACH,eAAO,CAAC,KAAK,CAAC,OAAK,CAAC,CAAC;;;;;;KAMxB;IACD,YAAY;IAEZ,iEAAiE;IACjD,qDAA6B,GAA7C;;;;;;wBAEM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;wBAC5C,QAAQ,GAAG,EAAE,CAAC;wBAChB,CAAC,GAAG,CAAC,CAAC;6BACN,CAAC,aAAa,EAAd,wBAAc;;;6BACT,CAAC,aAAa;wBACnB,CAAC,EAAE,CAAC;wBACJ,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;6BAC1C,aAAa,EAAb,wBAAa;wBACf,wBAAM;;wBAEN,eAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;wBACnD,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC;4BACjB,eAAO,CAAC,KAAK,CACX,wCAAwC;gCACtC,yCAAyC,CAC5C,CAAC;wBACJ,CAAC;wBACD,qBAAM,eAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAA;;wBAArB,SAAqB,CAAC;;;;;;;KAK7B;IACD,YAAY;IAEZ,2CAA2C;IACrC,sCAAc,GAApB;;;;;4BAEe,qBAAM,gBAAK,CAAC,WAAW,CAAC;4BACnC,SAAS,EAAE,uBAAuB;yBACnC,CAAC,EAAA;;wBAFI,IAAI,GAAG,SAEX;wBAEF,IAAI,CAAC,eAAe,CAAC;4BACnB,IAAI,MAAA;4BACJ,SAAS,EAAE,IAAI,CAAC,SAAS;4BACzB,GAAG,EAAE,OAAO,CAAC,GAAG;4BAChB,cAAc,EAAE,IAAI,CAAC,GAAG,EAAE;4BAC1B,OAAO,EAAE,IAAI,CAAC,cAAc;yBAC7B,CAAC,CAAC;wBACH,sBAAO,IAAI,EAAC;;;;KAEb;IAIH,oBAAC;AAAD,CAAC,AA5hBD,IA4hBC;AA5hBqB,sCAAa"}