@push.rocks/smartproxy 3.1.0 → 3.2.0

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 (33) hide show
  1. package/assets/certs/cert.pem +19 -0
  2. package/assets/certs/key.pem +28 -0
  3. package/dist_ts/00_commitinfo_data.js +1 -1
  4. package/dist_ts/smartproxy.classes.networkproxy.d.ts +4 -5
  5. package/dist_ts/smartproxy.classes.networkproxy.js +172 -232
  6. package/dist_ts/smartproxy.classes.router.d.ts +0 -1
  7. package/dist_ts/smartproxy.classes.router.js +11 -2
  8. package/dist_ts/smartproxy.classes.sslredirect.d.ts +0 -1
  9. package/dist_ts/smartproxy.helpers.certificates.d.ts +5 -0
  10. package/dist_ts/smartproxy.helpers.certificates.js +23 -0
  11. package/dist_ts/smartproxy.portproxy.d.ts +0 -1
  12. package/package.json +18 -14
  13. package/readme.md +3 -1
  14. package/ts/00_commitinfo_data.ts +1 -1
  15. package/ts/smartproxy.classes.networkproxy.ts +202 -259
  16. package/ts/smartproxy.classes.router.ts +10 -1
  17. package/ts/smartproxy.helpers.certificates.ts +30 -0
  18. package/dist/index.d.ts +0 -1
  19. package/dist/index.js +0 -7
  20. package/dist/smartproxy.classes.proxyworker.d.ts +0 -23
  21. package/dist/smartproxy.classes.proxyworker.js +0 -262
  22. package/dist/smartproxy.classes.router.d.ts +0 -16
  23. package/dist/smartproxy.classes.router.js +0 -41
  24. package/dist/smartproxy.classes.smartproxy.d.ts +0 -17
  25. package/dist/smartproxy.classes.smartproxy.js +0 -43
  26. package/dist/smartproxy.plugins.d.ts +0 -17
  27. package/dist/smartproxy.plugins.js +0 -43
  28. package/dist/smartproxy.portproxy.d.ts +0 -6
  29. package/dist/smartproxy.portproxy.js +0 -38
  30. package/dist_ts/smartproxy.classes.proxyworker.d.ts +0 -33
  31. package/dist_ts/smartproxy.classes.proxyworker.js +0 -303
  32. package/dist_ts/smartproxy.classes.smartproxy.d.ts +0 -20
  33. package/dist_ts/smartproxy.classes.smartproxy.js +0 -38
@@ -1,262 +0,0 @@
1
- "use strict";
2
- var __importStar = (this && this.__importStar) || function (mod) {
3
- if (mod && mod.__esModule) return mod;
4
- var result = {};
5
- if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
6
- result["default"] = mod;
7
- return result;
8
- };
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- const smartspawn_1 = require("@pushrocks/smartspawn");
11
- const plugins = __importStar(require("./smartproxy.plugins"));
12
- const smartproxy_classes_router_1 = require("./smartproxy.classes.router");
13
- class ProxyWorker {
14
- constructor() {
15
- this.proxyConfigs = [];
16
- this.port = 8001;
17
- this.router = new smartproxy_classes_router_1.SmartproxyRouter();
18
- this.socketMap = new plugins.lik.Objectmap();
19
- }
20
- /**
21
- * starts the proxyInstance
22
- */
23
- async start() {
24
- this.httpsServer = plugins.https.createServer(
25
- // ================
26
- // Spotted this keypair in the code?
27
- // Don't get exited:
28
- // It is an invalid default keypair.
29
- // For proper requests custom domain level keypairs are used that are provided in the reverse config
30
- // ================
31
- {
32
- key: `-----BEGIN PRIVATE KEY-----
33
- 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
- 3yEWvy2mRHOZoSSBtIqg6Bre4ZcMu901/cHNIjFnynNGFl9Se61yZbW2F3PfCt7+
35
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- SbopI3Ut5yKxVKMYOTSqcFQXVLszTExhMhQCRoOh58BpIfhb9FLCKD9LH8E6eoQf
51
- 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
- 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
- 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
- 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
- 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
- kWIEunY1MCkRL9YygvHkKW3dsXVOzsip/axiT36MhRcyZ27hF1tz3j//Z11E3Bfq
57
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- orfBWUCPXSzPttmXBJbO+Nr+rP+86KvgdI/AT0vYFNdINomEjxsfpaxjOAaW0wfz
76
- 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
- 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
- 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
- dp7B/scdORC8Y6i8oPdCyxyCTd2SBrmGr2krAXmQquT72eusyP5E8HFhCy1iYt22
80
- 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
- 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
82
- 2TkK01XDDJURK5Lhuvc7WrK2rSJ/fK+0GA==
83
- -----END PRIVATE KEY-----
84
- `,
85
- cert: `-----BEGIN CERTIFICATE-----
86
- MIIEljCCAn4CCQDY+ZbC9FASVjANBgkqhkiG9w0BAQsFADANMQswCQYDVQQGEwJE
87
- RTAeFw0xOTA5MjAxNjAxNDRaFw0yMDA5MTkxNjAxNDRaMA0xCzAJBgNVBAYTAkRF
88
- MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA4thf9JEK/epoXt8hFr8t
89
- pkRzmaEkgbSKoOga3uGXDLvdNf3BzSIxZ8pzRhZfUnutcmW1thdz3wre/pEJR7oN
90
- QsfixbLL8/oS5QeXKiUGX0Ssfdg4W0TsoLcRva+1AZsf38MfiUPhzh1/UW/rMywW
91
- asazQwRZdkkXb4nKJ2IFZx22qnAD4/5Sug+sfeKoFBF/rzI2yK7rognt7kW2LHv6
92
- rswHnZ1Z2P/gbhlZ/EhG9hFVRZwRLDscWKcuWcxkePDt2J1pDNqD6SYa6ZjGC3AE
93
- TJw5iEA1bLQ9YvjDNpVYcf6ZvcSilIFjSQu5cs9sUbHGeKTrS5HzfeJXh1PfJyL8
94
- X0Hu7UBSjfSudso3baE9FGiBFBW2cnXZKDZGtV8eq/qxPetOOgS09pVbNP6508WV
95
- BR+rz98/VDZLZqcbZ2UpOuz4+kAKmbYE9GplxKQZZO7wWEox7Mid/uUdcqEo4QKn
96
- no6ujOuzQzn5a2oOS0k5Hk3uHapNJWlW9YI3LHtfADpYH+6cOR+/c3JWBzQJ6AD7
97
- muvNzA9mWXeHqLxMMP4pkmb7otzZYrEkodUqJgAQxcYhGh6XsCPfJ/D9RN734OJc
98
- gleVXFI8Kz455HxCW19XNfz16k7T6kqhZ/6SOBbkxEuqg7oEthAP109ZZzgx4oDo
99
- hQsw24TjLkI4SPIc7nr60UUCAwEAATANBgkqhkiG9w0BAQsFAAOCAgEAu0+zrg0C
100
- mlSv4Yi24OwB7TBvx+WHesl1IilCUdTiiUMo3NumvsU9Dr3Jkd0jGqYI0eyH4gIt
101
- KrhAveXfEw7tAOEHiYicmAdIFtyzh++ZWb8mgbBeqij1MP/76Jv+cc0lUqpfRo/A
102
- qytAsPAILuyL1o1jh28JHcq+v+WYn/FEhjUlH6emhGKGlsAjhUPjzK8MEshNolhj
103
- t2UXw9WB5B2xWvrqlNMy0F3NAZBkZ/+k21HZo6FmVi+q6OEGcOo7wJt6wrH/lko9
104
- LxX96GC1JoN1Pfr2FoTKy1WHzrSfyGmDIUCrbaYQ58UuMOR+5eIPPdkf/030u5eX
105
- xXhF2fBujD57E2zQGh/l2MrOjamcSo0+wYhOqlX3WNdaKNAzPqloBnF6w7eqLYde
106
- h9He39ySmxjENwv3miOjEP1sBeMBSRfL/ckEonfK5uJgYA5nVMQ3ojUeDMZzLfFE
107
- Ue2WHt+uPyYk7mMZfOrK2uHzI2/Coqj7lbfRodFwj+fCArYBck2NZannDPKA6X8V
108
- TzJTbTCteOUUJTrcfZ0gGhGkF4nYLmX5OI+TPqrDJf0fZ+mzAEHzDDVXcBYpYRDr
109
- r8d9QwrK+WaqVi2ofbMfMByVF72jgeJNa4nxwT9bVbu/Q1T2Lt+YPb4pQ7yCoUgS
110
- JNj2Dr5H0XoLFFnvuvzcRbhlJ9J67JzR+7g=
111
- -----END CERTIFICATE-----
112
- `
113
- }, async (req, res) => {
114
- console.log('got request');
115
- const destinationConfig = this.router.routeReq(req);
116
- // endRequest function
117
- const endRequest = (statusArg = 404, messageArg = 'This route is not available on this server.', headers = {}) => {
118
- res.writeHead(statusArg, messageArg);
119
- res.end(messageArg);
120
- };
121
- // authentication
122
- if (destinationConfig.authentication) {
123
- const authInfo = destinationConfig.authentication;
124
- switch (authInfo.type) {
125
- case 'Basic':
126
- const authHeader = req.headers.authorization;
127
- if (authHeader) {
128
- if (!authHeader.includes('Basic ')) {
129
- return endRequest(401, 'Authentication required', {
130
- 'WWW-Authenticate': 'Basic realm="Access to the staging site", charset="UTF-8"'
131
- });
132
- }
133
- const authStringBase64 = req.headers.authorization.replace('Basic ', '');
134
- const authString = plugins.smartstring.base64.decode(authStringBase64);
135
- const userPassArray = authString.split(':');
136
- const user = userPassArray[0];
137
- const pass = userPassArray[1];
138
- if (user === authInfo.user && pass === authInfo.pass) {
139
- console.log('request successfully authenticated');
140
- }
141
- else {
142
- return endRequest(403, 'Forbidden: Wrong credentials');
143
- }
144
- }
145
- break;
146
- default:
147
- return endRequest(403, 'Forbidden: unsupported authentication method configured. Please report to the admin.');
148
- }
149
- }
150
- let destinationUrl;
151
- if (destinationConfig) {
152
- destinationUrl = `http://${destinationConfig.destinationIp}:${destinationConfig.destinationPort}${req.url}`;
153
- }
154
- else {
155
- return endRequest();
156
- }
157
- console.log(destinationUrl);
158
- const response = await plugins.smartrequest.request(destinationUrl, {
159
- method: req.method,
160
- headers: req.headers
161
- }, true, // lets make this streaming
162
- // lets make this streaming
163
- request => {
164
- req.on('data', data => {
165
- request.write(data);
166
- });
167
- req.on('end', data => {
168
- request.end();
169
- });
170
- });
171
- res.statusCode = response.statusCode;
172
- console.log(response.statusCode);
173
- for (const header of Object.keys(response.headers)) {
174
- res.setHeader(header, response.headers[header]);
175
- }
176
- response.on('data', data => {
177
- res.write(data);
178
- });
179
- response.on('end', () => {
180
- res.end();
181
- });
182
- });
183
- // Enable websockets
184
- const wss = new plugins.ws.Server({ server: this.httpsServer });
185
- wss.on('connection', (ws) => {
186
- console.log('got connection for wsc');
187
- const wscConnected = plugins.smartpromise.defer();
188
- const wsc = new plugins.wsDefault(this.router.routeWs(ws), {
189
- headers: {
190
- Host: ws.url
191
- }
192
- });
193
- wsc.on('open', () => {
194
- wscConnected.resolve();
195
- });
196
- ws.on('message', async (message) => {
197
- await wscConnected.promise;
198
- wsc.emit('message', message);
199
- });
200
- wsc.on('message', message => {
201
- ws.emit('message', message);
202
- });
203
- // handle closing
204
- ws.on('close', message => {
205
- wsc.close();
206
- });
207
- wsc.on('close', message => {
208
- ws.close();
209
- });
210
- });
211
- this.httpsServer.keepAliveTimeout = 61000;
212
- this.httpsServer.headersTimeout = 65000;
213
- this.httpsServer.on('connection', connection => {
214
- this.socketMap.add(connection);
215
- connection.on('close', () => {
216
- this.socketMap.remove(connection);
217
- });
218
- });
219
- this.httpsServer.listen(this.port);
220
- console.log(`ProxyWorker -> OK: now listening for new connections on port ${this.port}`);
221
- }
222
- async updateProxyConfigs(proxyConfigsArg) {
223
- this.proxyConfigs = proxyConfigsArg;
224
- this.router.setNewProxyConfigs(proxyConfigsArg);
225
- for (const hostCandidate of this.proxyConfigs) {
226
- // console.log(hostCandidate);
227
- this.httpsServer.addContext(hostCandidate.hostName, {
228
- cert: hostCandidate.publicKey,
229
- key: hostCandidate.privateKey
230
- });
231
- }
232
- /* this.httpsServer.close();
233
- this.httpsServer.listen(this.port); */
234
- }
235
- async stop() {
236
- const done = plugins.smartpromise.defer();
237
- this.httpsServer.close(() => {
238
- done.resolve();
239
- });
240
- await this.socketMap.forEach(async (socket) => {
241
- socket.destroy();
242
- });
243
- await done.promise;
244
- }
245
- }
246
- exports.ProxyWorker = ProxyWorker;
247
- const proxyWorkerInstance = new ProxyWorker();
248
- // the following is interesting for the master process only
249
- const proxyWorkerCalls = {
250
- stop: async () => {
251
- await proxyWorkerInstance.stop();
252
- },
253
- start: async () => {
254
- await proxyWorkerInstance.start();
255
- },
256
- updateReverseConfigs: async (configArray) => {
257
- await proxyWorkerInstance.updateProxyConfigs(configArray);
258
- }
259
- };
260
- smartspawn_1.expose(proxyWorkerCalls);
261
- console.log('ProxyWorker initialized');
262
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRwcm94eS5jbGFzc2VzLnByb3h5d29ya2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRwcm94eS5jbGFzc2VzLnByb3h5d29ya2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLHNEQUErQztBQUMvQyw4REFBZ0Q7QUFDaEQsMkVBQStEO0FBRS9ELE1BQWEsV0FBVztJQUF4QjtRQUNTLGlCQUFZLEdBQWtELEVBQUUsQ0FBQztRQUVqRSxTQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ1osV0FBTSxHQUFHLElBQUksNENBQWdCLEVBQUUsQ0FBQztRQUNoQyxjQUFTLEdBQUcsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBc0IsQ0FBQztJQXdQckUsQ0FBQztJQXRQQzs7T0FFRztJQUNJLEtBQUssQ0FBQyxLQUFLO1FBQ2hCLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxZQUFZO1FBQzNDLG1CQUFtQjtRQUNuQixvQ0FBb0M7UUFDcEMsb0JBQW9CO1FBQ3BCLG9DQUFvQztRQUNwQyxvR0FBb0c7UUFDcEcsbUJBQW1CO1FBQ25CO1lBQ0UsR0FBRyxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBb0RSO1lBQ0csSUFBSSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0EyQlQ7U0FDRSxFQUNELEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDakIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUMzQixNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRXBELHNCQUFzQjtZQUN0QixNQUFNLFVBQVUsR0FBRyxDQUNqQixZQUFvQixHQUFHLEVBQ3ZCLGFBQXFCLDZDQUE2QyxFQUNsRSxVQUE0QyxF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
@@ -1,16 +0,0 @@
1
- /// <reference types="node" />
2
- /// <reference types="ws" />
3
- import * as plugins from './smartproxy.plugins';
4
- export declare class SmartproxyRouter {
5
- reverseProxyConfigs: plugins.tsclass.network.IReverseProxyConfig[];
6
- /**
7
- * sets a new set of reverse configs to be routed to
8
- * @param reverseCandidatesArg
9
- */
10
- setNewProxyConfigs(reverseCandidatesArg: plugins.tsclass.network.IReverseProxyConfig[]): void;
11
- /**
12
- * routes a request
13
- */
14
- routeReq(req: plugins.http.IncomingMessage): plugins.tsclass.network.IReverseProxyConfig;
15
- routeWs(ws: plugins.wsDefault): string;
16
- }
@@ -1,41 +0,0 @@
1
- "use strict";
2
- var __importStar = (this && this.__importStar) || function (mod) {
3
- if (mod && mod.__esModule) return mod;
4
- var result = {};
5
- if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
6
- result["default"] = mod;
7
- return result;
8
- };
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- const plugins = __importStar(require("./smartproxy.plugins"));
11
- class SmartproxyRouter {
12
- constructor() {
13
- this.reverseProxyConfigs = [];
14
- }
15
- /**
16
- * sets a new set of reverse configs to be routed to
17
- * @param reverseCandidatesArg
18
- */
19
- setNewProxyConfigs(reverseCandidatesArg) {
20
- this.reverseProxyConfigs = reverseCandidatesArg;
21
- }
22
- /**
23
- * routes a request
24
- */
25
- routeReq(req) {
26
- const originalHost = req.headers.host;
27
- const correspodingReverseProxyConfig = this.reverseProxyConfigs.find(reverseConfig => {
28
- return reverseConfig.hostName === originalHost;
29
- });
30
- return correspodingReverseProxyConfig;
31
- }
32
- routeWs(ws) {
33
- const originalHost = plugins.url.parse(ws.url).host;
34
- const correspodingReverseProxyConfig = this.reverseProxyConfigs.find(reverseConfig => {
35
- return reverseConfig.hostName === originalHost;
36
- });
37
- return correspodingReverseProxyConfig.destinationIp;
38
- }
39
- }
40
- exports.SmartproxyRouter = SmartproxyRouter;
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRwcm94eS5jbGFzc2VzLnJvdXRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0cHJveHkuY2xhc3Nlcy5yb3V0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsOERBQWdEO0FBRWhELE1BQWEsZ0JBQWdCO0lBQTdCO1FBQ1Msd0JBQW1CLEdBQWtELEVBQUUsQ0FBQztJQTRCakYsQ0FBQztJQTFCQzs7O09BR0c7SUFDSSxrQkFBa0IsQ0FBQyxvQkFBbUU7UUFDM0YsSUFBSSxDQUFDLG1CQUFtQixHQUFHLG9CQUFvQixDQUFDO0lBQ2xELENBQUM7SUFFRDs7T0FFRztJQUNJLFFBQVEsQ0FBQyxHQUFpQztRQUMvQyxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztRQUN0QyxNQUFNLDhCQUE4QixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDbkYsT0FBTyxhQUFhLENBQUMsUUFBUSxLQUFLLFlBQVksQ0FBQztRQUNqRCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sOEJBQThCLENBQUM7SUFDeEMsQ0FBQztJQUVNLE9BQU8sQ0FBQyxFQUFxQjtRQUNsQyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3BELE1BQU0sOEJBQThCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUNuRixPQUFPLGFBQWEsQ0FBQyxRQUFRLEtBQUssWUFBWSxDQUFDO1FBQ2pELENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyw4QkFBOEIsQ0FBQyxhQUFhLENBQUM7SUFDdEQsQ0FBQztDQUNGO0FBN0JELDRDQTZCQyJ9
@@ -1,17 +0,0 @@
1
- import * as plugins from './smartproxy.plugins';
2
- import { TProxyWorkerCalls } from './smartproxy.classes.proxyworker';
3
- import { TPortProxyCalls } from './smartproxy.portproxy';
4
- export interface ISmartProxyOptions {
5
- port?: number;
6
- }
7
- export declare class SmartProxy {
8
- smartsystem: plugins.smartsystem.Smartsystem;
9
- reverseConfigs: plugins.tsclass.network.IReverseProxyConfig[];
10
- proxyWorkerFunctions: plugins.smartspawn.ModuleThread<TProxyWorkerCalls>;
11
- portProxyFunctions: plugins.smartspawn.ModuleThread<TPortProxyCalls>;
12
- options: ISmartProxyOptions;
13
- constructor(optionsArg?: ISmartProxyOptions);
14
- updateReversConfigs(reverseConfigsArg: plugins.tsclass.network.IReverseProxyConfig[]): Promise<void>;
15
- start(): Promise<void>;
16
- stop(): Promise<void>;
17
- }
@@ -1,43 +0,0 @@
1
- "use strict";
2
- var __importStar = (this && this.__importStar) || function (mod) {
3
- if (mod && mod.__esModule) return mod;
4
- var result = {};
5
- if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
6
- result["default"] = mod;
7
- return result;
8
- };
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- const plugins = __importStar(require("./smartproxy.plugins"));
11
- class SmartProxy {
12
- constructor(optionsArg = {}) {
13
- this.smartsystem = new plugins.smartsystem.Smartsystem();
14
- this.reverseConfigs = [];
15
- this.options = optionsArg;
16
- }
17
- async updateReversConfigs(reverseConfigsArg) {
18
- // TODO search for old hostCandidates with that target
19
- this.reverseConfigs = reverseConfigsArg;
20
- if (this.proxyWorkerFunctions) {
21
- await this.proxyWorkerFunctions.updateReverseConfigs(this.reverseConfigs);
22
- }
23
- }
24
- async start() {
25
- this.proxyWorkerFunctions = await plugins.smartspawn.spawn(new plugins.smartspawn.Worker('./smartproxy.classes.proxyworker'));
26
- this.proxyWorkerFunctions.updateReverseConfigs(this.reverseConfigs);
27
- this.portProxyFunctions = await plugins.smartspawn.spawn(new plugins.smartspawn.Worker('./smartproxy.portproxy'));
28
- await this.portProxyFunctions.start(this.options.port);
29
- await this.proxyWorkerFunctions.start();
30
- console.log('successfully spawned portproxy and proxyworkers!');
31
- }
32
- async stop() {
33
- await this.proxyWorkerFunctions.stop();
34
- await plugins.smartspawn.Thread.terminate(this.proxyWorkerFunctions);
35
- console.log('proxy worker stopped');
36
- await this.portProxyFunctions.stop();
37
- await plugins.smartspawn.Thread.terminate(this.portProxyFunctions);
38
- console.log('portproxy stopped');
39
- console.log('Terminated all childs!');
40
- }
41
- }
42
- exports.SmartProxy = SmartProxy;
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRwcm94eS5jbGFzc2VzLnNtYXJ0cHJveHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydHByb3h5LmNsYXNzZXMuc21hcnRwcm94eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSw4REFBZ0Q7QUFTaEQsTUFBYSxVQUFVO0lBUXJCLFlBQVksYUFBaUMsRUFBRTtRQVB4QyxnQkFBVyxHQUFHLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwRCxtQkFBYyxHQUFrRCxFQUFFLENBQUM7UUFPeEUsSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUM7SUFDNUIsQ0FBQztJQUVNLEtBQUssQ0FBQyxtQkFBbUIsQ0FDOUIsaUJBQWdFO1FBRWhFLHNEQUFzRDtRQUN0RCxJQUFJLENBQUMsY0FBYyxHQUFHLGlCQUFpQixDQUFDO1FBQ3hDLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzdCLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUMzRTtJQUNILENBQUM7SUFFTSxLQUFLLENBQUMsS0FBSztRQUNoQixJQUFJLENBQUMsb0JBQW9CLEdBQUcsTUFBTSxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FDeEQsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUNsRSxDQUFDO1FBQ0YsSUFBSSxDQUFDLG9CQUFvQixDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUVwRSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsTUFBTSxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FDdEQsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUN4RCxDQUFDO1FBRUYsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkQsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFeEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFTSxLQUFLLENBQUMsSUFBSTtRQUNmLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3JFLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUNwQyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQyxNQUFNLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNuRSxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDakMsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7Q0FDRjtBQS9DRCxnQ0ErQ0MifQ==
@@ -1,17 +0,0 @@
1
- import * as http from 'http';
2
- import * as https from 'https';
3
- import * as net from 'net';
4
- import * as url from 'url';
5
- export { http, https, net, url };
6
- import * as tsclass from '@tsclass/tsclass';
7
- export { tsclass };
8
- import * as lik from '@pushrocks/lik';
9
- import * as smartpromise from '@pushrocks/smartpromise';
10
- import * as smartrequest from '@pushrocks/smartrequest';
11
- import * as smartspawn from '@pushrocks/smartspawn';
12
- import * as smartstring from '@pushrocks/smartstring';
13
- import * as smartsystem from '@pushrocks/smartsystem';
14
- export { lik, smartrequest, smartpromise, smartspawn, smartstring, smartsystem };
15
- import * as ws from 'ws';
16
- import wsDefault from 'ws';
17
- export { wsDefault, ws };
@@ -1,43 +0,0 @@
1
- "use strict";
2
- var __importStar = (this && this.__importStar) || function (mod) {
3
- if (mod && mod.__esModule) return mod;
4
- var result = {};
5
- if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
6
- result["default"] = mod;
7
- return result;
8
- };
9
- var __importDefault = (this && this.__importDefault) || function (mod) {
10
- return (mod && mod.__esModule) ? mod : { "default": mod };
11
- };
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- // node native scope
14
- const http = __importStar(require("http"));
15
- exports.http = http;
16
- const https = __importStar(require("https"));
17
- exports.https = https;
18
- const net = __importStar(require("net"));
19
- exports.net = net;
20
- const url = __importStar(require("url"));
21
- exports.url = url;
22
- // tsclass scope
23
- const tsclass = __importStar(require("@tsclass/tsclass"));
24
- exports.tsclass = tsclass;
25
- // pushrocks scope
26
- const lik = __importStar(require("@pushrocks/lik"));
27
- exports.lik = lik;
28
- const smartpromise = __importStar(require("@pushrocks/smartpromise"));
29
- exports.smartpromise = smartpromise;
30
- const smartrequest = __importStar(require("@pushrocks/smartrequest"));
31
- exports.smartrequest = smartrequest;
32
- const smartspawn = __importStar(require("@pushrocks/smartspawn"));
33
- exports.smartspawn = smartspawn;
34
- const smartstring = __importStar(require("@pushrocks/smartstring"));
35
- exports.smartstring = smartstring;
36
- const smartsystem = __importStar(require("@pushrocks/smartsystem"));
37
- exports.smartsystem = smartsystem;
38
- // third party scope
39
- const ws = __importStar(require("ws"));
40
- exports.ws = ws;
41
- const ws_1 = __importDefault(require("ws"));
42
- exports.wsDefault = ws_1.default;
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRwcm94eS5wbHVnaW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRwcm94eS5wbHVnaW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQiwyQ0FBNkI7QUFLcEIsb0JBQUk7QUFKYiw2Q0FBK0I7QUFJaEIsc0JBQUs7QUFIcEIseUNBQTJCO0FBR0wsa0JBQUc7QUFGekIseUNBQTJCO0FBRUEsa0JBQUc7QUFFOUIsZ0JBQWdCO0FBQ2hCLDBEQUE0QztBQUVuQywwQkFBTztBQUVoQixrQkFBa0I7QUFDbEIsb0RBQXNDO0FBTzdCLGtCQUFHO0FBTlosc0VBQXdEO0FBTTVCLG9DQUFZO0FBTHhDLHNFQUF3RDtBQUsxQyxvQ0FBWTtBQUoxQixrRUFBb0Q7QUFJVixnQ0FBVTtBQUhwRCxvRUFBc0Q7QUFHQSxrQ0FBVztBQUZqRSxvRUFBc0Q7QUFFYSxrQ0FBVztBQUU5RSxvQkFBb0I7QUFDcEIsdUNBQXlCO0FBR0wsZ0JBQUU7QUFGdEIsNENBQTJCO0FBRWxCLG9CQUZGLFlBQVMsQ0FFRSJ9
@@ -1,6 +0,0 @@
1
- declare const portProxyCalls: {
2
- start: (portArg?: number) => Promise<void>;
3
- stop: () => Promise<void>;
4
- };
5
- export declare type TPortProxyCalls = typeof portProxyCalls;
6
- export {};
@@ -1,38 +0,0 @@
1
- "use strict";
2
- var __importStar = (this && this.__importStar) || function (mod) {
3
- if (mod && mod.__esModule) return mod;
4
- var result = {};
5
- if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
6
- result["default"] = mod;
7
- return result;
8
- };
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- const plugins = __importStar(require("./smartproxy.plugins"));
11
- const smartspawn_1 = require("@pushrocks/smartspawn");
12
- const net = __importStar(require("net"));
13
- let netServer;
14
- const portProxyCalls = {
15
- start: async (portArg = 8000) => {
16
- netServer = net
17
- .createServer(from => {
18
- const to = net.createConnection({
19
- host: 'localhost',
20
- port: 8001
21
- });
22
- from.pipe(to);
23
- to.pipe(from);
24
- })
25
- .listen(portArg);
26
- console.log(`PortProxy -> OK: Now listening on port ${portArg}`);
27
- },
28
- stop: async () => {
29
- const done = plugins.smartpromise.defer();
30
- netServer.close(() => {
31
- done.resolve();
32
- });
33
- await done.promise;
34
- }
35
- };
36
- smartspawn_1.expose(portProxyCalls);
37
- console.log('PortProxy Initialized');
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRwcm94eS5wb3J0cHJveHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydHByb3h5LnBvcnRwcm94eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSw4REFBZ0Q7QUFDaEQsc0RBQStDO0FBQy9DLHlDQUEyQjtBQUMzQixJQUFJLFNBQTZCLENBQUM7QUFFbEMsTUFBTSxjQUFjLEdBQUc7SUFDckIsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEdBQUcsSUFBSSxFQUFFLEVBQUU7UUFDOUIsU0FBUyxHQUFHLEdBQUc7YUFDWixZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDbkIsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLGdCQUFnQixDQUFDO2dCQUM5QixJQUFJLEVBQUUsV0FBVztnQkFDakIsSUFBSSxFQUFFLElBQUk7YUFDWCxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2QsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQixDQUFDLENBQUM7YUFDRCxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkIsT0FBTyxDQUFDLEdBQUcsQ0FBQywwQ0FBMEMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBQ0QsSUFBSSxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ2YsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMxQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtZQUNuQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDckIsQ0FBQztDQUNGLENBQUM7QUFHRixtQkFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBRXZCLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQyJ9
@@ -1,33 +0,0 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
- import * as plugins from './smartproxy.plugins.js';
4
- import { SmartproxyRouter } from './smartproxy.classes.router.js';
5
- export declare class ProxyWorker {
6
- proxyConfigs: plugins.tsclass.network.IReverseProxyConfig[];
7
- httpsServer: plugins.https.Server;
8
- port: number;
9
- router: SmartproxyRouter;
10
- socketMap: plugins.lik.ObjectMap<plugins.net.Socket>;
11
- defaultHeaders: {
12
- [key: string]: string;
13
- };
14
- alreadyAddedReverseConfigs: {
15
- [hostName: string]: plugins.tsclass.network.IReverseProxyConfig;
16
- };
17
- /**
18
- * starts the proxyInstance
19
- */
20
- start(): Promise<void>;
21
- updateProxyConfigs(proxyConfigsArg: plugins.tsclass.network.IReverseProxyConfig[]): Promise<void>;
22
- stop(): Promise<void>;
23
- }
24
- declare const proxyWorkerCalls: {
25
- stop: () => Promise<void>;
26
- start: () => Promise<void>;
27
- updateReverseConfigs: (configArray: plugins.tsclass.network.IReverseProxyConfig[]) => Promise<void>;
28
- addDefaultHeaders: (headersArg: {
29
- [key: string]: string;
30
- }) => Promise<void>;
31
- };
32
- export declare type TProxyWorkerCalls = typeof proxyWorkerCalls;
33
- export {};