vpn-split 16.5.5 → 16.5.7

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.
@@ -38,7 +38,7 @@
38
38
  "dependencies": {
39
39
  "hostile": "1.3.3",
40
40
  "is-elevated": "3.0.0",
41
- "tnp-db": "~16.5.4"
41
+ "tnp-db": "~16.5.6"
42
42
  },
43
43
  "name": "vpn-split",
44
44
  "license": "MIT",
@@ -47,8 +47,8 @@
47
47
  "vpn-split": "bin/vpn-split",
48
48
  "vpn-split-debug": "bin/vpn-split-debug"
49
49
  },
50
- "version": "16.5.5",
51
- "lastBuildTagHash": "79b1a386027aaa657c818997ceb68ead4ba7afba",
50
+ "version": "16.5.7",
51
+ "lastBuildTagHash": "f787bf1a3a020ba97e6c2d39e19c4ebcad00cfb8",
52
52
  "devDependencies": {
53
53
  "@angular-devkit/build-angular": "~16.0.5",
54
54
  "@angular-devkit/core": "~16.0.5",
@@ -130,9 +130,9 @@
130
130
  "angular-material-css-vars": "5.0.2",
131
131
  "angular-resize-event": "3.2.0",
132
132
  "animate.css": "4.1.1 ",
133
- "any-project-cli": "~16.5.4",
133
+ "any-project-cli": "~16.5.6",
134
134
  "axios": "1.3.5",
135
- "background-worker-process": "~16.5.4",
135
+ "background-worker-process": "~16.5.6",
136
136
  "base32": "0.0.7",
137
137
  "bcryptjs": "2.4.3",
138
138
  "better-sqlite3": "7.6.2",
@@ -179,13 +179,13 @@
179
179
  "file-saver": "2.0.5",
180
180
  "file-type": "18.5.0",
181
181
  "firedev": "^16",
182
- "firedev-crud": "~16.5.4",
183
- "firedev-crud-deamon": "~16.5.4",
184
- "firedev-ports": "~16.5.4",
185
- "firedev-storage": "~16.5.4",
186
- "firedev-type-sql": "~16.5.4",
187
- "firedev-typeorm": "~16.5.5",
188
- "firedev-ui": "~16.5.4",
182
+ "firedev-crud": "~16.5.6",
183
+ "firedev-crud-deamon": "~16.5.6",
184
+ "firedev-ports": "~16.5.6",
185
+ "firedev-storage": "~16.5.6",
186
+ "firedev-type-sql": "~16.5.6",
187
+ "firedev-typeorm": "~16.5.7",
188
+ "firedev-ui": "~16.5.6",
189
189
  "fkill": "6.1.0",
190
190
  "font-awesome": "4.7.0",
191
191
  "form-data": "4.0.0",
@@ -201,10 +201,10 @@
201
201
  "image-focus": "1.2.1",
202
202
  "immer": "10.0.2",
203
203
  "immutable": "4.3.0",
204
- "incremental-compiler": "~16.5.14",
204
+ "incremental-compiler": "~16.5.16",
205
205
  "inquirer": "7.3.3",
206
206
  "inquirer-autocomplete-prompt": "1.3.0",
207
- "isomorphic-region-loader": "~16.5.4",
207
+ "isomorphic-region-loader": "~16.5.6",
208
208
  "istanbul-instrumenter-loader": "2.0.0",
209
209
  "jest": "29.5.0",
210
210
  "jest-date-mock": "1.0.8",
@@ -215,8 +215,8 @@
215
215
  "joi": "17.9.2",
216
216
  "jscodeshift": "0.6.3",
217
217
  "json-stringify-safe": "5.0.1",
218
- "json10": "~16.5.4",
219
- "json10-writer": "~16.5.4",
218
+ "json10": "~16.5.6",
219
+ "json10-writer": "~16.5.6",
220
220
  "json5": "2.2.1",
221
221
  "json5-writer": "0.2.0",
222
222
  "jszip": "3.10.1",
@@ -225,23 +225,23 @@
225
225
  "localforage": "1.10.0",
226
226
  "lockfile": "1.0.4",
227
227
  "lodash": "4.17.20",
228
- "lodash-walk-object": "~16.5.4",
228
+ "lodash-walk-object": "~16.5.6",
229
229
  "lowdb": "1.0.0",
230
- "magic-renamer": "~16.5.4",
230
+ "magic-renamer": "~16.5.6",
231
231
  "material-design-icons": "3.0.1",
232
232
  "method-override": "2.3.10",
233
233
  "minimist": "1.2.0",
234
234
  "mkdirp": "0.5.1",
235
235
  "mocha": "10.2.0",
236
236
  "moment": "2.29.3",
237
- "morphi": "~16.5.4",
237
+ "morphi": "~16.5.6",
238
238
  "ng-for-track-by-property": "16.0.1",
239
239
  "ng-in-viewport": "15.0.2",
240
240
  "ng-lock": "16.0.1",
241
241
  "ng-packagr": "16.0.1",
242
- "ng-talkback": "~16.5.4",
243
- "ng2-logger": "~16.5.4",
244
- "ng2-rest": "~16.5.4",
242
+ "ng-talkback": "~16.5.6",
243
+ "ng2-logger": "~16.5.6",
244
+ "ng2-rest": "~16.5.6",
245
245
  "ngx-ace-wrapper": "14.0.0",
246
246
  "ngx-editor": "15.3.0",
247
247
  "ngx-highlightjs": "9.0.0",
@@ -254,7 +254,7 @@
254
254
  "ngx-scrolltop": "6.0.0",
255
255
  "ngx-store": "3.1.1",
256
256
  "ngx-typed-js": "2.1.1",
257
- "node-cli-tester": "~16.5.4",
257
+ "node-cli-tester": "~16.5.6",
258
258
  "node-localstorage": "2.1.6",
259
259
  "node-notifier": "6.0.0",
260
260
  "node-polyfill-webpack-plugin": "2.0.1",
@@ -281,7 +281,7 @@
281
281
  "q": "1.5.1",
282
282
  "rallax.js": "2.0.4",
283
283
  "randomcolor": "0.5.3",
284
- "record-replay-req-res-scenario": "~16.5.4",
284
+ "record-replay-req-res-scenario": "~16.5.6",
285
285
  "reflect-metadata": "0.1.10",
286
286
  "rimraf": "2.6.2",
287
287
  "rxjs": "~7.8.0",
@@ -292,7 +292,7 @@
292
292
  "socket.io": "2.4.1",
293
293
  "sort-package-json": "1.11.0",
294
294
  "sql.js": "1.8.0",
295
- "static-columns": "~16.5.4",
295
+ "static-columns": "~16.5.7",
296
296
  "string-similarity": "4.0.2",
297
297
  "sudo-block": "3.0.0",
298
298
  "supertest": "6.3.3",
@@ -300,11 +300,11 @@
300
300
  "systeminformation": "3.45.7",
301
301
  "task.js": "0.1.5",
302
302
  "threads": "1.7.0",
303
- "tnp-cli": "~16.5.4",
304
- "tnp-config": "~16.5.4",
305
- "tnp-core": "~16.5.9",
306
- "tnp-helpers": "~16.5.4",
307
- "tnp-models": "~16.5.4",
303
+ "tnp-cli": "~16.5.6",
304
+ "tnp-config": "~16.5.6",
305
+ "tnp-core": "~16.5.11",
306
+ "tnp-helpers": "~16.5.7",
307
+ "tnp-models": "~16.5.6",
308
308
  "ts-debug": "1.3.0",
309
309
  "ts-loader": "2.3.1",
310
310
  "ts-node": "10.9.1",
@@ -313,29 +313,29 @@
313
313
  "turndown": "7.1.2",
314
314
  "typeorm": "~0.3.10",
315
315
  "typescript": "~5.0.2",
316
- "typescript-class-helpers": "~16.5.4",
316
+ "typescript-class-helpers": "~16.5.6",
317
317
  "typescript-formatter": "~7.2.2",
318
318
  "underscore": "1.9.1",
319
319
  "uuid": "8.3.2",
320
320
  "validator": "9.2.0",
321
321
  "video.js": "8.3.0",
322
- "vpn-split": "~16.5.4",
322
+ "vpn-split": "~16.5.6",
323
323
  "watch": "1.0.2",
324
324
  "yup": "1.1.1",
325
325
  "zone.js": "~0.13.0"
326
326
  }
327
327
  },
328
328
  "build": {
329
- "number": 166,
330
- "date": "2023-12-28T19:01:04.000Z",
331
- "hash": "969143d7b86dd1b2dc5dadad8bfcf40b3daccb1e",
329
+ "number": 173,
330
+ "date": "2024-01-07T19:13:08.000Z",
331
+ "hash": "dfb31c7f8625f447e94de04f342d3b0e50b2aa2c",
332
332
  "options": {}
333
333
  },
334
334
  "currentProjectName": "vpn-split",
335
335
  "currentProjectGenericName": "vpn-split",
336
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
337
  "currentProjectType": "isomorphic-lib",
338
- "currentFrameworkVersion": "16.5.13",
338
+ "currentFrameworkVersion": "16.5.16",
339
339
  "isStandaloneProject": true,
340
340
  "isSmartContainer": false,
341
341
  "frameworks": [
@@ -1,8 +1,6 @@
1
+ export * from './models';
1
2
  /* */
2
3
  /* */
3
- /* */
4
- export function helloWorld() {
5
- }
6
4
  ;
7
5
  ({}); // @--end-of-file-for-module=vpn-split lib/index.ts
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlLXdlYnNxbC92cG4tc3BsaXQvcHJvamVjdHMvdnBuLXNwbGl0L3NyYy9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBSUwsTUFBTSxVQUFVLFVBQVU7QUFFMUIsQ0FBQztBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsbURBQW1EIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cblxuZXhwb3J0IGZ1bmN0aW9uIGhlbGxvV29ybGQoKSB7XG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXZwbi1zcGxpdCBsaWIvaW5kZXgudHMiXX0=
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItYnVuZGxlLXdlYnNxbC92cG4tc3BsaXQvcHJvamVjdHMvdnBuLXNwbGl0L3NyYy9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsY0FBYyxVQUFVLENBQUM7QUFDekIsS0FBSztBQUNMLEtBQUs7QUFHSixDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLG1EQUFtRCIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5leHBvcnQgKiBmcm9tICcuL21vZGVscyc7XG4vKiAqL1xuLyogKi9cbiAgXG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT12cG4tc3BsaXQgbGliL2luZGV4LnRzIl19
@@ -0,0 +1,162 @@
1
+ import { _ } from 'tnp-core/websql';
2
+ import { CLI } from 'tnp-cli/websql';
3
+ import { Helpers } from 'tnp-helpers/websql';
4
+ export class HostForServer {
5
+ clone() {
6
+ return HostForServer.From(this);
7
+ }
8
+ static From(ipOrDomain, name = '', disabled = false) {
9
+ if (!ipOrDomain) {
10
+ return void 0;
11
+ }
12
+ if (_.isObject(ipOrDomain) && ipOrDomain instanceof HostForServer) {
13
+ const dataClone = _.cloneDeep(ipOrDomain._data);
14
+ dataClone.name = (name && (name.trim() !== '')) ?
15
+ name : dataClone.name;
16
+ if (!_.isBoolean(dataClone.disabled)) {
17
+ dataClone.disabled = disabled;
18
+ }
19
+ return new HostForServer(dataClone);
20
+ }
21
+ if (_.isString(ipOrDomain)) {
22
+ const parsed = Helpers.urlParse(ipOrDomain);
23
+ if (parsed) {
24
+ ipOrDomain = parsed;
25
+ }
26
+ }
27
+ if (_.isObject(ipOrDomain) && (ipOrDomain instanceof URL)) {
28
+ ipOrDomain = ipOrDomain;
29
+ if (Helpers.isValidIp(ipOrDomain?.host)) {
30
+ return new HostForServer({ ip: ipOrDomain.origin, name, disabled });
31
+ }
32
+ else {
33
+ return new HostForServer({ domain: ipOrDomain.origin, name, disabled });
34
+ }
35
+ }
36
+ else {
37
+ if (_.isString(ipOrDomain)) {
38
+ return new HostForServer({ ipOrDomain, name, disabled });
39
+ }
40
+ else {
41
+ ipOrDomain.name = (name && (name.trim() !== '')) ?
42
+ name : ipOrDomain.name;
43
+ if (!_.isBoolean(ipOrDomain.disabled)) {
44
+ ipOrDomain.disabled = disabled;
45
+ }
46
+ return new HostForServer(ipOrDomain);
47
+ }
48
+ }
49
+ }
50
+ constructor(data) {
51
+ this.toString = () => {
52
+ return `[string version] ${this.nameWithIpOrDomain}`;
53
+ };
54
+ if (data?.ipOrDomain) {
55
+ if (Helpers.isValidIp(data.ipOrDomain)) {
56
+ data.ip = data.ipOrDomain;
57
+ }
58
+ else {
59
+ data.domain = data.ipOrDomain;
60
+ }
61
+ }
62
+ if (data && !data.ip) {
63
+ data.ip = '';
64
+ }
65
+ if (data && !data.domain) {
66
+ data.domain = '';
67
+ }
68
+ if (!data) {
69
+ data = {};
70
+ }
71
+ if (_.isString(data?.aliases)) {
72
+ data.aliases = Helpers.strings.splitIfNeed(data.aliases);
73
+ }
74
+ this._data = data;
75
+ }
76
+ get ip() {
77
+ if (this.disabled) {
78
+ return '';
79
+ }
80
+ return this._data.ip;
81
+ }
82
+ set ip(newIpAddress) {
83
+ this._data.ip = newIpAddress;
84
+ }
85
+ get domain() {
86
+ if (this.disabled) {
87
+ return '';
88
+ }
89
+ return this._data.domain;
90
+ }
91
+ get aliases() {
92
+ if (this.disabled) {
93
+ return [];
94
+ }
95
+ if (_.isString(this._data.aliases)) {
96
+ return this._data.aliases.split(' ');
97
+ }
98
+ if (!_.isArray(this._data.aliases)) {
99
+ return [];
100
+ }
101
+ return this._data.aliases;
102
+ }
103
+ get firstAlias() {
104
+ return _.first(this.aliases);
105
+ }
106
+ get name() {
107
+ return this._data.name;
108
+ }
109
+ set name(v) {
110
+ this._data.name = v;
111
+ }
112
+ get originHostname() {
113
+ return this._data.originHostname;
114
+ }
115
+ set originHostname(v) {
116
+ this._data.originHostname = v;
117
+ }
118
+ get disabled() {
119
+ return this._data.disabled;
120
+ }
121
+ get isDefault() {
122
+ return this._data.isDefault;
123
+ }
124
+ get identifier() {
125
+ return _.kebabCase(this._data.name);
126
+ }
127
+ set disabled(v) {
128
+ this._data.disabled = v;
129
+ }
130
+ get ipOrDomain() {
131
+ if (this.disabled) {
132
+ return '';
133
+ }
134
+ const res = (this.domain ? this.domain : this.ip) || '';
135
+ return res;
136
+ }
137
+ get ipOrFirstAlias() {
138
+ if (this.disabled) {
139
+ return '';
140
+ }
141
+ const res = (this.firstAlias ? this.firstAlias : this.ip) || '';
142
+ return res;
143
+ }
144
+ get hostname() {
145
+ const h = Helpers.urlParse(this.ipOrFirstAlias, true);
146
+ return h ? h.hostname : void 0;
147
+ }
148
+ get hostnameFirstAlias() {
149
+ const h = Helpers.urlParse(this.firstAlias, true);
150
+ return h ? h.hostname : void 0;
151
+ }
152
+ get hostnameIp() {
153
+ const h = Helpers.urlParse(this.ip);
154
+ return h ? h.hostname : void 0;
155
+ }
156
+ get nameWithIpOrDomain() {
157
+ return CLI.chalk.underline(`${this.name} ${this.ipOrDomain}`);
158
+ }
159
+ }
160
+ ;
161
+ ({}); // @--end-of-file-for-module=vpn-split lib/models.ts
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWJ1bmRsZS13ZWJzcWwvdnBuLXNwbGl0L3Byb2plY3RzL3Zwbi1zcGxpdC9zcmMvbGliL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQStCN0MsTUFBTSxPQUFPLGFBQWE7SUFHakIsS0FBSztRQUNWLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUE4RyxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsUUFBUSxHQUFHLEtBQUs7UUFDckosSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNmLE9BQU8sS0FBSyxDQUFDLENBQUM7U0FDZjtRQUNELElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxVQUFVLFlBQVksYUFBYSxFQUFFO1lBQ2pFLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBcUIsQ0FBQztZQUNwRSxTQUFTLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDL0MsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDcEMsU0FBUyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7YUFDL0I7WUFDRCxP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LENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN0RCxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELElBQVcsa0JBQWtCO1FBQzNCLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNsRCxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNuQixNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELElBQVcsa0JBQWtCO1FBQzNCLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7Q0FJRjtBQUdBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsb0RBQW9EIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0IHsgQ0xJIH0gZnJvbSAndG5wLWNsaS93ZWJzcWwnO1xuaW1wb3J0IHsgSGVscGVycyB9IGZyb20gJ3RucC1oZWxwZXJzL3dlYnNxbCc7XG5cbi8qKipcbiAqIEBkZXByZWNhdGVkXG4gKiB1c2Ugbm9ybWFsIG9iamVjdHNcbiAqL1xuZXhwb3J0IHR5cGUgRXRjSG9zdHMgPSB7IFtob3N0TmFtZSBpbiBzdHJpbmddOiBIb3N0Rm9yU2VydmVyOyB9O1xuXG4vKioqXG4gKiBAZGVwcmVjYXRlZFxuICogdXNlIG5vcm1hbCBvYmplY3RzXG4gKi9cbmV4cG9ydCB0eXBlIElFdGNIb3N0cyA9IHsgW2hvc3ROYW1lIGluIHN0cmluZ106IFBpY2s8SG9zdEZvclNlcnZlciwgJ2FsaWFzZXMnIHwgJ2lwT3JEb21haW4nPjsgfTtcblxuZXhwb3J0IGludGVyZmFjZSBPcHRIb3N0Rm9yU2VydmVyIHtcbiAgaXA/OiBzdHJpbmc7XG4gIGRvbWFpbj86IHN0cmluZztcbiAgaXBPckRvbWFpbj86IHN0cmluZztcbiAgYWxpYXNlcz86IHN0cmluZ1tdO1xuICBpc0RlZmF1bHQ/OiBib29sZWFuO1xuICAvKipcbiAgICogaXAgZnJvbSBjb21tYW5kOiB2cG4tY2xpIDE5Mi4xNjguMS4xIDE5Mi4xNjguMS4yXG4gICAqL1xuICBvcmlnaW5Ib3N0bmFtZT86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIGlmIHRydWUgLSBpcCBhbmQgZG9tYWluIHdpbGwgb3V0cHV0IGVtcHR5IHN0cmluZ1xuICAgKi9cbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgSG9zdEZvclNlcnZlciBpbXBsZW1lbnRzIE9wdEhvc3RGb3JTZXJ2ZXIge1xuICBwcml2YXRlIF9kYXRhOiBPcHRIb3N0Rm9yU2VydmVyO1xuXG4gIHB1YmxpYyBjbG9uZSgpIHtcbiAgICByZXR1cm4gSG9zdEZvclNlcnZlci5Gcm9tKHRoaXMpO1xuICB9XG5cbiAgc3RhdGljIEZyb20oaXBPckRvbWFpbjogc3RyaW5nIHwgVVJMIHwgUGljazxPcHRIb3N0Rm9yU2VydmVyIHwgSG9zdEZvclNlcnZlciwgJ2lwT3JEb21haW4nIHwgJ2FsaWFzZXMnIHwgJ29yaWdpbkhvc3RuYW1lJz4sIG5hbWUgPSAnJywgZGlzYWJsZWQgPSBmYWxzZSk6IEhvc3RGb3JTZXJ2ZXIge1xuICAgIGlmICghaXBPckRvbWFpbikge1xuICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICB9XG4gICAgaWYgKF8uaXNPYmplY3QoaXBPckRvbWFpbikgJiYgaXBPckRvbWFpbiBpbnN0YW5jZW9mIEhvc3RGb3JTZXJ2ZXIpIHtcbiAgICAgIGNvbnN0IGRhdGFDbG9uZSA9IF8uY2xvbmVEZWVwKGlwT3JEb21haW4uX2RhdGEpIGFzIE9wdEhvc3RGb3JTZXJ2ZXI7XG4gICAgICBkYXRhQ2xvbmUubmFtZSA9IChuYW1lICYmIChuYW1lLnRyaW0oKSAhPT0gJycpKSA/XG4gICAgICAgIG5hbWUgOiBkYXRhQ2xvbmUubmFtZTtcbiAgICAgIGlmICghXy5pc0Jvb2xlYW4oZGF0YUNsb25lLmRpc2FibGVkKSkge1xuICAgICAgICBkYXRhQ2xvbmUuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXcgSG9zdEZvclNlcnZlcihkYXRhQ2xvbmUpO1xuICAgIH1cbiAgICBpZiAoXy5pc1N0cmluZyhpcE9yRG9tYWluKSkge1xuICAgICAgY29uc3QgcGFyc2VkID0gSGVscGVycy51cmxQYXJzZShpcE9yRG9tYWluKTtcbiAgICAgIGlmIChwYXJzZWQpIHtcbiAgICAgICAgaXBPckRvbWFpbiA9IHBhcnNlZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoXy5pc09iamVjdChpcE9yRG9tYWluKSAmJiAoaXBPckRvbWFpbiBpbnN0YW5jZW9mIFVSTCkpIHtcbiAgICAgIGlwT3JEb21haW4gPSBpcE9yRG9tYWluIGFzIFVSTDtcbiAgICAgIGlmIChIZWxwZXJzLmlzVmFsaWRJcChpcE9yRG9tYWluPy5ob3N0KSkge1xuICAgICAgICByZXR1cm4gbmV3IEhvc3RGb3JTZXJ2ZXIoeyBpcDogaXBPckRvbWFpbi5vcmlnaW4sIG5hbWUsIGRpc2FibGVkIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBIb3N0Rm9yU2VydmVyKHsgZG9tYWluOiBpcE9yRG9tYWluLm9yaWdpbiwgbmFtZSwgZGlzYWJsZWQgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChfLmlzU3RyaW5nKGlwT3JEb21haW4pKSB7XG4gICAgICAgIHJldHVybiBuZXcgSG9zdEZvclNlcnZlcih7IGlwT3JEb21haW4sIG5hbWUsIGRpc2FibGVkIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgKGlwT3JEb21haW4gYXMgT3B0SG9zdEZvclNlcnZlcikubmFtZSA9IChuYW1lICYmIChuYW1lLnRyaW0oKSAhPT0gJycpKSA/XG4gICAgICAgICAgbmFtZSA6IChpcE9yRG9tYWluIGFzIE9wdEhvc3RGb3JTZXJ2ZXIpLm5hbWU7XG4gICAgICAgIGlmICghXy5pc0Jvb2xlYW4oKGlwT3JEb21haW4gYXMgT3B0SG9zdEZvclNlcnZlcikuZGlzYWJsZWQpKSB7XG4gICAgICAgICAgKGlwT3JEb21haW4gYXMgT3B0SG9zdEZvclNlcnZlcikuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IEhvc3RGb3JTZXJ2ZXIoaXBPckRvbWFpbiBhcyBhbnkpO1xuICAgICAgfVxuXG4gICAgfVxuICB9XG4gIGNvbnN0cnVjdG9yKGRhdGE6IE9wdEhvc3RGb3JTZXJ2ZXIpIHtcbiAgICBpZiAoZGF0YT8uaXBPckRvbWFpbikge1xuICAgICAgaWYgKEhlbHBlcnMuaXNWYWxpZElwKGRhdGEuaXBPckRvbWFpbikpIHtcbiAgICAgICAgZGF0YS5pcCA9IGRhdGEuaXBPckRvbWFpbjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRhdGEuZG9tYWluID0gZGF0YS5pcE9yRG9tYWluO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZGF0YSAmJiAhZGF0YS5pcCkge1xuICAgICAgZGF0YS5pcCA9ICcnO1xuICAgIH1cbiAgICBpZiAoZGF0YSAmJiAhZGF0YS5kb21haW4pIHtcbiAgICAgIGRhdGEuZG9tYWluID0gJyc7XG4gICAgfVxuICAgIGlmICghZGF0YSkge1xuICAgICAgZGF0YSA9IHt9O1xuICAgIH1cbiAgICBpZiAoXy5pc1N0cmluZyhkYXRhPy5hbGlhc2VzKSkge1xuICAgICAgZGF0YS5hbGlhc2VzID0gSGVscGVycy5zdHJpbmdzLnNwbGl0SWZOZWVkKGRhdGEuYWxpYXNlcyk7XG4gICAgfVxuICAgIHRoaXMuX2RhdGEgPSBkYXRhO1xuICB9XG4gIHB1YmxpYyBnZXQgaXAoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2RhdGEuaXA7XG4gIH1cbiAgcHVibGljIHNldCBpcChuZXdJcEFkZHJlc3M6IHN0cmluZykge1xuICAgIHRoaXMuX2RhdGEuaXAgPSBuZXdJcEFkZHJlc3M7XG4gIH1cbiAgcHVibGljIGdldCBkb21haW4oKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2RhdGEuZG9tYWluO1xuICB9XG5cbiAgcHVibGljIGdldCBhbGlhc2VzKCk6IHN0cmluZ1tdIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICBpZiAoXy5pc1N0cmluZyh0aGlzLl9kYXRhLmFsaWFzZXMpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZGF0YS5hbGlhc2VzLnNwbGl0KCcgJyk7XG4gICAgfVxuICAgIGlmICghXy5pc0FycmF5KHRoaXMuX2RhdGEuYWxpYXNlcykpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2RhdGEuYWxpYXNlcztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZmlyc3RBbGlhcygpIHtcbiAgICByZXR1cm4gXy5maXJzdCh0aGlzLmFsaWFzZXMpO1xuICB9XG5cbiAgcHVibGljIGdldCBuYW1lKCkge1xuICAgIHJldHVybiB0aGlzLl9kYXRhLm5hbWU7XG4gIH1cbiAgcHVibGljIHNldCBuYW1lKHYpIHtcbiAgICB0aGlzLl9kYXRhLm5hbWUgPSB2O1xuICB9XG5cbiAgcHVibGljIGdldCBvcmlnaW5Ib3N0bmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YS5vcmlnaW5Ib3N0bmFtZTtcbiAgfVxuICBwdWJsaWMgc2V0IG9yaWdpbkhvc3RuYW1lKHYpIHtcbiAgICB0aGlzLl9kYXRhLm9yaWdpbkhvc3RuYW1lID0gdjtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGEuZGlzYWJsZWQ7XG4gIH1cbiAgcHVibGljIGdldCBpc0RlZmF1bHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGEuaXNEZWZhdWx0O1xuICB9XG4gIHB1YmxpYyBnZXQgaWRlbnRpZmllcigpIHtcbiAgICByZXR1cm4gXy5rZWJhYkNhc2UodGhpcy5fZGF0YS5uYW1lKTtcbiAgfVxuICBwdWJsaWMgc2V0IGRpc2FibGVkKHYpIHtcbiAgICB0aGlzLl9kYXRhLmRpc2FibGVkID0gdjtcbiAgfVxuICBwdWJsaWMgZ2V0IGlwT3JEb21haW4oKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgY29uc3QgcmVzID0gKHRoaXMuZG9tYWluID8gdGhpcy5kb21haW4gOiB0aGlzLmlwKSB8fCAnJztcbiAgICByZXR1cm4gcmVzO1xuXG4gIH1cblxuICBwdWJsaWMgZ2V0IGlwT3JGaXJzdEFsaWFzKCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGNvbnN0IHJlcyA9ICh0aGlzLmZpcnN0QWxpYXMgPyB0aGlzLmZpcnN0QWxpYXMgOiB0aGlzLmlwKSB8fCAnJztcbiAgICByZXR1cm4gcmVzO1xuXG4gIH1cblxuICBwdWJsaWMgZ2V0IGhvc3RuYW1lKCkge1xuICAgIGNvbnN0IGggPSBIZWxwZXJzLnVybFBhcnNlKHRoaXMuaXBPckZpcnN0QWxpYXMsIHRydWUpO1xuICAgIHJldHVybiBoID8gaC5ob3N0bmFtZSA6IHZvaWQgMDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaG9zdG5hbWVGaXJzdEFsaWFzKCkge1xuICAgIGNvbnN0IGggPSBIZWxwZXJzLnVybFBhcnNlKHRoaXMuZmlyc3RBbGlhcywgdHJ1ZSk7XG4gICAgcmV0dXJuIGggPyBoLmhvc3RuYW1lIDogdm9pZCAwO1xuICB9XG5cbiAgcHVibGljIGdldCBob3N0bmFtZUlwKCkge1xuICAgIGNvbnN0IGggPSBIZWxwZXJzLnVybFBhcnNlKHRoaXMuaXApO1xuICAgIHJldHVybiBoID8gaC5ob3N0bmFtZSA6IHZvaWQgMDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbmFtZVdpdGhJcE9yRG9tYWluKCkge1xuICAgIHJldHVybiBDTEkuY2hhbGsudW5kZXJsaW5lKGAke3RoaXMubmFtZX0gJHt0aGlzLmlwT3JEb21haW59YCk7XG4gIH1cbiAgdG9TdHJpbmcgPSAoKSA9PiB7XG4gICAgcmV0dXJuIGBbc3RyaW5nIHZlcnNpb25dICR7dGhpcy5uYW1lV2l0aElwT3JEb21haW59YFxuICB9XG59XG5cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXZwbi1zcGxpdCBsaWIvbW9kZWxzLnRzIl19
@@ -1,8 +1,168 @@
1
+ import { _ } from 'tnp-core/websql';
2
+ import { CLI } from 'tnp-cli/websql';
3
+ import { Helpers } from 'tnp-helpers/websql';
4
+
5
+ class HostForServer {
6
+ clone() {
7
+ return HostForServer.From(this);
8
+ }
9
+ static From(ipOrDomain, name = '', disabled = false) {
10
+ if (!ipOrDomain) {
11
+ return void 0;
12
+ }
13
+ if (_.isObject(ipOrDomain) && ipOrDomain instanceof HostForServer) {
14
+ const dataClone = _.cloneDeep(ipOrDomain._data);
15
+ dataClone.name = (name && (name.trim() !== '')) ?
16
+ name : dataClone.name;
17
+ if (!_.isBoolean(dataClone.disabled)) {
18
+ dataClone.disabled = disabled;
19
+ }
20
+ return new HostForServer(dataClone);
21
+ }
22
+ if (_.isString(ipOrDomain)) {
23
+ const parsed = Helpers.urlParse(ipOrDomain);
24
+ if (parsed) {
25
+ ipOrDomain = parsed;
26
+ }
27
+ }
28
+ if (_.isObject(ipOrDomain) && (ipOrDomain instanceof URL)) {
29
+ ipOrDomain = ipOrDomain;
30
+ if (Helpers.isValidIp(ipOrDomain?.host)) {
31
+ return new HostForServer({ ip: ipOrDomain.origin, name, disabled });
32
+ }
33
+ else {
34
+ return new HostForServer({ domain: ipOrDomain.origin, name, disabled });
35
+ }
36
+ }
37
+ else {
38
+ if (_.isString(ipOrDomain)) {
39
+ return new HostForServer({ ipOrDomain, name, disabled });
40
+ }
41
+ else {
42
+ ipOrDomain.name = (name && (name.trim() !== '')) ?
43
+ name : ipOrDomain.name;
44
+ if (!_.isBoolean(ipOrDomain.disabled)) {
45
+ ipOrDomain.disabled = disabled;
46
+ }
47
+ return new HostForServer(ipOrDomain);
48
+ }
49
+ }
50
+ }
51
+ constructor(data) {
52
+ this.toString = () => {
53
+ return `[string version] ${this.nameWithIpOrDomain}`;
54
+ };
55
+ if (data?.ipOrDomain) {
56
+ if (Helpers.isValidIp(data.ipOrDomain)) {
57
+ data.ip = data.ipOrDomain;
58
+ }
59
+ else {
60
+ data.domain = data.ipOrDomain;
61
+ }
62
+ }
63
+ if (data && !data.ip) {
64
+ data.ip = '';
65
+ }
66
+ if (data && !data.domain) {
67
+ data.domain = '';
68
+ }
69
+ if (!data) {
70
+ data = {};
71
+ }
72
+ if (_.isString(data?.aliases)) {
73
+ data.aliases = Helpers.strings.splitIfNeed(data.aliases);
74
+ }
75
+ this._data = data;
76
+ }
77
+ get ip() {
78
+ if (this.disabled) {
79
+ return '';
80
+ }
81
+ return this._data.ip;
82
+ }
83
+ set ip(newIpAddress) {
84
+ this._data.ip = newIpAddress;
85
+ }
86
+ get domain() {
87
+ if (this.disabled) {
88
+ return '';
89
+ }
90
+ return this._data.domain;
91
+ }
92
+ get aliases() {
93
+ if (this.disabled) {
94
+ return [];
95
+ }
96
+ if (_.isString(this._data.aliases)) {
97
+ return this._data.aliases.split(' ');
98
+ }
99
+ if (!_.isArray(this._data.aliases)) {
100
+ return [];
101
+ }
102
+ return this._data.aliases;
103
+ }
104
+ get firstAlias() {
105
+ return _.first(this.aliases);
106
+ }
107
+ get name() {
108
+ return this._data.name;
109
+ }
110
+ set name(v) {
111
+ this._data.name = v;
112
+ }
113
+ get originHostname() {
114
+ return this._data.originHostname;
115
+ }
116
+ set originHostname(v) {
117
+ this._data.originHostname = v;
118
+ }
119
+ get disabled() {
120
+ return this._data.disabled;
121
+ }
122
+ get isDefault() {
123
+ return this._data.isDefault;
124
+ }
125
+ get identifier() {
126
+ return _.kebabCase(this._data.name);
127
+ }
128
+ set disabled(v) {
129
+ this._data.disabled = v;
130
+ }
131
+ get ipOrDomain() {
132
+ if (this.disabled) {
133
+ return '';
134
+ }
135
+ const res = (this.domain ? this.domain : this.ip) || '';
136
+ return res;
137
+ }
138
+ get ipOrFirstAlias() {
139
+ if (this.disabled) {
140
+ return '';
141
+ }
142
+ const res = (this.firstAlias ? this.firstAlias : this.ip) || '';
143
+ return res;
144
+ }
145
+ get hostname() {
146
+ const h = Helpers.urlParse(this.ipOrFirstAlias, true);
147
+ return h ? h.hostname : void 0;
148
+ }
149
+ get hostnameFirstAlias() {
150
+ const h = Helpers.urlParse(this.firstAlias, true);
151
+ return h ? h.hostname : void 0;
152
+ }
153
+ get hostnameIp() {
154
+ const h = Helpers.urlParse(this.ip);
155
+ return h ? h.hostname : void 0;
156
+ }
157
+ get nameWithIpOrDomain() {
158
+ return CLI.chalk.underline(`${this.name} ${this.ipOrDomain}`);
159
+ }
160
+ }
161
+ ;
162
+ ({}); // @--end-of-file-for-module=vpn-split lib/models.ts
163
+
1
164
  /* */
2
165
  /* */
3
- /* */
4
- function helloWorld() {
5
- }
6
166
  ;
7
167
  ({}); // @--end-of-file-for-module=vpn-split lib/index.ts
8
168
 
@@ -10,5 +170,5 @@ function helloWorld() {
10
170
  * Generated bundle index. Do not edit.
11
171
  */
12
172
 
13
- export { helloWorld };
173
+ export { HostForServer };
14
174
  //# sourceMappingURL=vpn-split.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"vpn-split.mjs","sources":["../../../tmp-libs-for-bundle-websql/vpn-split/projects/vpn-split/src/lib/index.ts","../../../tmp-libs-for-bundle-websql/vpn-split/projects/vpn-split/src/vpn-split.ts"],"sourcesContent":["\n\n/* */\n/* */\n/* */\n \n\n\nexport function helloWorld() {\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":"AAEA;AACA;AACA;SAIgB,UAAU,GAAA;AAE1B,CAAC;AAEA,CAAC;AAAA,CAAC,EAAE,EAAE;;ACZP;;AAEG;;;;"}
1
+ {"version":3,"file":"vpn-split.mjs","sources":["../../../tmp-libs-for-bundle-websql/vpn-split/projects/vpn-split/src/lib/models.ts","../../../tmp-libs-for-bundle-websql/vpn-split/projects/vpn-split/src/lib/index.ts","../../../tmp-libs-for-bundle-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,2 +1,2 @@
1
1
  // @ts-nocheck
2
- export declare function helloWorld(): void;
2
+ export * from './models';
@@ -0,0 +1,57 @@
1
+ // @ts-nocheck
2
+ /***
3
+ * @deprecated
4
+ * use normal objects
5
+ */
6
+ export type EtcHosts = {
7
+ [hostName in string]: HostForServer;
8
+ };
9
+ /***
10
+ * @deprecated
11
+ * use normal objects
12
+ */
13
+ export type IEtcHosts = {
14
+ [hostName in string]: Pick<HostForServer, 'aliases' | 'ipOrDomain'>;
15
+ };
16
+ export interface OptHostForServer {
17
+ ip?: string;
18
+ domain?: string;
19
+ ipOrDomain?: string;
20
+ aliases?: string[];
21
+ isDefault?: boolean;
22
+ /**
23
+ * ip from command: vpn-cli 192.168.1.1 192.168.1.2
24
+ */
25
+ originHostname?: string;
26
+ name?: string;
27
+ /**
28
+ * if true - ip and domain will output empty string
29
+ */
30
+ disabled?: boolean;
31
+ }
32
+ export declare class HostForServer implements OptHostForServer {
33
+ private _data;
34
+ clone(): HostForServer;
35
+ static From(ipOrDomain: string | URL | Pick<OptHostForServer | HostForServer, 'ipOrDomain' | 'aliases' | 'originHostname'>, name?: string, disabled?: boolean): HostForServer;
36
+ constructor(data: OptHostForServer);
37
+ get ip(): string;
38
+ set ip(newIpAddress: string);
39
+ get domain(): string;
40
+ get aliases(): string[];
41
+ get firstAlias(): string;
42
+ get name(): string;
43
+ set name(v: string);
44
+ get originHostname(): string;
45
+ set originHostname(v: string);
46
+ get disabled(): boolean;
47
+ get isDefault(): boolean;
48
+ get identifier(): string;
49
+ set disabled(v: boolean);
50
+ get ipOrDomain(): string;
51
+ get ipOrFirstAlias(): string;
52
+ get hostname(): string;
53
+ get hostnameFirstAlias(): string;
54
+ get hostnameIp(): string;
55
+ get nameWithIpOrDomain(): string;
56
+ toString: () => string;
57
+ }
@@ -1 +0,0 @@
1
- {"version":3,"file":"models.backend.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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"}