@push.rocks/smartproxy 27.12.8 → 27.13.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.
- package/changelog.md +7 -1
- package/dist_rust/rustproxy_linux_amd64 +0 -0
- package/dist_rust/rustproxy_linux_arm64 +0 -0
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/index.d.ts +1 -1
- package/dist_ts/plugins.d.ts +4 -2
- package/dist_ts/plugins.js +5 -3
- package/dist_ts/proxies/smart-proxy/challenge-provider-relay-server.d.ts +31 -0
- package/dist_ts/proxies/smart-proxy/challenge-provider-relay-server.js +297 -0
- package/dist_ts/proxies/smart-proxy/models/index.d.ts +1 -1
- package/dist_ts/proxies/smart-proxy/models/interfaces.d.ts +13 -0
- package/dist_ts/proxies/smart-proxy/models/route-types.d.ts +2 -0
- package/dist_ts/proxies/smart-proxy/models/route-types.js +1 -1
- package/dist_ts/proxies/smart-proxy/models/rust-types.d.ts +4 -1
- package/dist_ts/proxies/smart-proxy/rust-proxy-bridge.d.ts +2 -1
- package/dist_ts/proxies/smart-proxy/rust-proxy-bridge.js +4 -1
- package/dist_ts/proxies/smart-proxy/smart-proxy.d.ts +19 -0
- package/dist_ts/proxies/smart-proxy/smart-proxy.js +339 -89
- package/dist_ts/proxies/smart-proxy/utils/rust-config.d.ts +3 -2
- package/dist_ts/proxies/smart-proxy/utils/rust-config.js +19 -2
- package/package.json +2 -1
- package/readme.md +64 -1
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/index.ts +1 -1
- package/ts/plugins.ts +4 -1
- package/ts/proxies/smart-proxy/challenge-provider-relay-server.ts +338 -0
- package/ts/proxies/smart-proxy/models/index.ts +1 -1
- package/ts/proxies/smart-proxy/models/interfaces.ts +16 -0
- package/ts/proxies/smart-proxy/models/route-types.ts +3 -0
- package/ts/proxies/smart-proxy/models/rust-types.ts +7 -1
- package/ts/proxies/smart-proxy/rust-proxy-bridge.ts +6 -0
- package/ts/proxies/smart-proxy/smart-proxy.ts +400 -94
- package/ts/proxies/smart-proxy/utils/rust-config.ts +21 -0
|
@@ -4,6 +4,7 @@ import type { ISmartProxyOptions, ISmartProxySecurityPolicy, IActiveConnectionSn
|
|
|
4
4
|
import type { IRouteConfig } from './models/route-types.js';
|
|
5
5
|
import type { IMetrics } from './models/metrics-types.js';
|
|
6
6
|
import type { IRustCertificateStatus, IRustStatistics } from './models/rust-types.js';
|
|
7
|
+
type TChallengeProvider = plugins.smartchallenge.IChallengeProvider;
|
|
7
8
|
/**
|
|
8
9
|
* SmartProxy - Rust-backed proxy engine with TypeScript configuration API.
|
|
9
10
|
*
|
|
@@ -21,12 +22,20 @@ export declare class SmartProxy extends plugins.EventEmitter {
|
|
|
21
22
|
private preprocessor;
|
|
22
23
|
private socketHandlerServer;
|
|
23
24
|
private datagramHandlerServer;
|
|
25
|
+
private challengeProviderRelayServer;
|
|
26
|
+
private challengeProviders;
|
|
27
|
+
private challengeRuntimeOptions?;
|
|
24
28
|
private metricsAdapter;
|
|
25
29
|
private nftablesManager;
|
|
26
30
|
private routeUpdateLock;
|
|
27
31
|
private stopping;
|
|
28
32
|
private certProvisionPromise;
|
|
29
33
|
constructor(settingsArg: ISmartProxyOptions);
|
|
34
|
+
/**
|
|
35
|
+
* Register a runtime challenge provider family. Routes reference providerId + challengeType;
|
|
36
|
+
* deployment wiring and provider secrets stay outside route configs.
|
|
37
|
+
*/
|
|
38
|
+
registerChallengeProvider(providerId: string, provider: TChallengeProvider): void;
|
|
30
39
|
/**
|
|
31
40
|
* Start the proxy.
|
|
32
41
|
* Spawns the Rust binary, configures socket relay if needed, sends routes, handles cert provisioning.
|
|
@@ -89,6 +98,7 @@ export declare class SmartProxy extends plugins.EventEmitter {
|
|
|
89
98
|
* Get NFTables status.
|
|
90
99
|
*/
|
|
91
100
|
getNfTablesStatus(): plugins.smartnftables.INftStatus | null;
|
|
101
|
+
private cleanupRuntimeResourcesAfterStartFailure;
|
|
92
102
|
/**
|
|
93
103
|
* Apply NFTables rules for routes using the nftables forwarding engine.
|
|
94
104
|
*/
|
|
@@ -97,6 +107,14 @@ export declare class SmartProxy extends plugins.EventEmitter {
|
|
|
97
107
|
* Build the Rust configuration object from TS settings.
|
|
98
108
|
*/
|
|
99
109
|
private buildRustConfig;
|
|
110
|
+
private hasChallengeRoutes;
|
|
111
|
+
private ensureChallengeProviderRelay;
|
|
112
|
+
private validateChallengeRoutes;
|
|
113
|
+
private validateChallengeIntentShape;
|
|
114
|
+
private validateAllowedChallengeKeys;
|
|
115
|
+
private isPlainRecord;
|
|
116
|
+
private collectForbiddenChallengeKeys;
|
|
117
|
+
private looksLikeRuntimeChallengeValue;
|
|
100
118
|
/**
|
|
101
119
|
* For routes with certificate: 'auto', call certProvisionFunction if set.
|
|
102
120
|
* If the callback returns a cert object, load it into Rust.
|
|
@@ -122,3 +140,4 @@ export declare class SmartProxy extends plugins.EventEmitter {
|
|
|
122
140
|
private normalizeDomainsForCertProvisioning;
|
|
123
141
|
private isValidDomain;
|
|
124
142
|
}
|
|
143
|
+
export {};
|