react-native-nitro-fetch 1.3.1 → 1.3.3
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/NitroFetch.podspec +1 -3
- package/README.md +38 -0
- package/android/build.gradle +12 -0
- package/android/src/main/java/com/margelo/nitro/nitrofetch/AutoPrefetcher.kt +148 -55
- package/android/src/main/java/com/margelo/nitro/nitrofetch/DevToolsReporterImpl.kt +27 -36
- package/ios/NitroAutoPrefetcher.swift +149 -53
- package/ios/NitroDevToolsReporter.mm +37 -31
- package/lib/module/CurlGenerator.js.map +2 -1
- package/lib/module/Headers.js.map +2 -1
- package/lib/module/HermesProfiler.js.map +1 -1
- package/lib/module/NetworkInspector.js +1 -1
- package/lib/module/NetworkInspector.js.map +2 -1
- package/lib/module/NitroCronet.nitro.js.map +2 -1
- package/lib/module/NitroFetch.nitro.js.map +1 -2
- package/lib/module/NitroInstances.js.map +2 -1
- package/lib/module/Response.js.map +1 -2
- package/lib/module/fetch.js +8 -10
- package/lib/module/fetch.js.map +2 -1
- package/lib/module/index.js.map +2 -2
- package/lib/module/index.web.js +2 -1
- package/lib/module/tokenRefresh.js.map +2 -1
- package/lib/module/utf8.js.map +1 -2
- package/lib/typescript/src/fetch.d.ts.map +1 -1
- package/lib/typescript/src/tokenRefresh.d.ts +14 -0
- package/lib/typescript/src/tokenRefresh.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/CurlGenerator.js +23 -26
- package/src/Headers.js +108 -116
- package/src/HermesProfiler.js +16 -18
- package/src/NetworkInspector.js +171 -179
- package/src/NitroInstances.js +2 -1
- package/src/Request.js +167 -164
- package/src/Response.js +244 -242
- package/src/fetch.js +708 -693
- package/src/fetch.ts +15 -16
- package/src/index.js +17 -2
- package/src/index.web.js +69 -67
- package/src/tokenRefresh.js +75 -77
- package/src/tokenRefresh.ts +16 -0
- package/src/utf8.js +28 -27
|
@@ -111,19 +111,14 @@ public final class NitroAutoPrefetcher: NSObject {
|
|
|
111
111
|
}
|
|
112
112
|
|
|
113
113
|
if initialized {
|
|
114
|
-
// Late path — apply cached
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
!cacheRaw.isEmpty,
|
|
118
|
-
let cacheData = cacheRaw.data(using: .utf8),
|
|
119
|
-
let cacheObj = try? JSONSerialization.jsonObject(with: cacheData) as? [String: String] {
|
|
120
|
-
tokenHeaders = cacheObj
|
|
121
|
-
}
|
|
114
|
+
// Late path — apply cached tokens + kick immediate prefetch
|
|
115
|
+
let tokens = deserializeCache(
|
|
116
|
+
NitroFetchSecureAtRest.decryptedString(forKey: tokenCacheKey, defaults: userDefaults))
|
|
122
117
|
var merged: [String: String] = headers
|
|
123
|
-
for (k, v) in
|
|
118
|
+
for (k, v) in tokens.headers { merged[k] = v }
|
|
124
119
|
var hdrs: [NitroHeader] = merged.map { NitroHeader(key: $0.key, value: $0.value) }
|
|
125
120
|
hdrs.append(NitroHeader(key: "prefetchKey", value: prefetchKey))
|
|
126
|
-
let req = buildNitroRequest(from: entry, mergedHeaders: hdrs)
|
|
121
|
+
let req = buildNitroRequest(from: entry, mergedHeaders: hdrs, tokens: tokens)
|
|
127
122
|
Task {
|
|
128
123
|
do { try await NitroFetchClient.prefetchStatic(req) } catch { /* best-effort */ }
|
|
129
124
|
}
|
|
@@ -143,8 +138,8 @@ public final class NitroAutoPrefetcher: NSObject {
|
|
|
143
138
|
let refreshRaw = NitroFetchSecureAtRest.decryptedString(forKey: tokenRefreshKey, defaults: userDefaults)
|
|
144
139
|
|
|
145
140
|
Task {
|
|
146
|
-
// Resolve
|
|
147
|
-
let
|
|
141
|
+
// Resolve tokens (may require a network call)
|
|
142
|
+
let tokens: TokenRefreshResult
|
|
148
143
|
if let refreshRaw = refreshRaw,
|
|
149
144
|
!refreshRaw.isEmpty,
|
|
150
145
|
let refreshData = refreshRaw.data(using: .utf8),
|
|
@@ -154,35 +149,29 @@ public final class NitroAutoPrefetcher: NSObject {
|
|
|
154
149
|
print("[NitroFetch][TokenRefresh] Calling refresh endpoint: \(refreshURL)")
|
|
155
150
|
let refreshed = try? await callTokenRefresh(config: refreshObj)
|
|
156
151
|
if let refreshed = refreshed {
|
|
157
|
-
print("[NitroFetch][TokenRefresh] ✅ Success — got \(refreshed.count) header(s)")
|
|
158
|
-
for (k, v) in refreshed { print("[NitroFetch][TokenRefresh] \(k): \(v)") }
|
|
159
|
-
// Cache fresh
|
|
160
|
-
if let
|
|
161
|
-
let cacheStr = String(data: cacheData, encoding: .utf8) {
|
|
152
|
+
print("[NitroFetch][TokenRefresh] ✅ Success — got \(refreshed.headers.count) header(s)")
|
|
153
|
+
for (k, v) in refreshed.headers { print("[NitroFetch][TokenRefresh] \(k): \(v)") }
|
|
154
|
+
// Cache fresh tokens for useStoredHeaders fallback on next cold start
|
|
155
|
+
if let cacheStr = serializeCache(refreshed) {
|
|
162
156
|
try? NitroFetchSecureAtRest.setEncrypted(cacheStr, forKey: tokenCacheKey, defaults: userDefaults)
|
|
163
157
|
}
|
|
164
|
-
|
|
158
|
+
tokens = refreshed
|
|
165
159
|
} else {
|
|
166
160
|
print("[NitroFetch][TokenRefresh] ❌ Refresh failed — onFailure: \(onFailure)")
|
|
167
161
|
if onFailure == "skip" {
|
|
168
162
|
print("[NitroFetch][TokenRefresh] Skipping all prefetches")
|
|
169
163
|
return
|
|
170
164
|
}
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
let cacheObj = try? JSONSerialization.jsonObject(with: cacheData) as? [String: String] {
|
|
176
|
-
cached = cacheObj
|
|
177
|
-
}
|
|
178
|
-
print("[NitroFetch][TokenRefresh] Using cached headers (\(cached.count) header(s))")
|
|
179
|
-
tokenHeaders = cached
|
|
165
|
+
let cached = deserializeCache(
|
|
166
|
+
NitroFetchSecureAtRest.decryptedString(forKey: tokenCacheKey, defaults: userDefaults))
|
|
167
|
+
print("[NitroFetch][TokenRefresh] Using cached headers (\(cached.headers.count) header(s))")
|
|
168
|
+
tokens = cached
|
|
180
169
|
}
|
|
181
170
|
} else {
|
|
182
|
-
|
|
171
|
+
tokens = .empty
|
|
183
172
|
}
|
|
184
173
|
|
|
185
|
-
// Launch a prefetch task per entry with merged headers
|
|
174
|
+
// Launch a prefetch task per entry with merged headers + body/form injection
|
|
186
175
|
print("[NitroFetch][TokenRefresh] Injecting token headers into \(arr.count) prefetch URL(s)")
|
|
187
176
|
for item in arr {
|
|
188
177
|
guard let obj = item as? [String: Any] else { continue }
|
|
@@ -193,7 +182,7 @@ public final class NitroAutoPrefetcher: NSObject {
|
|
|
193
182
|
// Merge: static headers first, token headers override
|
|
194
183
|
var merged: [String: String] = [:]
|
|
195
184
|
for (k, v) in headersDict { merged[k] = String(describing: v) }
|
|
196
|
-
for (k, v) in
|
|
185
|
+
for (k, v) in tokens.headers { merged[k] = v }
|
|
197
186
|
|
|
198
187
|
var headers: [NitroHeader] = merged.map { NitroHeader(key: $0.key, value: $0.value) }
|
|
199
188
|
headers.append(NitroHeader(key: "prefetchKey", value: prefetchKey))
|
|
@@ -201,7 +190,7 @@ public final class NitroAutoPrefetcher: NSObject {
|
|
|
201
190
|
print("[NitroFetch][TokenRefresh] Prefetching \(url) with \(merged.count) header(s)")
|
|
202
191
|
for (k, v) in merged { print("[NitroFetch][TokenRefresh] \(k): \(v)") }
|
|
203
192
|
|
|
204
|
-
let req = buildNitroRequest(from: obj, mergedHeaders: headers)
|
|
193
|
+
let req = buildNitroRequest(from: obj, mergedHeaders: headers, tokens: tokens)
|
|
205
194
|
Task {
|
|
206
195
|
do { try await NitroFetchClient.prefetchStatic(req) } catch { /* ignore – best effort */ }
|
|
207
196
|
}
|
|
@@ -248,18 +237,19 @@ public final class NitroAutoPrefetcher: NSObject {
|
|
|
248
237
|
|
|
249
238
|
private static func buildNitroRequest(
|
|
250
239
|
from entry: [String: Any],
|
|
251
|
-
mergedHeaders: [NitroHeader]
|
|
240
|
+
mergedHeaders: [NitroHeader],
|
|
241
|
+
tokens: TokenRefreshResult = .empty
|
|
252
242
|
) -> NitroRequest {
|
|
253
243
|
let url = (entry["url"] as? String) ?? ""
|
|
254
244
|
let methodStr = entry["method"] as? String
|
|
255
245
|
let method: NitroRequestMethod? = methodStr.flatMap { NitroRequestMethod(fromString: $0) }
|
|
256
|
-
let bodyString = entry["bodyString"] as? String
|
|
246
|
+
let bodyString = injectBodyFields(entry["bodyString"] as? String, fields: tokens.bodyFields)
|
|
257
247
|
let bodyBytes = entry["bodyBytes"] as? String
|
|
258
248
|
let timeoutMs = (entry["timeoutMs"] as? NSNumber)?.doubleValue
|
|
259
249
|
let followRedirects = (entry["followRedirects"] as? Bool) ?? true
|
|
260
250
|
let prefetchCacheTtlMs = (entry["prefetchCacheTtlMs"] as? NSNumber)?.doubleValue
|
|
261
251
|
|
|
262
|
-
let
|
|
252
|
+
let baseParts: [NitroFormDataPart] = (entry["bodyFormData"] as? [[String: Any]])?.map { p in
|
|
263
253
|
NitroFormDataPart(
|
|
264
254
|
name: (p["name"] as? String) ?? "",
|
|
265
255
|
value: p["value"] as? String,
|
|
@@ -267,7 +257,8 @@ public final class NitroAutoPrefetcher: NSObject {
|
|
|
267
257
|
fileName: p["fileName"] as? String,
|
|
268
258
|
mimeType: p["mimeType"] as? String
|
|
269
259
|
)
|
|
270
|
-
}
|
|
260
|
+
} ?? []
|
|
261
|
+
let formData: [NitroFormDataPart]? = injectFormFields(baseParts, fields: tokens.formFields)
|
|
271
262
|
|
|
272
263
|
return NitroRequest(
|
|
273
264
|
url: url,
|
|
@@ -285,7 +276,14 @@ public final class NitroAutoPrefetcher: NSObject {
|
|
|
285
276
|
|
|
286
277
|
// MARK: - Token refresh
|
|
287
278
|
|
|
288
|
-
|
|
279
|
+
struct TokenRefreshResult {
|
|
280
|
+
var headers: [String: String]
|
|
281
|
+
var bodyFields: [String: String]
|
|
282
|
+
var formFields: [String: String]
|
|
283
|
+
static let empty = TokenRefreshResult(headers: [:], bodyFields: [:], formFields: [:])
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
private static func callTokenRefresh(config: [String: Any]) async throws -> TokenRefreshResult {
|
|
289
287
|
guard let urlStr = config["url"] as? String,
|
|
290
288
|
let url = URL(string: urlStr) else {
|
|
291
289
|
throw NSError(domain: "NitroAutoPrefetcher", code: -1,
|
|
@@ -315,18 +313,22 @@ public final class NitroAutoPrefetcher: NSObject {
|
|
|
315
313
|
private static func parseTokenResponse(
|
|
316
314
|
data: Data,
|
|
317
315
|
config: [String: Any]
|
|
318
|
-
) throws ->
|
|
316
|
+
) throws -> TokenRefreshResult {
|
|
319
317
|
let responseType = config["responseType"] as? String ?? "json"
|
|
320
|
-
var
|
|
318
|
+
var headers: [String: String] = [:]
|
|
319
|
+
var bodyFields: [String: String] = [:]
|
|
320
|
+
var formFields: [String: String] = [:]
|
|
321
321
|
|
|
322
322
|
if responseType == "text" {
|
|
323
323
|
let text = String(data: data, encoding: .utf8) ?? ""
|
|
324
324
|
if let textHeader = config["textHeader"] as? String {
|
|
325
|
-
|
|
325
|
+
headers[textHeader] = (config["textTemplate"] as? String)
|
|
326
326
|
.map { $0.replacingOccurrences(of: "{{value}}", with: text) }
|
|
327
327
|
?? text
|
|
328
328
|
}
|
|
329
|
-
|
|
329
|
+
if let bodyTextPath = config["bodyTextPath"] as? String { bodyFields[bodyTextPath] = text }
|
|
330
|
+
if let formDataTextField = config["formDataTextField"] as? String { formFields[formDataTextField] = text }
|
|
331
|
+
return TokenRefreshResult(headers: headers, bodyFields: bodyFields, formFields: formFields)
|
|
330
332
|
}
|
|
331
333
|
|
|
332
334
|
guard let json = try? JSONSerialization.jsonObject(with: data) as? [String: Any] else {
|
|
@@ -334,17 +336,9 @@ public final class NitroAutoPrefetcher: NSObject {
|
|
|
334
336
|
userInfo: [NSLocalizedDescriptionKey: "Token refresh: invalid JSON response"])
|
|
335
337
|
}
|
|
336
338
|
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
let header = m["header"] as? String else { continue }
|
|
341
|
-
if let value = getNestedField(json, dotPath: jsonPath) {
|
|
342
|
-
result[header] = (m["valueTemplate"] as? String)
|
|
343
|
-
.map { $0.replacingOccurrences(of: "{{value}}", with: value) }
|
|
344
|
-
?? value
|
|
345
|
-
}
|
|
346
|
-
}
|
|
347
|
-
}
|
|
339
|
+
collectMappings(json, config["mappings"] as? [[String: Any]], destKey: "header", into: &headers)
|
|
340
|
+
collectMappings(json, config["bodyMappings"] as? [[String: Any]], destKey: "bodyPath", into: &bodyFields)
|
|
341
|
+
collectMappings(json, config["formDataMappings"] as? [[String: Any]], destKey: "field", into: &formFields)
|
|
348
342
|
|
|
349
343
|
if let compositeHeaders = config["compositeHeaders"] as? [[String: Any]] {
|
|
350
344
|
for comp in compositeHeaders {
|
|
@@ -356,11 +350,29 @@ public final class NitroAutoPrefetcher: NSObject {
|
|
|
356
350
|
let val = getNestedField(json, dotPath: jsonPath) ?? ""
|
|
357
351
|
built = built.replacingOccurrences(of: "{{\(ph)}}", with: val)
|
|
358
352
|
}
|
|
359
|
-
|
|
353
|
+
headers[header] = built
|
|
360
354
|
}
|
|
361
355
|
}
|
|
362
356
|
|
|
363
|
-
return
|
|
357
|
+
return TokenRefreshResult(headers: headers, bodyFields: bodyFields, formFields: formFields)
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
// jsonPath -> value (optionally templated), keyed by each mapping's `destKey` field.
|
|
361
|
+
private static func collectMappings(
|
|
362
|
+
_ json: [String: Any],
|
|
363
|
+
_ arr: [[String: Any]]?,
|
|
364
|
+
destKey: String,
|
|
365
|
+
into: inout [String: String]
|
|
366
|
+
) {
|
|
367
|
+
guard let arr = arr else { return }
|
|
368
|
+
for m in arr {
|
|
369
|
+
guard let jsonPath = m["jsonPath"] as? String,
|
|
370
|
+
let dest = m[destKey] as? String,
|
|
371
|
+
let value = getNestedField(json, dotPath: jsonPath) else { continue }
|
|
372
|
+
into[dest] = (m["valueTemplate"] as? String)
|
|
373
|
+
.map { $0.replacingOccurrences(of: "{{value}}", with: value) }
|
|
374
|
+
?? value
|
|
375
|
+
}
|
|
364
376
|
}
|
|
365
377
|
|
|
366
378
|
private static func getNestedField(_ obj: [String: Any], dotPath: String) -> String? {
|
|
@@ -374,6 +386,90 @@ public final class NitroAutoPrefetcher: NSObject {
|
|
|
374
386
|
if let s = current as? String { return s }
|
|
375
387
|
return String(describing: current)
|
|
376
388
|
}
|
|
389
|
+
|
|
390
|
+
private static func setNestedField(_ root: inout [String: Any], dotPath: String, value: String) {
|
|
391
|
+
let parts = dotPath.split(separator: ".").map(String.init)
|
|
392
|
+
guard !parts.isEmpty else { return }
|
|
393
|
+
if parts.count == 1 {
|
|
394
|
+
root[parts[0]] = value
|
|
395
|
+
return
|
|
396
|
+
}
|
|
397
|
+
var child = (root[parts[0]] as? [String: Any]) ?? [:]
|
|
398
|
+
setNestedField(&child, dotPath: parts.dropFirst().joined(separator: "."), value: value)
|
|
399
|
+
root[parts[0]] = child
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
// MARK: - Body / form-data injection
|
|
403
|
+
|
|
404
|
+
private static func injectBodyFields(_ rawBody: String?, fields: [String: String]) -> String? {
|
|
405
|
+
if fields.isEmpty { return rawBody }
|
|
406
|
+
// Don't synthesize a JSON body where there wasn't one (e.g. a GET or a
|
|
407
|
+
// form-data request) — only rewrite an existing JSON body.
|
|
408
|
+
guard let rawBody = rawBody, !rawBody.isEmpty else { return rawBody }
|
|
409
|
+
guard let data = rawBody.data(using: .utf8),
|
|
410
|
+
let obj = try? JSONSerialization.jsonObject(with: data) as? [String: Any] else {
|
|
411
|
+
return rawBody
|
|
412
|
+
}
|
|
413
|
+
var root = obj
|
|
414
|
+
for (path, value) in fields {
|
|
415
|
+
setNestedField(&root, dotPath: path, value: value)
|
|
416
|
+
}
|
|
417
|
+
guard let out = try? JSONSerialization.data(withJSONObject: root),
|
|
418
|
+
let str = String(data: out, encoding: .utf8) else { return rawBody }
|
|
419
|
+
return str
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
private static func injectFormFields(
|
|
423
|
+
_ parts: [NitroFormDataPart],
|
|
424
|
+
fields: [String: String]
|
|
425
|
+
) -> [NitroFormDataPart]? {
|
|
426
|
+
if fields.isEmpty { return parts.isEmpty ? nil : parts }
|
|
427
|
+
// Don't synthesize a multipart body where there wasn't one.
|
|
428
|
+
if parts.isEmpty { return nil }
|
|
429
|
+
var result = parts
|
|
430
|
+
for (name, value) in fields {
|
|
431
|
+
if let idx = result.firstIndex(where: { $0.name == name }) {
|
|
432
|
+
let old = result[idx]
|
|
433
|
+
result[idx] = NitroFormDataPart(
|
|
434
|
+
name: old.name, value: value,
|
|
435
|
+
fileUri: nil, fileName: old.fileName, mimeType: old.mimeType
|
|
436
|
+
)
|
|
437
|
+
} else {
|
|
438
|
+
result.append(NitroFormDataPart(name: name, value: value, fileUri: nil, fileName: nil, mimeType: nil))
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
return result
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
// MARK: - Structured token cache (back-compatible with old flat-header maps)
|
|
445
|
+
|
|
446
|
+
private static func serializeCache(_ result: TokenRefreshResult) -> String? {
|
|
447
|
+
let obj: [String: Any] = [
|
|
448
|
+
"headers": result.headers,
|
|
449
|
+
"bodyFields": result.bodyFields,
|
|
450
|
+
"formFields": result.formFields,
|
|
451
|
+
]
|
|
452
|
+
guard let data = try? JSONSerialization.data(withJSONObject: obj) else { return nil }
|
|
453
|
+
return String(data: data, encoding: .utf8)
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
private static func deserializeCache(_ raw: String?) -> TokenRefreshResult {
|
|
457
|
+
guard let raw = raw, !raw.isEmpty,
|
|
458
|
+
let data = raw.data(using: .utf8),
|
|
459
|
+
let obj = try? JSONSerialization.jsonObject(with: data) as? [String: Any] else {
|
|
460
|
+
return .empty
|
|
461
|
+
}
|
|
462
|
+
if obj["headers"] == nil && obj["bodyFields"] == nil && obj["formFields"] == nil {
|
|
463
|
+
// Old flat-header-map cache.
|
|
464
|
+
let headers = (obj as? [String: String]) ?? [:]
|
|
465
|
+
return TokenRefreshResult(headers: headers, bodyFields: [:], formFields: [:])
|
|
466
|
+
}
|
|
467
|
+
return TokenRefreshResult(
|
|
468
|
+
headers: (obj["headers"] as? [String: String]) ?? [:],
|
|
469
|
+
bodyFields: (obj["bodyFields"] as? [String: String]) ?? [:],
|
|
470
|
+
formFields: (obj["formFields"] as? [String: String]) ?? [:]
|
|
471
|
+
)
|
|
472
|
+
}
|
|
377
473
|
}
|
|
378
474
|
|
|
379
475
|
// Expose a C-ABI symbol the ObjC++ file can call
|
|
@@ -1,14 +1,22 @@
|
|
|
1
1
|
#import "NitroDevToolsReporter.h"
|
|
2
|
+
#import <React/RCTVersion.h>
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
4
|
+
|
|
5
|
+
@interface RCTInspectorNetworkReporter : NSObject
|
|
6
|
+
+ (void)reportRequestStart:(NSString *)requestId
|
|
7
|
+
request:(NSURLRequest *)request
|
|
8
|
+
encodedDataLength:(int)encodedDataLength;
|
|
9
|
+
+ (void)reportConnectionTiming:(NSString *)requestId request:(NSURLRequest *)request;
|
|
10
|
+
+ (void)reportResponseStart:(NSString *)requestId
|
|
11
|
+
response:(NSURLResponse *)response
|
|
12
|
+
statusCode:(int)statusCode
|
|
13
|
+
headers:(NSDictionary<NSString *, NSString *> *)headers;
|
|
14
|
+
+ (void)reportDataReceived:(NSString *)requestId data:(NSData *)data;
|
|
15
|
+
+ (void)reportResponseEnd:(NSString *)requestId encodedDataLength:(int)encodedDataLength;
|
|
16
|
+
+ (void)reportRequestFailed:(NSString *)requestId cancelled:(BOOL)cancelled;
|
|
17
|
+
+ (void)maybeStoreResponseBody:(NSString *)requestId data:(NSData *)data base64Encoded:(bool)base64Encoded;
|
|
18
|
+
+ (void)maybeStoreResponseBodyIncremental:(NSString *)requestId data:(NSString *)data;
|
|
19
|
+
@end
|
|
12
20
|
|
|
13
21
|
// During cold-start prefetch, RN's RCTInspectorNetworkReporter class may not
|
|
14
22
|
// be realized yet (its underlying C++ NetworkReporter singleton is brought up
|
|
@@ -18,16 +26,30 @@
|
|
|
18
26
|
|
|
19
27
|
@implementation NitroDevToolsReporter
|
|
20
28
|
|
|
29
|
+
// The reporter's `requestId` API switched from NSNumber to NSString in RN 0.83. We build against
|
|
30
|
+
// the NSString shape, so only engage on RN >= 0.83; everything else stays a no-op.
|
|
31
|
+
+ (BOOL)reporterAPIAvailable {
|
|
32
|
+
static BOOL available = NO;
|
|
33
|
+
static dispatch_once_t onceToken;
|
|
34
|
+
dispatch_once(&onceToken, ^{
|
|
35
|
+
NSDictionary *v = RCTGetReactNativeVersion();
|
|
36
|
+
NSInteger major = [v[RCTVersionMajor] integerValue];
|
|
37
|
+
NSInteger minor = [v[RCTVersionMinor] integerValue];
|
|
38
|
+
available = (major > 0) || (minor >= 83);
|
|
39
|
+
});
|
|
40
|
+
return available;
|
|
41
|
+
}
|
|
42
|
+
|
|
21
43
|
+ (Class _Nullable)reporterClass {
|
|
22
|
-
|
|
44
|
+
if (![self reporterAPIAvailable]) {
|
|
45
|
+
return Nil;
|
|
46
|
+
}
|
|
23
47
|
static Class cached = Nil;
|
|
24
|
-
|
|
48
|
+
static dispatch_once_t onceToken;
|
|
49
|
+
dispatch_once(&onceToken, ^{
|
|
25
50
|
cached = NSClassFromString(@"RCTInspectorNetworkReporter");
|
|
26
|
-
}
|
|
51
|
+
});
|
|
27
52
|
return cached;
|
|
28
|
-
#else
|
|
29
|
-
return Nil;
|
|
30
|
-
#endif
|
|
31
53
|
}
|
|
32
54
|
|
|
33
55
|
+ (BOOL)isDebuggingEnabled {
|
|
@@ -36,14 +58,12 @@
|
|
|
36
58
|
|
|
37
59
|
+ (void)reportRequestStartWithRequest:(NSString *)requestId
|
|
38
60
|
request:(NSURLRequest *)request {
|
|
39
|
-
#if NITRO_HAS_NETWORK_REPORTER
|
|
40
61
|
if (request == nil) return;
|
|
41
62
|
Class cls = [self reporterClass];
|
|
42
63
|
if (cls == Nil) return;
|
|
43
64
|
int encoded = (int)(request.HTTPBody.length);
|
|
44
65
|
[cls reportRequestStart:requestId request:request encodedDataLength:encoded];
|
|
45
66
|
[cls reportConnectionTiming:requestId request:request];
|
|
46
|
-
#endif
|
|
47
67
|
}
|
|
48
68
|
|
|
49
69
|
+ (void)reportRequestStart:(NSString *)requestId
|
|
@@ -51,7 +71,6 @@
|
|
|
51
71
|
method:(NSString *)method
|
|
52
72
|
headers:(NSDictionary<NSString *, NSString *> *)headers
|
|
53
73
|
bodyString:(NSString *)bodyString {
|
|
54
|
-
#if NITRO_HAS_NETWORK_REPORTER
|
|
55
74
|
Class cls = [self reporterClass];
|
|
56
75
|
if (cls == Nil) return;
|
|
57
76
|
NSURL *u = [NSURL URLWithString:url];
|
|
@@ -67,14 +86,12 @@
|
|
|
67
86
|
NSInteger encoded = bodyString ? (NSInteger)[bodyString lengthOfBytesUsingEncoding:NSUTF8StringEncoding] : 0;
|
|
68
87
|
[cls reportRequestStart:requestId request:req encodedDataLength:(int)encoded];
|
|
69
88
|
[cls reportConnectionTiming:requestId request:req];
|
|
70
|
-
#endif
|
|
71
89
|
}
|
|
72
90
|
|
|
73
91
|
+ (void)reportResponseStart:(NSString *)requestId
|
|
74
92
|
url:(NSString *)url
|
|
75
93
|
statusCode:(NSInteger)statusCode
|
|
76
94
|
headers:(NSDictionary<NSString *, NSString *> *)headers {
|
|
77
|
-
#if NITRO_HAS_NETWORK_REPORTER
|
|
78
95
|
Class cls = [self reporterClass];
|
|
79
96
|
if (cls == Nil) return;
|
|
80
97
|
NSURL *u = [NSURL URLWithString:url];
|
|
@@ -87,11 +104,9 @@
|
|
|
87
104
|
response:resp
|
|
88
105
|
statusCode:(int)statusCode
|
|
89
106
|
headers:headers];
|
|
90
|
-
#endif
|
|
91
107
|
}
|
|
92
108
|
|
|
93
109
|
+ (void)reportDataReceived:(NSString *)requestId length:(NSInteger)length {
|
|
94
|
-
#if NITRO_HAS_NETWORK_REPORTER
|
|
95
110
|
if (length <= 0) return;
|
|
96
111
|
Class cls = [self reporterClass];
|
|
97
112
|
if (cls == Nil) return;
|
|
@@ -101,41 +116,32 @@
|
|
|
101
116
|
static uint8_t sentinel;
|
|
102
117
|
NSData *sized = [NSData dataWithBytesNoCopy:&sentinel length:(NSUInteger)length freeWhenDone:NO];
|
|
103
118
|
[cls reportDataReceived:requestId data:sized];
|
|
104
|
-
#endif
|
|
105
119
|
}
|
|
106
120
|
|
|
107
121
|
+ (void)reportResponseEnd:(NSString *)requestId encodedDataLength:(NSInteger)length {
|
|
108
|
-
#if NITRO_HAS_NETWORK_REPORTER
|
|
109
122
|
Class cls = [self reporterClass];
|
|
110
123
|
if (cls == Nil) return;
|
|
111
124
|
[cls reportResponseEnd:requestId encodedDataLength:(int)length];
|
|
112
|
-
#endif
|
|
113
125
|
}
|
|
114
126
|
|
|
115
127
|
+ (void)reportRequestFailed:(NSString *)requestId cancelled:(BOOL)cancelled {
|
|
116
|
-
#if NITRO_HAS_NETWORK_REPORTER
|
|
117
128
|
Class cls = [self reporterClass];
|
|
118
129
|
if (cls == Nil) return;
|
|
119
130
|
[cls reportRequestFailed:requestId cancelled:cancelled];
|
|
120
|
-
#endif
|
|
121
131
|
}
|
|
122
132
|
|
|
123
133
|
+ (void)storeResponseBody:(NSString *)requestId
|
|
124
134
|
data:(NSData *)data
|
|
125
135
|
base64Encoded:(BOOL)base64Encoded {
|
|
126
|
-
#if NITRO_HAS_NETWORK_REPORTER
|
|
127
136
|
Class cls = [self reporterClass];
|
|
128
137
|
if (cls == Nil) return;
|
|
129
138
|
[cls maybeStoreResponseBody:requestId data:data base64Encoded:base64Encoded];
|
|
130
|
-
#endif
|
|
131
139
|
}
|
|
132
140
|
|
|
133
141
|
+ (void)storeResponseBodyIncremental:(NSString *)requestId text:(NSString *)text {
|
|
134
|
-
#if NITRO_HAS_NETWORK_REPORTER
|
|
135
142
|
Class cls = [self reporterClass];
|
|
136
143
|
if (cls == Nil) return;
|
|
137
144
|
[cls maybeStoreResponseBodyIncremental:requestId data:text];
|
|
138
|
-
#endif
|
|
139
145
|
}
|
|
140
146
|
|
|
141
147
|
+ (BOOL)isTextualContentType:(NSString *)contentType {
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
{"version":3,"names":["shellEscape","str","test","replace","generateCurl","options","parts","method","push","headers","h","key","toLowerCase","value","body","maxLen","truncated","length","slice","verbose","compressed","url","join"],"sourceRoot":"../../src","sources":["CurlGenerator.js"],"mappings":";;AAAA,SAASA,WAAWA,CAACC,GAAG,EAAE;
|
|
1
|
+
{"version":3,"names":["shellEscape","str","test","replace","generateCurl","options","parts","method","push","headers","h","key","toLowerCase","value","body","maxLen","truncated","length","slice","verbose","compressed","url","join"],"sourceRoot":"../../src","sources":["CurlGenerator.js"],"mappings":";;AAAA,SAASA,WAAWA,CAACC,GAAG,EAAE;EACxB,IAAI,0BAA0B,CAACC,IAAI,CAACD,GAAG,CAAC,EAAE,OAAOA,GAAG;EACpD,OAAO,GAAG,GAAGA,GAAG,CAACE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,GAAG;AAC/C;AACA,OAAO,SAASC,YAAYA,CAACC,OAAO,EAAE;EACpC,MAAMC,KAAK,GAAG,CAAC,MAAM,CAAC;EACtB,IAAID,OAAO,CAACE,MAAM,IAAIF,OAAO,CAACE,MAAM,KAAK,KAAK,EAAE;IAC9CD,KAAK,CAACE,IAAI,CAAC,IAAI,EAAER,WAAW,CAACK,OAAO,CAACE,MAAM,CAAC,CAAC;EAC/C;EACA,IAAIF,OAAO,CAACI,OAAO,EAAE;IACnB,KAAK,MAAMC,CAAC,IAAIL,OAAO,CAACI,OAAO,EAAE;MAC/B,IAAIC,CAAC,CAACC,GAAG,CAACC,WAAW,CAAC,CAAC,KAAK,aAAa,EAAE;MAC3CN,KAAK,CAACE,IAAI,CAAC,IAAI,EAAER,WAAW,CAAC,GAAGU,CAAC,CAACC,GAAG,KAAKD,CAAC,CAACG,KAAK,EAAE,CAAC,CAAC;IACvD;EACF;EACA,IAAIR,OAAO,CAACS,IAAI,EAAE;IAChB,MAAMC,MAAM,GAAG,MAAM;IACrB,MAAMC,SAAS,GACbX,OAAO,CAACS,IAAI,CAACG,MAAM,GAAGF,MAAM,GACxBV,OAAO,CAACS,IAAI,CAACI,KAAK,CAAC,CAAC,EAAEH,MAAM,CAAC,GAAG,gBAAgB,GAChDV,OAAO,CAACS,IAAI;IAClBR,KAAK,CAACE,IAAI,CAAC,IAAI,EAAER,WAAW,CAACgB,SAAS,CAAC,CAAC;EAC1C;EACA,IAAIX,OAAO,CAACc,OAAO,EAAEb,KAAK,CAACE,IAAI,CAAC,IAAI,CAAC;EACrC,IAAIH,OAAO,CAACe,UAAU,EAAEd,KAAK,CAACE,IAAI,CAAC,cAAc,CAAC;EAClDF,KAAK,CAACE,IAAI,CAACR,WAAW,CAACK,OAAO,CAACgB,GAAG,CAAC,CAAC;EACpC,OAAOf,KAAK,CAACgB,IAAI,CAAC,GAAG,CAAC;AACxB","ignoreList":[]}
|
|
2
|
+
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
{"version":3,"names":["normalizeName","name","toLowerCase","NitroHeaders","constructor","init","_map","Map","forEach","values","key","set","Array","isArray","get","value","entry","length","String","existing","push","keys","Object","i","k","v","undefined","append","delete","join","getSetCookie","has","callback","thisArg","sortedKeys","from","sort","call","entries","map","gen","Symbol","iterator"],"sourceRoot":"../../src","sources":["Headers.
|
|
1
|
+
{"version":3,"names":["normalizeName","name","toLowerCase","NitroHeaders","constructor","init","_map","Map","forEach","values","key","set","Array","isArray","get","value","entry","length","String","existing","push","keys","Object","i","k","v","undefined","append","delete","join","getSetCookie","has","callback","thisArg","sortedKeys","from","sort","call","entries","map","gen","Symbol","iterator"],"sourceRoot":"../../src","sources":["Headers.js"],"mappings":"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","ignoreList":[]}
|
|
2
|
+
B;AACF","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
{"version":3,"names":["profileFetch","fn","outputPath","hermes","global","HermesInternal","result","path","Date","now","enableSamplingProfiler","profilePath","disableSamplingProfiler","dumpSamplingProfiler"],"sourceRoot":"../../src","sources":["HermesProfiler.js"],"mappings":";;AAAA,OAAO,eAAeA,YAAYA,CAACC,EAAE,EAAEC,UAAU,EAAE;
|
|
1
|
+
{"version":3,"names":["profileFetch","fn","outputPath","hermes","global","HermesInternal","result","path","Date","now","enableSamplingProfiler","profilePath","disableSamplingProfiler","dumpSamplingProfiler"],"sourceRoot":"../../src","sources":["HermesProfiler.js"],"mappings":";;AAAA,OAAO,eAAeA,YAAYA,CAACC,EAAE,EAAEC,UAAU,EAAE;EACjD,MAAMC,MAAM,GAAGC,MAAM,CAACC,cAAc;EACpC,IAAI,CAACF,MAAM,EAAE;IACX,MAAMG,MAAM,GAAG,MAAML,EAAE,CAAC,CAAC;IACzB,OAAO;MAAEK;IAAO,CAAC;EACnB;EACA,MAAMC,IAAI,GAAGL,UAAU,IAAI,2BAA2BM,IAAI,CAACC,GAAG,CAAC,CAAC,aAAa;EAC7EN,MAAM,CAACO,sBAAsB,CAAC,CAAC;EAC/B,IAAI;IACF,MAAMJ,MAAM,GAAG,MAAML,EAAE,CAAC,CAAC;IACzB,OAAO;MAAEK,MAAM;MAAEK,WAAW,EAAEJ;IAAK,CAAC;EACtC,CAAC,SAAS;IACRJ,MAAM,CAACS,uBAAuB,CAAC,CAAC;IAChC,IAAI;MACFT,MAAM,CAACU,oBAAoB,CAACN,IAAI,CAAC;IACnC,CAAC,CAAC,MAAM;MACN;IAAA;EAEJ;AACF","ignoreList":[]}
|
|
2
2
|
[]}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
{"version":3,"names":["generateCurl","NetworkInspectorImpl","_enabled","_entries","_maxEntries","_maxBodyCapture","_listeners","Set","enable","options","maxEntries","maxBodyCapture","disable","isEnabled","getEntries","getHttpEntries","filter","e","type","getWebSocketEntries","getEntry","id","find","clear","onEntry","callback","add","delete","_notify","entry","cb","_trimEntries","length","shift","_recordStart","url","method","headers","body","bodySize","requestHeaders","map","h","key","value","requestBody","slice","undefined","requestBodySize","status","statusText","responseHeaders","responseBodySize","startTime","performance","now","endTime","duration","curl","push","_recordEnd","error","responseBody","_recordWsOpen","protocols","readyState","messages","messagesSent","messagesReceived","bytesSent","bytesReceived","_recordWsConnected","_recordWsMessage","direction","data","size","isBinary","timestamp","_recordWsClose","code","reason","closeCode","closeReason","_recordWsError","NetworkInspector"],"sourceRoot":"../../src","sources":["NetworkInspector.js"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,oBAAiB;AAC9C,MAAMC,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"names":["generateCurl","NetworkInspectorImpl","_enabled","_entries","_maxEntries","_maxBodyCapture","_listeners","Set","enable","options","maxEntries","maxBodyCapture","disable","isEnabled","getEntries","getHttpEntries","filter","e","type","getWebSocketEntries","getEntry","id","find","clear","onEntry","callback","add","delete","_notify","entry","cb","_trimEntries","length","shift","_recordStart","url","method","headers","body","bodySize","requestHeaders","map","h","key","value","requestBody","slice","undefined","requestBodySize","status","statusText","responseHeaders","responseBodySize","startTime","performance","now","endTime","duration","curl","push","_recordEnd","error","responseBody","_recordWsOpen","protocols","readyState","messages","messagesSent","messagesReceived","bytesSent","bytesReceived","_recordWsConnected","_recordWsMessage","direction","data","size","isBinary","timestamp","_recordWsClose","code","reason","closeCode","closeReason","_recordWsError","NetworkInspector"],"sourceRoot":"../../src","sources":["NetworkInspector.js"],"mappings":"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","ignoreList":[]}
|
|
2
|
+
AAgB,GAAG,IAAInF,oBAAoB,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../src","sources":["NitroCronet.nitro.
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["NitroCronet.nitro.ts"],"mappings":"","ignoreList":[]}
|
|
2
|
+
":[]}
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../src","sources":["NitroFetch.nitro.
|
|
2
|
-
":[]}
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["NitroFetch.nitro.js"],"mappings":";;AAAA","ignoreList":[]}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
{"version":3,"names":["NitroModules","NitroFetch","createHybridObject","NativeStorage","boxedNitroFetch","box","NitroCronetSingleton"],"sourceRoot":"../../src","sources":["NitroInstances.js"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,4BAA4B;AACzD;AACA,OAAO,MAAMC,UAAU,GAAGD,YAAY,CAACE,kBAAkB,CAAC,YAAY,CAAC;AACvE,OAAO,MAAMC,aAAa,GAAGH,YAAY,CAACE,kBAAkB,CAAC,eAAe,CAAC;AAC7E,OAAO,MAAME,eAAe,GAAGJ,YAAY,CAACK,GAAG,CAACJ,UAAU,CAAC;AAC3D,OAAO,MAAMK,oBAAoB,
|
|
1
|
+
{"version":3,"names":["NitroModules","NitroFetch","createHybridObject","NativeStorage","boxedNitroFetch","box","NitroCronetSingleton"],"sourceRoot":"../../src","sources":["NitroInstances.js"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,4BAA4B;AACzD;AACA,OAAO,MAAMC,UAAU,GAAGD,YAAY,CAACE,kBAAkB,CAAC,YAAY,CAAC;AACvE,OAAO,MAAMC,aAAa,GAAGH,YAAY,CAACE,kBAAkB,CAAC,eAAe,CAAC;AAC7E,OAAO,MAAME,eAAe,GAAGJ,YAAY,CAACK,GAAG,CAACJ,UAAU,CAAC;AAC3D,OAAO,MAAMK,oBAAoB,GAC/BN,YAAY,CAACE,kBAAkB,CAAC,aAAa,CAAC","ignoreList":[]}
|
|
2
|
+
":[]}
|