@fluwa-tool/sdk 1.0.44 → 1.0.45

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.
@@ -83,12 +83,17 @@ class XMLHttpRequestInterceptor {
83
83
  checkMockWithRetry().then(mockResponse => {
84
84
  if (mockResponse) {
85
85
  // Mock encontrado - simular resposta XHR
86
+ self.logger.debug(`🎯 [XMLHttpRequestInterceptor] Mock encontrado para ${method} ${url}`, {
87
+ status: mockResponse.status,
88
+ hasResponse: !!mockResponse.response,
89
+ });
86
90
  requestMetadata.source = types_1.RequestSource.MOCK;
87
91
  requestMetadata.status = mockResponse.status || 200;
88
92
  requestMetadata.response = mockResponse.response;
89
93
  const delay = mockResponse.delay || 0;
90
94
  // Aguardar axios anexar seus handlers (envolver em Promise.resolve para dar tempo)
91
95
  Promise.resolve().then(() => {
96
+ self.logger.debug(`⏱️ [XMLHttpRequestInterceptor] Iniciando simulação de resposta com delay: ${delay}ms`);
92
97
  setTimeout(() => {
93
98
  const duration = Date.now() - (xhr._fluwaStartTime || 0);
94
99
  requestMetadata.duration = duration;
@@ -101,13 +106,16 @@ class XMLHttpRequestInterceptor {
101
106
  writable: true,
102
107
  configurable: true,
103
108
  });
109
+ self.logger.debug(`📊 [XMLHttpRequestInterceptor] readyState = ${state}`);
104
110
  }
105
111
  catch (e) {
106
112
  // Fallback: try direct assignment se defineProperty falhar
107
113
  xhr.readyState = state;
114
+ self.logger.debug(`📊 [XMLHttpRequestInterceptor] readyState = ${state} (fallback)`);
108
115
  }
109
116
  };
110
117
  // Primeiro: configurar todas as propriedades de resposta ANTES de começar readyState
118
+ self.logger.debug(`🔧 [XMLHttpRequestInterceptor] Configurando propriedades de resposta`);
111
119
  try {
112
120
  // Override status (read-only property in Hermes)
113
121
  if (!Object.getOwnPropertyDescriptor(xhr, 'status')) {
@@ -116,6 +124,7 @@ class XMLHttpRequestInterceptor {
116
124
  writable: true,
117
125
  configurable: true,
118
126
  });
127
+ self.logger.debug(`✅ [XMLHttpRequestInterceptor] status = ${mockResponse.status || 200}`);
119
128
  }
120
129
  // Override responseText (read-only property in Hermes)
121
130
  if (!Object.getOwnPropertyDescriptor(xhr, 'responseText')) {
@@ -124,6 +133,7 @@ class XMLHttpRequestInterceptor {
124
133
  writable: true,
125
134
  configurable: true,
126
135
  });
136
+ self.logger.debug(`✅ [XMLHttpRequestInterceptor] responseText configurado`);
127
137
  }
128
138
  // Override response (read-only property in Hermes)
129
139
  if (!Object.getOwnPropertyDescriptor(xhr, 'response')) {
@@ -132,37 +142,47 @@ class XMLHttpRequestInterceptor {
132
142
  writable: true,
133
143
  configurable: true,
134
144
  });
145
+ self.logger.debug(`✅ [XMLHttpRequestInterceptor] response configurado`);
135
146
  }
136
147
  }
137
148
  catch (e) {
138
- self.logger.debug('Erro ao injetar propriedades mock:', e);
149
+ self.logger.debug('Erro ao injetar propriedades mock:', e);
139
150
  }
140
151
  // Agora simular readyState progression
141
152
  setTimeout(() => {
142
153
  setReadyState(1);
143
154
  if (xhr.onreadystatechange) {
144
155
  try {
156
+ self.logger.debug(`📞 [XMLHttpRequestInterceptor] Chamando onreadystatechange para readyState=1`);
145
157
  xhr.onreadystatechange();
146
158
  }
147
- catch (e) { }
159
+ catch (e) {
160
+ self.logger.debug(`❌ Erro ao chamar onreadystatechange(1):`, e);
161
+ }
148
162
  }
149
163
  }, 0);
150
164
  setTimeout(() => {
151
165
  setReadyState(2);
152
166
  if (xhr.onreadystatechange) {
153
167
  try {
168
+ self.logger.debug(`📞 [XMLHttpRequestInterceptor] Chamando onreadystatechange para readyState=2`);
154
169
  xhr.onreadystatechange();
155
170
  }
156
- catch (e) { }
171
+ catch (e) {
172
+ self.logger.debug(`❌ Erro ao chamar onreadystatechange(2):`, e);
173
+ }
157
174
  }
158
175
  }, 5);
159
176
  setTimeout(() => {
160
177
  setReadyState(3);
161
178
  if (xhr.onreadystatechange) {
162
179
  try {
180
+ self.logger.debug(`📞 [XMLHttpRequestInterceptor] Chamando onreadystatechange para readyState=3`);
163
181
  xhr.onreadystatechange();
164
182
  }
165
- catch (e) { }
183
+ catch (e) {
184
+ self.logger.debug(`❌ Erro ao chamar onreadystatechange(3):`, e);
185
+ }
166
186
  }
167
187
  }, 10);
168
188
  // Final: readyState = 4 com propriedades já configuradas
@@ -170,16 +190,23 @@ class XMLHttpRequestInterceptor {
170
190
  setReadyState(4);
171
191
  if (xhr.onreadystatechange) {
172
192
  try {
193
+ self.logger.debug(`📞 [XMLHttpRequestInterceptor] Chamando onreadystatechange para readyState=4`);
173
194
  xhr.onreadystatechange();
174
195
  }
175
- catch (e) { }
196
+ catch (e) {
197
+ self.logger.debug(`❌ Erro ao chamar onreadystatechange(4):`, e);
198
+ }
176
199
  }
177
200
  if (xhr.onload) {
178
201
  try {
202
+ self.logger.debug(`📞 [XMLHttpRequestInterceptor] Chamando onload`);
179
203
  xhr.onload();
180
204
  }
181
- catch (e) { }
205
+ catch (e) {
206
+ self.logger.debug(`❌ Erro ao chamar onload:`, e);
207
+ }
182
208
  }
209
+ self.logger.debug(`✅ [XMLHttpRequestInterceptor] Simulação de resposta COMPLETA`);
183
210
  }, 15);
184
211
  }, delay);
185
212
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluwa-tool/sdk",
3
- "version": "1.0.44",
3
+ "version": "1.0.45",
4
4
  "description": "Fluwa DevTools SDK for network interception and mocking",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",