@push.rocks/smartproxy 3.1.0 → 3.1.3

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
@@ -15,10 +15,19 @@ export class ProxyRouter {
15
15
  */
16
16
  routeReq(req) {
17
17
  const originalHost = req.headers.host;
18
+ if (!originalHost) {
19
+ console.error('No host header found in request');
20
+ return undefined;
21
+ }
22
+ // Strip port from host if present
23
+ const hostWithoutPort = originalHost.split(':')[0];
18
24
  const correspodingReverseProxyConfig = this.reverseProxyConfigs.find((reverseConfig) => {
19
- return reverseConfig.hostName === originalHost;
25
+ return reverseConfig.hostName === hostWithoutPort;
20
26
  });
27
+ if (!correspodingReverseProxyConfig) {
28
+ console.error(`No config found for host: ${hostWithoutPort}`);
29
+ }
21
30
  return correspodingReverseProxyConfig;
22
31
  }
23
32
  }
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRwcm94eS5jbGFzc2VzLnJvdXRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0cHJveHkuY2xhc3Nlcy5yb3V0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSx5QkFBeUIsQ0FBQztBQUVuRCxNQUFNLE9BQU8sV0FBVztJQUF4QjtRQUNTLHdCQUFtQixHQUFrRCxFQUFFLENBQUM7SUFvQmpGLENBQUM7SUFsQkM7OztPQUdHO0lBQ0ksa0JBQWtCLENBQUMsb0JBQW1FO1FBQzNGLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxvQkFBb0IsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRLENBQUMsR0FBaUM7UUFDL0MsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDdEMsTUFBTSw4QkFBOEIsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDckYsT0FBTyxhQUFhLENBQUMsUUFBUSxLQUFLLFlBQVksQ0FBQztRQUNqRCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sOEJBQThCLENBQUM7SUFDeEMsQ0FBQztDQUNGIn0=
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRwcm94eS5jbGFzc2VzLnJvdXRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0cHJveHkuY2xhc3Nlcy5yb3V0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSx5QkFBeUIsQ0FBQztBQUVuRCxNQUFNLE9BQU8sV0FBVztJQUF4QjtRQUNTLHdCQUFtQixHQUFrRCxFQUFFLENBQUM7SUE2QmpGLENBQUM7SUEzQkM7OztPQUdHO0lBQ0ksa0JBQWtCLENBQUMsb0JBQW1FO1FBQzNGLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxvQkFBb0IsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRLENBQUMsR0FBaUM7UUFDL0MsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDdEMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ2xCLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQztZQUNqRCxPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBQ0Qsa0NBQWtDO1FBQ2xDLE1BQU0sZUFBZSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkQsTUFBTSw4QkFBOEIsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDckYsT0FBTyxhQUFhLENBQUMsUUFBUSxLQUFLLGVBQWUsQ0FBQztRQUNwRCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO1lBQ3BDLE9BQU8sQ0FBQyxLQUFLLENBQUMsNkJBQTZCLGVBQWUsRUFBRSxDQUFDLENBQUM7UUFDaEUsQ0FBQztRQUNELE9BQU8sOEJBQThCLENBQUM7SUFDeEMsQ0FBQztDQUNGIn0=
@@ -1,4 +1,3 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
1
  import * as plugins from './smartproxy.plugins.js';
3
2
  export declare class SslRedirect {
4
3
  httpServer: plugins.http.Server;
@@ -0,0 +1,5 @@
1
+ export interface ICertificates {
2
+ privateKey: string;
3
+ publicKey: string;
4
+ }
5
+ export declare function loadDefaultCertificates(): ICertificates;
@@ -0,0 +1,23 @@
1
+ import * as fs from 'fs';
2
+ import * as path from 'path';
3
+ import { fileURLToPath } from 'url';
4
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
5
+ export function loadDefaultCertificates() {
6
+ try {
7
+ const certPath = path.join(__dirname, '..', 'assets', 'certs');
8
+ const privateKey = fs.readFileSync(path.join(certPath, 'key.pem'), 'utf8');
9
+ const publicKey = fs.readFileSync(path.join(certPath, 'cert.pem'), 'utf8');
10
+ if (!privateKey || !publicKey) {
11
+ throw new Error('Failed to load default certificates');
12
+ }
13
+ return {
14
+ privateKey,
15
+ publicKey
16
+ };
17
+ }
18
+ catch (error) {
19
+ console.error('Error loading default certificates:', error);
20
+ throw error;
21
+ }
22
+ }
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRwcm94eS5oZWxwZXJzLmNlcnRpZmljYXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0cHJveHkuaGVscGVycy5jZXJ0aWZpY2F0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDekIsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUVwQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFPL0QsTUFBTSxVQUFVLHVCQUF1QjtJQUNyQyxJQUFJLENBQUM7UUFDSCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQy9ELE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDM0UsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUUzRSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDOUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFFRCxPQUFPO1lBQ0wsVUFBVTtZQUNWLFNBQVM7U0FDVixDQUFDO0lBQ0osQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLHFDQUFxQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVELE1BQU0sS0FBSyxDQUFDO0lBQ2QsQ0FBQztBQUNILENBQUMifQ==
@@ -1,4 +1,3 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
1
  import * as plugins from './smartproxy.plugins.js';
3
2
  export declare class PortProxy {
4
3
  netServer: plugins.net.Server;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@push.rocks/smartproxy",
3
- "version": "3.1.0",
3
+ "version": "3.1.3",
4
4
  "private": false,
5
5
  "description": "a proxy for handling high workloads of proxying",
6
6
  "main": "dist_ts/index.js",
@@ -9,21 +9,22 @@
9
9
  "author": "Lossless GmbH",
10
10
  "license": "MIT",
11
11
  "devDependencies": {
12
- "@gitzone/tsbuild": "^2.1.66",
13
- "@gitzone/tsrun": "^1.2.44",
14
- "@gitzone/tstest": "^1.0.77",
15
- "@push.rocks/tapbundle": "^5.0.12",
16
- "@types/node": "^20.4.5"
12
+ "@git.zone/tsbuild": "^2.1.66",
13
+ "@git.zone/tsrun": "^1.2.44",
14
+ "@git.zone/tstest": "^1.0.77",
15
+ "@push.rocks/tapbundle": "^5.5.6",
16
+ "@types/node": "^22.13.0",
17
+ "typescript": "^5.7.3"
17
18
  },
18
19
  "dependencies": {
19
- "@push.rocks/lik": "^6.0.3",
20
+ "@push.rocks/lik": "^6.1.0",
20
21
  "@push.rocks/smartdelay": "^3.0.5",
21
- "@push.rocks/smartpromise": "^4.0.3",
22
- "@push.rocks/smartrequest": "^2.0.18",
23
- "@push.rocks/smartstring": "^4.0.7",
24
- "@tsclass/tsclass": "^4.0.42",
25
- "@types/ws": "^8.5.5",
26
- "ws": "^8.13.0"
22
+ "@push.rocks/smartpromise": "^4.2.2",
23
+ "@push.rocks/smartrequest": "^2.0.23",
24
+ "@push.rocks/smartstring": "^4.0.15",
25
+ "@tsclass/tsclass": "^4.4.0",
26
+ "@types/ws": "^8.5.14",
27
+ "ws": "^8.18.0"
27
28
  },
28
29
  "files": [
29
30
  "ts/**/*",
@@ -53,11 +54,14 @@
53
54
  "reverse proxy",
54
55
  "authentication"
55
56
  ],
56
- "homepage": "https://code.foss.global/push.rocks/smartproxy",
57
+ "homepage": "https://code.foss.global/push.rocks/smartproxy#readme",
57
58
  "repository": {
58
59
  "type": "git",
59
60
  "url": "https://code.foss.global/push.rocks/smartproxy.git"
60
61
  },
62
+ "bugs": {
63
+ "url": "https://code.foss.global/push.rocks/smartproxy/issues"
64
+ },
61
65
  "scripts": {
62
66
  "test": "(tstest test/)",
63
67
  "build": "(tsbuild --web --allowimplicitany)",
package/readme.md CHANGED
@@ -1,7 +1,9 @@
1
1
  # @push.rocks/smartproxy
2
+
2
3
  A proxy for handling high workloads of proxying.
3
4
 
4
5
  ## Install
6
+
5
7
  To install `@push.rocks/smartproxy`, run the following command in your project's root directory:
6
8
 
7
9
  ```bash
@@ -100,7 +102,7 @@ For more information on how to use the features, refer to the in-depth documenta
100
102
 
101
103
  ## License and Legal Information
102
104
 
103
- This repository contains open-source code that is licensed under the MIT License. A copy of the MIT License can be found in the [license](license) file within this repository.
105
+ This repository contains open-source code that is licensed under the MIT License. A copy of the MIT License can be found in the [license](license) file within this repository.
104
106
 
105
107
  **Please note:** The MIT License does not grant permission to use the trade names, trademarks, service marks, or product names of the project, except as required for reasonable and customary use in describing the origin of the work and reproducing the content of the NOTICE file.
106
108
 
@@ -3,6 +3,6 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@push.rocks/smartproxy',
6
- version: '3.1.0',
6
+ version: '3.1.3',
7
7
  description: 'a proxy for handling high workloads of proxying'
8
8
  }