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.
- package/README.md +10 -1
- package/dist/core/device.d.ts +14 -0
- package/dist/core/device.d.ts.map +1 -0
- package/dist/core/device.js +46 -27
- package/dist/core/device.js.map +1 -0
- package/dist/core/sanitize.d.ts +16 -0
- package/dist/core/sanitize.d.ts.map +1 -0
- package/dist/core/sanitize.js +96 -49
- package/dist/core/sanitize.js.map +1 -0
- package/dist/core/session.d.ts +0 -1
- package/dist/core/session.d.ts.map +1 -1
- package/dist/core/session.js +12 -27
- package/dist/core/session.js.map +1 -1
- package/dist/index.d.ts +6 -40
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +196 -164
- package/dist/index.js.map +1 -1
- package/dist/interceptors/axios.d.ts.map +1 -1
- package/dist/interceptors/axios.js +5 -4
- package/dist/interceptors/axios.js.map +1 -1
- package/dist/interceptors/console.d.ts.map +1 -1
- package/dist/interceptors/console.js +112 -67
- package/dist/interceptors/console.js.map +1 -1
- package/dist/interceptors/errors.d.ts.map +1 -1
- package/dist/interceptors/errors.js +4 -3
- package/dist/interceptors/errors.js.map +1 -1
- package/dist/interceptors/fetch.d.ts +1 -1
- package/dist/interceptors/fetch.d.ts.map +1 -1
- package/dist/interceptors/fetch.js +99 -96
- package/dist/interceptors/fetch.js.map +1 -1
- package/dist/interceptors/metro.d.ts +4 -0
- package/dist/interceptors/metro.d.ts.map +1 -0
- package/dist/interceptors/metro.js +174 -94
- package/dist/interceptors/metro.js.map +1 -0
- package/dist/interceptors/runtime.d.ts.map +1 -1
- package/dist/interceptors/runtime.js +55 -31
- package/dist/interceptors/runtime.js.map +1 -1
- package/dist/transport/websocket.d.ts +3 -2
- package/dist/transport/websocket.d.ts.map +1 -1
- package/dist/transport/websocket.js +16 -4
- package/dist/transport/websocket.js.map +1 -1
- package/dist/types/index.d.ts +66 -31
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +30 -7
|
@@ -1,109 +1,189 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.setupMetroInterceptor =
|
|
3
|
+
exports.setupMetroInterceptor = setupMetroInterceptor;
|
|
4
4
|
const session_1 = require("../core/session");
|
|
5
|
-
|
|
5
|
+
/**
|
|
6
|
+
* Cómo crashea Metro y cómo lo capturamos:
|
|
7
|
+
*
|
|
8
|
+
* 1. SYNTAX ERRORS — cuando hay un error de sintaxis en un archivo JS/TS
|
|
9
|
+
* Metro llama a console.error con un mensaje que contiene "SyntaxError"
|
|
10
|
+
* y la ruta del archivo. Lo capturamos interceptando console.error.
|
|
11
|
+
*
|
|
12
|
+
* 2. MODULE NOT FOUND — cuando un import no puede resolverse
|
|
13
|
+
* Genera un mensaje "Unable to resolve module 'X' from 'Y'"
|
|
14
|
+
* También pasa por console.error.
|
|
15
|
+
*
|
|
16
|
+
* 3. TRANSFORM ERRORS — cuando Babel/TypeScript falla al compilar
|
|
17
|
+
* Mensaje: "TransformError" con ruta del archivo y línea.
|
|
18
|
+
*
|
|
19
|
+
* 4. BUNDLING FAILED — error general del bundler
|
|
20
|
+
* Mensaje: "bundling failed" o "Metro Bundler"
|
|
21
|
+
*
|
|
22
|
+
* 5. HOT RELOAD ERRORS — errores durante HMR
|
|
23
|
+
* Pasan por el global error handler de RN.
|
|
24
|
+
*
|
|
25
|
+
* Todos estos patrones los detectamos y clasificamos en metro_error
|
|
26
|
+
* separado de los console_error normales para que el dashboard los
|
|
27
|
+
* muestre diferenciado y el QA pueda identificarlos rápido.
|
|
28
|
+
*/
|
|
29
|
+
// Patrones exactos que indican un error de Metro Bundler
|
|
6
30
|
const METRO_PATTERNS = [
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
31
|
+
{ pattern: /Unable to resolve module ['"]([^'"]+)['"]\s+from\s+['"]([^'"]+)['"]/i, type: 'module_not_found' },
|
|
32
|
+
{ pattern: /SyntaxError:.+\((\d+):(\d+)\)/i, type: 'syntax_error' },
|
|
33
|
+
{ pattern: /TransformError/i, type: 'transform_error' },
|
|
34
|
+
{ pattern: /bundling failed/i, type: 'bundling_failed' },
|
|
35
|
+
{ pattern: /Metro(?:\s+Bundler)?:/i, type: 'metro_generic' },
|
|
36
|
+
{ pattern: /error: .+\.(?:js|ts|tsx|jsx):\s*\d+:\d+/i, type: 'build_error' },
|
|
37
|
+
{ pattern: /Requiring unknown module/i, type: 'module_not_found' },
|
|
38
|
+
{ pattern: /Module not found/i, type: 'module_not_found' },
|
|
39
|
+
{ pattern: /cannot find module/i, type: 'module_not_found' },
|
|
40
|
+
{ pattern: /ENOENT:.+require/i, type: 'module_not_found' },
|
|
17
41
|
];
|
|
18
|
-
|
|
42
|
+
// Extrae nombre de archivo y línea del mensaje si los contiene
|
|
19
43
|
function parseFileInfo(message) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
44
|
+
// Patrón: "path/to/file.tsx:42:10"
|
|
45
|
+
const fileMatch = message.match(/([^\s:]+\.(?:js|ts|tsx|jsx)):(\d+):(\d+)/);
|
|
46
|
+
if (fileMatch) {
|
|
47
|
+
return {
|
|
48
|
+
file: fileMatch[1],
|
|
49
|
+
lineNumber: parseInt(fileMatch[2], 10),
|
|
50
|
+
column: parseInt(fileMatch[3], 10),
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
// Patrón: "path/to/file.tsx (42:10)"
|
|
54
|
+
const fileMatch2 = message.match(/([^\s(]+\.(?:js|ts|tsx|jsx))\s*\((\d+):(\d+)\)/);
|
|
55
|
+
if (fileMatch2) {
|
|
56
|
+
return {
|
|
57
|
+
file: fileMatch2[1],
|
|
58
|
+
lineNumber: parseInt(fileMatch2[2], 10),
|
|
59
|
+
column: parseInt(fileMatch2[3], 10),
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
return {};
|
|
25
63
|
}
|
|
26
|
-
|
|
27
64
|
function isMetroMessage(message) {
|
|
28
|
-
|
|
65
|
+
return METRO_PATTERNS.some(({ pattern }) => pattern.test(message));
|
|
29
66
|
}
|
|
30
|
-
|
|
31
67
|
function getMetroSubtype(message) {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
function argsToString(args) {
|
|
39
|
-
return args
|
|
40
|
-
.map(a => typeof a === 'string' ? a : a instanceof Error ? `${a.message}\n${a.stack ?? ''}` : String(a))
|
|
41
|
-
.join(' ');
|
|
68
|
+
for (const { pattern, type } of METRO_PATTERNS) {
|
|
69
|
+
if (pattern.test(message))
|
|
70
|
+
return type;
|
|
71
|
+
}
|
|
72
|
+
return 'metro_generic';
|
|
42
73
|
}
|
|
43
|
-
|
|
44
74
|
function setupMetroInterceptor(transport, config, getDeviceId) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
75
|
+
const cleanups = [];
|
|
76
|
+
// ── 1. Interceptar console.error para detectar mensajes de Metro ──────────
|
|
77
|
+
// Metro reporta casi todos sus errores a través de console.error.
|
|
78
|
+
// Nos enganchamos ANTES del interceptor de consola general para
|
|
79
|
+
// clasificarlos como metro_error y no como console_error.
|
|
80
|
+
const originalConsoleError = console.error.bind(console);
|
|
81
|
+
const metroConsoleError = (...args) => {
|
|
82
|
+
var _a;
|
|
83
|
+
// Llamar siempre al original
|
|
84
|
+
originalConsoleError(...args);
|
|
85
|
+
if (config.captureMetroErrors === false)
|
|
86
|
+
return;
|
|
87
|
+
const message = args
|
|
88
|
+
.map(a => (typeof a === 'string' ? a : a instanceof Error ? `${a.message}\n${a.stack}` : String(a)))
|
|
89
|
+
.join(' ');
|
|
90
|
+
if (!isMetroMessage(message))
|
|
91
|
+
return;
|
|
92
|
+
const { file, lineNumber, column } = parseFileInfo(message);
|
|
93
|
+
const event = {
|
|
94
|
+
id: (0, session_1.generateId)(),
|
|
95
|
+
type: 'metro_error',
|
|
96
|
+
metroType: getMetroSubtype(message),
|
|
97
|
+
message: message.slice(0, 2000), // limitar tamaño
|
|
98
|
+
file,
|
|
99
|
+
lineNumber,
|
|
100
|
+
column,
|
|
101
|
+
timestamp: Date.now(),
|
|
102
|
+
sessionId: (0, session_1.getSessionId)(),
|
|
103
|
+
deviceId: getDeviceId(),
|
|
104
|
+
};
|
|
105
|
+
transport.send(event);
|
|
106
|
+
(_a = config.onEvent) === null || _a === void 0 ? void 0 : _a.call(config, event);
|
|
107
|
+
};
|
|
108
|
+
// Sobrescribir console.error — tener en cuenta que el interceptor de
|
|
109
|
+
// console general también lo sobrescribe, así que guardamos referencia
|
|
110
|
+
// al console.error ACTUAL (que puede ya estar sobrescrito) para no
|
|
111
|
+
// perder la cadena de interceptores.
|
|
112
|
+
const previousConsoleError = console.error;
|
|
113
|
+
console.error = (...args) => {
|
|
114
|
+
var _a;
|
|
115
|
+
previousConsoleError(...args);
|
|
116
|
+
if (config.captureMetroErrors === false)
|
|
117
|
+
return;
|
|
118
|
+
const message = args
|
|
119
|
+
.map(a => { var _a; return (typeof a === 'string' ? a : a instanceof Error ? `${a.message}\n${(_a = a.stack) !== null && _a !== void 0 ? _a : ''}` : String(a)); })
|
|
120
|
+
.join(' ');
|
|
121
|
+
if (!isMetroMessage(message))
|
|
122
|
+
return;
|
|
123
|
+
if (message.startsWith('[QALink]'))
|
|
124
|
+
return;
|
|
125
|
+
const { file, lineNumber, column } = parseFileInfo(message);
|
|
126
|
+
const event = {
|
|
127
|
+
id: (0, session_1.generateId)(),
|
|
128
|
+
type: 'metro_error',
|
|
129
|
+
metroType: getMetroSubtype(message),
|
|
130
|
+
message: message.slice(0, 2000),
|
|
131
|
+
file,
|
|
132
|
+
lineNumber,
|
|
133
|
+
column,
|
|
134
|
+
timestamp: Date.now(),
|
|
135
|
+
sessionId: (0, session_1.getSessionId)(),
|
|
136
|
+
deviceId: getDeviceId(),
|
|
137
|
+
};
|
|
138
|
+
transport.send(event);
|
|
139
|
+
(_a = config.onEvent) === null || _a === void 0 ? void 0 : _a.call(config, event);
|
|
67
140
|
};
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
141
|
+
cleanups.push(() => {
|
|
142
|
+
console.error = previousConsoleError;
|
|
143
|
+
});
|
|
144
|
+
// ── 2. ErrorUtils — capturar crashes fatales de Metro en el bridge ────────
|
|
145
|
+
// Algunos errores de Metro (especialmente durante HMR/hot reload)
|
|
146
|
+
// llegan como errores fatales al global error handler.
|
|
147
|
+
try {
|
|
148
|
+
if (typeof ErrorUtils !== 'undefined' && ErrorUtils.getGlobalHandler) {
|
|
149
|
+
const originalHandler = ErrorUtils.getGlobalHandler();
|
|
150
|
+
ErrorUtils.setGlobalHandler((error, isFatal) => {
|
|
151
|
+
var _a;
|
|
152
|
+
try {
|
|
153
|
+
if (config.captureMetroErrors !== false && (error === null || error === void 0 ? void 0 : error.message) && isMetroMessage(error.message)) {
|
|
154
|
+
const { file, lineNumber, column } = parseFileInfo(error.message);
|
|
155
|
+
const event = {
|
|
156
|
+
id: (0, session_1.generateId)(),
|
|
157
|
+
type: 'metro_error',
|
|
158
|
+
metroType: getMetroSubtype(error.message),
|
|
159
|
+
message: error.message.slice(0, 2000),
|
|
160
|
+
stack: error.stack,
|
|
161
|
+
file,
|
|
162
|
+
lineNumber,
|
|
163
|
+
column,
|
|
164
|
+
timestamp: Date.now(),
|
|
165
|
+
sessionId: (0, session_1.getSessionId)(),
|
|
166
|
+
deviceId: getDeviceId(),
|
|
167
|
+
};
|
|
168
|
+
transport.send(event);
|
|
169
|
+
(_a = config.onEvent) === null || _a === void 0 ? void 0 : _a.call(config, event);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
catch (_b) { }
|
|
173
|
+
originalHandler(error, isFatal);
|
|
174
|
+
});
|
|
175
|
+
cleanups.push(() => {
|
|
176
|
+
try {
|
|
177
|
+
ErrorUtils.setGlobalHandler(originalHandler);
|
|
178
|
+
}
|
|
179
|
+
catch (_a) { }
|
|
180
|
+
});
|
|
181
|
+
}
|
|
104
182
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
183
|
+
catch (_a) { }
|
|
184
|
+
return () => cleanups.forEach(fn => { try {
|
|
185
|
+
fn();
|
|
186
|
+
}
|
|
187
|
+
catch (_a) { } });
|
|
108
188
|
}
|
|
109
|
-
|
|
189
|
+
//# sourceMappingURL=metro.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metro.js","sourceRoot":"","sources":["../../src/interceptors/metro.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/interceptors/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAqB,MAAM,UAAU,CAAC;AAE3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/interceptors/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAqB,MAAM,UAAU,CAAC;AAE3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAuB5D,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,kBAAkB,EAC7B,MAAM,EAAE,YAAY,EACpB,gBAAgB,EAAE,MAAM,MAAM,GAC7B,MAAM,IAAI,CAmFZ"}
|
|
@@ -1,33 +1,41 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.setupRuntimeErrorHandler =
|
|
3
|
+
exports.setupRuntimeErrorHandler = setupRuntimeErrorHandler;
|
|
4
4
|
const session_1 = require("../core/session");
|
|
5
|
-
|
|
6
5
|
function classifyRuntimeError(message, isFatal) {
|
|
7
|
-
if (isFatal)
|
|
8
|
-
|
|
9
|
-
if (message.includes('
|
|
10
|
-
|
|
6
|
+
if (isFatal)
|
|
7
|
+
return 'red_screen';
|
|
8
|
+
if (message.includes('NativeModule') ||
|
|
9
|
+
message.includes('Native module') ||
|
|
10
|
+
message.includes('TurboModule') ||
|
|
11
|
+
message.includes('requireNativeComponent'))
|
|
12
|
+
return 'native_module';
|
|
13
|
+
if (message.includes('bridge') ||
|
|
14
|
+
message.includes('JSContext') ||
|
|
15
|
+
message.includes('RCTBridge') ||
|
|
16
|
+
message.includes('JavaScriptCore'))
|
|
17
|
+
return 'bridge';
|
|
18
|
+
if (message.startsWith('Warning:') || message.includes('deprecated'))
|
|
19
|
+
return 'yellow_box';
|
|
11
20
|
return 'unknown';
|
|
12
21
|
}
|
|
13
|
-
|
|
14
22
|
function setupRuntimeErrorHandler(transport, config, getCurrentScreen) {
|
|
15
23
|
const cleanups = [];
|
|
16
|
-
|
|
17
|
-
// ── 1. Handler global de errores fatales ──────────────────────────────────
|
|
24
|
+
// ── 1. Handler global de errores fatales (pantalla roja) ──────────────────
|
|
18
25
|
try {
|
|
19
26
|
if (typeof ErrorUtils !== 'undefined' && ErrorUtils.getGlobalHandler) {
|
|
20
27
|
const originalGlobalHandler = ErrorUtils.getGlobalHandler();
|
|
21
28
|
ErrorUtils.setGlobalHandler((error, isFatal) => {
|
|
29
|
+
var _a, _b, _c;
|
|
22
30
|
try {
|
|
23
|
-
const fatal = isFatal
|
|
24
|
-
const category = classifyRuntimeError(error
|
|
31
|
+
const fatal = isFatal !== null && isFatal !== void 0 ? isFatal : false;
|
|
32
|
+
const category = classifyRuntimeError((_a = error === null || error === void 0 ? void 0 : error.message) !== null && _a !== void 0 ? _a : '', fatal);
|
|
25
33
|
const event = {
|
|
26
34
|
id: (0, session_1.generateId)(),
|
|
27
35
|
type: 'runtime_error',
|
|
28
36
|
level: fatal ? 'fatal' : 'error',
|
|
29
|
-
message: error
|
|
30
|
-
stack: error
|
|
37
|
+
message: (_b = error === null || error === void 0 ? void 0 : error.message) !== null && _b !== void 0 ? _b : String(error),
|
|
38
|
+
stack: error === null || error === void 0 ? void 0 : error.stack,
|
|
31
39
|
isFatal: fatal,
|
|
32
40
|
category,
|
|
33
41
|
timestamp: Date.now(),
|
|
@@ -35,28 +43,37 @@ function setupRuntimeErrorHandler(transport, config, getCurrentScreen) {
|
|
|
35
43
|
sessionId: (0, session_1.getSessionId)(),
|
|
36
44
|
};
|
|
37
45
|
transport.send(event);
|
|
38
|
-
config.onEvent
|
|
39
|
-
}
|
|
46
|
+
(_c = config.onEvent) === null || _c === void 0 ? void 0 : _c.call(config, event);
|
|
47
|
+
}
|
|
48
|
+
catch (_d) {
|
|
49
|
+
// Nunca romper el handler original
|
|
50
|
+
}
|
|
40
51
|
originalGlobalHandler(error, isFatal);
|
|
41
52
|
});
|
|
42
53
|
cleanups.push(() => {
|
|
43
|
-
try {
|
|
54
|
+
try {
|
|
55
|
+
ErrorUtils.setGlobalHandler(originalGlobalHandler);
|
|
56
|
+
}
|
|
57
|
+
catch (_a) { }
|
|
44
58
|
});
|
|
45
59
|
}
|
|
46
|
-
}
|
|
47
|
-
|
|
60
|
+
}
|
|
61
|
+
catch (_a) {
|
|
62
|
+
// ErrorUtils no disponible en este entorno
|
|
63
|
+
}
|
|
48
64
|
// ── 2. Promesas rechazadas no manejadas ───────────────────────────────────
|
|
49
65
|
try {
|
|
50
66
|
const unhandledRejectionHandler = (event) => {
|
|
67
|
+
var _a, _b, _c;
|
|
51
68
|
try {
|
|
52
|
-
const error = event
|
|
53
|
-
const message = error
|
|
69
|
+
const error = event === null || event === void 0 ? void 0 : event.reason;
|
|
70
|
+
const message = (_b = (_a = error === null || error === void 0 ? void 0 : error.message) !== null && _a !== void 0 ? _a : String(error)) !== null && _b !== void 0 ? _b : 'Unhandled Promise Rejection';
|
|
54
71
|
const runtimeEvent = {
|
|
55
72
|
id: (0, session_1.generateId)(),
|
|
56
73
|
type: 'runtime_error',
|
|
57
74
|
level: 'error',
|
|
58
75
|
message,
|
|
59
|
-
stack: error
|
|
76
|
+
stack: error === null || error === void 0 ? void 0 : error.stack,
|
|
60
77
|
isFatal: false,
|
|
61
78
|
category: 'unknown',
|
|
62
79
|
timestamp: Date.now(),
|
|
@@ -64,20 +81,27 @@ function setupRuntimeErrorHandler(transport, config, getCurrentScreen) {
|
|
|
64
81
|
sessionId: (0, session_1.getSessionId)(),
|
|
65
82
|
};
|
|
66
83
|
transport.send(runtimeEvent);
|
|
67
|
-
config.onEvent
|
|
68
|
-
}
|
|
84
|
+
(_c = config.onEvent) === null || _c === void 0 ? void 0 : _c.call(config, runtimeEvent);
|
|
85
|
+
}
|
|
86
|
+
catch (_d) { }
|
|
69
87
|
};
|
|
70
88
|
if (typeof global !== 'undefined' && global.addEventListener) {
|
|
71
89
|
global.addEventListener('unhandledrejection', unhandledRejectionHandler);
|
|
72
90
|
cleanups.push(() => {
|
|
73
|
-
try {
|
|
91
|
+
try {
|
|
92
|
+
global.removeEventListener('unhandledrejection', unhandledRejectionHandler);
|
|
93
|
+
}
|
|
94
|
+
catch (_a) { }
|
|
74
95
|
});
|
|
75
96
|
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
// NOTE: LogBox.__warn removido —
|
|
79
|
-
//
|
|
80
|
-
|
|
81
|
-
return () => cleanups.forEach(fn => { try {
|
|
97
|
+
}
|
|
98
|
+
catch (_b) { }
|
|
99
|
+
// NOTE: LogBox.__warn ha sido removido — es una API interna privada de RN
|
|
100
|
+
// que causa crashes en el bridge nativo C++. Los warnings de RN ya son
|
|
101
|
+
// capturados por el interceptor de console.warn.
|
|
102
|
+
return () => cleanups.forEach(fn => { try {
|
|
103
|
+
fn();
|
|
104
|
+
}
|
|
105
|
+
catch (_a) { } });
|
|
82
106
|
}
|
|
83
|
-
|
|
107
|
+
//# sourceMappingURL=runtime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/interceptors/runtime.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/interceptors/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,8 +9,8 @@ export declare class WebSocketTransport {
|
|
|
9
9
|
private readonly maxReconnectAttempts;
|
|
10
10
|
private readonly reconnectBaseMs;
|
|
11
11
|
private debug;
|
|
12
|
-
private
|
|
13
|
-
constructor(
|
|
12
|
+
private connectionUrl;
|
|
13
|
+
constructor(connectionUrl: string, debug?: boolean);
|
|
14
14
|
connect(): void;
|
|
15
15
|
disconnect(): void;
|
|
16
16
|
send(event: QALinkEvent): void;
|
|
@@ -18,6 +18,7 @@ export declare class WebSocketTransport {
|
|
|
18
18
|
private flushQueue;
|
|
19
19
|
private scheduleReconnect;
|
|
20
20
|
private log;
|
|
21
|
+
private maskedUrlForLogs;
|
|
21
22
|
}
|
|
22
23
|
export {};
|
|
23
24
|
//# sourceMappingURL=websocket.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../src/transport/websocket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,KAAK,eAAe,GAAG,cAAc,GAAG,YAAY,GAAG,WAAW,GAAG,OAAO,CAAC;AAE7E,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,MAAM,CAAmC;IACjD,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAM;IAC3C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;IACxC,OAAO,CAAC,KAAK,CAAU;IACvB,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../src/transport/websocket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,KAAK,eAAe,GAAG,cAAc,GAAG,YAAY,GAAG,WAAW,GAAG,OAAO,CAAC;AAE7E,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,MAAM,CAAmC;IACjD,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAM;IAC3C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;IACxC,OAAO,CAAC,KAAK,CAAU;IACvB,OAAO,CAAC,aAAa,CAAS;gBAElB,aAAa,EAAE,MAAM,EAAE,KAAK,UAAQ;IAKhD,OAAO,IAAI,IAAI;IAoCf,UAAU,IAAI,IAAI;IAUlB,IAAI,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAe9B,SAAS,IAAI,eAAe;IAI5B,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,GAAG;IAMX,OAAO,CAAC,gBAAgB;CAWzB"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.WebSocketTransport = void 0;
|
|
4
4
|
class WebSocketTransport {
|
|
5
|
-
constructor(
|
|
5
|
+
constructor(connectionUrl, debug = false) {
|
|
6
6
|
this.ws = null;
|
|
7
7
|
this.queue = [];
|
|
8
8
|
this.status = 'disconnected';
|
|
@@ -10,16 +10,16 @@ class WebSocketTransport {
|
|
|
10
10
|
this.reconnectAttempts = 0;
|
|
11
11
|
this.maxReconnectAttempts = 10;
|
|
12
12
|
this.reconnectBaseMs = 1000;
|
|
13
|
-
this.
|
|
13
|
+
this.connectionUrl = connectionUrl;
|
|
14
14
|
this.debug = debug;
|
|
15
15
|
}
|
|
16
16
|
connect() {
|
|
17
17
|
if (this.status === 'connecting' || this.status === 'connected')
|
|
18
18
|
return;
|
|
19
19
|
this.status = 'connecting';
|
|
20
|
-
this.log(`Connecting to ${this.
|
|
20
|
+
this.log(`Connecting to ${this.maskedUrlForLogs()}...`);
|
|
21
21
|
try {
|
|
22
|
-
this.ws = new WebSocket(this.
|
|
22
|
+
this.ws = new WebSocket(this.connectionUrl);
|
|
23
23
|
this.ws.onopen = () => {
|
|
24
24
|
this.status = 'connected';
|
|
25
25
|
this.reconnectAttempts = 0;
|
|
@@ -99,6 +99,18 @@ class WebSocketTransport {
|
|
|
99
99
|
console.log('[QALink Transport]', ...args);
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
|
+
maskedUrlForLogs() {
|
|
103
|
+
try {
|
|
104
|
+
const url = new URL(this.connectionUrl);
|
|
105
|
+
if (url.searchParams.has('apiKey')) {
|
|
106
|
+
url.searchParams.set('apiKey', '***');
|
|
107
|
+
}
|
|
108
|
+
return url.toString();
|
|
109
|
+
}
|
|
110
|
+
catch (_a) {
|
|
111
|
+
return this.connectionUrl;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
102
114
|
}
|
|
103
115
|
exports.WebSocketTransport = WebSocketTransport;
|
|
104
116
|
//# sourceMappingURL=websocket.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../src/transport/websocket.ts"],"names":[],"mappings":";;;AAIA,MAAa,kBAAkB;IAW7B,YAAY,
|
|
1
|
+
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../src/transport/websocket.ts"],"names":[],"mappings":"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"}
|