vpn-split 16.5.15 → 16.5.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/shared/shared_folder_info.txt +1 -1
- package/browser/esm2022/lib/models.mjs +7 -8
- package/browser/fesm2022/vpn-split.mjs +6 -7
- package/browser/fesm2022/vpn-split.mjs.map +1 -1
- package/client/esm2022/lib/models.mjs +7 -8
- package/client/fesm2022/vpn-split.mjs +6 -7
- package/client/fesm2022/vpn-split.mjs.map +1 -1
- package/client/package.json +41 -35
- package/lib/hostile.backend.js +6 -7
- package/lib/hostile.backend.js.map +1 -1
- package/lib/models.js +5 -6
- package/lib/models.js.map +1 -1
- package/lib/vpn-split.backend.d.ts +1 -1
- package/lib/vpn-split.backend.js +14 -6
- package/lib/vpn-split.backend.js.map +1 -1
- package/package.json +10 -5
- package/package.json_tnp.json5 +4 -0
- package/tmp-environment.json +45 -46
- package/websql/esm2022/lib/models.mjs +7 -8
- package/websql/fesm2022/vpn-split.mjs +6 -7
- package/websql/fesm2022/vpn-split.mjs.map +1 -1
package/tmp-environment.json
CHANGED
|
@@ -26,7 +26,11 @@
|
|
|
26
26
|
"nodts": false,
|
|
27
27
|
"obscure": false,
|
|
28
28
|
"ugly": false,
|
|
29
|
-
"includeNodeModules": false
|
|
29
|
+
"includeNodeModules": false,
|
|
30
|
+
"cliBuildNoDts": false,
|
|
31
|
+
"cliBuildObscure": false,
|
|
32
|
+
"cliBuildIncludeNodeModules": false,
|
|
33
|
+
"cliBuildUglify": false
|
|
30
34
|
},
|
|
31
35
|
"smartContainerTarget": "",
|
|
32
36
|
"type": "isomorphic-lib",
|
|
@@ -38,7 +42,7 @@
|
|
|
38
42
|
"dependencies": {
|
|
39
43
|
"hostile": "1.3.3",
|
|
40
44
|
"is-elevated": "3.0.0",
|
|
41
|
-
"tnp-db": "~16.5.
|
|
45
|
+
"tnp-db": "~16.5.16"
|
|
42
46
|
},
|
|
43
47
|
"name": "vpn-split",
|
|
44
48
|
"license": "MIT",
|
|
@@ -47,9 +51,10 @@
|
|
|
47
51
|
"vpn-split": "bin/vpn-split",
|
|
48
52
|
"vpn-split-debug": "bin/vpn-split-debug"
|
|
49
53
|
},
|
|
50
|
-
"version": "16.5.
|
|
51
|
-
"lastBuildTagHash": "
|
|
54
|
+
"version": "16.5.19",
|
|
55
|
+
"lastBuildTagHash": "6575ae07ee1e82c2a816fb8bb7aafbbf93936ad5",
|
|
52
56
|
"devDependencies": {
|
|
57
|
+
"@angular-builders/custom-webpack": "~16.0.2-beta.2",
|
|
53
58
|
"@angular-devkit/build-angular": "~16.0.5",
|
|
54
59
|
"@angular-devkit/core": "~16.0.5",
|
|
55
60
|
"@angular-material-extensions/password-strength": "~12.1.0",
|
|
@@ -130,9 +135,9 @@
|
|
|
130
135
|
"angular-material-css-vars": "5.0.2",
|
|
131
136
|
"angular-resize-event": "3.2.0",
|
|
132
137
|
"animate.css": "4.1.1 ",
|
|
133
|
-
"any-project-cli": "~16.5.
|
|
138
|
+
"any-project-cli": "~16.5.23",
|
|
134
139
|
"axios": "1.3.5",
|
|
135
|
-
"background-worker-process": "~16.5.
|
|
140
|
+
"background-worker-process": "~16.5.19",
|
|
136
141
|
"base32": "0.0.7",
|
|
137
142
|
"bcryptjs": "2.4.3",
|
|
138
143
|
"better-sqlite3": "7.6.2",
|
|
@@ -179,13 +184,13 @@
|
|
|
179
184
|
"file-saver": "2.0.5",
|
|
180
185
|
"file-type": "18.5.0",
|
|
181
186
|
"firedev": "^16",
|
|
182
|
-
"firedev-crud": "~16.5.
|
|
183
|
-
"firedev-crud-deamon": "~16.5.
|
|
184
|
-
"firedev-ports": "~16.5.
|
|
185
|
-
"firedev-storage": "~16.5.
|
|
186
|
-
"firedev-type-sql": "~16.5.
|
|
187
|
-
"firedev-typeorm": "~16.5.
|
|
188
|
-
"firedev-ui": "~16.5.
|
|
187
|
+
"firedev-crud": "~16.5.63",
|
|
188
|
+
"firedev-crud-deamon": "~16.5.17",
|
|
189
|
+
"firedev-ports": "~16.5.19",
|
|
190
|
+
"firedev-storage": "~16.5.15",
|
|
191
|
+
"firedev-type-sql": "~16.5.15",
|
|
192
|
+
"firedev-typeorm": "~16.5.17",
|
|
193
|
+
"firedev-ui": "~16.5.16",
|
|
189
194
|
"fkill": "6.1.0",
|
|
190
195
|
"font-awesome": "4.7.0",
|
|
191
196
|
"form-data": "4.0.0",
|
|
@@ -195,16 +200,16 @@
|
|
|
195
200
|
"gulp": "3.9.1",
|
|
196
201
|
"helmet": "7.0.0",
|
|
197
202
|
"howler": "2.2.3",
|
|
198
|
-
"http-proxy": "1.
|
|
203
|
+
"http-proxy": "1.18.1",
|
|
199
204
|
"http-proxy-middleware": "0.19.1",
|
|
200
205
|
"http-server": "0.11.1",
|
|
201
206
|
"image-focus": "1.2.1",
|
|
202
207
|
"immer": "10.0.2",
|
|
203
208
|
"immutable": "4.3.0",
|
|
204
|
-
"incremental-compiler": "~16.5.
|
|
209
|
+
"incremental-compiler": "~16.5.32",
|
|
205
210
|
"inquirer": "7.3.3",
|
|
206
211
|
"inquirer-autocomplete-prompt": "1.3.0",
|
|
207
|
-
"isomorphic-region-loader": "~16.5.
|
|
212
|
+
"isomorphic-region-loader": "~16.5.17",
|
|
208
213
|
"istanbul-instrumenter-loader": "2.0.0",
|
|
209
214
|
"jest": "29.5.0",
|
|
210
215
|
"jest-date-mock": "1.0.8",
|
|
@@ -215,8 +220,8 @@
|
|
|
215
220
|
"joi": "17.9.2",
|
|
216
221
|
"jscodeshift": "0.6.3",
|
|
217
222
|
"json-stringify-safe": "5.0.1",
|
|
218
|
-
"json10": "~16.5.
|
|
219
|
-
"json10-writer": "~16.5.
|
|
223
|
+
"json10": "~16.5.15",
|
|
224
|
+
"json10-writer": "~16.5.23",
|
|
220
225
|
"json5": "2.2.1",
|
|
221
226
|
"json5-writer": "0.2.0",
|
|
222
227
|
"jszip": "3.10.1",
|
|
@@ -225,23 +230,23 @@
|
|
|
225
230
|
"localforage": "1.10.0",
|
|
226
231
|
"lockfile": "1.0.4",
|
|
227
232
|
"lodash": "4.17.20",
|
|
228
|
-
"lodash-walk-object": "~16.5.
|
|
233
|
+
"lodash-walk-object": "~16.5.15",
|
|
229
234
|
"lowdb": "1.0.0",
|
|
230
|
-
"magic-renamer": "~16.5.
|
|
235
|
+
"magic-renamer": "~16.5.16",
|
|
231
236
|
"material-design-icons": "3.0.1",
|
|
232
237
|
"method-override": "2.3.10",
|
|
233
238
|
"minimist": "1.2.0",
|
|
234
239
|
"mkdirp": "0.5.1",
|
|
235
240
|
"mocha": "10.2.0",
|
|
236
241
|
"moment": "2.29.3",
|
|
237
|
-
"morphi": "~16.5.
|
|
242
|
+
"morphi": "~16.5.15",
|
|
238
243
|
"ng-for-track-by-property": "16.0.1",
|
|
239
244
|
"ng-in-viewport": "15.0.2",
|
|
240
245
|
"ng-lock": "16.0.1",
|
|
241
246
|
"ng-packagr": "16.0.1",
|
|
242
|
-
"ng-talkback": "~16.5.
|
|
243
|
-
"ng2-logger": "~16.5.
|
|
244
|
-
"ng2-rest": "~16.5.
|
|
247
|
+
"ng-talkback": "~16.5.16",
|
|
248
|
+
"ng2-logger": "~16.5.25",
|
|
249
|
+
"ng2-rest": "~16.5.15",
|
|
245
250
|
"ngx-ace-wrapper": "14.0.0",
|
|
246
251
|
"ngx-editor": "15.3.0",
|
|
247
252
|
"ngx-highlightjs": "9.0.0",
|
|
@@ -254,7 +259,7 @@
|
|
|
254
259
|
"ngx-scrolltop": "6.0.0",
|
|
255
260
|
"ngx-store": "3.1.1",
|
|
256
261
|
"ngx-typed-js": "2.1.1",
|
|
257
|
-
"node-cli-tester": "~16.5.
|
|
262
|
+
"node-cli-tester": "~16.5.16",
|
|
258
263
|
"node-localstorage": "2.1.6",
|
|
259
264
|
"node-notifier": "6.0.0",
|
|
260
265
|
"node-polyfill-webpack-plugin": "2.0.1",
|
|
@@ -281,7 +286,7 @@
|
|
|
281
286
|
"q": "1.5.1",
|
|
282
287
|
"rallax.js": "2.0.4",
|
|
283
288
|
"randomcolor": "0.5.3",
|
|
284
|
-
"record-replay-req-res-scenario": "~16.5.
|
|
289
|
+
"record-replay-req-res-scenario": "~16.5.16",
|
|
285
290
|
"reflect-metadata": "0.1.10",
|
|
286
291
|
"rimraf": "2.6.2",
|
|
287
292
|
"rxjs": "~7.8.0",
|
|
@@ -292,7 +297,7 @@
|
|
|
292
297
|
"socket.io": "2.4.1",
|
|
293
298
|
"sort-package-json": "1.11.0",
|
|
294
299
|
"sql.js": "1.8.0",
|
|
295
|
-
"static-columns": "~16.5.
|
|
300
|
+
"static-columns": "~16.5.19",
|
|
296
301
|
"string-similarity": "4.0.2",
|
|
297
302
|
"sudo-block": "3.0.0",
|
|
298
303
|
"supertest": "6.3.3",
|
|
@@ -300,11 +305,11 @@
|
|
|
300
305
|
"systeminformation": "3.45.7",
|
|
301
306
|
"task.js": "0.1.5",
|
|
302
307
|
"threads": "1.7.0",
|
|
303
|
-
"tnp-cli": "~16.5.
|
|
304
|
-
"tnp-config": "~16.5.
|
|
305
|
-
"tnp-core": "~16.
|
|
306
|
-
"tnp-helpers": "~16.5.
|
|
307
|
-
"tnp-models": "~16.5.
|
|
308
|
+
"tnp-cli": "~16.5.16",
|
|
309
|
+
"tnp-config": "~16.5.34",
|
|
310
|
+
"tnp-core": "~16.6.30",
|
|
311
|
+
"tnp-helpers": "~16.5.25",
|
|
312
|
+
"tnp-models": "~16.5.23",
|
|
308
313
|
"ts-debug": "1.3.0",
|
|
309
314
|
"ts-loader": "2.3.1",
|
|
310
315
|
"ts-node": "10.9.1",
|
|
@@ -313,36 +318,30 @@
|
|
|
313
318
|
"turndown": "7.1.2",
|
|
314
319
|
"typeorm": "~0.3.10",
|
|
315
320
|
"typescript": "~5.0.2",
|
|
316
|
-
"typescript-class-helpers": "~16.5.
|
|
321
|
+
"typescript-class-helpers": "~16.5.24",
|
|
317
322
|
"typescript-formatter": "~7.2.2",
|
|
318
323
|
"underscore": "1.9.1",
|
|
319
324
|
"uuid": "8.3.2",
|
|
320
325
|
"validator": "9.2.0",
|
|
321
326
|
"video.js": "8.3.0",
|
|
322
|
-
"vpn-split": "~16.5.
|
|
327
|
+
"vpn-split": "~16.5.18",
|
|
323
328
|
"watch": "1.0.2",
|
|
324
329
|
"yup": "1.1.1",
|
|
325
330
|
"zone.js": "~0.13.0"
|
|
326
|
-
}
|
|
331
|
+
},
|
|
332
|
+
"main": "dist/app.electron.js"
|
|
327
333
|
},
|
|
328
334
|
"build": {
|
|
329
|
-
"number":
|
|
330
|
-
"date": "2024-
|
|
331
|
-
"hash": "
|
|
332
|
-
"options": {}
|
|
335
|
+
"number": 198,
|
|
336
|
+
"date": "2024-04-06T10:26:38.000Z",
|
|
337
|
+
"hash": "1af177c8ddf0109c9751d163029f201608f85da3"
|
|
333
338
|
},
|
|
334
339
|
"currentProjectName": "vpn-split",
|
|
335
340
|
"currentProjectGenericName": "vpn-split",
|
|
336
|
-
"currentProjectTasksConfiguration": "{\"version\":\"2.0.0\",\"tasks\":[{\"label\":\"terminateall\",\"command\":\"echo ${input:terminate}\",\"type\":\"shell\",\"problemMatcher\":[]},{\"label\":\"Ng Serve\",\"type\":\"shell\",\"command\":\"tnp build\",\"isBackground\":true,\"presentation\":{\"reveal\":\"always\"},\"group\":{\"kind\":\"build\",\"isDefault\":true},\"problemMatcher\":{\"owner\":\"typescript\",\"source\":\"ts\",\"applyTo\":\"closedDocuments\",\"fileLocation\":[\"relative\",\"${cwd}\"],\"pattern\":\"$tsc\",\"background\":{\"activeOnStart\":true,\"beginsPattern\":{\"regexp\":\"(.*?)\"},\"endsPattern\":{\"regexp\":\"Compiled |Failed to compile.\"}}}}],\"inputs\":[{\"id\":\"terminate\",\"type\":\"command\",\"command\":\"workbench.action.tasks.terminate\",\"args\":\"terminateAll\"}]}",
|
|
337
341
|
"currentProjectType": "isomorphic-lib",
|
|
338
|
-
"currentFrameworkVersion": "16.5.
|
|
342
|
+
"currentFrameworkVersion": "16.5.26",
|
|
339
343
|
"isStandaloneProject": true,
|
|
340
344
|
"isSmartContainer": false,
|
|
341
|
-
"frameworks": [
|
|
342
|
-
"bootstrap",
|
|
343
|
-
"ionic",
|
|
344
|
-
"material"
|
|
345
|
-
],
|
|
346
345
|
"pathesTsconfig": "\"paths\": {\"vpn-split\":[\"./src/lib\"],\"vpn-split/*\":[\"./src/lib/*\"]},",
|
|
347
346
|
"customRootDir": "\"rootDir\": \"./src\",",
|
|
348
347
|
"currentLibProjectSourceFolder": "src"
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { _ } from 'tnp-core/websql';
|
|
2
|
-
import { CLI } from 'tnp-cli/websql';
|
|
1
|
+
import { _, chalk } from 'tnp-core/websql';
|
|
3
2
|
import { Helpers } from 'tnp-helpers/websql';
|
|
4
3
|
export class HostForServer {
|
|
5
4
|
clone() {
|
|
@@ -18,14 +17,14 @@ export class HostForServer {
|
|
|
18
17
|
}
|
|
19
18
|
return new HostForServer(dataClone);
|
|
20
19
|
}
|
|
21
|
-
if (_.isString(ipOrDomain)) {
|
|
20
|
+
if (_.isString(ipOrDomain)) { // @ts-ignore
|
|
22
21
|
const parsed = Helpers.urlParse(ipOrDomain);
|
|
23
22
|
if (parsed) {
|
|
24
23
|
ipOrDomain = parsed;
|
|
25
24
|
}
|
|
26
25
|
}
|
|
27
26
|
if (_.isObject(ipOrDomain) && (ipOrDomain instanceof URL)) {
|
|
28
|
-
ipOrDomain = ipOrDomain;
|
|
27
|
+
ipOrDomain = ipOrDomain; // @ts-ignore
|
|
29
28
|
if (Helpers.isValidIp(ipOrDomain?.host)) {
|
|
30
29
|
return new HostForServer({ ip: ipOrDomain.origin, name, disabled });
|
|
31
30
|
}
|
|
@@ -51,7 +50,7 @@ export class HostForServer {
|
|
|
51
50
|
this.toString = () => {
|
|
52
51
|
return `[string version] ${this.nameWithIpOrDomain}`;
|
|
53
52
|
};
|
|
54
|
-
if (data?.ipOrDomain) {
|
|
53
|
+
if (data?.ipOrDomain) { // @ts-ignore
|
|
55
54
|
if (Helpers.isValidIp(data.ipOrDomain)) {
|
|
56
55
|
data.ip = data.ipOrDomain;
|
|
57
56
|
}
|
|
@@ -68,7 +67,7 @@ export class HostForServer {
|
|
|
68
67
|
if (!data) {
|
|
69
68
|
data = {};
|
|
70
69
|
}
|
|
71
|
-
if (_.isString(data?.aliases)) {
|
|
70
|
+
if (_.isString(data?.aliases)) { // @ts-ignore
|
|
72
71
|
data.aliases = Helpers.strings.splitIfNeed(data.aliases);
|
|
73
72
|
}
|
|
74
73
|
this._data = data;
|
|
@@ -154,9 +153,9 @@ export class HostForServer {
|
|
|
154
153
|
return h ? h.hostname : void 0;
|
|
155
154
|
}
|
|
156
155
|
get nameWithIpOrDomain() {
|
|
157
|
-
return
|
|
156
|
+
return chalk.underline(`${this.name} ${this.ipOrDomain}`);
|
|
158
157
|
}
|
|
159
158
|
}
|
|
160
159
|
;
|
|
161
160
|
({}); // @--end-of-file-for-module=vpn-split lib/models.ts
|
|
162
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3Zwbi1zcGxpdC9wcm9qZWN0cy92cG4tc3BsaXQvc3JjL2xpYi9tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUErQjdDLE1BQU0sT0FBTyxhQUFhO0lBR2pCLEtBQUs7UUFDVixPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBOEcsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLFFBQVEsR0FBRyxLQUFLO1FBQ3JKLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDZixPQUFPLEtBQUssQ0FBQyxDQUFDO1NBQ2Y7UUFDRCxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksVUFBVSxZQUFZLGFBQWEsRUFBRTtZQUNqRSxNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQXFCLENBQUM7WUFDcEUsU0FBUyxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQy9DLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztZQUN4QixJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ3BDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO2FBQy9CO1lBQ0QsT0FB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QUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdEQsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFXLGtCQUFrQjtRQUMzQixNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbEQsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDbkIsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDcEMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFXLGtCQUFrQjtRQUMzQixPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUNoRSxDQUFDO0NBSUY7QUFHQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLG9EQUFvRCIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5pbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7IENMSSB9IGZyb20gJ3RucC1jbGkvd2Vic3FsJztcbmltcG9ydCB7IEhlbHBlcnMgfSBmcm9tICd0bnAtaGVscGVycy93ZWJzcWwnO1xuXG4vKioqXG4gKiBAZGVwcmVjYXRlZFxuICogdXNlIG5vcm1hbCBvYmplY3RzXG4gKi9cbmV4cG9ydCB0eXBlIEV0Y0hvc3RzID0geyBbaG9zdE5hbWUgaW4gc3RyaW5nXTogSG9zdEZvclNlcnZlcjsgfTtcblxuLyoqKlxuICogQGRlcHJlY2F0ZWRcbiAqIHVzZSBub3JtYWwgb2JqZWN0c1xuICovXG5leHBvcnQgdHlwZSBJRXRjSG9zdHMgPSB7IFtob3N0TmFtZSBpbiBzdHJpbmddOiBQaWNrPEhvc3RGb3JTZXJ2ZXIsICdhbGlhc2VzJyB8ICdpcE9yRG9tYWluJz47IH07XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3B0SG9zdEZvclNlcnZlciB7XG4gIGlwPzogc3RyaW5nO1xuICBkb21haW4/OiBzdHJpbmc7XG4gIGlwT3JEb21haW4/OiBzdHJpbmc7XG4gIGFsaWFzZXM/OiBzdHJpbmdbXTtcbiAgaXNEZWZhdWx0PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIGlwIGZyb20gY29tbWFuZDogdnBuLWNsaSAxOTIuMTY4LjEuMSAxOTIuMTY4LjEuMlxuICAgKi9cbiAgb3JpZ2luSG9zdG5hbWU/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBpZiB0cnVlIC0gaXAgYW5kIGRvbWFpbiB3aWxsIG91dHB1dCBlbXB0eSBzdHJpbmdcbiAgICovXG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIEhvc3RGb3JTZXJ2ZXIgaW1wbGVtZW50cyBPcHRIb3N0Rm9yU2VydmVyIHtcbiAgcHJpdmF0ZSBfZGF0YTogT3B0SG9zdEZvclNlcnZlcjtcblxuICBwdWJsaWMgY2xvbmUoKSB7XG4gICAgcmV0dXJuIEhvc3RGb3JTZXJ2ZXIuRnJvbSh0aGlzKTtcbiAgfVxuXG4gIHN0YXRpYyBGcm9tKGlwT3JEb21haW46IHN0cmluZyB8IFVSTCB8IFBpY2s8T3B0SG9zdEZvclNlcnZlciB8IEhvc3RGb3JTZXJ2ZXIsICdpcE9yRG9tYWluJyB8ICdhbGlhc2VzJyB8ICdvcmlnaW5Ib3N0bmFtZSc+LCBuYW1lID0gJycsIGRpc2FibGVkID0gZmFsc2UpOiBIb3N0Rm9yU2VydmVyIHtcbiAgICBpZiAoIWlwT3JEb21haW4pIHtcbiAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgfVxuICAgIGlmIChfLmlzT2JqZWN0KGlwT3JEb21haW4pICYmIGlwT3JEb21haW4gaW5zdGFuY2VvZiBIb3N0Rm9yU2VydmVyKSB7XG4gICAgICBjb25zdCBkYXRhQ2xvbmUgPSBfLmNsb25lRGVlcChpcE9yRG9tYWluLl9kYXRhKSBhcyBPcHRIb3N0Rm9yU2VydmVyO1xuICAgICAgZGF0YUNsb25lLm5hbWUgPSAobmFtZSAmJiAobmFtZS50cmltKCkgIT09ICcnKSkgP1xuICAgICAgICBuYW1lIDogZGF0YUNsb25lLm5hbWU7XG4gICAgICBpZiAoIV8uaXNCb29sZWFuKGRhdGFDbG9uZS5kaXNhYmxlZCkpIHtcbiAgICAgICAgZGF0YUNsb25lLmRpc2FibGVkID0gZGlzYWJsZWQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV3IEhvc3RGb3JTZXJ2ZXIoZGF0YUNsb25lKTtcbiAgICB9XG4gICAgaWYgKF8uaXNTdHJpbmcoaXBPckRvbWFpbikpIHtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IEhlbHBlcnMudXJsUGFyc2UoaXBPckRvbWFpbik7XG4gICAgICBpZiAocGFyc2VkKSB7XG4gICAgICAgIGlwT3JEb21haW4gPSBwYXJzZWQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKF8uaXNPYmplY3QoaXBPckRvbWFpbikgJiYgKGlwT3JEb21haW4gaW5zdGFuY2VvZiBVUkwpKSB7XG4gICAgICBpcE9yRG9tYWluID0gaXBPckRvbWFpbiBhcyBVUkw7XG4gICAgICBpZiAoSGVscGVycy5pc1ZhbGlkSXAoaXBPckRvbWFpbj8uaG9zdCkpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBIb3N0Rm9yU2VydmVyKHsgaXA6IGlwT3JEb21haW4ub3JpZ2luLCBuYW1lLCBkaXNhYmxlZCB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBuZXcgSG9zdEZvclNlcnZlcih7IGRvbWFpbjogaXBPckRvbWFpbi5vcmlnaW4sIG5hbWUsIGRpc2FibGVkIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoXy5pc1N0cmluZyhpcE9yRG9tYWluKSkge1xuICAgICAgICByZXR1cm4gbmV3IEhvc3RGb3JTZXJ2ZXIoeyBpcE9yRG9tYWluLCBuYW1lLCBkaXNhYmxlZCB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIChpcE9yRG9tYWluIGFzIE9wdEhvc3RGb3JTZXJ2ZXIpLm5hbWUgPSAobmFtZSAmJiAobmFtZS50cmltKCkgIT09ICcnKSkgP1xuICAgICAgICAgIG5hbWUgOiAoaXBPckRvbWFpbiBhcyBPcHRIb3N0Rm9yU2VydmVyKS5uYW1lO1xuICAgICAgICBpZiAoIV8uaXNCb29sZWFuKChpcE9yRG9tYWluIGFzIE9wdEhvc3RGb3JTZXJ2ZXIpLmRpc2FibGVkKSkge1xuICAgICAgICAgIChpcE9yRG9tYWluIGFzIE9wdEhvc3RGb3JTZXJ2ZXIpLmRpc2FibGVkID0gZGlzYWJsZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBIb3N0Rm9yU2VydmVyKGlwT3JEb21haW4gYXMgYW55KTtcbiAgICAgIH1cblxuICAgIH1cbiAgfVxuICBjb25zdHJ1Y3RvcihkYXRhOiBPcHRIb3N0Rm9yU2VydmVyKSB7XG4gICAgaWYgKGRhdGE/LmlwT3JEb21haW4pIHtcbiAgICAgIGlmIChIZWxwZXJzLmlzVmFsaWRJcChkYXRhLmlwT3JEb21haW4pKSB7XG4gICAgICAgIGRhdGEuaXAgPSBkYXRhLmlwT3JEb21haW47XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkYXRhLmRvbWFpbiA9IGRhdGEuaXBPckRvbWFpbjtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGRhdGEgJiYgIWRhdGEuaXApIHtcbiAgICAgIGRhdGEuaXAgPSAnJztcbiAgICB9XG4gICAgaWYgKGRhdGEgJiYgIWRhdGEuZG9tYWluKSB7XG4gICAgICBkYXRhLmRvbWFpbiA9ICcnO1xuICAgIH1cbiAgICBpZiAoIWRhdGEpIHtcbiAgICAgIGRhdGEgPSB7fTtcbiAgICB9XG4gICAgaWYgKF8uaXNTdHJpbmcoZGF0YT8uYWxpYXNlcykpIHtcbiAgICAgIGRhdGEuYWxpYXNlcyA9IEhlbHBlcnMuc3RyaW5ncy5zcGxpdElmTmVlZChkYXRhLmFsaWFzZXMpO1xuICAgIH1cbiAgICB0aGlzLl9kYXRhID0gZGF0YTtcbiAgfVxuICBwdWJsaWMgZ2V0IGlwKCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9kYXRhLmlwO1xuICB9XG4gIHB1YmxpYyBzZXQgaXAobmV3SXBBZGRyZXNzOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9kYXRhLmlwID0gbmV3SXBBZGRyZXNzO1xuICB9XG4gIHB1YmxpYyBnZXQgZG9tYWluKCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9kYXRhLmRvbWFpbjtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWxpYXNlcygpOiBzdHJpbmdbXSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgaWYgKF8uaXNTdHJpbmcodGhpcy5fZGF0YS5hbGlhc2VzKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2RhdGEuYWxpYXNlcy5zcGxpdCgnICcpO1xuICAgIH1cbiAgICBpZiAoIV8uaXNBcnJheSh0aGlzLl9kYXRhLmFsaWFzZXMpKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9kYXRhLmFsaWFzZXM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZpcnN0QWxpYXMoKSB7XG4gICAgcmV0dXJuIF8uZmlyc3QodGhpcy5hbGlhc2VzKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YS5uYW1lO1xuICB9XG4gIHB1YmxpYyBzZXQgbmFtZSh2KSB7XG4gICAgdGhpcy5fZGF0YS5uYW1lID0gdjtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgb3JpZ2luSG9zdG5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGEub3JpZ2luSG9zdG5hbWU7XG4gIH1cbiAgcHVibGljIHNldCBvcmlnaW5Ib3N0bmFtZSh2KSB7XG4gICAgdGhpcy5fZGF0YS5vcmlnaW5Ib3N0bmFtZSA9IHY7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9kYXRhLmRpc2FibGVkO1xuICB9XG4gIHB1YmxpYyBnZXQgaXNEZWZhdWx0KCkge1xuICAgIHJldHVybiB0aGlzLl9kYXRhLmlzRGVmYXVsdDtcbiAgfVxuICBwdWJsaWMgZ2V0IGlkZW50aWZpZXIoKSB7XG4gICAgcmV0dXJuIF8ua2ViYWJDYXNlKHRoaXMuX2RhdGEubmFtZSk7XG4gIH1cbiAgcHVibGljIHNldCBkaXNhYmxlZCh2KSB7XG4gICAgdGhpcy5fZGF0YS5kaXNhYmxlZCA9IHY7XG4gIH1cbiAgcHVibGljIGdldCBpcE9yRG9tYWluKCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGNvbnN0IHJlcyA9ICh0aGlzLmRvbWFpbiA/IHRoaXMuZG9tYWluIDogdGhpcy5pcCkgfHwgJyc7XG4gICAgcmV0dXJuIHJlcztcblxuICB9XG5cbiAgcHVibGljIGdldCBpcE9yRmlyc3RBbGlhcygpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICBjb25zdCByZXMgPSAodGhpcy5maXJzdEFsaWFzID8gdGhpcy5maXJzdEFsaWFzIDogdGhpcy5pcCkgfHwgJyc7XG4gICAgcmV0dXJuIHJlcztcblxuICB9XG5cbiAgcHVibGljIGdldCBob3N0bmFtZSgpIHtcbiAgICBjb25zdCBoID0gSGVscGVycy51cmxQYXJzZSh0aGlzLmlwT3JGaXJzdEFsaWFzLCB0cnVlKTtcbiAgICByZXR1cm4gaCA/IGguaG9zdG5hbWUgOiB2b2lkIDA7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhvc3RuYW1lRmlyc3RBbGlhcygpIHtcbiAgICBjb25zdCBoID0gSGVscGVycy51cmxQYXJzZSh0aGlzLmZpcnN0QWxpYXMsIHRydWUpO1xuICAgIHJldHVybiBoID8gaC5ob3N0bmFtZSA6IHZvaWQgMDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaG9zdG5hbWVJcCgpIHtcbiAgICBjb25zdCBoID0gSGVscGVycy51cmxQYXJzZSh0aGlzLmlwKTtcbiAgICByZXR1cm4gaCA/IGguaG9zdG5hbWUgOiB2b2lkIDA7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG5hbWVXaXRoSXBPckRvbWFpbigpIHtcbiAgICByZXR1cm4gQ0xJLmNoYWxrLnVuZGVybGluZShgJHt0aGlzLm5hbWV9ICR7dGhpcy5pcE9yRG9tYWlufWApO1xuICB9XG4gIHRvU3RyaW5nID0gKCkgPT4ge1xuICAgIHJldHVybiBgW3N0cmluZyB2ZXJzaW9uXSAke3RoaXMubmFtZVdpdGhJcE9yRG9tYWlufWBcbiAgfVxufVxuXG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT12cG4tc3BsaXQgbGliL21vZGVscy50cyJdfQ==
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3Zwbi1zcGxpdC9wcm9qZWN0cy92cG4tc3BsaXQvc3JjL2xpYi9tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUErQjdDLE1BQU0sT0FBTyxhQUFhO0lBR2pCLEtBQUs7UUFDVixPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBOEcsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLFFBQVEsR0FBRyxLQUFLO1FBQ3JKLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDZixPQUFPLEtBQUssQ0FBQyxDQUFDO1NBQ2Y7UUFDRCxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksVUFBVSxZQUFZLGFBQWEsRUFBRTtZQUNqRSxNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQXFCLENBQUM7WUFDcEUsU0FBUyxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQy9DLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztZQUN4QixJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ3BDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO2FBQy9CO1lBQ0QsT0FBTyxJQUFJLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUNyQztRQUNELElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLGFBQWE7WUFDekMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM1QyxJQUFJLE1BQU0sRUFBRTtnQkFDVixVQUFVLEdBQUcsTUFBTSxDQUFDO2FBQ3JCO1NBQ0Y7UUFFRCxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLFlBQVksR0FBRyxDQUFDLEVBQUU7WUFDekQsVUFBVSxHQUFHLFVBQWlCLENBQUMsQ0FBQyxhQUFhO1lBQzdDLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQUU7Z0JBQ3ZDLE9BQU8sSUFBSSxhQUFhLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQzthQUNyRTtpQkFBTTtnQkFDTCxPQUFPLElBQUksYUFBYSxDQUFDLEVBQUUsTUFBTSxFQUFFLFVBQVUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7YUFDekU7U0FDRjthQUFNO1lBQ0wsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUMxQixPQUFPLElBQUksYUFBYSxDQUFDLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO2FBQzFEO2lCQUFNO2dCQUNKLFVBQStCLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDdEUsSUFBSSxDQUFDLENBQUMsQ0FBRSxVQUErQixDQUFDLElBQUksQ0FBQztnQkFDL0MsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUUsVUFBK0IsQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDMUQsVUFBK0IsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO2lCQUN0RDtnQkFDRCxPQUFPLElBQUksYUFBYSxDQUFDLFVBQWlCLENBQUMsQ0FBQzthQUM3QztTQUVGO0lBQ0gsQ0FBQztJQUNELFlBQVksSUFBc0I7UUFxSGxDLGFBQVEsR0FBRyxHQUFHLEVBQUU7WUFDZCxPQUFPLG9CQUFvQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQTtRQUN0RCxDQUFDLENBQUE7UUF0SEMsSUFBSSxJQUFJLEVBQUUsVUFBVSxFQUFFLEVBQUUsYUFBYTtZQUNuQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUN0QyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7YUFDM0I7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO2FBQy9CO1NBQ0Y7UUFDRCxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUU7WUFDcEIsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7U0FDZDtRQUNELElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztTQUNsQjtRQUNELElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxJQUFJLEdBQUcsRUFBRSxDQUFDO1NBQ1g7UUFDRCxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsYUFBYTtZQUM1QyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMxRDtRQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFDRCxJQUFXLEVBQUU7UUFDWCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUNELElBQVcsRUFBRSxDQUFDLFlBQW9CO1FBQ2hDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLFlBQVksQ0FBQztJQUMvQixDQUFDO0lBQ0QsSUFBVyxNQUFNO1FBQ2YsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDaEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFDRCxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNsQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN0QztRQUNELElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDbEMsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNuQixPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUFXLElBQUksQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFXLGNBQWM7UUFDdkIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQztJQUNuQyxDQUFDO0lBQ0QsSUFBVyxjQUFjLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQzdCLENBQUM7SUFDRCxJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztJQUM5QixDQUFDO0lBQ0QsSUFBVyxVQUFVO1FBQ25CLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFDRCxJQUFXLFFBQVEsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBVyxVQUFVO1FBQ25CLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixPQUFPLEVBQUUsQ0FBQztTQUNYO1FBQ0QsTUFBTSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3hELE9BQU8sR0FBRyxDQUFDO0lBRWIsQ0FBQztJQUVELElBQVcsY0FBYztRQUN2QixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELE1BQU0sR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNoRSxPQUFPLEdBQUcsQ0FBQztJQUViLENBQUM7SUFFRCxJQUFXLFFBQVE7UUFDakIsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3RELE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBVyxrQkFBa0I7UUFDM0IsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2xELE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ25CLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBVyxrQkFBa0I7UUFDM0IsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUM1RCxDQUFDO0NBSUY7QUFHQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLG9EQUFvRCIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5pbXBvcnQgeyBfLCBjaGFsayB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5pbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSAndG5wLWhlbHBlcnMvd2Vic3FsJztcblxuLyoqKlxuICogQGRlcHJlY2F0ZWRcbiAqIHVzZSBub3JtYWwgb2JqZWN0c1xuICovXG5leHBvcnQgdHlwZSBFdGNIb3N0cyA9IHsgW2hvc3ROYW1lIGluIHN0cmluZ106IEhvc3RGb3JTZXJ2ZXI7IH07XG5cbi8qKipcbiAqIEBkZXByZWNhdGVkXG4gKiB1c2Ugbm9ybWFsIG9iamVjdHNcbiAqL1xuZXhwb3J0IHR5cGUgSUV0Y0hvc3RzID0geyBbaG9zdE5hbWUgaW4gc3RyaW5nXTogUGljazxIb3N0Rm9yU2VydmVyLCAnYWxpYXNlcycgfCAnaXBPckRvbWFpbic+OyB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIE9wdEhvc3RGb3JTZXJ2ZXIge1xuICBpcD86IHN0cmluZztcbiAgZG9tYWluPzogc3RyaW5nO1xuICBpcE9yRG9tYWluPzogc3RyaW5nO1xuICBhbGlhc2VzPzogc3RyaW5nW107XG4gIGlzRGVmYXVsdD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBpcCBmcm9tIGNvbW1hbmQ6IHZwbi1jbGkgMTkyLjE2OC4xLjEgMTkyLjE2OC4xLjJcbiAgICovXG4gIG9yaWdpbkhvc3RuYW1lPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogaWYgdHJ1ZSAtIGlwIGFuZCBkb21haW4gd2lsbCBvdXRwdXQgZW1wdHkgc3RyaW5nXG4gICAqL1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBIb3N0Rm9yU2VydmVyIGltcGxlbWVudHMgT3B0SG9zdEZvclNlcnZlciB7XG4gIHByaXZhdGUgX2RhdGE6IE9wdEhvc3RGb3JTZXJ2ZXI7XG5cbiAgcHVibGljIGNsb25lKCkge1xuICAgIHJldHVybiBIb3N0Rm9yU2VydmVyLkZyb20odGhpcyk7XG4gIH1cblxuICBzdGF0aWMgRnJvbShpcE9yRG9tYWluOiBzdHJpbmcgfCBVUkwgfCBQaWNrPE9wdEhvc3RGb3JTZXJ2ZXIgfCBIb3N0Rm9yU2VydmVyLCAnaXBPckRvbWFpbicgfCAnYWxpYXNlcycgfCAnb3JpZ2luSG9zdG5hbWUnPiwgbmFtZSA9ICcnLCBkaXNhYmxlZCA9IGZhbHNlKTogSG9zdEZvclNlcnZlciB7XG4gICAgaWYgKCFpcE9yRG9tYWluKSB7XG4gICAgICByZXR1cm4gdm9pZCAwO1xuICAgIH1cbiAgICBpZiAoXy5pc09iamVjdChpcE9yRG9tYWluKSAmJiBpcE9yRG9tYWluIGluc3RhbmNlb2YgSG9zdEZvclNlcnZlcikge1xuICAgICAgY29uc3QgZGF0YUNsb25lID0gXy5jbG9uZURlZXAoaXBPckRvbWFpbi5fZGF0YSkgYXMgT3B0SG9zdEZvclNlcnZlcjtcbiAgICAgIGRhdGFDbG9uZS5uYW1lID0gKG5hbWUgJiYgKG5hbWUudHJpbSgpICE9PSAnJykpID9cbiAgICAgICAgbmFtZSA6IGRhdGFDbG9uZS5uYW1lO1xuICAgICAgaWYgKCFfLmlzQm9vbGVhbihkYXRhQ2xvbmUuZGlzYWJsZWQpKSB7XG4gICAgICAgIGRhdGFDbG9uZS5kaXNhYmxlZCA9IGRpc2FibGVkO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG5ldyBIb3N0Rm9yU2VydmVyKGRhdGFDbG9uZSk7XG4gICAgfVxuICAgIGlmIChfLmlzU3RyaW5nKGlwT3JEb21haW4pKSB7IC8vIEB0cy1pZ25vcmVcbiAgICAgIGNvbnN0IHBhcnNlZCA9IEhlbHBlcnMudXJsUGFyc2UoaXBPckRvbWFpbik7XG4gICAgICBpZiAocGFyc2VkKSB7XG4gICAgICAgIGlwT3JEb21haW4gPSBwYXJzZWQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKF8uaXNPYmplY3QoaXBPckRvbWFpbikgJiYgKGlwT3JEb21haW4gaW5zdGFuY2VvZiBVUkwpKSB7XG4gICAgICBpcE9yRG9tYWluID0gaXBPckRvbWFpbiBhcyBVUkw7IC8vIEB0cy1pZ25vcmVcbiAgICAgIGlmIChIZWxwZXJzLmlzVmFsaWRJcChpcE9yRG9tYWluPy5ob3N0KSkge1xuICAgICAgICByZXR1cm4gbmV3IEhvc3RGb3JTZXJ2ZXIoeyBpcDogaXBPckRvbWFpbi5vcmlnaW4sIG5hbWUsIGRpc2FibGVkIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBIb3N0Rm9yU2VydmVyKHsgZG9tYWluOiBpcE9yRG9tYWluLm9yaWdpbiwgbmFtZSwgZGlzYWJsZWQgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChfLmlzU3RyaW5nKGlwT3JEb21haW4pKSB7XG4gICAgICAgIHJldHVybiBuZXcgSG9zdEZvclNlcnZlcih7IGlwT3JEb21haW4sIG5hbWUsIGRpc2FibGVkIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgKGlwT3JEb21haW4gYXMgT3B0SG9zdEZvclNlcnZlcikubmFtZSA9IChuYW1lICYmIChuYW1lLnRyaW0oKSAhPT0gJycpKSA/XG4gICAgICAgICAgbmFtZSA6IChpcE9yRG9tYWluIGFzIE9wdEhvc3RGb3JTZXJ2ZXIpLm5hbWU7XG4gICAgICAgIGlmICghXy5pc0Jvb2xlYW4oKGlwT3JEb21haW4gYXMgT3B0SG9zdEZvclNlcnZlcikuZGlzYWJsZWQpKSB7XG4gICAgICAgICAgKGlwT3JEb21haW4gYXMgT3B0SG9zdEZvclNlcnZlcikuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IEhvc3RGb3JTZXJ2ZXIoaXBPckRvbWFpbiBhcyBhbnkpO1xuICAgICAgfVxuXG4gICAgfVxuICB9XG4gIGNvbnN0cnVjdG9yKGRhdGE6IE9wdEhvc3RGb3JTZXJ2ZXIpIHtcbiAgICBpZiAoZGF0YT8uaXBPckRvbWFpbikgeyAvLyBAdHMtaWdub3JlXG4gICAgICBpZiAoSGVscGVycy5pc1ZhbGlkSXAoZGF0YS5pcE9yRG9tYWluKSkge1xuICAgICAgICBkYXRhLmlwID0gZGF0YS5pcE9yRG9tYWluO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGF0YS5kb21haW4gPSBkYXRhLmlwT3JEb21haW47XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChkYXRhICYmICFkYXRhLmlwKSB7XG4gICAgICBkYXRhLmlwID0gJyc7XG4gICAgfVxuICAgIGlmIChkYXRhICYmICFkYXRhLmRvbWFpbikge1xuICAgICAgZGF0YS5kb21haW4gPSAnJztcbiAgICB9XG4gICAgaWYgKCFkYXRhKSB7XG4gICAgICBkYXRhID0ge307XG4gICAgfVxuICAgIGlmIChfLmlzU3RyaW5nKGRhdGE/LmFsaWFzZXMpKSB7IC8vIEB0cy1pZ25vcmVcbiAgICAgIGRhdGEuYWxpYXNlcyA9IEhlbHBlcnMuc3RyaW5ncy5zcGxpdElmTmVlZChkYXRhLmFsaWFzZXMpO1xuICAgIH1cbiAgICB0aGlzLl9kYXRhID0gZGF0YTtcbiAgfVxuICBwdWJsaWMgZ2V0IGlwKCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9kYXRhLmlwO1xuICB9XG4gIHB1YmxpYyBzZXQgaXAobmV3SXBBZGRyZXNzOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9kYXRhLmlwID0gbmV3SXBBZGRyZXNzO1xuICB9XG4gIHB1YmxpYyBnZXQgZG9tYWluKCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9kYXRhLmRvbWFpbjtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWxpYXNlcygpOiBzdHJpbmdbXSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgaWYgKF8uaXNTdHJpbmcodGhpcy5fZGF0YS5hbGlhc2VzKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2RhdGEuYWxpYXNlcy5zcGxpdCgnICcpO1xuICAgIH1cbiAgICBpZiAoIV8uaXNBcnJheSh0aGlzLl9kYXRhLmFsaWFzZXMpKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9kYXRhLmFsaWFzZXM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZpcnN0QWxpYXMoKSB7XG4gICAgcmV0dXJuIF8uZmlyc3QodGhpcy5hbGlhc2VzKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YS5uYW1lO1xuICB9XG4gIHB1YmxpYyBzZXQgbmFtZSh2KSB7XG4gICAgdGhpcy5fZGF0YS5uYW1lID0gdjtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgb3JpZ2luSG9zdG5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGEub3JpZ2luSG9zdG5hbWU7XG4gIH1cbiAgcHVibGljIHNldCBvcmlnaW5Ib3N0bmFtZSh2KSB7XG4gICAgdGhpcy5fZGF0YS5vcmlnaW5Ib3N0bmFtZSA9IHY7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9kYXRhLmRpc2FibGVkO1xuICB9XG4gIHB1YmxpYyBnZXQgaXNEZWZhdWx0KCkge1xuICAgIHJldHVybiB0aGlzLl9kYXRhLmlzRGVmYXVsdDtcbiAgfVxuICBwdWJsaWMgZ2V0IGlkZW50aWZpZXIoKSB7XG4gICAgcmV0dXJuIF8ua2ViYWJDYXNlKHRoaXMuX2RhdGEubmFtZSk7XG4gIH1cbiAgcHVibGljIHNldCBkaXNhYmxlZCh2KSB7XG4gICAgdGhpcy5fZGF0YS5kaXNhYmxlZCA9IHY7XG4gIH1cbiAgcHVibGljIGdldCBpcE9yRG9tYWluKCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGNvbnN0IHJlcyA9ICh0aGlzLmRvbWFpbiA/IHRoaXMuZG9tYWluIDogdGhpcy5pcCkgfHwgJyc7XG4gICAgcmV0dXJuIHJlcztcblxuICB9XG5cbiAgcHVibGljIGdldCBpcE9yRmlyc3RBbGlhcygpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICBjb25zdCByZXMgPSAodGhpcy5maXJzdEFsaWFzID8gdGhpcy5maXJzdEFsaWFzIDogdGhpcy5pcCkgfHwgJyc7XG4gICAgcmV0dXJuIHJlcztcblxuICB9XG5cbiAgcHVibGljIGdldCBob3N0bmFtZSgpIHsgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IGggPSBIZWxwZXJzLnVybFBhcnNlKHRoaXMuaXBPckZpcnN0QWxpYXMsIHRydWUpO1xuICAgIHJldHVybiBoID8gaC5ob3N0bmFtZSA6IHZvaWQgMDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaG9zdG5hbWVGaXJzdEFsaWFzKCkgeyAvLyBAdHMtaWdub3JlXG4gICAgY29uc3QgaCA9IEhlbHBlcnMudXJsUGFyc2UodGhpcy5maXJzdEFsaWFzLCB0cnVlKTtcbiAgICByZXR1cm4gaCA/IGguaG9zdG5hbWUgOiB2b2lkIDA7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhvc3RuYW1lSXAoKSB7IC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCBoID0gSGVscGVycy51cmxQYXJzZSh0aGlzLmlwKTtcbiAgICByZXR1cm4gaCA/IGguaG9zdG5hbWUgOiB2b2lkIDA7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG5hbWVXaXRoSXBPckRvbWFpbigpIHtcbiAgICByZXR1cm4gY2hhbGsudW5kZXJsaW5lKGAke3RoaXMubmFtZX0gJHt0aGlzLmlwT3JEb21haW59YCk7XG4gIH1cbiAgdG9TdHJpbmcgPSAoKSA9PiB7XG4gICAgcmV0dXJuIGBbc3RyaW5nIHZlcnNpb25dICR7dGhpcy5uYW1lV2l0aElwT3JEb21haW59YFxuICB9XG59XG5cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXZwbi1zcGxpdCBsaWIvbW9kZWxzLnRzIl19
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { _ } from 'tnp-core/websql';
|
|
2
|
-
import { CLI } from 'tnp-cli/websql';
|
|
1
|
+
import { _, chalk } from 'tnp-core/websql';
|
|
3
2
|
import { Helpers } from 'tnp-helpers/websql';
|
|
4
3
|
|
|
5
4
|
class HostForServer {
|
|
@@ -19,14 +18,14 @@ class HostForServer {
|
|
|
19
18
|
}
|
|
20
19
|
return new HostForServer(dataClone);
|
|
21
20
|
}
|
|
22
|
-
if (_.isString(ipOrDomain)) {
|
|
21
|
+
if (_.isString(ipOrDomain)) { // @ts-ignore
|
|
23
22
|
const parsed = Helpers.urlParse(ipOrDomain);
|
|
24
23
|
if (parsed) {
|
|
25
24
|
ipOrDomain = parsed;
|
|
26
25
|
}
|
|
27
26
|
}
|
|
28
27
|
if (_.isObject(ipOrDomain) && (ipOrDomain instanceof URL)) {
|
|
29
|
-
ipOrDomain = ipOrDomain;
|
|
28
|
+
ipOrDomain = ipOrDomain; // @ts-ignore
|
|
30
29
|
if (Helpers.isValidIp(ipOrDomain?.host)) {
|
|
31
30
|
return new HostForServer({ ip: ipOrDomain.origin, name, disabled });
|
|
32
31
|
}
|
|
@@ -52,7 +51,7 @@ class HostForServer {
|
|
|
52
51
|
this.toString = () => {
|
|
53
52
|
return `[string version] ${this.nameWithIpOrDomain}`;
|
|
54
53
|
};
|
|
55
|
-
if (data?.ipOrDomain) {
|
|
54
|
+
if (data?.ipOrDomain) { // @ts-ignore
|
|
56
55
|
if (Helpers.isValidIp(data.ipOrDomain)) {
|
|
57
56
|
data.ip = data.ipOrDomain;
|
|
58
57
|
}
|
|
@@ -69,7 +68,7 @@ class HostForServer {
|
|
|
69
68
|
if (!data) {
|
|
70
69
|
data = {};
|
|
71
70
|
}
|
|
72
|
-
if (_.isString(data?.aliases)) {
|
|
71
|
+
if (_.isString(data?.aliases)) { // @ts-ignore
|
|
73
72
|
data.aliases = Helpers.strings.splitIfNeed(data.aliases);
|
|
74
73
|
}
|
|
75
74
|
this._data = data;
|
|
@@ -155,7 +154,7 @@ class HostForServer {
|
|
|
155
154
|
return h ? h.hostname : void 0;
|
|
156
155
|
}
|
|
157
156
|
get nameWithIpOrDomain() {
|
|
158
|
-
return
|
|
157
|
+
return chalk.underline(`${this.name} ${this.ipOrDomain}`);
|
|
159
158
|
}
|
|
160
159
|
}
|
|
161
160
|
;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vpn-split.mjs","sources":["../../../tmp-libs-for-dist-websql/vpn-split/projects/vpn-split/src/lib/models.ts","../../../tmp-libs-for-dist-websql/vpn-split/projects/vpn-split/src/lib/index.ts","../../../tmp-libs-for-dist-websql/vpn-split/projects/vpn-split/src/vpn-split.ts"],"sourcesContent":["\n\nimport { _ } from 'tnp-core/websql';\nimport { CLI } from 'tnp-cli/websql';\nimport { Helpers } from 'tnp-helpers/websql';\n\n/***\n * @deprecated\n * use normal objects\n */\nexport type EtcHosts = { [hostName in string]: HostForServer; };\n\n/***\n * @deprecated\n * use normal objects\n */\nexport type IEtcHosts = { [hostName in string]: Pick<HostForServer, 'aliases' | 'ipOrDomain'>; };\n\nexport interface OptHostForServer {\n ip?: string;\n domain?: string;\n ipOrDomain?: string;\n aliases?: string[];\n isDefault?: boolean;\n /**\n * ip from command: vpn-cli 192.168.1.1 192.168.1.2\n */\n originHostname?: string;\n name?: string;\n /**\n * if true - ip and domain will output empty string\n */\n disabled?: boolean;\n}\n\nexport class HostForServer implements OptHostForServer {\n private _data: OptHostForServer;\n\n public clone() {\n return HostForServer.From(this);\n }\n\n static From(ipOrDomain: string | URL | Pick<OptHostForServer | HostForServer, 'ipOrDomain' | 'aliases' | 'originHostname'>, name = '', disabled = false): HostForServer {\n if (!ipOrDomain) {\n return void 0;\n }\n if (_.isObject(ipOrDomain) && ipOrDomain instanceof HostForServer) {\n const dataClone = _.cloneDeep(ipOrDomain._data) as OptHostForServer;\n dataClone.name = (name && (name.trim() !== '')) ?\n name : dataClone.name;\n if (!_.isBoolean(dataClone.disabled)) {\n dataClone.disabled = disabled;\n }\n return new HostForServer(dataClone);\n }\n if (_.isString(ipOrDomain)) {\n const parsed = Helpers.urlParse(ipOrDomain);\n if (parsed) {\n ipOrDomain = parsed;\n }\n }\n\n if (_.isObject(ipOrDomain) && (ipOrDomain instanceof URL)) {\n ipOrDomain = ipOrDomain as URL;\n if (Helpers.isValidIp(ipOrDomain?.host)) {\n return new HostForServer({ ip: ipOrDomain.origin, name, disabled });\n } else {\n return new HostForServer({ domain: ipOrDomain.origin, name, disabled });\n }\n } else {\n if (_.isString(ipOrDomain)) {\n return new HostForServer({ ipOrDomain, name, disabled });\n } else {\n (ipOrDomain as OptHostForServer).name = (name && (name.trim() !== '')) ?\n name : (ipOrDomain as OptHostForServer).name;\n if (!_.isBoolean((ipOrDomain as OptHostForServer).disabled)) {\n (ipOrDomain as OptHostForServer).disabled = disabled;\n }\n return new HostForServer(ipOrDomain as any);\n }\n\n }\n }\n constructor(data: OptHostForServer) {\n if (data?.ipOrDomain) {\n if (Helpers.isValidIp(data.ipOrDomain)) {\n data.ip = data.ipOrDomain;\n } else {\n data.domain = data.ipOrDomain;\n }\n }\n if (data && !data.ip) {\n data.ip = '';\n }\n if (data && !data.domain) {\n data.domain = '';\n }\n if (!data) {\n data = {};\n }\n if (_.isString(data?.aliases)) {\n data.aliases = Helpers.strings.splitIfNeed(data.aliases);\n }\n this._data = data;\n }\n public get ip() {\n if (this.disabled) {\n return '';\n }\n return this._data.ip;\n }\n public set ip(newIpAddress: string) {\n this._data.ip = newIpAddress;\n }\n public get domain() {\n if (this.disabled) {\n return '';\n }\n return this._data.domain;\n }\n\n public get aliases(): string[] {\n if (this.disabled) {\n return [];\n }\n if (_.isString(this._data.aliases)) {\n return this._data.aliases.split(' ');\n }\n if (!_.isArray(this._data.aliases)) {\n return [];\n }\n return this._data.aliases;\n }\n\n public get firstAlias() {\n return _.first(this.aliases);\n }\n\n public get name() {\n return this._data.name;\n }\n public set name(v) {\n this._data.name = v;\n }\n\n public get originHostname() {\n return this._data.originHostname;\n }\n public set originHostname(v) {\n this._data.originHostname = v;\n }\n\n public get disabled() {\n return this._data.disabled;\n }\n public get isDefault() {\n return this._data.isDefault;\n }\n public get identifier() {\n return _.kebabCase(this._data.name);\n }\n public set disabled(v) {\n this._data.disabled = v;\n }\n public get ipOrDomain() {\n if (this.disabled) {\n return '';\n }\n const res = (this.domain ? this.domain : this.ip) || '';\n return res;\n\n }\n\n public get ipOrFirstAlias() {\n if (this.disabled) {\n return '';\n }\n const res = (this.firstAlias ? this.firstAlias : this.ip) || '';\n return res;\n\n }\n\n public get hostname() {\n const h = Helpers.urlParse(this.ipOrFirstAlias, true);\n return h ? h.hostname : void 0;\n }\n\n public get hostnameFirstAlias() {\n const h = Helpers.urlParse(this.firstAlias, true);\n return h ? h.hostname : void 0;\n }\n\n public get hostnameIp() {\n const h = Helpers.urlParse(this.ip);\n return h ? h.hostname : void 0;\n }\n\n public get nameWithIpOrDomain() {\n return CLI.chalk.underline(`${this.name} ${this.ipOrDomain}`);\n }\n toString = () => {\n return `[string version] ${this.nameWithIpOrDomain}`\n }\n}\n\n\n ;({}); // @--end-of-file-for-module=vpn-split lib/models.ts","\n\nexport * from './models';\n/* */\n/* */\n \n\n ;({}); // @--end-of-file-for-module=vpn-split lib/index.ts","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"vpn-split.mjs","sources":["../../../tmp-libs-for-dist-websql/vpn-split/projects/vpn-split/src/lib/models.ts","../../../tmp-libs-for-dist-websql/vpn-split/projects/vpn-split/src/lib/index.ts","../../../tmp-libs-for-dist-websql/vpn-split/projects/vpn-split/src/vpn-split.ts"],"sourcesContent":["\n\nimport { _, chalk } from 'tnp-core/websql';\nimport { Helpers } from 'tnp-helpers/websql';\n\n/***\n * @deprecated\n * use normal objects\n */\nexport type EtcHosts = { [hostName in string]: HostForServer; };\n\n/***\n * @deprecated\n * use normal objects\n */\nexport type IEtcHosts = { [hostName in string]: Pick<HostForServer, 'aliases' | 'ipOrDomain'>; };\n\nexport interface OptHostForServer {\n ip?: string;\n domain?: string;\n ipOrDomain?: string;\n aliases?: string[];\n isDefault?: boolean;\n /**\n * ip from command: vpn-cli 192.168.1.1 192.168.1.2\n */\n originHostname?: string;\n name?: string;\n /**\n * if true - ip and domain will output empty string\n */\n disabled?: boolean;\n}\n\nexport class HostForServer implements OptHostForServer {\n private _data: OptHostForServer;\n\n public clone() {\n return HostForServer.From(this);\n }\n\n static From(ipOrDomain: string | URL | Pick<OptHostForServer | HostForServer, 'ipOrDomain' | 'aliases' | 'originHostname'>, name = '', disabled = false): HostForServer {\n if (!ipOrDomain) {\n return void 0;\n }\n if (_.isObject(ipOrDomain) && ipOrDomain instanceof HostForServer) {\n const dataClone = _.cloneDeep(ipOrDomain._data) as OptHostForServer;\n dataClone.name = (name && (name.trim() !== '')) ?\n name : dataClone.name;\n if (!_.isBoolean(dataClone.disabled)) {\n dataClone.disabled = disabled;\n }\n return new HostForServer(dataClone);\n }\n if (_.isString(ipOrDomain)) { // @ts-ignore\n const parsed = Helpers.urlParse(ipOrDomain);\n if (parsed) {\n ipOrDomain = parsed;\n }\n }\n\n if (_.isObject(ipOrDomain) && (ipOrDomain instanceof URL)) {\n ipOrDomain = ipOrDomain as URL; // @ts-ignore\n if (Helpers.isValidIp(ipOrDomain?.host)) {\n return new HostForServer({ ip: ipOrDomain.origin, name, disabled });\n } else {\n return new HostForServer({ domain: ipOrDomain.origin, name, disabled });\n }\n } else {\n if (_.isString(ipOrDomain)) {\n return new HostForServer({ ipOrDomain, name, disabled });\n } else {\n (ipOrDomain as OptHostForServer).name = (name && (name.trim() !== '')) ?\n name : (ipOrDomain as OptHostForServer).name;\n if (!_.isBoolean((ipOrDomain as OptHostForServer).disabled)) {\n (ipOrDomain as OptHostForServer).disabled = disabled;\n }\n return new HostForServer(ipOrDomain as any);\n }\n\n }\n }\n constructor(data: OptHostForServer) {\n if (data?.ipOrDomain) { // @ts-ignore\n if (Helpers.isValidIp(data.ipOrDomain)) {\n data.ip = data.ipOrDomain;\n } else {\n data.domain = data.ipOrDomain;\n }\n }\n if (data && !data.ip) {\n data.ip = '';\n }\n if (data && !data.domain) {\n data.domain = '';\n }\n if (!data) {\n data = {};\n }\n if (_.isString(data?.aliases)) { // @ts-ignore\n data.aliases = Helpers.strings.splitIfNeed(data.aliases);\n }\n this._data = data;\n }\n public get ip() {\n if (this.disabled) {\n return '';\n }\n return this._data.ip;\n }\n public set ip(newIpAddress: string) {\n this._data.ip = newIpAddress;\n }\n public get domain() {\n if (this.disabled) {\n return '';\n }\n return this._data.domain;\n }\n\n public get aliases(): string[] {\n if (this.disabled) {\n return [];\n }\n if (_.isString(this._data.aliases)) {\n return this._data.aliases.split(' ');\n }\n if (!_.isArray(this._data.aliases)) {\n return [];\n }\n return this._data.aliases;\n }\n\n public get firstAlias() {\n return _.first(this.aliases);\n }\n\n public get name() {\n return this._data.name;\n }\n public set name(v) {\n this._data.name = v;\n }\n\n public get originHostname() {\n return this._data.originHostname;\n }\n public set originHostname(v) {\n this._data.originHostname = v;\n }\n\n public get disabled() {\n return this._data.disabled;\n }\n public get isDefault() {\n return this._data.isDefault;\n }\n public get identifier() {\n return _.kebabCase(this._data.name);\n }\n public set disabled(v) {\n this._data.disabled = v;\n }\n public get ipOrDomain() {\n if (this.disabled) {\n return '';\n }\n const res = (this.domain ? this.domain : this.ip) || '';\n return res;\n\n }\n\n public get ipOrFirstAlias() {\n if (this.disabled) {\n return '';\n }\n const res = (this.firstAlias ? this.firstAlias : this.ip) || '';\n return res;\n\n }\n\n public get hostname() { // @ts-ignore\n const h = Helpers.urlParse(this.ipOrFirstAlias, true);\n return h ? h.hostname : void 0;\n }\n\n public get hostnameFirstAlias() { // @ts-ignore\n const h = Helpers.urlParse(this.firstAlias, true);\n return h ? h.hostname : void 0;\n }\n\n public get hostnameIp() { // @ts-ignore\n const h = Helpers.urlParse(this.ip);\n return h ? h.hostname : void 0;\n }\n\n public get nameWithIpOrDomain() {\n return chalk.underline(`${this.name} ${this.ipOrDomain}`);\n }\n toString = () => {\n return `[string version] ${this.nameWithIpOrDomain}`\n }\n}\n\n\n ;({}); // @--end-of-file-for-module=vpn-split lib/models.ts","\n\nexport * from './models';\n/* */\n/* */\n \n\n ;({}); // @--end-of-file-for-module=vpn-split lib/index.ts","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|