Custom CA certificates (new)
- Add custom CA certificate support for TLS trust evaluation (#468)
- Windows: implement custom CA trust, and document the shared contract
- Close the trust holes and align Android with iOS
- Windows: re-check certificates the platform remembers, instead of trusting a per-process acceptance cache that survived full handshakes
- Windows: forgive revocation-unknown on the custom CA path
- Windows: resolve custom CA certificates for unpackaged apps too
Progress reporting
- Windows: report upload and download progress
- Progress byte counts are real numbers on the wire from every platform now. Android and iOS stringified
written/totalon every event and the JS side converted them back; they now sendputDoubleandNSNumber, which is what the documented callback signature has always promised and what Windows already did. Nothing changes for callers:toByteCountnormalised before your callback already and stays as a tolerant shim, so new JS with older native and the reverse both keep working, and-1remains the unknown-length sentinel - Always report the completion of a transfer: the final 100% event is no longer dropped when it lands inside the interval window
Multipart and base64
- Android: keep the multipart body when a field is not valid base64. One undecodable field used to discard every other field with it, real files included, and the request went out with no body at all
- iOS: decode form and body base64 the way Android does. Column-wrapped base64 (PEM at 64 columns, MIME at 76) was silently sent as an empty part, or as a zero-length body, with no error
- iOS: warn when a form field's base64 cannot be decoded
- iOS: report base64 that cannot be decoded, instead of a misleading write error
Windows filesystem and networking
fs.readStream()now worksfs.existsreported every path as present, andfs.isDirevery path as a filefs.unlinkrejected every time it succeededfetchBlobhonoursfileCacheandpath, and accepts POST- Create missing parent directories when opening a write stream
- Return raw bytes for an ascii read
- Report fs results in the shapes the JS wrappers read
- Return the callback shape
fetch.jsexpects, and correct theexistscallback contract at its source - Report a bad URL instead of taking the app down
- Correct
to_hstringmisuse
Other
- New Architecture: resolve the native module lazily so importing the package cannot crash a bridgeless cold start (#479)
- iOS:
lstatrejected for every file path - Expo: use
IOSConfig.XcodeUtils.addResourceFileToGroupfor config-plugin compatibility - Repair the native module refactor