@push.rocks/smartproxy 22.4.2 → 23.0.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 (101) hide show
  1. package/changelog.md +36 -0
  2. package/dist_rust/rustproxy +0 -0
  3. package/dist_ts/00_commitinfo_data.js +1 -1
  4. package/dist_ts/index.d.ts +1 -6
  5. package/dist_ts/index.js +3 -11
  6. package/dist_ts/protocols/common/fragment-handler.js +5 -1
  7. package/dist_ts/proxies/index.d.ts +1 -6
  8. package/dist_ts/proxies/index.js +2 -8
  9. package/dist_ts/proxies/smart-proxy/index.d.ts +5 -10
  10. package/dist_ts/proxies/smart-proxy/index.js +7 -13
  11. package/dist_ts/proxies/smart-proxy/models/interfaces.d.ts +5 -2
  12. package/dist_ts/proxies/smart-proxy/models/route-types.js +1 -1
  13. package/dist_ts/proxies/smart-proxy/route-preprocessor.d.ts +37 -0
  14. package/dist_ts/proxies/smart-proxy/route-preprocessor.js +103 -0
  15. package/dist_ts/proxies/smart-proxy/rust-binary-locator.d.ts +23 -0
  16. package/dist_ts/proxies/smart-proxy/rust-binary-locator.js +104 -0
  17. package/dist_ts/proxies/smart-proxy/rust-metrics-adapter.d.ts +74 -0
  18. package/dist_ts/proxies/smart-proxy/rust-metrics-adapter.js +146 -0
  19. package/dist_ts/proxies/smart-proxy/rust-proxy-bridge.d.ts +49 -0
  20. package/dist_ts/proxies/smart-proxy/rust-proxy-bridge.js +259 -0
  21. package/dist_ts/proxies/smart-proxy/smart-proxy.d.ts +39 -157
  22. package/dist_ts/proxies/smart-proxy/smart-proxy.js +224 -621
  23. package/dist_ts/proxies/smart-proxy/socket-handler-server.d.ts +45 -0
  24. package/dist_ts/proxies/smart-proxy/socket-handler-server.js +253 -0
  25. package/dist_ts/routing/index.d.ts +1 -1
  26. package/dist_ts/routing/index.js +3 -3
  27. package/dist_ts/routing/models/http-types.d.ts +119 -4
  28. package/dist_ts/routing/models/http-types.js +93 -5
  29. package/package.json +1 -1
  30. package/readme.md +444 -219
  31. package/ts/00_commitinfo_data.ts +1 -1
  32. package/ts/index.ts +4 -15
  33. package/ts/protocols/common/fragment-handler.ts +4 -0
  34. package/ts/proxies/index.ts +1 -12
  35. package/ts/proxies/smart-proxy/index.ts +6 -13
  36. package/ts/proxies/smart-proxy/models/interfaces.ts +6 -4
  37. package/ts/proxies/smart-proxy/models/route-types.ts +0 -2
  38. package/ts/proxies/smart-proxy/route-preprocessor.ts +122 -0
  39. package/ts/proxies/smart-proxy/rust-binary-locator.ts +112 -0
  40. package/ts/proxies/smart-proxy/rust-metrics-adapter.ts +161 -0
  41. package/ts/proxies/smart-proxy/rust-proxy-bridge.ts +310 -0
  42. package/ts/proxies/smart-proxy/smart-proxy.ts +282 -798
  43. package/ts/proxies/smart-proxy/socket-handler-server.ts +279 -0
  44. package/ts/routing/index.ts +2 -2
  45. package/ts/routing/models/http-types.ts +147 -4
  46. package/dist_ts/proxies/nftables-proxy/index.d.ts +0 -6
  47. package/dist_ts/proxies/nftables-proxy/index.js +0 -7
  48. package/dist_ts/proxies/nftables-proxy/models/errors.d.ts +0 -15
  49. package/dist_ts/proxies/nftables-proxy/models/errors.js +0 -28
  50. package/dist_ts/proxies/nftables-proxy/models/index.d.ts +0 -5
  51. package/dist_ts/proxies/nftables-proxy/models/index.js +0 -6
  52. package/dist_ts/proxies/nftables-proxy/models/interfaces.d.ts +0 -75
  53. package/dist_ts/proxies/nftables-proxy/models/interfaces.js +0 -5
  54. package/dist_ts/proxies/nftables-proxy/nftables-proxy.d.ts +0 -124
  55. package/dist_ts/proxies/nftables-proxy/nftables-proxy.js +0 -1374
  56. package/dist_ts/proxies/nftables-proxy/utils/index.d.ts +0 -9
  57. package/dist_ts/proxies/nftables-proxy/utils/index.js +0 -12
  58. package/dist_ts/proxies/nftables-proxy/utils/nft-command-executor.d.ts +0 -66
  59. package/dist_ts/proxies/nftables-proxy/utils/nft-command-executor.js +0 -131
  60. package/dist_ts/proxies/nftables-proxy/utils/nft-port-spec-normalizer.d.ts +0 -39
  61. package/dist_ts/proxies/nftables-proxy/utils/nft-port-spec-normalizer.js +0 -112
  62. package/dist_ts/proxies/nftables-proxy/utils/nft-rule-validator.d.ts +0 -59
  63. package/dist_ts/proxies/nftables-proxy/utils/nft-rule-validator.js +0 -130
  64. package/ts/proxies/http-proxy/connection-pool.ts +0 -228
  65. package/ts/proxies/http-proxy/context-creator.ts +0 -145
  66. package/ts/proxies/http-proxy/default-certificates.ts +0 -150
  67. package/ts/proxies/http-proxy/function-cache.ts +0 -279
  68. package/ts/proxies/http-proxy/handlers/index.ts +0 -5
  69. package/ts/proxies/http-proxy/http-proxy.ts +0 -669
  70. package/ts/proxies/http-proxy/http-request-handler.ts +0 -331
  71. package/ts/proxies/http-proxy/http2-request-handler.ts +0 -255
  72. package/ts/proxies/http-proxy/index.ts +0 -18
  73. package/ts/proxies/http-proxy/models/http-types.ts +0 -148
  74. package/ts/proxies/http-proxy/models/index.ts +0 -5
  75. package/ts/proxies/http-proxy/models/types.ts +0 -125
  76. package/ts/proxies/http-proxy/request-handler.ts +0 -878
  77. package/ts/proxies/http-proxy/security-manager.ts +0 -413
  78. package/ts/proxies/http-proxy/websocket-handler.ts +0 -581
  79. package/ts/proxies/nftables-proxy/index.ts +0 -6
  80. package/ts/proxies/nftables-proxy/models/errors.ts +0 -30
  81. package/ts/proxies/nftables-proxy/models/index.ts +0 -5
  82. package/ts/proxies/nftables-proxy/models/interfaces.ts +0 -94
  83. package/ts/proxies/nftables-proxy/nftables-proxy.ts +0 -1754
  84. package/ts/proxies/nftables-proxy/utils/index.ts +0 -38
  85. package/ts/proxies/nftables-proxy/utils/nft-command-executor.ts +0 -162
  86. package/ts/proxies/nftables-proxy/utils/nft-port-spec-normalizer.ts +0 -125
  87. package/ts/proxies/nftables-proxy/utils/nft-rule-validator.ts +0 -156
  88. package/ts/proxies/smart-proxy/acme-state-manager.ts +0 -112
  89. package/ts/proxies/smart-proxy/cert-store.ts +0 -92
  90. package/ts/proxies/smart-proxy/certificate-manager.ts +0 -895
  91. package/ts/proxies/smart-proxy/connection-manager.ts +0 -809
  92. package/ts/proxies/smart-proxy/http-proxy-bridge.ts +0 -213
  93. package/ts/proxies/smart-proxy/metrics-collector.ts +0 -453
  94. package/ts/proxies/smart-proxy/nftables-manager.ts +0 -271
  95. package/ts/proxies/smart-proxy/port-manager.ts +0 -358
  96. package/ts/proxies/smart-proxy/route-connection-handler.ts +0 -1712
  97. package/ts/proxies/smart-proxy/route-orchestrator.ts +0 -297
  98. package/ts/proxies/smart-proxy/security-manager.ts +0 -269
  99. package/ts/proxies/smart-proxy/throughput-tracker.ts +0 -138
  100. package/ts/proxies/smart-proxy/timeout-manager.ts +0 -196
  101. package/ts/proxies/smart-proxy/tls-manager.ts +0 -171
@@ -1,124 +0,0 @@
1
- import type { NfTableProxyOptions, NfTablesStatus } from './models/index.js';
2
- /**
3
- * NfTablesProxy sets up nftables NAT rules to forward TCP traffic.
4
- * Enhanced with multi-port support, IPv6, connection tracking, metrics,
5
- * and more advanced features.
6
- */
7
- export declare class NfTablesProxy {
8
- settings: NfTableProxyOptions;
9
- private rules;
10
- private ipSets;
11
- private ruleTag;
12
- private tableName;
13
- private tempFilePath;
14
- private executor;
15
- private static NFT_CMD;
16
- constructor(settings: NfTableProxyOptions);
17
- /**
18
- * Checks if nftables is available and the required modules are loaded
19
- */
20
- private checkNftablesAvailability;
21
- /**
22
- * Creates the necessary tables and chains
23
- */
24
- private setupTablesAndChains;
25
- /**
26
- * Creates IP sets for efficient filtering of large IP lists
27
- */
28
- private createIPSet;
29
- /**
30
- * Adds source IP filtering rules, potentially using IP sets for efficiency
31
- */
32
- private addSourceIPFilters;
33
- /**
34
- * Gets a comma-separated list of all ports from a port specification
35
- */
36
- private getAllPorts;
37
- /**
38
- * Configures advanced NAT with connection tracking
39
- */
40
- private setupAdvancedNAT;
41
- /**
42
- * Adds port forwarding rules
43
- */
44
- private addPortForwardingRules;
45
- /**
46
- * Adds port forwarding rules for the case where one toPortRange maps to multiple fromPortRanges
47
- */
48
- private addPortMappings;
49
- /**
50
- * Adds port forwarding rules for pairs of fromPortRanges and toPortRanges
51
- */
52
- private addPortPairMappings;
53
- /**
54
- * Setup quality of service rules
55
- */
56
- private addTrafficShaping;
57
- /**
58
- * Setup NetworkProxy integration rules
59
- */
60
- private setupNetworkProxyIntegration;
61
- /**
62
- * Verify that a rule was successfully applied
63
- */
64
- private verifyRuleApplication;
65
- /**
66
- * Rolls back rules in case of error during setup
67
- */
68
- private rollbackRules;
69
- /**
70
- * Checks if nftables table exists
71
- */
72
- private tableExists;
73
- /**
74
- * Get system metrics like connection counts
75
- */
76
- private getSystemMetrics;
77
- /**
78
- * Get status of IP sets
79
- */
80
- private getIPSetStatus;
81
- /**
82
- * Get detailed status about the current state of the proxy
83
- */
84
- getStatus(): Promise<NfTablesStatus>;
85
- /**
86
- * Performs a dry run to see what commands would be executed without actually applying them
87
- */
88
- dryRun(): Promise<string[]>;
89
- /**
90
- * Starts the proxy by setting up all nftables rules
91
- */
92
- start(): Promise<void>;
93
- /**
94
- * Stops the proxy by removing all added rules
95
- */
96
- stop(): Promise<void>;
97
- /**
98
- * Synchronous version of stop, for use in exit handlers only.
99
- * Uses single-attempt commands without retry (process is exiting anyway).
100
- */
101
- stopSync(): void;
102
- /**
103
- * Cleans up empty tables
104
- */
105
- private cleanupEmptyTables;
106
- /**
107
- * Synchronous version of cleanupEmptyTables (for exit handlers only)
108
- */
109
- private cleanupEmptyTablesSync;
110
- /**
111
- * Removes all nftables rules created by this module
112
- */
113
- static cleanSlate(): Promise<void>;
114
- /**
115
- * Synchronous version of cleanSlate
116
- * @deprecated This method blocks the event loop and should be avoided. Use cleanSlate() instead.
117
- * WARNING: This method uses execSync which blocks the entire Node.js event loop!
118
- */
119
- static cleanSlateSync(): void;
120
- /**
121
- * Improved logging with structured output
122
- */
123
- private log;
124
- }