@fluwa-tool/sdk 1.0.46 → 1.0.47

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.
@@ -160,12 +160,12 @@ class XMLHttpRequestInterceptor {
160
160
  catch (e) {
161
161
  self.logger.debug('❌ Erro ao injetar propriedades mock:', e);
162
162
  }
163
- // Agora simular readyState progression com delays maiores para garantir callbacks
163
+ // Agora simular readyState progression com dispatchEvent (suporta addEventListener)
164
164
  const fireEvent = (state, delayMs) => {
165
165
  setTimeout(() => {
166
166
  setReadyState(state);
167
- self.logger.debug(`📋 [XMLHttpRequestInterceptor] onreadystatechange=${typeof xhr.onreadystatechange}, onload=${typeof xhr.onload}`);
168
- if (xhr.onreadystatechange) {
167
+ // 1. Tentar chamar onreadystatechange direto se existir
168
+ if (xhr.onreadystatechange && typeof xhr.onreadystatechange === 'function') {
169
169
  try {
170
170
  self.logger.debug(`📞 [XMLHttpRequestInterceptor] Chamando onreadystatechange para readyState=${state}`);
171
171
  xhr.onreadystatechange();
@@ -174,8 +174,15 @@ class XMLHttpRequestInterceptor {
174
174
  self.logger.debug(`❌ Erro ao chamar onreadystatechange(${state}):`, e);
175
175
  }
176
176
  }
177
- else {
178
- self.logger.debug(`⚠️ [XMLHttpRequestInterceptor] onreadystatechange NÃO DEFINIDO em readyState=${state}`);
177
+ // 2. Disparar eventos (para listeners adicionados com addEventListener)
178
+ try {
179
+ // ProgressEvent está disponível em React Native
180
+ const event = new ProgressEvent('readystatechange');
181
+ self.logger.debug(`📤 [XMLHttpRequestInterceptor] Disparando evento readystatechange em readyState=${state}`);
182
+ xhr.dispatchEvent(event);
183
+ }
184
+ catch (e) {
185
+ self.logger.debug(`⚠️ [XMLHttpRequestInterceptor] Não conseguiu disparar evento readystatechange:`, e);
179
186
  }
180
187
  }, delayMs);
181
188
  };
@@ -183,11 +190,11 @@ class XMLHttpRequestInterceptor {
183
190
  fireEvent(1, 50); // readyState = 1 em 50ms
184
191
  fireEvent(2, 100); // readyState = 2 em 100ms
185
192
  fireEvent(3, 150); // readyState = 3 em 150ms
186
- // Final: readyState = 4 com callbacks
193
+ // Final: readyState = 4 com eventos e callbacks
187
194
  setTimeout(() => {
188
195
  setReadyState(4);
189
- self.logger.debug(`📋 [XMLHttpRequestInterceptor] onreadystatechange=${typeof xhr.onreadystatechange}, onload=${typeof xhr.onload}`);
190
- if (xhr.onreadystatechange) {
196
+ // 1. Chamar onreadystatechange se existir
197
+ if (xhr.onreadystatechange && typeof xhr.onreadystatechange === 'function') {
191
198
  try {
192
199
  self.logger.debug(`📞 [XMLHttpRequestInterceptor] Chamando onreadystatechange para readyState=4`);
193
200
  xhr.onreadystatechange();
@@ -196,10 +203,17 @@ class XMLHttpRequestInterceptor {
196
203
  self.logger.debug(`❌ Erro ao chamar onreadystatechange(4):`, e);
197
204
  }
198
205
  }
199
- else {
200
- self.logger.debug(`⚠️ [XMLHttpRequestInterceptor] onreadystatechange NÃO DEFINIDO em readyState=4`);
206
+ // 2. Disparar evento readystatechange
207
+ try {
208
+ const event = new ProgressEvent('readystatechange');
209
+ self.logger.debug(`📤 [XMLHttpRequestInterceptor] Disparando evento readystatechange em readyState=4`);
210
+ xhr.dispatchEvent(event);
201
211
  }
202
- if (xhr.onload) {
212
+ catch (e) {
213
+ self.logger.debug(`⚠️ [XMLHttpRequestInterceptor] Não conseguiu disparar evento readystatechange:`, e);
214
+ }
215
+ // 3. Chamar onload se existir
216
+ if (xhr.onload && typeof xhr.onload === 'function') {
203
217
  try {
204
218
  self.logger.debug(`📞 [XMLHttpRequestInterceptor] Chamando onload`);
205
219
  xhr.onload();
@@ -208,8 +222,14 @@ class XMLHttpRequestInterceptor {
208
222
  self.logger.debug(`❌ Erro ao chamar onload:`, e);
209
223
  }
210
224
  }
211
- else {
212
- self.logger.debug(`⚠️ [XMLHttpRequestInterceptor] onload NÃO DEFINIDO`);
225
+ // 4. Disparar evento load
226
+ try {
227
+ const loadEvent = new ProgressEvent('load');
228
+ self.logger.debug(`📤 [XMLHttpRequestInterceptor] Disparando evento load`);
229
+ xhr.dispatchEvent(loadEvent);
230
+ }
231
+ catch (e) {
232
+ self.logger.debug(`⚠️ [XMLHttpRequestInterceptor] Não conseguiu disparar evento load:`, e);
213
233
  }
214
234
  self.logger.debug(`✅ [XMLHttpRequestInterceptor] Simulação de resposta COMPLETA`);
215
235
  }, 200);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluwa-tool/sdk",
3
- "version": "1.0.46",
3
+ "version": "1.0.47",
4
4
  "description": "Fluwa DevTools SDK for network interception and mocking",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",