@fluwa-tool/sdk 1.0.26 → 1.0.27

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.
@@ -19,6 +19,7 @@ export declare class XMLHttpRequestInterceptor implements IXMLHttpRequestInterce
19
19
  private originalSend;
20
20
  private originalSetRequestHeader;
21
21
  private isInstalled;
22
+ private isIntercepting;
22
23
  constructor(logger: ILogger, requestLogger: IRequestLogger, mockResolver: IMockResolver, sessionId: string, appName: string);
23
24
  install(): void;
24
25
  uninstall(): void;
@@ -14,6 +14,7 @@ class XMLHttpRequestInterceptor {
14
14
  this.sessionId = sessionId;
15
15
  this.appName = appName;
16
16
  this.isInstalled = false;
17
+ this.isIntercepting = false; // Flag para prevenir re-intercepção
17
18
  }
18
19
  install() {
19
20
  if (this.isInstalled) {
@@ -54,6 +55,10 @@ class XMLHttpRequestInterceptor {
54
55
  this.originalSend = originalXHR.send;
55
56
  originalXHR.send = function (body) {
56
57
  const xhr = this;
58
+ // Evitar re-intercepção: se já estamos interceptando, usar send original
59
+ if (self.isIntercepting) {
60
+ return self.originalSend.apply(this, [body]);
61
+ }
57
62
  const method = (xhr._fluwaMethod || 'GET');
58
63
  const url = xhr._fluwaUrl;
59
64
  const requestId = xhr._fluwaRequestId;
@@ -69,6 +74,8 @@ class XMLHttpRequestInterceptor {
69
74
  appName: self.appName,
70
75
  source: types_1.RequestSource.REAL,
71
76
  };
77
+ // Marcar que estamos interceptando para evitar re-intercepção
78
+ self.isIntercepting = true;
72
79
  // Verificar se há mock
73
80
  self.mockResolver.resolve(method, url)
74
81
  .then((mockResponse) => {
@@ -110,6 +117,8 @@ class XMLHttpRequestInterceptor {
110
117
  const duration = Date.now() - (xhr._fluwaStartTime || 0);
111
118
  requestMetadata.duration = duration;
112
119
  self.requestLogger.logComplete(requestMetadata).catch(() => { });
120
+ // Restaurar a flag quando requisição completar
121
+ self.isIntercepting = false;
113
122
  }
114
123
  // Chamar handler original
115
124
  if (originalOnReadyStateChange) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluwa-tool/sdk",
3
- "version": "1.0.26",
3
+ "version": "1.0.27",
4
4
  "description": "Fluwa DevTools SDK for network interception and mocking",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",