react-native-nitro-fetch 0.3.0-beta.1 → 0.3.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 (51) hide show
  1. package/NitroFetch.podspec +8 -0
  2. package/android/build.gradle +3 -0
  3. package/android/src/main/java/com/margelo/nitro/nitrofetch/NitroFetchClient.kt +46 -2
  4. package/android/src/main/java/com/margelo/nitro/nitrofetch/NitroFetchPackage.kt +2 -2
  5. package/ios/NitroFetchClient.swift +36 -1
  6. package/lib/module/CurlGenerator.js +28 -0
  7. package/lib/module/CurlGenerator.js.map +1 -0
  8. package/lib/module/Headers.js +95 -0
  9. package/lib/module/Headers.js.map +1 -0
  10. package/lib/module/HermesProfiler.js +28 -0
  11. package/lib/module/HermesProfiler.js.map +1 -0
  12. package/lib/module/NetworkInspector.js +184 -0
  13. package/lib/module/NetworkInspector.js.map +1 -0
  14. package/lib/module/Request.js +120 -0
  15. package/lib/module/Request.js.map +1 -0
  16. package/lib/module/Response.js +236 -0
  17. package/lib/module/Response.js.map +1 -0
  18. package/lib/module/fetch.js +143 -56
  19. package/lib/module/fetch.js.map +1 -1
  20. package/lib/module/index.js +6 -0
  21. package/lib/module/index.js.map +1 -1
  22. package/lib/module/utf8.js +29 -0
  23. package/lib/module/utf8.js.map +1 -0
  24. package/lib/typescript/src/CurlGenerator.d.ts +13 -0
  25. package/lib/typescript/src/CurlGenerator.d.ts.map +1 -0
  26. package/lib/typescript/src/Headers.d.ts +19 -0
  27. package/lib/typescript/src/Headers.d.ts.map +1 -0
  28. package/lib/typescript/src/HermesProfiler.d.ts +6 -0
  29. package/lib/typescript/src/HermesProfiler.d.ts.map +1 -0
  30. package/lib/typescript/src/NetworkInspector.d.ts +96 -0
  31. package/lib/typescript/src/NetworkInspector.d.ts.map +1 -0
  32. package/lib/typescript/src/Request.d.ts +48 -0
  33. package/lib/typescript/src/Request.d.ts.map +1 -0
  34. package/lib/typescript/src/Response.d.ts +56 -0
  35. package/lib/typescript/src/Response.d.ts.map +1 -0
  36. package/lib/typescript/src/fetch.d.ts +11 -3
  37. package/lib/typescript/src/fetch.d.ts.map +1 -1
  38. package/lib/typescript/src/index.d.ts +13 -1
  39. package/lib/typescript/src/index.d.ts.map +1 -1
  40. package/lib/typescript/src/utf8.d.ts +3 -0
  41. package/lib/typescript/src/utf8.d.ts.map +1 -0
  42. package/package.json +1 -1
  43. package/src/CurlGenerator.ts +44 -0
  44. package/src/Headers.ts +127 -0
  45. package/src/HermesProfiler.ts +37 -0
  46. package/src/NetworkInspector.ts +278 -0
  47. package/src/Request.ts +187 -0
  48. package/src/Response.ts +335 -0
  49. package/src/fetch.ts +186 -75
  50. package/src/index.tsx +22 -1
  51. package/src/utf8.ts +40 -0
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+
3
+ import { NitroHeaders } from "./Headers.js";
4
+ import { stringToUTF8, utf8ToString } from "./utf8.js";
5
+ export class NitroRequest {
6
+ _bodyUsed = false;
7
+ constructor(input, init) {
8
+ if (input instanceof NitroRequest) {
9
+ // Clone from another NitroRequest
10
+ this.url = init?.method ? input.url : input.url; // URL always from input
11
+ this.method = (init?.method ?? input.method).toUpperCase();
12
+ this.headers = new NitroHeaders(init?.headers ? init.headers instanceof NitroHeaders ? init.headers : init.headers : input.headers);
13
+ this.redirect = init?.redirect ?? input.redirect;
14
+ this.signal = init?.signal ?? input.signal;
15
+ this.cache = init?.cache ?? input.cache;
16
+ this.credentials = init?.credentials ?? input.credentials;
17
+ this.mode = init?.mode ?? input.mode;
18
+ this.referrer = init?.referrer ?? input.referrer;
19
+ this.referrerPolicy = init?.referrerPolicy ?? input.referrerPolicy;
20
+ this.integrity = init?.integrity ?? input.integrity;
21
+ this.keepalive = init?.keepalive ?? input.keepalive;
22
+ this._body = init?.body !== undefined ? init.body ?? null : input._body;
23
+ } else {
24
+ this.url = String(input);
25
+ this.method = (init?.method ?? 'GET').toUpperCase();
26
+ this.headers = new NitroHeaders(init?.headers ? init.headers instanceof NitroHeaders ? init.headers : init.headers : undefined);
27
+ this.redirect = init?.redirect ?? 'follow';
28
+ this.signal = init?.signal ?? new AbortController().signal;
29
+ this.cache = init?.cache ?? 'default';
30
+ this.credentials = init?.credentials ?? 'same-origin';
31
+ this.mode = init?.mode ?? 'cors';
32
+ this.referrer = init?.referrer ?? 'about:client';
33
+ this.referrerPolicy = init?.referrerPolicy ?? '';
34
+ this.integrity = init?.integrity ?? '';
35
+ this.keepalive = init?.keepalive ?? false;
36
+ this._body = init?.body ?? null;
37
+ }
38
+ this.destination = '';
39
+ }
40
+ get bodyUsed() {
41
+ return this._bodyUsed;
42
+ }
43
+ get body() {
44
+ if (this._body == null) return null;
45
+ const bodyBytes = this._getBodyBytes();
46
+ if (!bodyBytes) return null;
47
+ return new ReadableStream({
48
+ start(controller) {
49
+ controller.enqueue(new Uint8Array(bodyBytes));
50
+ controller.close();
51
+ }
52
+ });
53
+ }
54
+ _throwIfBodyUsed() {
55
+ if (this._bodyUsed) {
56
+ throw new TypeError('Body has already been consumed.');
57
+ }
58
+ }
59
+ _getBodyBytes() {
60
+ if (this._body == null) return undefined;
61
+ if (typeof this._body === 'string') {
62
+ const encoded = stringToUTF8(this._body);
63
+ return encoded.buffer.slice(encoded.byteOffset, encoded.byteOffset + encoded.byteLength);
64
+ }
65
+ if (this._body instanceof ArrayBuffer) return this._body;
66
+ if (ArrayBuffer.isView(this._body)) {
67
+ const view = this._body;
68
+ return view.buffer.slice(view.byteOffset, view.byteOffset + view.byteLength);
69
+ }
70
+ return undefined;
71
+ }
72
+ _getBodyString() {
73
+ if (this._body == null) return '';
74
+ if (typeof this._body === 'string') return this._body;
75
+ const bytes = this._getBodyBytes();
76
+ if (bytes) return utf8ToString(new Uint8Array(bytes));
77
+ return '';
78
+ }
79
+ async text() {
80
+ this._throwIfBodyUsed();
81
+ this._bodyUsed = true;
82
+ return this._getBodyString();
83
+ }
84
+ async json() {
85
+ this._throwIfBodyUsed();
86
+ this._bodyUsed = true;
87
+ const t = this._getBodyString();
88
+ return JSON.parse(t || '{}');
89
+ }
90
+ async arrayBuffer() {
91
+ this._throwIfBodyUsed();
92
+ this._bodyUsed = true;
93
+ return this._getBodyBytes() ?? new ArrayBuffer(0);
94
+ }
95
+ async blob() {
96
+ this._throwIfBodyUsed();
97
+ this._bodyUsed = true;
98
+ const buffer = this._getBodyBytes() ?? new ArrayBuffer(0);
99
+ const contentType = this.headers.get('content-type') ?? '';
100
+ return new Blob([buffer], {
101
+ type: contentType
102
+ });
103
+ }
104
+ async bytes() {
105
+ this._throwIfBodyUsed();
106
+ this._bodyUsed = true;
107
+ const buffer = this._getBodyBytes() ?? new ArrayBuffer(0);
108
+ return new Uint8Array(buffer);
109
+ }
110
+ clone() {
111
+ if (this._bodyUsed) {
112
+ throw new TypeError('Cannot clone a Request whose body has been used.');
113
+ }
114
+ return new NitroRequest(this);
115
+ }
116
+ async formData() {
117
+ throw new TypeError('formData() is not supported in NitroRequest');
118
+ }
119
+ }
120
+ //# sourceMappingURL=Request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NitroHeaders","stringToUTF8","utf8ToString","NitroRequest","_bodyUsed","constructor","input","init","url","method","toUpperCase","headers","redirect","signal","cache","credentials","mode","referrer","referrerPolicy","integrity","keepalive","_body","body","undefined","String","AbortController","destination","bodyUsed","bodyBytes","_getBodyBytes","ReadableStream","start","controller","enqueue","Uint8Array","close","_throwIfBodyUsed","TypeError","encoded","buffer","slice","byteOffset","byteLength","ArrayBuffer","isView","view","_getBodyString","bytes","text","json","t","JSON","parse","arrayBuffer","blob","contentType","get","Blob","type","clone","formData"],"sourceRoot":"../../src","sources":["Request.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,236 @@
1
+ "use strict";
2
+
3
+ import { NitroHeaders } from "./Headers.js";
4
+ import { stringToUTF8, utf8ToString } from "./utf8.js";
5
+ function isNitroResponseInit(arg) {
6
+ return arg != null && typeof arg === 'object' && 'url' in arg && 'status' in arg && 'ok' in arg;
7
+ }
8
+ export class NitroResponse {
9
+ _bodyUsed = false;
10
+ constructor(bodyOrInit, init) {
11
+ if (isNitroResponseInit(bodyOrInit)) {
12
+ // Internal constructor path
13
+ const nitroInit = bodyOrInit;
14
+ this.url = nitroInit.url;
15
+ this.ok = nitroInit.ok;
16
+ this.status = nitroInit.status;
17
+ this.statusText = nitroInit.statusText;
18
+ this.redirected = nitroInit.redirected;
19
+ this.type = nitroInit.type ?? 'basic';
20
+ if (nitroInit.headers instanceof NitroHeaders) {
21
+ this.headers = nitroInit.headers;
22
+ } else {
23
+ this.headers = new NitroHeaders(nitroInit.headers);
24
+ }
25
+ this._bodyBytes = nitroInit.bodyBytes;
26
+ this._bodyString = nitroInit.bodyString;
27
+ this._bodyStream = nitroInit.body;
28
+ } else {
29
+ // Public constructor: new Response(body?, init?)
30
+ const body = bodyOrInit;
31
+ this.status = init?.status ?? 200;
32
+ this.statusText = init?.statusText ?? '';
33
+ this.ok = this.status >= 200 && this.status < 300;
34
+ this.url = '';
35
+ this.redirected = false;
36
+ this.type = 'default';
37
+ this.headers = new NitroHeaders(init?.headers);
38
+ if (body == null) {
39
+ // no body
40
+ } else if (typeof body === 'string') {
41
+ this._bodyString = body;
42
+ } else if (body instanceof ArrayBuffer) {
43
+ this._bodyBytes = body;
44
+ } else if (ArrayBuffer.isView(body)) {
45
+ const view = body;
46
+ this._bodyBytes = view.buffer.slice(view.byteOffset, view.byteOffset + view.byteLength);
47
+ } else if (typeof ReadableStream !== 'undefined' && body instanceof ReadableStream) {
48
+ this._bodyStream = body;
49
+ } else if (typeof URLSearchParams !== 'undefined' && body instanceof URLSearchParams) {
50
+ this._bodyString = body.toString();
51
+ if (!this.headers.has('content-type')) {
52
+ this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');
53
+ }
54
+ } else if (typeof Blob !== 'undefined' && body instanceof Blob) {
55
+ // Store as string — RN Blobs are string-backed
56
+ this._bodyString = '';
57
+ this._bodyStream = body.stream?.();
58
+ }
59
+ }
60
+ }
61
+ get bodyUsed() {
62
+ return this._bodyUsed;
63
+ }
64
+ get body() {
65
+ if (this._bodyStream) return this._bodyStream;
66
+ const bytes = this._getBodyBytes();
67
+ if (!bytes) return null;
68
+ return new ReadableStream({
69
+ start(controller) {
70
+ controller.enqueue(new Uint8Array(bytes));
71
+ controller.close();
72
+ }
73
+ });
74
+ }
75
+ _throwIfBodyUsed() {
76
+ if (this._bodyUsed) {
77
+ throw new TypeError('Body has already been consumed.');
78
+ }
79
+ }
80
+ _getBodyBytes() {
81
+ if (this._bodyBytes) return this._bodyBytes;
82
+ if (this._bodyString != null) {
83
+ const encoded = stringToUTF8(this._bodyString);
84
+ return encoded.buffer.slice(encoded.byteOffset, encoded.byteOffset + encoded.byteLength);
85
+ }
86
+ return undefined;
87
+ }
88
+ _getBodyString() {
89
+ if (this._bodyString != null) return this._bodyString;
90
+ if (this._bodyBytes) {
91
+ return utf8ToString(new Uint8Array(this._bodyBytes));
92
+ }
93
+ return '';
94
+ }
95
+ async text() {
96
+ this._throwIfBodyUsed();
97
+ this._bodyUsed = true;
98
+ if (this._bodyStream && !this._bodyBytes && this._bodyString == null) {
99
+ const reader = this._bodyStream.getReader();
100
+ const chunks = [];
101
+ while (true) {
102
+ const {
103
+ done,
104
+ value
105
+ } = await reader.read();
106
+ if (done) break;
107
+ if (value) chunks.push(value);
108
+ }
109
+ // Concatenate chunks
110
+ let totalLen = 0;
111
+ for (const c of chunks) totalLen += c.byteLength;
112
+ const merged = new Uint8Array(totalLen);
113
+ let offset = 0;
114
+ for (const c of chunks) {
115
+ merged.set(c, offset);
116
+ offset += c.byteLength;
117
+ }
118
+ return utf8ToString(merged);
119
+ }
120
+ return this._getBodyString();
121
+ }
122
+ async json() {
123
+ this._throwIfBodyUsed();
124
+ this._bodyUsed = true;
125
+ const t = this._getBodyString();
126
+ return JSON.parse(t || '{}');
127
+ }
128
+ async arrayBuffer() {
129
+ this._throwIfBodyUsed();
130
+ this._bodyUsed = true;
131
+ if (this._bodyStream && !this._bodyBytes && this._bodyString == null) {
132
+ const reader = this._bodyStream.getReader();
133
+ const chunks = [];
134
+ while (true) {
135
+ const {
136
+ done,
137
+ value
138
+ } = await reader.read();
139
+ if (done) break;
140
+ if (value) chunks.push(value);
141
+ }
142
+ let totalLen = 0;
143
+ for (const c of chunks) totalLen += c.byteLength;
144
+ const merged = new Uint8Array(totalLen);
145
+ let offset = 0;
146
+ for (const c of chunks) {
147
+ merged.set(c, offset);
148
+ offset += c.byteLength;
149
+ }
150
+ return merged.buffer.slice(merged.byteOffset, merged.byteOffset + merged.byteLength);
151
+ }
152
+ return this._getBodyBytes() ?? new ArrayBuffer(0);
153
+ }
154
+ async blob() {
155
+ this._throwIfBodyUsed();
156
+ this._bodyUsed = true;
157
+ // RN's Blob doesn't support ArrayBuffer/ArrayBufferView — use string body
158
+ const bodyStr = this._getBodyString();
159
+ const contentType = this.headers.get('content-type') ?? '';
160
+ return new Blob([bodyStr], {
161
+ type: contentType
162
+ });
163
+ }
164
+ async bytes() {
165
+ this._throwIfBodyUsed();
166
+ this._bodyUsed = true;
167
+ const buffer = this._getBodyBytes() ?? new ArrayBuffer(0);
168
+ return new Uint8Array(buffer);
169
+ }
170
+ clone() {
171
+ if (this._bodyUsed) {
172
+ throw new TypeError('Cannot clone a Response whose body has been used.');
173
+ }
174
+ return new NitroResponse({
175
+ url: this.url,
176
+ status: this.status,
177
+ statusText: this.statusText,
178
+ ok: this.ok,
179
+ redirected: this.redirected,
180
+ headers: this.headers,
181
+ bodyBytes: this._bodyBytes,
182
+ bodyString: this._bodyString,
183
+ type: this.type
184
+ });
185
+ }
186
+ async formData() {
187
+ throw new TypeError('formData() is not supported in NitroResponse');
188
+ }
189
+
190
+ // --- Static methods ---
191
+
192
+ static error() {
193
+ return new NitroResponse({
194
+ url: '',
195
+ status: 0,
196
+ statusText: '',
197
+ ok: false,
198
+ redirected: false,
199
+ headers: [],
200
+ type: 'error'
201
+ });
202
+ }
203
+ static json(data, init) {
204
+ const body = JSON.stringify(data);
205
+ const headers = new NitroHeaders(init?.headers);
206
+ if (!headers.has('content-type')) {
207
+ headers.set('content-type', 'application/json');
208
+ }
209
+ return new NitroResponse({
210
+ url: '',
211
+ status: init?.status ?? 200,
212
+ statusText: init?.statusText ?? '',
213
+ ok: (init?.status ?? 200) >= 200 && (init?.status ?? 200) < 300,
214
+ redirected: false,
215
+ headers,
216
+ bodyString: body
217
+ });
218
+ }
219
+ static redirect(url, status = 302) {
220
+ const validStatuses = [301, 302, 303, 307, 308];
221
+ if (!validStatuses.includes(status)) {
222
+ throw new RangeError(`Invalid redirect status: ${status}. Must be one of ${validStatuses.join(', ')}`);
223
+ }
224
+ const headers = new NitroHeaders();
225
+ headers.set('location', url);
226
+ return new NitroResponse({
227
+ url: '',
228
+ status,
229
+ statusText: '',
230
+ ok: false,
231
+ redirected: false,
232
+ headers
233
+ });
234
+ }
235
+ }
236
+ //# sourceMappingURL=Response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NitroHeaders","stringToUTF8","utf8ToString","isNitroResponseInit","arg","NitroResponse","_bodyUsed","constructor","bodyOrInit","init","nitroInit","url","ok","status","statusText","redirected","type","headers","_bodyBytes","bodyBytes","_bodyString","bodyString","_bodyStream","body","ArrayBuffer","isView","view","buffer","slice","byteOffset","byteLength","ReadableStream","URLSearchParams","toString","has","set","Blob","stream","bodyUsed","bytes","_getBodyBytes","start","controller","enqueue","Uint8Array","close","_throwIfBodyUsed","TypeError","encoded","undefined","_getBodyString","text","reader","getReader","chunks","done","value","read","push","totalLen","c","merged","offset","json","t","JSON","parse","arrayBuffer","blob","bodyStr","contentType","get","clone","formData","error","data","stringify","redirect","validStatuses","includes","RangeError","join"],"sourceRoot":"../../src","sources":["Response.ts"],"mappings":"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","ignoreList":[]}