react-native-qalink 0.3.0 → 0.3.2

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 (44) hide show
  1. package/README.md +10 -1
  2. package/dist/core/device.d.ts +14 -0
  3. package/dist/core/device.d.ts.map +1 -0
  4. package/dist/core/device.js +46 -27
  5. package/dist/core/device.js.map +1 -0
  6. package/dist/core/sanitize.d.ts +16 -0
  7. package/dist/core/sanitize.d.ts.map +1 -0
  8. package/dist/core/sanitize.js +96 -49
  9. package/dist/core/sanitize.js.map +1 -0
  10. package/dist/core/session.d.ts +0 -1
  11. package/dist/core/session.d.ts.map +1 -1
  12. package/dist/core/session.js +12 -27
  13. package/dist/core/session.js.map +1 -1
  14. package/dist/index.d.ts +6 -40
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +196 -164
  17. package/dist/index.js.map +1 -1
  18. package/dist/interceptors/axios.d.ts.map +1 -1
  19. package/dist/interceptors/axios.js +5 -4
  20. package/dist/interceptors/axios.js.map +1 -1
  21. package/dist/interceptors/console.d.ts.map +1 -1
  22. package/dist/interceptors/console.js +112 -67
  23. package/dist/interceptors/console.js.map +1 -1
  24. package/dist/interceptors/errors.d.ts.map +1 -1
  25. package/dist/interceptors/errors.js +4 -3
  26. package/dist/interceptors/errors.js.map +1 -1
  27. package/dist/interceptors/fetch.d.ts +1 -1
  28. package/dist/interceptors/fetch.d.ts.map +1 -1
  29. package/dist/interceptors/fetch.js +99 -96
  30. package/dist/interceptors/fetch.js.map +1 -1
  31. package/dist/interceptors/metro.d.ts +4 -0
  32. package/dist/interceptors/metro.d.ts.map +1 -0
  33. package/dist/interceptors/metro.js +174 -94
  34. package/dist/interceptors/metro.js.map +1 -0
  35. package/dist/interceptors/runtime.d.ts.map +1 -1
  36. package/dist/interceptors/runtime.js +55 -31
  37. package/dist/interceptors/runtime.js.map +1 -1
  38. package/dist/transport/websocket.d.ts +3 -2
  39. package/dist/transport/websocket.d.ts.map +1 -1
  40. package/dist/transport/websocket.js +16 -4
  41. package/dist/transport/websocket.js.map +1 -1
  42. package/dist/types/index.d.ts +66 -31
  43. package/dist/types/index.d.ts.map +1 -1
  44. package/package.json +30 -7
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setupConsoleInterceptor = void 0;
3
+ exports.setupConsoleInterceptor = setupConsoleInterceptor;
4
4
  const session_1 = require("../core/session");
5
-
5
+ // Guardamos referencia a los métodos originales ANTES de sobrescribir
6
6
  const originalConsole = {
7
7
  log: console.log.bind(console),
8
8
  warn: console.warn.bind(console),
@@ -10,88 +10,133 @@ const originalConsole = {
10
10
  info: console.info.bind(console),
11
11
  debug: console.debug.bind(console),
12
12
  };
13
-
14
- const RN_WARNING_PATTERNS = ['Warning:', 'VirtualizedList', 'Each child in a list', 'componentWillMount', 'componentWillReceiveProps', 'componentWillUpdate', 'findDOMNode', 'ReactDOM.render', 'key prop', 'unique "key"', 'Maximum update depth'];
15
- const RN_ERROR_PATTERNS = ['Invariant Violation', 'Text strings must be rendered', 'Cannot update a component', 'Element type is invalid', 'Objects are not valid as a React child', 'TypeError', 'ReferenceError', 'Cannot read property', 'Cannot read properties', 'is not a function', 'undefined is not an object', 'null is not an object'];
16
- const METRO_ERROR_PATTERNS = ['Unable to resolve module', 'Module not found', 'SyntaxError', 'TransformError', 'bundling failed', 'Metro Bundler', 'Error: Metro'];
17
- const THIRD_PARTY_PATTERNS = ['[react-navigation]', '[react-query]', '[redux]', '[mobx]', '[zustand]', 'Reanimated', 'Gesture Handler', 'SafeAreaProvider'];
18
-
13
+ /**
14
+ * Patrones que identifican logs internos de React Native
15
+ * para clasificarlos correctamente en el dashboard.
16
+ */
17
+ const RN_WARNING_PATTERNS = [
18
+ 'Warning:',
19
+ 'VirtualizedList',
20
+ 'Each child in a list',
21
+ 'componentWillMount',
22
+ 'componentWillReceiveProps',
23
+ 'componentWillUpdate',
24
+ 'findDOMNode',
25
+ 'ReactDOM.render',
26
+ 'key prop',
27
+ 'unique "key"',
28
+ 'Maximum update depth',
29
+ ];
30
+ const RN_ERROR_PATTERNS = [
31
+ 'Invariant Violation',
32
+ 'Text strings must be rendered',
33
+ 'Cannot update a component',
34
+ 'Element type is invalid',
35
+ 'Objects are not valid as a React child',
36
+ 'TypeError',
37
+ 'ReferenceError',
38
+ 'Cannot read property',
39
+ 'Cannot read properties',
40
+ 'is not a function',
41
+ 'undefined is not an object',
42
+ 'null is not an object',
43
+ ];
44
+ const METRO_ERROR_PATTERNS = [
45
+ 'Unable to resolve module',
46
+ 'Module not found',
47
+ 'SyntaxError',
48
+ 'TransformError',
49
+ 'bundling failed',
50
+ 'Metro Bundler',
51
+ 'Error: Metro',
52
+ ];
53
+ const THIRD_PARTY_PATTERNS = [
54
+ '[react-navigation]',
55
+ '[react-query]',
56
+ '[redux]',
57
+ '[mobx]',
58
+ '[zustand]',
59
+ 'Reanimated',
60
+ 'Gesture Handler',
61
+ 'SafeAreaProvider',
62
+ ];
19
63
  function classifyConsoleMessage(message) {
20
- if (METRO_ERROR_PATTERNS.some(p => message.includes(p))) return 'rn_error';
21
- if (RN_ERROR_PATTERNS.some(p => message.includes(p))) return 'rn_error';
22
- if (RN_WARNING_PATTERNS.some(p => message.includes(p))) return 'rn_warning';
23
- if (THIRD_PARTY_PATTERNS.some(p => message.includes(p))) return 'third_party';
64
+ if (METRO_ERROR_PATTERNS.some(p => message.includes(p)))
65
+ return 'rn_error';
66
+ if (RN_ERROR_PATTERNS.some(p => message.includes(p)))
67
+ return 'rn_error';
68
+ if (RN_WARNING_PATTERNS.some(p => message.includes(p)))
69
+ return 'rn_warning';
70
+ if (THIRD_PARTY_PATTERNS.some(p => message.includes(p)))
71
+ return 'third_party';
24
72
  return 'user_log';
25
73
  }
26
-
27
74
  function serializeArg(arg) {
28
- if (arg === null) return 'null';
29
- if (arg === undefined) return 'undefined';
30
- if (typeof arg === 'string') return arg;
31
- if (typeof arg === 'number' || typeof arg === 'boolean') return String(arg);
32
- if (arg instanceof Error) return `${arg.name}: ${arg.message}\n${arg.stack ?? ''}`;
33
- try { return JSON.stringify(arg, null, 2); } catch { return String(arg); }
75
+ var _a;
76
+ if (arg === null)
77
+ return 'null';
78
+ if (arg === undefined)
79
+ return 'undefined';
80
+ if (typeof arg === 'string')
81
+ return arg;
82
+ if (typeof arg === 'number' || typeof arg === 'boolean')
83
+ return String(arg);
84
+ if (arg instanceof Error)
85
+ return `${arg.name}: ${arg.message}\n${(_a = arg.stack) !== null && _a !== void 0 ? _a : ''}`;
86
+ try {
87
+ return JSON.stringify(arg, null, 2);
88
+ }
89
+ catch (_b) {
90
+ return String(arg);
91
+ }
34
92
  }
35
-
36
93
  function shouldCapture(message, config) {
37
- if (!config) return true;
38
- if (config.ignorePatterns?.some(p => message.includes(p))) return false;
94
+ var _a;
95
+ if (!config)
96
+ return true;
97
+ // Ignorar si matchea algún patrón de exclusión
98
+ if ((_a = config.ignorePatterns) === null || _a === void 0 ? void 0 : _a.some(p => message.includes(p)))
99
+ return false;
100
+ // Si hay patrones de inclusión, solo capturar si matchea alguno
39
101
  if (config.includePatterns && config.includePatterns.length > 0) {
40
102
  return config.includePatterns.some(p => message.includes(p));
41
103
  }
42
104
  return true;
43
105
  }
44
-
45
- // FLAG para prevenir loops de recursión
46
- let _isSending = false;
47
-
48
106
  function setupConsoleInterceptor(transport, config, getCurrentScreen) {
49
- const consoleConfig = config.console ?? {};
50
- const { captureLogs = true, captureWarnings = true, captureErrors = true } = consoleConfig;
51
-
107
+ var _a;
108
+ const consoleConfig = (_a = config.console) !== null && _a !== void 0 ? _a : {};
109
+ const { captureLogs = true, captureWarnings = true, captureErrors = true, } = consoleConfig;
52
110
  function intercept(level, eventType, originalFn) {
53
111
  return (...args) => {
54
- // SIEMPRE llamar el original primero
112
+ var _a;
113
+ // Siempre llamar al original primero — Metro sigue mostrando todo
55
114
  originalFn(...args);
56
-
57
- // Evitar loop recursivo — si ya estamos enviando, no volver a entrar
58
- if (_isSending) return;
59
-
60
115
  const serializedArgs = args.map(serializeArg);
61
116
  const message = serializedArgs.join(' ');
62
-
63
- // Ignorar logs internos de QALink
64
- if (message.startsWith('[QALink]')) return;
65
-
66
- // Ignorar errores de call stack para evitar loop infinito
67
- if (message.includes('Maximum call stack') || message.includes('call stack size exceeded')) return;
68
-
69
- if (!shouldCapture(message, consoleConfig)) return;
70
-
71
- try {
72
- _isSending = true;
73
- const category = classifyConsoleMessage(message);
74
- const event = {
75
- id: (0, session_1.generateId)(),
76
- type: eventType,
77
- level,
78
- message,
79
- args: serializedArgs,
80
- category,
81
- timestamp: Date.now(),
82
- screen: getCurrentScreen(),
83
- sessionId: (0, session_1.getSessionId)(),
84
- };
85
- transport.send(event);
86
- config.onEvent?.(event);
87
- } catch {
88
- // Nunca romper la app por un error del interceptor
89
- } finally {
90
- _isSending = false;
91
- }
117
+ if (!shouldCapture(message, consoleConfig))
118
+ return;
119
+ // Evitar loop infinito si QALink mismo hace console logs en debug mode
120
+ // Ejemplos: [QALink]..., [QALink Transport]...
121
+ if (message.startsWith('[QALink'))
122
+ return;
123
+ const category = classifyConsoleMessage(message);
124
+ const event = {
125
+ id: (0, session_1.generateId)(),
126
+ type: eventType,
127
+ level,
128
+ message,
129
+ args: serializedArgs,
130
+ category,
131
+ timestamp: Date.now(),
132
+ screen: getCurrentScreen(),
133
+ sessionId: (0, session_1.getSessionId)(),
134
+ };
135
+ transport.send(event);
136
+ (_a = config.onEvent) === null || _a === void 0 ? void 0 : _a.call(config, event);
92
137
  };
93
138
  }
94
-
139
+ // Sobrescribir métodos de consola
95
140
  if (captureLogs) {
96
141
  console.log = intercept('log', 'console_log', originalConsole.log);
97
142
  console.info = intercept('info', 'console_log', originalConsole.info);
@@ -103,7 +148,7 @@ function setupConsoleInterceptor(transport, config, getCurrentScreen) {
103
148
  if (captureErrors) {
104
149
  console.error = intercept('error', 'console_error', originalConsole.error);
105
150
  }
106
-
151
+ // Cleanup: restaurar consola original
107
152
  return () => {
108
153
  console.log = originalConsole.log;
109
154
  console.warn = originalConsole.warn;
@@ -112,4 +157,4 @@ function setupConsoleInterceptor(transport, config, getCurrentScreen) {
112
157
  console.debug = originalConsole.debug;
113
158
  };
114
159
  }
115
- exports.setupConsoleInterceptor = setupConsoleInterceptor;
160
+ //# sourceMappingURL=console.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"console.js","sourceRoot":"","sources":["../../src/interceptors/console.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"console.js","sourceRoot":"","sources":["../../src/interceptors/console.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/interceptors/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAgB,MAAM,UAAU,CAAC;AAEtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,kBAAkB,EAC7B,MAAM,EAAE,YAAY,GACnB,MAAM,IAAI,CAiDZ"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/interceptors/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAgB,MAAM,UAAU,CAAC;AAEtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAO5D,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,kBAAkB,EAC7B,MAAM,EAAE,YAAY,GACnB,MAAM,IAAI,CAkDZ"}
@@ -38,10 +38,11 @@ function setupErrorHandlers(transport, config) {
38
38
  transport.send(jsEvent);
39
39
  (_b = config.onEvent) === null || _b === void 0 ? void 0 : _b.call(config, jsEvent);
40
40
  };
41
- if (typeof global !== 'undefined' && global.addEventListener) {
42
- global.addEventListener('unhandledrejection', unhandledRejectionHandler);
41
+ const g = globalThis;
42
+ if (g === null || g === void 0 ? void 0 : g.addEventListener) {
43
+ g.addEventListener('unhandledrejection', unhandledRejectionHandler);
43
44
  cleanups.push(() => {
44
- global.removeEventListener('unhandledrejection', unhandledRejectionHandler);
45
+ g.removeEventListener('unhandledrejection', unhandledRejectionHandler);
45
46
  });
46
47
  }
47
48
  return () => cleanups.forEach(fn => fn());
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/interceptors/errors.ts"],"names":[],"mappings":";;AAIA,gDAoDC;AAvDD,6CAA2D;AAG3D,SAAgB,kBAAkB,CAChC,SAA6B,EAC7B,MAAoB;IAEpB,MAAM,QAAQ,GAAsB,EAAE,CAAC;IAEvC,MAAM,oBAAoB,GAAG,UAAU,CAAC,gBAAgB,EAAE,CAAC;IAE3D,UAAU,CAAC,gBAAgB,CAAC,CAAC,KAAY,EAAE,OAAiB,EAAE,EAAE;;QAC9D,MAAM,KAAK,GAAiB;YAC1B,EAAE,EAAE,IAAA,oBAAU,GAAE;YAChB,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,mCAAI,MAAM,CAAC,KAAK,CAAC;YACxC,KAAK,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK;YACnB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,MAAM,EAAE,UAAU;YAClB,SAAS,EAAE,IAAA,sBAAY,GAAE;SAC1B,CAAC;QAEF,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,MAAA,MAAM,CAAC,OAAO,uDAAG,KAAK,CAAC,CAAC;QACxB,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE;QACjB,UAAU,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,MAAM,yBAAyB,GAAG,CAAC,KAAU,EAAE,EAAE;;QAC/C,MAAM,KAAK,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,CAAC;QAC5B,MAAM,OAAO,GAAiB;YAC5B,EAAE,EAAE,IAAA,oBAAU,GAAE;YAChB,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,mCAAI,6BAA6B;YACxD,KAAK,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK;YACnB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,MAAM,EAAE,UAAU;YAClB,SAAS,EAAE,IAAA,sBAAY,GAAE;SAC1B,CAAC;QAEF,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxB,MAAA,MAAM,CAAC,OAAO,uDAAG,OAAO,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEF,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC7D,MAAM,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,yBAAyB,CAAC,CAAC;QACzE,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE;YACjB,MAAM,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,yBAAyB,CAAC,CAAC;QAC9E,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAC5C,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/interceptors/errors.ts"],"names":[],"mappings":";;AASA,gDAqDC;AA7DD,6CAA2D;AAQ3D,SAAgB,kBAAkB,CAChC,SAA6B,EAC7B,MAAoB;IAEpB,MAAM,QAAQ,GAAsB,EAAE,CAAC;IAEvC,MAAM,oBAAoB,GAAG,UAAU,CAAC,gBAAgB,EAAE,CAAC;IAE3D,UAAU,CAAC,gBAAgB,CAAC,CAAC,KAAY,EAAE,OAAiB,EAAE,EAAE;;QAC9D,MAAM,KAAK,GAAiB;YAC1B,EAAE,EAAE,IAAA,oBAAU,GAAE;YAChB,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,mCAAI,MAAM,CAAC,KAAK,CAAC;YACxC,KAAK,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK;YACnB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,MAAM,EAAE,UAAU;YAClB,SAAS,EAAE,IAAA,sBAAY,GAAE;SAC1B,CAAC;QAEF,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,MAAA,MAAM,CAAC,OAAO,uDAAG,KAAK,CAAC,CAAC;QACxB,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE;QACjB,UAAU,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,MAAM,yBAAyB,GAAG,CAAC,KAAU,EAAE,EAAE;;QAC/C,MAAM,KAAK,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,CAAC;QAC5B,MAAM,OAAO,GAAiB;YAC5B,EAAE,EAAE,IAAA,oBAAU,GAAE;YAChB,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,mCAAI,6BAA6B;YACxD,KAAK,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK;YACnB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,MAAM,EAAE,UAAU;YAClB,SAAS,EAAE,IAAA,sBAAY,GAAE;SAC1B,CAAC;QAEF,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxB,MAAA,MAAM,CAAC,OAAO,uDAAG,OAAO,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEF,MAAM,CAAC,GAAG,UAAiB,CAAC;IAC5B,IAAI,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,gBAAgB,EAAE,CAAC;QACxB,CAAC,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,yBAAyB,CAAC,CAAC;QACpE,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE;YACjB,CAAC,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,yBAAyB,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAC5C,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import { QALinkConfig } from '../types';
2
2
  import { WebSocketTransport } from '../transport/websocket';
3
- export declare function setupFetchInterceptor(transport: WebSocketTransport, config: QALinkConfig): () => void;
3
+ export declare function setupFetchInterceptor(transport: WebSocketTransport, config: QALinkConfig, getDeviceId: () => string): () => void;
4
4
  //# sourceMappingURL=fetch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/interceptors/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAgB,MAAM,UAAU,CAAC;AAGtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAI5D,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,kBAAkB,EAC7B,MAAM,EAAE,YAAY,GACnB,MAAM,IAAI,CA8EZ"}
1
+ {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/interceptors/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAgB,MAAM,UAAU,CAAC;AAItD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAI5D,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,kBAAkB,EAC7B,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,MAAM,MAAM,GACxB,MAAM,IAAI,CAyGZ"}
@@ -1,108 +1,111 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setupFetchInterceptor = void 0;
3
+ exports.setupFetchInterceptor = setupFetchInterceptor;
4
4
  const classifier_1 = require("../core/classifier");
5
- const session_1 = require("../core/session");
6
- const sanitize_1 = require("../core/sanitize");
7
-
5
+ const session_1 = require("../core/session");
6
+ const sanitize_1 = require("../core/sanitize");
8
7
  const originalFetch = global.fetch;
9
-
10
8
  function setupFetchInterceptor(transport, config, getDeviceId) {
11
- global.fetch = async (input, init) => {
12
- const requestId = (0, session_1.generateId)();
13
- const startTime = Date.now();
14
- const method = init?.method?.toUpperCase() ?? 'GET';
15
- const url = typeof input === 'string' ? input : input instanceof URL ? input.toString() : input.url;
16
-
17
- if (shouldIgnoreUrl(url, config.sensitiveUrlPatterns ?? [])) {
18
- return originalFetch(input, init);
19
- }
20
-
21
- let response, responseBody, statusCode;
22
- const isAuth = (0, sanitize_1.isAuthUrl)(url);
23
-
24
- try {
25
- response = await originalFetch(input, init);
26
- statusCode = response.status;
27
-
28
- if (config.logNetworkBodies) {
9
+ global.fetch = async (input, init) => {
10
+ var _a, _b, _c, _d, _e;
11
+ const requestId = (0, session_1.generateId)();
12
+ const startTime = Date.now();
13
+ const method = (_b = (_a = init === null || init === void 0 ? void 0 : init.method) === null || _a === void 0 ? void 0 : _a.toUpperCase()) !== null && _b !== void 0 ? _b : 'GET';
14
+ const url = typeof input === 'string' ? input : input instanceof URL ? input.toString() : input.url;
15
+ // Ignorar URLs sensibles configuradas manualmente
16
+ if (shouldIgnoreUrl(url, (_c = config.sensitiveUrlPatterns) !== null && _c !== void 0 ? _c : [])) {
17
+ return originalFetch(input, init);
18
+ }
19
+ let response;
20
+ let responseBody;
21
+ let statusCode;
22
+ const isAuth = (0, sanitize_1.isAuthUrl)(url);
29
23
  try {
30
- const cloned = response.clone();
31
- responseBody = await cloned.json().catch(() => cloned.text());
32
- } catch { responseBody = '[could not read body]'; }
33
- }
34
-
35
- let reqBody = init?.body;
36
- let sanitizedFlag = false;
37
- if (reqBody && config.logNetworkBodies) {
38
- if (isAuth) {
39
- reqBody = '[REDACTED - auth endpoint]';
40
- sanitizedFlag = true;
41
- } else {
42
- const { sanitized, hadSensitiveData } = (0, sanitize_1.sanitizePayload)(reqBody, config.sensitiveBodyFields);
43
- reqBody = sanitized;
44
- sanitizedFlag = hadSensitiveData;
24
+ response = await originalFetch(input, init);
25
+ statusCode = response.status;
26
+ if (config.logNetworkBodies) {
27
+ try {
28
+ const cloned = response.clone();
29
+ responseBody = await cloned.json().catch(() => cloned.text());
30
+ }
31
+ catch (_f) {
32
+ responseBody = '[could not read body]';
33
+ }
34
+ }
35
+ // Sanitizar request body
36
+ let reqBody = init === null || init === void 0 ? void 0 : init.body;
37
+ let sanitizedFlag = false;
38
+ if (reqBody && config.logNetworkBodies) {
39
+ if (isAuth) {
40
+ // Endpoint de auth — redactar body completo
41
+ reqBody = '[REDACTED - auth endpoint]';
42
+ sanitizedFlag = true;
43
+ }
44
+ else {
45
+ const { sanitized, hadSensitiveData } = (0, sanitize_1.sanitizePayload)(reqBody, config.sensitiveBodyFields);
46
+ reqBody = sanitized;
47
+ sanitizedFlag = hadSensitiveData;
48
+ }
49
+ }
50
+ else {
51
+ reqBody = '[body omitted - enable logNetworkBodies]';
52
+ }
53
+ // Sanitizar response body
54
+ let resBody = responseBody;
55
+ if (resBody && config.logNetworkBodies) {
56
+ const { sanitized } = (0, sanitize_1.sanitizePayload)(resBody, config.sensitiveBodyFields);
57
+ resBody = sanitized;
58
+ }
59
+ else if (!config.logNetworkBodies) {
60
+ resBody = '[body omitted - enable logNetworkBodies]';
61
+ }
62
+ const event = {
63
+ id: requestId,
64
+ type: statusCode >= 400 ? 'network_error' : 'network_request',
65
+ method,
66
+ url,
67
+ statusCode,
68
+ requestHeaders: (0, sanitize_1.sanitizeHeaders)(headersToObject(new Headers(init === null || init === void 0 ? void 0 : init.headers)), config.sensitiveHeaders),
69
+ requestBody: reqBody,
70
+ responseBody: resBody,
71
+ durationMs: Date.now() - startTime,
72
+ timestamp: Date.now(),
73
+ source: (0, classifier_1.classifyErrorSource)(statusCode),
74
+ sessionId: (0, session_1.getSessionId)(),
75
+ deviceId: getDeviceId(),
76
+ };
77
+ transport.send(event);
78
+ (_d = config.onEvent) === null || _d === void 0 ? void 0 : _d.call(config, event);
79
+ return response;
45
80
  }
46
- } else {
47
- reqBody = '[body omitted - enable logNetworkBodies]';
48
- }
49
-
50
- let resBody = responseBody;
51
- if (resBody && config.logNetworkBodies) {
52
- const { sanitized } = (0, sanitize_1.sanitizePayload)(resBody, config.sensitiveBodyFields);
53
- resBody = sanitized;
54
- } else if (!config.logNetworkBodies) {
55
- resBody = '[body omitted - enable logNetworkBodies]';
56
- }
57
-
58
- const event = {
59
- id: requestId,
60
- type: statusCode >= 400 ? 'network_error' : 'network_request',
61
- method, url, statusCode,
62
- requestHeaders: (0, sanitize_1.sanitizeHeaders)(headersToObject(new Headers(init?.headers)), config.sensitiveHeaders),
63
- requestBody: reqBody,
64
- responseBody: resBody,
65
- durationMs: Date.now() - startTime,
66
- timestamp: Date.now(),
67
- source: (0, classifier_1.classifyErrorSource)(statusCode),
68
- sessionId: (0, session_1.getSessionId)(),
69
- deviceId: getDeviceId(),
70
- };
71
-
72
- transport.send(event);
73
- config.onEvent?.(event);
74
- return response;
75
-
76
- } catch (error) {
77
- const event = {
78
- id: requestId,
79
- type: 'network_error',
80
- method, url,
81
- statusCode: undefined,
82
- requestHeaders: (0, sanitize_1.sanitizeHeaders)(headersToObject(new Headers(init?.headers)), config.sensitiveHeaders),
83
- requestBody: '[body omitted on error]',
84
- durationMs: Date.now() - startTime,
85
- timestamp: Date.now(),
86
- source: (0, classifier_1.classifyErrorSource)(undefined, error),
87
- sessionId: (0, session_1.getSessionId)(),
88
- deviceId: getDeviceId(),
89
- };
90
- transport.send(event);
91
- config.onEvent?.(event);
92
- throw error;
93
- }
94
- };
95
-
96
- return () => { global.fetch = originalFetch; };
81
+ catch (error) {
82
+ const event = {
83
+ id: requestId,
84
+ type: 'network_error',
85
+ method,
86
+ url,
87
+ statusCode: undefined,
88
+ requestHeaders: (0, sanitize_1.sanitizeHeaders)(headersToObject(new Headers(init === null || init === void 0 ? void 0 : init.headers)), config.sensitiveHeaders),
89
+ requestBody: '[body omitted on error]',
90
+ durationMs: Date.now() - startTime,
91
+ timestamp: Date.now(),
92
+ source: (0, classifier_1.classifyErrorSource)(undefined, error),
93
+ sessionId: (0, session_1.getSessionId)(),
94
+ deviceId: getDeviceId(),
95
+ };
96
+ transport.send(event);
97
+ (_e = config.onEvent) === null || _e === void 0 ? void 0 : _e.call(config, event);
98
+ throw error;
99
+ }
100
+ };
101
+ return () => { global.fetch = originalFetch; };
97
102
  }
98
- exports.setupFetchInterceptor = setupFetchInterceptor;
99
-
100
103
  function headersToObject(headers) {
101
- const result = {};
102
- headers.forEach((value, key) => { result[key] = value; });
103
- return result;
104
+ const result = {};
105
+ headers.forEach((value, key) => { result[key] = value; });
106
+ return result;
104
107
  }
105
-
106
108
  function shouldIgnoreUrl(url, patterns) {
107
- return patterns.some(p => url.includes(p));
109
+ return patterns.some(pattern => url.includes(pattern));
108
110
  }
111
+ //# sourceMappingURL=fetch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/interceptors/fetch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/interceptors/fetch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { QALinkConfig } from '../types';
2
+ import { WebSocketTransport } from '../transport/websocket';
3
+ export declare function setupMetroInterceptor(transport: WebSocketTransport, config: QALinkConfig, getDeviceId: () => string): () => void;
4
+ //# sourceMappingURL=metro.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metro.d.ts","sourceRoot":"","sources":["../../src/interceptors/metro.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAmB,MAAM,UAAU,CAAC;AAEzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AA2E5D,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,kBAAkB,EAC7B,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,MAAM,MAAM,GACxB,MAAM,IAAI,CAyHZ"}