vpn-split 21.0.33 → 21.0.35

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 (84) hide show
  1. package/VERIFIED-BUILD-DATA.jsonc +3 -3
  2. package/bin/vpn-split +5 -10
  3. package/bin/vpn-split-debug +5 -10
  4. package/bin/vpn-split-debug-brk +4 -0
  5. package/browser/package.json +1 -1
  6. package/browser-prod/fesm2022/vpn-split-browser-prod.mjs.map +1 -1
  7. package/browser-prod/package.json +1 -1
  8. package/html/assets/generated/pwa/html-pwa.html +60 -0
  9. package/lib/build-info._auto-generated_.d.ts +1 -1
  10. package/lib/build-info._auto-generated_.js +1 -1
  11. package/lib/package.json +1 -1
  12. package/lib-esm/app.d.ts +3 -0
  13. package/lib-esm/app.electron.d.ts +0 -0
  14. package/lib-esm/app.electron.js +82 -0
  15. package/lib-esm/app.electron.js.map +1 -0
  16. package/lib-esm/app.hosts.d.ts +95 -0
  17. package/lib-esm/app.hosts.js +157 -0
  18. package/lib-esm/app.hosts.js.map +1 -0
  19. package/lib-esm/app.js +204 -0
  20. package/lib-esm/app.js.map +1 -0
  21. package/lib-esm/app.vscode.d.ts +9 -0
  22. package/lib-esm/app.vscode.js +33 -0
  23. package/lib-esm/app.vscode.js.map +1 -0
  24. package/lib-esm/index.d.ts +1 -0
  25. package/lib-esm/index.js +2 -0
  26. package/lib-esm/index.js.map +1 -0
  27. package/lib-esm/lib/build-info._auto-generated_.d.ts +24 -0
  28. package/lib-esm/lib/build-info._auto-generated_.js +27 -0
  29. package/lib-esm/lib/build-info._auto-generated_.js.map +1 -0
  30. package/lib-esm/lib/env/env.angular-node-app.d.ts +66 -0
  31. package/lib-esm/lib/env/env.angular-node-app.js +135 -0
  32. package/lib-esm/lib/env/env.angular-node-app.js.map +1 -0
  33. package/lib-esm/lib/env/env.docs-webapp.d.ts +66 -0
  34. package/lib-esm/lib/env/env.docs-webapp.js +135 -0
  35. package/lib-esm/lib/env/env.docs-webapp.js.map +1 -0
  36. package/lib-esm/lib/env/env.electron-app.d.ts +66 -0
  37. package/lib-esm/lib/env/env.electron-app.js +135 -0
  38. package/lib-esm/lib/env/env.electron-app.js.map +1 -0
  39. package/lib-esm/lib/env/env.mobile-app.d.ts +66 -0
  40. package/lib-esm/lib/env/env.mobile-app.js +135 -0
  41. package/lib-esm/lib/env/env.mobile-app.js.map +1 -0
  42. package/lib-esm/lib/env/env.npm-lib-and-cli-tool.d.ts +66 -0
  43. package/lib-esm/lib/env/env.npm-lib-and-cli-tool.js +135 -0
  44. package/lib-esm/lib/env/env.npm-lib-and-cli-tool.js.map +1 -0
  45. package/lib-esm/lib/env/env.vscode-plugin.d.ts +66 -0
  46. package/lib-esm/lib/env/env.vscode-plugin.js +135 -0
  47. package/lib-esm/lib/env/env.vscode-plugin.js.map +1 -0
  48. package/lib-esm/lib/env/index.d.ts +6 -0
  49. package/lib-esm/lib/env/index.js +7 -0
  50. package/lib-esm/lib/env/index.js.map +1 -0
  51. package/lib-esm/lib/hostile.backend.d.ts +37 -0
  52. package/lib-esm/lib/hostile.backend.js +118 -0
  53. package/lib-esm/lib/hostile.backend.js.map +1 -0
  54. package/lib-esm/lib/index._auto-generated_.d.ts +0 -0
  55. package/lib-esm/lib/index._auto-generated_.js +6 -0
  56. package/lib-esm/lib/index._auto-generated_.js.map +1 -0
  57. package/lib-esm/lib/index.d.ts +2 -0
  58. package/lib-esm/lib/index.js +5 -0
  59. package/lib-esm/lib/index.js.map +1 -0
  60. package/lib-esm/lib/migrations/index.d.ts +1 -0
  61. package/lib-esm/lib/migrations/index.js +3 -0
  62. package/lib-esm/lib/migrations/index.js.map +1 -0
  63. package/lib-esm/lib/migrations/migrations_index._auto-generated_.d.ts +0 -0
  64. package/lib-esm/lib/migrations/migrations_index._auto-generated_.js +4 -0
  65. package/lib-esm/lib/migrations/migrations_index._auto-generated_.js.map +1 -0
  66. package/lib-esm/lib/models.d.ts +61 -0
  67. package/lib-esm/lib/models.js +177 -0
  68. package/lib-esm/lib/models.js.map +1 -0
  69. package/lib-esm/lib/start.backend.d.ts +0 -0
  70. package/lib-esm/lib/start.backend.js +24 -0
  71. package/lib-esm/lib/start.backend.js.map +1 -0
  72. package/lib-esm/lib/vpn-split.backend.d.ts +56 -0
  73. package/lib-esm/lib/vpn-split.backend.js +739 -0
  74. package/lib-esm/lib/vpn-split.backend.js.map +1 -0
  75. package/lib-prod/build-info._auto-generated_.d.ts +1 -1
  76. package/lib-prod/build-info._auto-generated_.js +1 -1
  77. package/lib-prod/models.js.map +1 -1
  78. package/lib-prod/package.json +1 -1
  79. package/lib-prod/vpn-split.backend.js.map +1 -1
  80. package/package.json +3 -2
  81. package/src.js +4 -20
  82. package/websql/package.json +1 -1
  83. package/websql-prod/fesm2022/vpn-split-websql-prod.mjs.map +1 -1
  84. package/websql-prod/package.json +1 -1
@@ -0,0 +1,118 @@
1
+ //#region imports
2
+ import * as hostile from 'hostile';
3
+ import { chalk, net } from 'tnp-core/lib';
4
+ //#endregion
5
+ export class Hostile {
6
+ /**
7
+ * Display all current ip records
8
+ */
9
+ list() {
10
+ var lines;
11
+ try {
12
+ lines = hostile.get(false);
13
+ }
14
+ catch (err) {
15
+ return this.error(err);
16
+ }
17
+ lines.forEach(item => {
18
+ if (item.length > 1) {
19
+ console.log(item[0], chalk.green(item[1]));
20
+ }
21
+ else {
22
+ console.log(item);
23
+ }
24
+ });
25
+ }
26
+ /**
27
+ * Set a new host
28
+ * @param {string} ip
29
+ * @param {string} host
30
+ */
31
+ set(ip, host) {
32
+ if (!ip || !host) {
33
+ return this.error('Invalid syntax: hostile set <ip> <host>');
34
+ }
35
+ if (ip === 'local' || ip === 'localhost') {
36
+ ip = '127.0.0.1';
37
+ }
38
+ else if (!net.isIP(ip)) {
39
+ return this.error('Invalid IP address');
40
+ }
41
+ try {
42
+ hostile.set(ip, host);
43
+ }
44
+ catch (err) {
45
+ return this.error('Error: ' + err.message + '. Are you running as root?');
46
+ }
47
+ console.log(chalk.green('Added ' + host));
48
+ }
49
+ /**
50
+ * Remove a host
51
+ * @param {string} host
52
+ */
53
+ remove(host) {
54
+ var lines;
55
+ try {
56
+ lines = hostile.get(false);
57
+ }
58
+ catch (err) {
59
+ return this.error(err);
60
+ }
61
+ lines.forEach(item => {
62
+ if (item[1] === host) {
63
+ try {
64
+ hostile.remove(item[0], host);
65
+ }
66
+ catch (err) {
67
+ return this.error('Error: ' + err.message + '. Are you running as root?');
68
+ }
69
+ console.log(chalk.green('Removed ' + host));
70
+ }
71
+ });
72
+ }
73
+ /**
74
+ * Load hosts given a file
75
+ * @param {string} filePath
76
+ */
77
+ load(filePath) {
78
+ var lines = this.parseFile(filePath);
79
+ lines.forEach(item => {
80
+ this.set(item[0], item[1]);
81
+ });
82
+ console.log(chalk.green('\nAdded %d hosts!'), lines.length);
83
+ }
84
+ /**
85
+ * Remove hosts given a file
86
+ * @param {string} filePath
87
+ */
88
+ unload(filePath) {
89
+ var lines = this.parseFile(filePath);
90
+ lines.forEach(item => {
91
+ this.remove(item[1]);
92
+ });
93
+ console.log(chalk.green('Removed %d hosts!'), lines.length);
94
+ }
95
+ /**
96
+ * Get all the lines of the file as array of arrays [[IP, host]]
97
+ * @param {string} filePath
98
+ */
99
+ parseFile(filePath) {
100
+ var lines;
101
+ try {
102
+ lines = hostile.getFile(filePath, false);
103
+ }
104
+ catch (err) {
105
+ return this.error(err);
106
+ }
107
+ return lines;
108
+ }
109
+ /**
110
+ * Print an error and exit the program
111
+ * @param {string} message
112
+ */
113
+ error(err) {
114
+ console.error(chalk.red(err.message || err));
115
+ process.exit(-1);
116
+ }
117
+ }
118
+ //# sourceMappingURL=hostile.backend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hostile.backend.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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"}
File without changes
@@ -0,0 +1,6 @@
1
+ // @ts-nocheck
2
+ // This file is auto-generated during init process. Do not modify.
3
+ // This is only placeholder.
4
+ // Use property "shouldGenerateAutogenIndexFile: true"
5
+ // in taon.jsonc to enable ts exports auto generation.
6
+ //# sourceMappingURL=index._auto-generated_.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index._auto-generated_.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA,cAAc;AACd,kEAAkE;AAClE,4BAA4B;AAC5B,uDAAuD;AACvD,uDAAuD"}
@@ -0,0 +1,2 @@
1
+ export * from './models';
2
+ export * from './vpn-split.backend';
@@ -0,0 +1,5 @@
1
+ export * from './models';
2
+ //#region @backend
3
+ export * from './vpn-split.backend';
4
+ //#endregion
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AAEzB,kBAAkB;AAClB,cAAc,qBAAqB,CAAC;AACpC,YAAY"}
@@ -0,0 +1 @@
1
+ export * from './migrations_index._auto-generated_';
@@ -0,0 +1,3 @@
1
+ //@ts-nocheck
2
+ export * from './migrations_index._auto-generated_';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA,aAAa;AACb,cAAc,qCAAqC,CAAC"}
@@ -0,0 +1,4 @@
1
+ // THIS FILE IS GENERATED - DO NOT MODIFY
2
+ // THIS FILE IS GENERATED - DO NOT MODIFY
3
+ // THIS FILE IS GENERATED - DO NOT MODIFY
4
+ //# sourceMappingURL=migrations_index._auto-generated_.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrations_index._auto-generated_.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA,yCAAyC;AAEzC,yCAAyC;AAEzC,yCAAyC"}
@@ -0,0 +1,61 @@
1
+ /***
2
+ * @deprecated
3
+ * use normal objects
4
+ */
5
+ export type EtcHosts = {
6
+ [hostName in string]: HostForServer;
7
+ };
8
+ /***
9
+ * @deprecated
10
+ * use normal objects
11
+ */
12
+ export type IEtcHosts = {
13
+ [hostName in string]: Partial<Pick<HostForServer, 'aliases' | 'ipOrDomain' | 'environmentName'>>;
14
+ };
15
+ export interface OptHostForServer {
16
+ ip?: string;
17
+ domain?: string;
18
+ ipOrDomain?: string;
19
+ environmentName?: string;
20
+ aliases?: string[];
21
+ skipUpdateOfServerEtcHosts?: boolean;
22
+ isDefault?: boolean;
23
+ /**
24
+ * ip from command: vpn-cli 192.168.1.1 192.168.1.2
25
+ */
26
+ originHostname?: string;
27
+ name?: string;
28
+ /**
29
+ * if true - ip and domain will output empty string
30
+ */
31
+ disabled?: boolean;
32
+ }
33
+ export declare class HostForServer implements OptHostForServer {
34
+ private _data;
35
+ clone(): HostForServer;
36
+ static From(ipOrDomain: string | URL | Pick<OptHostForServer | HostForServer, 'ipOrDomain' | 'aliases' | 'originHostname' | 'skipUpdateOfServerEtcHosts'>, name?: string, disabled?: boolean): HostForServer;
37
+ constructor(data: OptHostForServer);
38
+ get ip(): string;
39
+ set ip(newIpAddress: string);
40
+ get domain(): string;
41
+ get aliases(): string[];
42
+ get firstAlias(): string;
43
+ get name(): string;
44
+ set name(v: string);
45
+ get originHostname(): string;
46
+ set originHostname(v: string);
47
+ get disabled(): boolean;
48
+ get isDefault(): boolean;
49
+ get identifier(): string;
50
+ set disabled(v: boolean);
51
+ get environmentName(): string;
52
+ get skipUpdateOfServerEtcHosts(): boolean;
53
+ set skipUpdateOfServerEtcHosts(v: boolean);
54
+ get ipOrDomain(): string;
55
+ get ipOrFirstAlias(): string;
56
+ get hostname(): string;
57
+ get hostnameFirstAlias(): string;
58
+ get hostnameIp(): string;
59
+ get nameWithIpOrDomain(): string;
60
+ toString: () => string;
61
+ }
@@ -0,0 +1,177 @@
1
+ //#region imports
2
+ import { _, chalk, UtilsNetwork } from 'tnp-core/lib';
3
+ import { HelpersTaon } from 'tnp-helpers/lib';
4
+ export class HostForServer {
5
+ _data;
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() !== '' ? name : dataClone.name;
16
+ if (!_.isBoolean(dataClone.disabled)) {
17
+ dataClone.disabled = disabled;
18
+ }
19
+ return new HostForServer(dataClone);
20
+ }
21
+ if (_.isString(ipOrDomain)) {
22
+ // @ts-ignore
23
+ const parsed = UtilsNetwork.urlParse(ipOrDomain);
24
+ if (parsed) {
25
+ ipOrDomain = parsed;
26
+ }
27
+ }
28
+ if (_.isObject(ipOrDomain) && ipOrDomain instanceof URL) {
29
+ ipOrDomain = ipOrDomain;
30
+ if (UtilsNetwork.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 =
43
+ name && name.trim() !== ''
44
+ ? name
45
+ : ipOrDomain.name;
46
+ if (!_.isBoolean(ipOrDomain.disabled)) {
47
+ ipOrDomain.disabled = disabled;
48
+ }
49
+ return new HostForServer(ipOrDomain);
50
+ }
51
+ }
52
+ }
53
+ constructor(data) {
54
+ if (data?.ipOrDomain) {
55
+ if (UtilsNetwork.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 = HelpersTaon.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 environmentName() {
131
+ return this._data.environmentName || '';
132
+ }
133
+ get skipUpdateOfServerEtcHosts() {
134
+ return this._data.skipUpdateOfServerEtcHosts || false;
135
+ }
136
+ set skipUpdateOfServerEtcHosts(v) {
137
+ this._data.skipUpdateOfServerEtcHosts = v;
138
+ }
139
+ get ipOrDomain() {
140
+ if (this.disabled) {
141
+ return '';
142
+ }
143
+ const res = (this.domain ? this.domain : this.ip) || '';
144
+ return res;
145
+ // return res.startsWith('http') ? res : `http://${res}`;
146
+ }
147
+ get ipOrFirstAlias() {
148
+ if (this.disabled) {
149
+ return '';
150
+ }
151
+ const res = (this.firstAlias ? this.firstAlias : this.ip) || '';
152
+ return res;
153
+ // return res.startsWith('http') ? res : `http://${res}`;
154
+ }
155
+ get hostname() {
156
+ // @ts-ignore
157
+ const h = UtilsNetwork.urlParse(this.ipOrFirstAlias, { forceDomain: true });
158
+ return h ? h.hostname : void 0;
159
+ }
160
+ get hostnameFirstAlias() {
161
+ // @ts-ignore
162
+ const h = UtilsNetwork.urlParse(this.firstAlias, { forceDomain: true });
163
+ return h ? h.hostname : void 0;
164
+ }
165
+ get hostnameIp() {
166
+ // @ts-ignore
167
+ const h = UtilsNetwork.urlParse(this.ip);
168
+ return h ? h.hostname : void 0;
169
+ }
170
+ get nameWithIpOrDomain() {
171
+ return chalk.underline(`${this.name} ${this.ipOrDomain}`);
172
+ }
173
+ toString = () => {
174
+ return `[string version] ${this.nameWithIpOrDomain}`;
175
+ };
176
+ }
177
+ //# sourceMappingURL=models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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"}
File without changes
@@ -0,0 +1,24 @@
1
+ //#region @backend
2
+ // import { Helpers } from 'tnp-helpers';
3
+ // import { VpnSplit } from './vpn-split.backend';
4
+ // import { EtcHosts, HostForServer } from './models.backend';
5
+ // const TO_DELETE = {} as EtcHosts;
6
+ // export async function run(args: string[]) {
7
+ // Helpers.clearConsole();
8
+ // const { local }: { local: boolean } = require('minimist')(args);
9
+ // const saveHostInUserFolder = !!local;
10
+ // args = args.join(' ').replace('--local', '').split(' ');
11
+ // const ins = await VpnSplit.Instance({
12
+ // additionalDefaultHosts: TO_DELETE,
13
+ // allowNotSudo: !!saveHostInUserFolder
14
+ // });
15
+ // if (args.join().trim() === '') {
16
+ // await ins.startServer(saveHostInUserFolder);
17
+ // } else {
18
+ // // await ins.startClient(args.split Helpers.urlParse(args.shift()));
19
+ // await ins.startClient(args.map(arg => Helpers.urlParse(arg)));
20
+ // }
21
+ // process.stdin.resume();
22
+ // }
23
+ //#endregion
24
+ //# sourceMappingURL=start.backend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start.backend.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA,kBAAkB;AAClB,yCAAyC;AACzC,kDAAkD;AAClD,8DAA8D;AAE9D,oCAAoC;AAEpC,8CAA8C;AAC9C,4BAA4B;AAC5B,qEAAqE;AACrE,0CAA0C;AAC1C,6DAA6D;AAE7D,0CAA0C;AAC1C,yCAAyC;AACzC,2CAA2C;AAC3C,QAAQ;AAER,qCAAqC;AACrC,mDAAmD;AACnD,aAAa;AACb,2EAA2E;AAC3E,qEAAqE;AACrE,MAAM;AAEN,4BAA4B;AAC5B,IAAI;AACJ,YAAY"}
@@ -0,0 +1,56 @@
1
+ import { URL } from 'url';
2
+ import { EtcHosts, HostForServer } from './models';
3
+ export declare class VpnSplit {
4
+ private portsToPass;
5
+ private hosts;
6
+ private cwd;
7
+ get hostsArr(): HostForServer[];
8
+ get hostsArrWithoutDefault(): HostForServer[];
9
+ private get serveKeyName();
10
+ private get serveKeyPath();
11
+ private get serveCertName();
12
+ private get serveCertPath();
13
+ private get serveCertChainName();
14
+ private get serveCertChainPath();
15
+ private readonly __hostile;
16
+ private static _instances;
17
+ private constructor();
18
+ static Instance({ ports, additionalDefaultHosts, cwd, allowNotSudo, }?: {
19
+ ports?: number[];
20
+ additionalDefaultHosts?: EtcHosts;
21
+ cwd?: string;
22
+ allowNotSudo?: boolean;
23
+ }): Promise<VpnSplit>;
24
+ startServer(saveHostInUserFolder?: boolean): Promise<void>;
25
+ applyHosts(hosts: EtcHosts): void;
26
+ applyHostsLocal(hosts: EtcHosts): void;
27
+ startClient(vpnServerTargets: URL[] | URL, options: {
28
+ saveHostInUserFolder?: boolean;
29
+ useHost?: EtcHosts;
30
+ }): Promise<void>;
31
+ private getRemoteHosts;
32
+ private createCertificateIfNotExists;
33
+ private getTarget;
34
+ private getProxyConfig;
35
+ private getNotFoundMsg;
36
+ private getMaybeChangeOriginTrueMsg;
37
+ private filterHeaders;
38
+ private isHttpsPort;
39
+ private serverPassthrough;
40
+ private clientPassthrough;
41
+ /**
42
+ * Start a UDP socket for “server” mode on a given port.
43
+ * This example forwards inbound messages right back to the sender,
44
+ * or you can forward them to an external IP:port if desired.
45
+ */
46
+ private serverUdpPassthrough;
47
+ /**
48
+ * Start a UDP socket for “client” mode on a given port.
49
+ * This example also just does a trivial pass-through or echo,
50
+ * but you can adapt to forward to a remote server.
51
+ */
52
+ private clientUdpPassthrough;
53
+ private getPortFromRequest;
54
+ private ensureMkcertCertificate;
55
+ private preventBadTargetForClient;
56
+ }