@push.rocks/smartproxy 30.0.0 → 30.1.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 (27) hide show
  1. package/changelog.md +26 -0
  2. package/dist_rust/rustproxy_linux_amd64_musl +0 -0
  3. package/dist_rust/rustproxy_linux_amd64_musl.third-party-notices.json +3358 -0
  4. package/dist_rust/rustproxy_linux_amd64_musl.third-party-notices.txt +44997 -0
  5. package/dist_rust/rustproxy_linux_amd64_musl.tsrust-build.json +5 -5
  6. package/dist_rust/rustproxy_linux_arm64_musl +0 -0
  7. package/dist_rust/rustproxy_linux_arm64_musl.third-party-notices.json +3358 -0
  8. package/dist_rust/rustproxy_linux_arm64_musl.third-party-notices.txt +44997 -0
  9. package/dist_rust/rustproxy_linux_arm64_musl.tsrust-build.json +5 -5
  10. package/dist_ts/00_commitinfo_data.js +1 -1
  11. package/dist_ts/proxies/smart-proxy/models/interfaces.d.ts +10 -2
  12. package/dist_ts/proxies/smart-proxy/models/rust-types.d.ts +4 -2
  13. package/dist_ts/proxies/smart-proxy/smart-proxy.js +7 -3
  14. package/dist_ts/proxies/smart-proxy/utils/route-validator.d.ts +4 -3
  15. package/dist_ts/proxies/smart-proxy/utils/route-validator.js +14 -3
  16. package/dist_ts/proxies/smart-proxy/utils/rust-config.js +2 -1
  17. package/native-notices/manifest.json +13 -1
  18. package/native-notices/readme.md +4 -2
  19. package/native-notices/runtime/libunwind-22.1.2/license.txt +311 -0
  20. package/package.json +4 -4
  21. package/readme.md +4 -3
  22. package/ts/00_commitinfo_data.ts +1 -1
  23. package/ts/proxies/smart-proxy/models/interfaces.ts +10 -2
  24. package/ts/proxies/smart-proxy/models/rust-types.ts +4 -2
  25. package/ts/proxies/smart-proxy/smart-proxy.ts +6 -2
  26. package/ts/proxies/smart-proxy/utils/route-validator.ts +16 -3
  27. package/ts/proxies/smart-proxy/utils/rust-config.ts +1 -0
package/changelog.md CHANGED
@@ -1,5 +1,31 @@
1
1
  # Changelog
2
2
 
3
+ ## 2026-10-18 - 30.1.0
4
+
5
+ ### Features
6
+
7
+ - `maxConnectionsPerIP` and `connectionRateLimitPerMinute` accept `null` for no per-IP limit (smart-proxy)
8
+ - The engine already reads an absent limit as none; `null` now reaches it as such. A listener behind a reverse proxy that pools its backend connections sees every client from the proxy's address, so the per-IP limits there throttle all clients together; such a listener can now turn them off and leave per-client limits to the edge. Omitting a limit keeps its default of 100 simultaneous connections or 300 new connections per minute.
9
+
10
+ ### Fixes
11
+
12
+ - Refuse a per-IP limit that is not a positive integer (smart-proxy)
13
+ - The constructor defaulted both limits with `||`, so `0` and `NaN` silently became 100 or 300, negative and fractional values reached the engine, and `Infinity` reached it as no limit. Each of them now throws `SettingsValidationError` naming the field; `RouteValidator.validateSettings()` answers the same reason. A consumer that passed `0` or `Infinity` must pass `null` for no limit, or omit the option for the default.
14
+
15
+ ### Maintenance
16
+
17
+ - Drop Deno from the test surface: the route utility unit test `test/test.deno.ts` runs on Node as `test/test.node.ts`, and `deno.lock` is removed; the public API is unchanged.
18
+ - release tooling: @git.zone/tsrust 5.0.0, @git.zone/tstest 8.0.0, @types/node 26.6.5, pnpm 12.12.0
19
+ - `native-notices/` is regenerated with `tsrust notices`: the static musl binaries' LLVM libunwind is now listed with its own license text (`runtime/libunwind-22.1.2/`), and each binary in `dist_rust/` ships tsrust's third-party notices sidecar beside it.
20
+
21
+ ## 2026-10-13 - 30.0.1
22
+
23
+ ### Fixes
24
+
25
+ - Apply a route's IP, ingress and VPN security to a QUIC connection only when the connection is for that route (rust)
26
+ - The QUIC listener matched routes before the handshake, without the client's SNI, and applied the first route on the port's security to every connection. With an `ipAllowList` route and an open route for another hostname on one HTTP/3 port, every HTTP/3 connection from a source outside the list was refused, including those for the open hostname.
27
+ - A route that matches every hostname still has its security applied before the handshake. When only domain-restricted routes match, the listener now waits for the handshake's SNI, selects the route for that hostname as the TCP listener does, and applies that route's security with the SNI as the domain; an outsider is still refused for the restricted hostname, and HTTP/3 requests are still checked per request against the route their `:authority` selects. A QUIC connection without SNI, or with an SNI no route lists, no longer matches a domain-restricted route, as on TCP.
28
+
3
29
  ## 2026-10-13 - 30.0.0
4
30
 
5
31
  ### Breaking Changes