@push.rocks/smartproxy 30.0.1 → 31.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 (40) hide show
  1. package/.smartconfig.json +5 -3
  2. package/changelog.md +91 -0
  3. package/dist_rust/rustproxy_linux_amd64_musl +0 -0
  4. package/dist_rust/rustproxy_linux_amd64_musl.third-party-notices.json +3358 -0
  5. package/dist_rust/rustproxy_linux_amd64_musl.third-party-notices.txt +44997 -0
  6. package/dist_rust/rustproxy_linux_amd64_musl.tsrust-build.json +5 -5
  7. package/dist_rust/rustproxy_linux_arm64_musl +0 -0
  8. package/dist_rust/rustproxy_linux_arm64_musl.third-party-notices.json +3358 -0
  9. package/dist_rust/rustproxy_linux_arm64_musl.third-party-notices.txt +44997 -0
  10. package/dist_rust/rustproxy_linux_arm64_musl.tsrust-build.json +5 -5
  11. package/dist_ts/00_commitinfo_data.js +1 -1
  12. package/dist_ts/index.d.ts +1 -1
  13. package/dist_ts/proxies/index.d.ts +1 -1
  14. package/dist_ts/proxies/smart-proxy/models/interfaces.d.ts +16 -3
  15. package/dist_ts/proxies/smart-proxy/models/route-types.d.ts +27 -0
  16. package/dist_ts/proxies/smart-proxy/models/route-types.js +1 -1
  17. package/dist_ts/proxies/smart-proxy/models/rust-types.d.ts +18 -2
  18. package/dist_ts/proxies/smart-proxy/rust-proxy-bridge.d.ts +7 -2
  19. package/dist_ts/proxies/smart-proxy/rust-proxy-bridge.js +8 -3
  20. package/dist_ts/proxies/smart-proxy/smart-proxy.d.ts +18 -1
  21. package/dist_ts/proxies/smart-proxy/smart-proxy.js +106 -38
  22. package/dist_ts/proxies/smart-proxy/utils/route-validator.d.ts +46 -3
  23. package/dist_ts/proxies/smart-proxy/utils/route-validator.js +293 -3
  24. package/dist_ts/proxies/smart-proxy/utils/rust-config.d.ts +2 -2
  25. package/dist_ts/proxies/smart-proxy/utils/rust-config.js +9 -5
  26. package/native-notices/manifest.json +13 -1
  27. package/native-notices/readme.md +4 -2
  28. package/native-notices/runtime/libunwind-22.1.2/license.txt +311 -0
  29. package/package.json +10 -12
  30. package/readme.md +70 -13
  31. package/ts/00_commitinfo_data.ts +1 -1
  32. package/ts/index.ts +1 -1
  33. package/ts/proxies/index.ts +1 -1
  34. package/ts/proxies/smart-proxy/models/interfaces.ts +17 -3
  35. package/ts/proxies/smart-proxy/models/route-types.ts +28 -1
  36. package/ts/proxies/smart-proxy/models/rust-types.ts +21 -3
  37. package/ts/proxies/smart-proxy/rust-proxy-bridge.ts +13 -3
  38. package/ts/proxies/smart-proxy/smart-proxy.ts +115 -40
  39. package/ts/proxies/smart-proxy/utils/route-validator.ts +329 -4
  40. package/ts/proxies/smart-proxy/utils/rust-config.ts +10 -5
@@ -115,7 +115,10 @@ export function serializeRouteForRust(route: IRouteConfig): IRustRouteConfig {
115
115
  };
116
116
  }
117
117
 
118
- function serializeAcmeForRust(acme?: IAcmeOptions): IRustAcmeOptions | undefined {
118
+ function serializeAcmeForRust(
119
+ acme: IAcmeOptions | undefined,
120
+ certProvisionFunction: ISmartProxyOptions['certProvisionFunction'],
121
+ ): IRustAcmeOptions | undefined {
119
122
  if (!acme) {
120
123
  return undefined;
121
124
  }
@@ -131,6 +134,9 @@ function serializeAcmeForRust(acme?: IAcmeOptions): IRustAcmeOptions | undefined
131
134
  autoRenew: acme.autoRenew,
132
135
  skipConfiguredCerts: acme.skipConfiguredCerts,
133
136
  renewCheckIntervalHours: acme.renewCheckIntervalHours,
137
+ // A certProvisionFunction owns provisioning and renewal; the engine orders
138
+ // only what it is asked to: 'http01' results and the ACME fallback.
139
+ autoProvision: certProvisionFunction ? false : undefined,
134
140
  };
135
141
  }
136
142
 
@@ -171,16 +177,14 @@ export function buildChallengeOptionsForRust(settings: ISmartProxyOptions): IRus
171
177
  export function buildRustProxyOptions(
172
178
  settings: ISmartProxyOptions,
173
179
  routes: IRustRouteConfig[],
174
- acmeOverride?: IAcmeOptions,
175
180
  challengeOverride?: IRustChallengeOptions,
176
181
  ): IRustProxyOptions {
177
- const acme = acmeOverride !== undefined ? acmeOverride : settings.acme;
178
-
179
182
  return {
180
183
  routes,
181
184
  preserveSourceIp: settings.preserveSourceIP,
182
185
  trustedProxyIPs: settings.trustedProxyIPs,
183
186
  sendProxyProtocol: settings.sendProxyProtocol,
187
+ backendTls: settings.backendTls,
184
188
  defaults: serializeDefaultsForRust(settings.defaults),
185
189
  connectionTimeout: settings.connectionTimeout,
186
190
  initialDataTimeout: settings.initialDataTimeout,
@@ -198,6 +202,7 @@ export function buildRustProxyOptions(
198
202
  enableDetailedLogging: settings.enableDetailedLogging,
199
203
  enableTlsDebugLogging: settings.enableTlsDebugLogging,
200
204
  enableRandomizedTimeouts: settings.enableRandomizedTimeouts,
205
+ // `null` travels as JSON `null`, which the engine reads as `None`: no per-IP limit.
201
206
  maxConnectionsPerIp: settings.maxConnectionsPerIP,
202
207
  connectionRateLimitPerMinute: settings.connectionRateLimitPerMinute,
203
208
  keepAliveTreatment: settings.keepAliveTreatment,
@@ -206,6 +211,6 @@ export function buildRustProxyOptions(
206
211
  metrics: settings.metrics,
207
212
  securityPolicy: settings.securityPolicy,
208
213
  challenge: challengeOverride || buildChallengeOptionsForRust(settings),
209
- acme: serializeAcmeForRust(acme),
214
+ acme: serializeAcmeForRust(settings.acme, settings.certProvisionFunction),
210
215
  };
211
216
  }