cfsolve 0.1.1 → 0.1.2

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 (93) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +11 -0
  3. data/README.md +10 -9
  4. data/UPSTREAM.md +6 -6
  5. data/lib/cfsolve/profiles/safari-26-ios/answers.json +2562 -1887
  6. data/lib/cfsolve/profiles/safari-26-ios/challenge-page-answers.json +1873 -1198
  7. data/lib/cfsolve/profiles/safari-26-ios.json +0 -8
  8. data/lib/cfsolve/version.rb +2 -2
  9. data/vendor/cfsolve/README.md +0 -35
  10. data/vendor/cfsolve/examples/build_profile.rs +17 -15
  11. data/vendor/cfsolve/examples/capture_session.rs +37 -0
  12. data/vendor/cfsolve/examples/check_answers.rs +66 -0
  13. data/vendor/cfsolve/examples/compare_session.rs +190 -0
  14. data/vendor/cfsolve/examples/stage2_snapshot.rs +4 -1
  15. data/vendor/cfsolve/profiles/safari-26-ios/answers.json +2562 -1887
  16. data/vendor/cfsolve/profiles/safari-26-ios/challenge-page-answers.json +1873 -1198
  17. data/vendor/cfsolve/profiles/safari-26-ios.json +0 -8
  18. data/vendor/cfsolve/scripts/capture_cssom.mjs +42 -0
  19. data/vendor/cfsolve/scripts/serve_cssom.py +111 -0
  20. data/vendor/cfsolve/src/capture/profile.rs +7 -18
  21. data/vendor/cfsolve/src/capture/recorded.rs +42 -7
  22. data/vendor/cfsolve/src/challenge/installed/audit.rs +131 -0
  23. data/vendor/cfsolve/src/challenge/installed.rs +122 -271
  24. data/vendor/cfsolve/src/challenge/payload.rs +107 -5
  25. data/vendor/cfsolve/src/challenge/state.rs +98 -16
  26. data/vendor/cfsolve/src/deobfuscate/encoded_strings.rs +3 -2
  27. data/vendor/cfsolve/src/deobfuscate/helper_objects.rs +17 -32
  28. data/vendor/cfsolve/src/deobfuscate/register_arrays.rs +18 -5
  29. data/vendor/cfsolve/src/embedding_page/extra_params.rs +0 -14
  30. data/vendor/cfsolve/src/embedding_page/page.rs +28 -2
  31. data/vendor/cfsolve/src/http/client.rs +11 -0
  32. data/vendor/cfsolve/src/js/ast.rs +12 -3
  33. data/vendor/cfsolve/src/js/objects.rs +9 -2
  34. data/vendor/cfsolve/src/listing/fold.rs +0 -83
  35. data/vendor/cfsolve/src/listing/query.rs +25 -244
  36. data/vendor/cfsolve/src/listing.rs +0 -1
  37. data/vendor/cfsolve/src/session/initial.rs +14 -5
  38. data/vendor/cfsolve/src/session/probes.rs +160 -125
  39. data/vendor/cfsolve/src/session/timing.rs +58 -53
  40. data/vendor/cfsolve/src/session/widget.rs +5 -6
  41. data/vendor/cfsolve/src/stage2/analysis/analyze.rs +50 -33
  42. data/vendor/cfsolve/src/stage2/analysis/discovery.rs +61 -66
  43. data/vendor/cfsolve/src/stage2/analysis/envelope.rs +31 -21
  44. data/vendor/cfsolve/src/stage2/analysis/recognize.rs +3 -5
  45. data/vendor/cfsolve/src/stage2/analysis.rs +0 -1
  46. data/vendor/cfsolve/src/stage2/audit_globals.rs +310 -0
  47. data/vendor/cfsolve/src/stage2/benchmark.rs +5 -8
  48. data/vendor/cfsolve/src/stage2/call_stack.rs +72 -16
  49. data/vendor/cfsolve/src/stage2/interaction/native.rs +2 -1
  50. data/vendor/cfsolve/src/stage2/interaction/plan.rs +0 -3
  51. data/vendor/cfsolve/src/stage2/payload/recover.rs +54 -23
  52. data/vendor/cfsolve/src/stage2/probes/ice.rs +11 -10
  53. data/vendor/cfsolve/src/stage2/probes/media.rs +47 -33
  54. data/vendor/cfsolve/src/stage2/probes/performance.rs +1 -0
  55. data/vendor/cfsolve/src/stage2/probes/rects.rs +12 -17
  56. data/vendor/cfsolve/src/stage2/probes/stack.rs +50 -103
  57. data/vendor/cfsolve/src/stage2/probes/websocket_echo.rs +17 -86
  58. data/vendor/cfsolve/src/stage2/probes.rs +0 -1
  59. data/vendor/cfsolve/src/stage2/records.rs +4 -13
  60. data/vendor/cfsolve/src/stage2/reference.json +1 -1
  61. data/vendor/cfsolve/src/stage2/reference.rs +98 -100
  62. data/vendor/cfsolve/src/stage2/registry.rs +41 -34
  63. data/vendor/cfsolve/src/stage2/replay.rs +182 -254
  64. data/vendor/cfsolve/src/stage2/stylesheets.rs +176 -0
  65. data/vendor/cfsolve/src/stage2/trace.rs +18 -0
  66. data/vendor/cfsolve/src/stage2/vocabulary.rs +111 -401
  67. data/vendor/cfsolve/src/stage2.rs +2 -1
  68. data/vendor/cfsolve/src/vm/disassemble.rs +39 -10
  69. data/vendor/cfsolve/src/vm/interpret/access.rs +5 -21
  70. data/vendor/cfsolve/src/vm/interpret/builtin.rs +6 -53
  71. data/vendor/cfsolve/src/vm/interpret/call.rs +86 -9
  72. data/vendor/cfsolve/src/vm/interpret/compile.rs +626 -0
  73. data/vendor/cfsolve/src/vm/interpret/copies.rs +232 -120
  74. data/vendor/cfsolve/src/vm/interpret/evaluate/tests.rs +96 -8
  75. data/vendor/cfsolve/src/vm/interpret/evaluate.rs +219 -92
  76. data/vendor/cfsolve/src/vm/interpret/explore.rs +155 -39
  77. data/vendor/cfsolve/src/vm/interpret/frozen.rs +171 -0
  78. data/vendor/cfsolve/src/vm/interpret/intrinsic.rs +350 -0
  79. data/vendor/cfsolve/src/vm/interpret/plan.rs +71 -44
  80. data/vendor/cfsolve/src/vm/interpret/run.rs +202 -13
  81. data/vendor/cfsolve/src/vm/interpret.rs +7 -2
  82. data/vendor/cfsolve/src/vm/machine.rs +6 -2
  83. data/vendor/cfsolve/src/vm/packed_names.rs +307 -0
  84. data/vendor/cfsolve/src/vm/session.rs +36 -14
  85. data/vendor/cfsolve/src/vm/value.rs +13 -0
  86. data/vendor/cfsolve/src/vm.rs +1 -0
  87. data/vendor/cfsolve/vendor/btls-sys/src/lib.rs +3 -0
  88. metadata +13 -6
  89. data/vendor/cfsolve/src/listing/normalize.rs +0 -264
  90. data/vendor/cfsolve/src/stage2/analysis/outputs.rs +0 -327
  91. data/vendor/cfsolve/src/stage2/probes/stylesheets.rs +0 -249
  92. data/vendor/cfsolve/src/stage2/reference-expanded.json +0 -42
  93. data/vendor/cfsolve/src/stage2/session_names.rs +0 -470
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4828b2b3d60862c05be945e5ae1ca02c96c63889f39ad326759e01702b54d75e
4
- data.tar.gz: bd34543669e65937407d5670ad0bfdb679cfb0fd2211ac8176de0d1f9d85d563
3
+ metadata.gz: bbd5101875032e0d2e2bcbc6c7ec64161c8c7363e819684ce9b2797f477c634b
4
+ data.tar.gz: f33c20026c25102c9fa477cfa8be8f8bc409ca9b16ce1e97357471ccaf8acd4a
5
5
  SHA512:
6
- metadata.gz: d03f438c214dfa30a921c9e015a087155fdf8c74b192b705ce8d338c5e8868d6bebe22c8977f824ac69127a1d687a4b5cd587d071f253d0cc5dddf40e7c3f232
7
- data.tar.gz: b8eb750a28710676dcdb2671d5fc1168200d6c749981c9418d54a01dd1299facc40a0f0e1144bee16f3d9ece694aafa0b56d7a889b0446cc6f4b4481fc3d5628
6
+ metadata.gz: 8dcb5d2d0793ebdf7ee807b32e4e00ec11b4f3f5e560541cfcc099ed804a080223a74f3e730eb90564cae77330f429ec32c5c0962ba5528bcfab387e358d5d76
7
+ data.tar.gz: 96f743b77b2f34121a8a46d41ef0c37fb2c147417850a057ab15d54055d65c4168446bd5a55b17819a29fae0c44e16626cf365666a61f5a465ed3e3ba428f0ae
data/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.2
4
+
5
+ Update the native engine to upstream master (`1599e9b`) and refresh the bundled
6
+ Safari profile. Upstream now supplies the challenge recovery and replay fixes
7
+ previously carried from PR #5, including support for build `5c2e6b612edd`.
8
+
9
+ Use `Cfsolve::Browser.new` for the updated bundled profile. Custom answers from
10
+ earlier releases use a different format; regenerate them with upstream's capture
11
+ tools before use. Converting the format alone does not guarantee that older
12
+ browser measurements will be accepted by a newer challenge build.
13
+
3
14
  ## 0.1.1
4
15
 
5
16
  Update the native engine to rebased upstream PR #5 (`0f97eb7`). Adopt upstream's
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # cfsolve
2
2
 
3
- Ruby bindings for [cfsolve](https://github.com/chris124567/cfsolve), based on
4
- [PR #5](https://github.com/chris124567/cfsolve/pull/5).
3
+ Ruby bindings for [cfsolve](https://github.com/chris124567/cfsolve), using its
4
+ upstream master solver and bundled browser profile.
5
5
 
6
6
  ```ruby
7
7
  gem "cfsolve"
@@ -10,7 +10,7 @@ gem "cfsolve"
10
10
  ```ruby
11
11
  require "cfsolve"
12
12
 
13
- browser = Cfsolve::Browser.new(profile: "/secure/browser.json")
13
+ browser = Cfsolve::Browser.new
14
14
  token = browser.solve_turnstile("https://example.com/sign-in", sitekey: "your-sitekey")
15
15
  # Submit token using the site's authentication protocol.
16
16
 
@@ -25,13 +25,14 @@ sitekey, it uses the page's first Turnstile container. `clear` and `solve` accep
25
25
  `proxy` and `timeout`; `solve` returns a hash with type `token` or `clearance`.
26
26
  Proxies may use HTTP, HTTPS, SOCKS5, or SOCKS5H.
27
27
 
28
- Profiles contain browser measurements, not site login credentials. A profile
29
- file may reference answer files relative to its directory. Applications can
30
- instead pass parsed hashes through `profile:`, `answers:`, and
28
+ The upstream Safari profile is bundled as the default. To use a custom profile,
29
+ pass `profile: "/path/to/browser.json"`. Profiles contain browser measurements,
30
+ not site login credentials. A profile file may reference answer files relative
31
+ to its directory. Applications can instead pass parsed hashes through
32
+ `profile:`, `answers:`, and
31
33
  `challenge_page_answers:`. Store private profiles in your application's secret
32
- configuration. The upstream Safari profile is bundled as the default; support
33
- depends on the challenge build and profile. Changes at Cloudflare may require
34
- an updated solver or freshly captured browser answers.
34
+ configuration. Support depends on the challenge build and profile. Changes at
35
+ Cloudflare may require an updated solver or freshly captured browser answers.
35
36
 
36
37
  Each call launches a bundled Rust executable, sends configuration through stdin,
37
38
  and reads its result through stdout. No tokens or profiles appear in process
data/UPSTREAM.md CHANGED
@@ -1,11 +1,11 @@
1
- The Rust engine is vendored from [chris124567/cfsolve](https://github.com/chris124567/cfsolve),
2
- including [PR #5](https://github.com/chris124567/cfsolve/pull/5), at commit
3
- `0f97eb7ccfea54f445b60a624ad8949beae95e95`.
1
+ The Rust engine is vendored from [chris124567/cfsolve](https://github.com/chris124567/cfsolve)
2
+ master at commit `1599e9b80b74689587f0e35445185c8174066793`.
4
3
 
5
4
  `vendor/cfsolve` is an unmodified archive of that revision. Its three patched
6
5
  dependencies are applied by the extension's top-level Cargo manifest. The Ruby
7
6
  adapter is in `lib/` and `ext/cfsolve/src/main.rs`.
8
7
 
9
- To update, replace the vendored archive with an audited upstream revision, update
10
- the revision in `lib/cfsolve/version.rb`, regenerate the extension's Cargo.lock,
11
- and run the Ruby tests and fresh challenge checks before releasing.
8
+ To update, replace the vendored archive with an audited upstream revision, copy
9
+ its `profiles/` directory to `lib/cfsolve/profiles/`, update the revision in
10
+ `lib/cfsolve/version.rb`, and refresh the extension's Cargo.lock if dependencies
11
+ changed. Run the Ruby tests and fresh challenge checks before releasing.