@intellifend/requestshieldjs 2.0.0-qat.198 → 2.0.0-qat.204

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/README.md CHANGED
@@ -63,9 +63,8 @@ The module is embedded in the SDK bundle; it adds no separate module URL or
63
63
  download. Pages enforcing CSP must allow `'wasm-unsafe-eval'` in `script-src`.
64
64
  Existing script, service, and Web Worker permissions remain necessary.
65
65
 
66
- `init()` remains synchronous. Token acquisition waits for module readiness
67
- within the existing whole-flow deadline. If WebAssembly is unavailable, blocked,
68
- or fails, `getToken()` resolves to `""`. Seamless mode sends the application
66
+ `init()` is synchronous. If WebAssembly is unavailable, blocked, or fails,
67
+ `getToken()` resolves to `""`. Seamless mode sends the application
69
68
  request without adding a token, and the backend applies its missing-token
70
69
  policy. Test this path together with your CSP and browser requirements.
71
70
 
@@ -142,19 +141,16 @@ IntelliFend.init({
142
141
 
143
142
  URLs are normalized for surrounding whitespace and trailing slashes while retaining path prefixes. No secondary hostname is inferred automatically. A missing or identical fallback preserves the existing single-endpoint behavior.
144
143
 
145
- With a distinct fallback, each create or verify operation still gets at most two attempts. Its first network attempt, including the response-body read, has at most `min(1000 ms, remaining flow budget / 2)`. An eligible failure tries the other endpoint after bounded retry jitter if enough time remains. The second attempt uses the remaining budget. The configured whole-flow deadline includes create, solve, verify, and retries; it defaults to 5,000 ms and never resets on a switch.
146
-
147
- Eligible failures are network rejection, individual attempt timeout, HTTP 5xx, interrupted successful response-body reads, and non-binary HTTP 2xx proxy responses. Received 4xx, fully read malformed binary, invalid challenge scope/shape, solver failure, cancellation, and whole-flow expiry stop acquisition. Verify starts on the endpoint that supplied the validated challenge; a verify retry reuses that challenge and solution without repeating PoW.
148
-
149
- Successful token acquisition through secondary establishes a fixed 60-second preference in page memory. Further secondary successes, including overlapping fallback flows, do not extend an active window. After expiry the next flow tries primary; recovery clears the preference. Reinitialization resets it. Among overlapping successful flows, the later-started flow determines preference; a late completion from an older flow cannot replace it. No cookies, browser storage, or health-polling requests are used. Both endpoints bypass Seamless interception and preserve omitted credentials and header-free challenge requests. `getToken()` still returns a token or `""`.
144
+ The SDK can retry eligible connection failures through the alternate service.
145
+ All attempts share the configured token timeout, which defaults to 5,000 ms.
146
+ Switching services does not restart that timeout. No cookies or browser storage
147
+ are used. `getToken()` returns a token or `""` if acquisition fails.
150
148
 
151
149
  ### Optional browser signal collection
152
150
 
153
151
  `telemetry: true` collects a bounded summary of browser
154
152
  interaction and timezone information in page memory for up to five minutes.
155
- Each token flow samples the current numeric timezone offset and sends one
156
- snapshot with the challenge request. The optional timezone name is resolved
157
- during idle work and may reflect an earlier timezone setting.
153
+ This summary accompanies token requests and includes timezone information.
158
154
 
159
155
  The collector does not retain raw events, typed text, key values, DOM references,
160
156
  or mouse paths. It uses no cookies, browser storage, or persistent identity and
@@ -194,13 +190,9 @@ serialization, file names, MIME types, and document charset handling. GET/HEAD
194
190
  bodies remain ignored. If capture fails, the original native `send()` runs
195
191
  immediately with the original body and retains its native validation errors.
196
192
 
197
- Challenge hostname validation uses the server's canonical DNS spelling,
198
- including removal of one terminal root dot. This does not change exact-origin
199
- Seamless endpoint matching.
200
-
201
193
  ### Token lifetime and single use
202
194
 
203
- Tokens are short-lived and single-use. Use one token for one protected application request, obtain a fresh token for a retry, and never reuse a token after native Fetch or XHR dispatch may have sent it. Seamless mode manages one warm token and never gives the same token to two requests.
195
+ Tokens are short-lived and single-use. Use one token for one protected application request, obtain a fresh token for a retry, and never reuse a token after native Fetch or XHR dispatch may have sent it. Seamless mode never gives the same token to two requests.
204
196
 
205
197
  ### CORS
206
198
 
@@ -237,9 +229,9 @@ The SDK targets Chrome/Edge 97+, Firefox 102+, and Safari/iOS 16+ with
237
229
  WebAssembly and the required CSP permission. Test your integration on the
238
230
  browsers and devices your application supports. Proof-of-work runs off the
239
231
  main thread in a Web Worker.
240
- Completion time depends on the device and service-selected challenge. Module
241
- readiness shares the default five-second token budget; expiry returns `""`,
242
- and the backend remains responsible for its missing-token policy.
232
+ Completion time depends on the device and service-selected challenge. Token
233
+ acquisition has a configurable timeout of five seconds by default. On timeout,
234
+ `getToken()` returns `""`, and the backend applies its missing-token policy.
243
235
 
244
236
  ## License
245
237
 
@@ -1,18 +1,18 @@
1
1
  {
2
- "version": "2.0.0-qat.198",
2
+ "version": "2.0.0-qat.204",
3
3
  "algorithm": "sha384",
4
4
  "bundles": [
5
5
  {
6
6
  "name": "intellifend",
7
7
  "path": "intellifend.js",
8
- "version": "2.0.0-qat.198",
9
- "integrity": "sha384-ayemQmkik8tivZ2S89oQHNIHGL4GF0bBccGyaXTvot4k9q12zjzA/SYtPinpky8y"
8
+ "version": "2.0.0-qat.204",
9
+ "integrity": "sha384-EiSYGXAoIbbj/1cSFLfbnq9Kr9AuVRah2wcs27G6c/En4WaTzpvBs7wkvwQt5zPz"
10
10
  },
11
11
  {
12
12
  "name": "intellifend-esm",
13
13
  "path": "intellifend.mjs",
14
- "version": "2.0.0-qat.198",
15
- "integrity": "sha384-xV+U97ER0Yf31pnXNCckblYs8YhlSxMI10MpsqonOQ+0qijFjwpDxshxuD/N/Rg2"
14
+ "version": "2.0.0-qat.204",
15
+ "integrity": "sha384-yyh4+YzCrfeKv/qw4ClpSQzcP6R5Kk2/C3WfrG9bMR1rzpFB4vZyiQNAhOgbuWxY"
16
16
  }
17
17
  ]
18
18
  }